mito-ai 0.1.39__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.39.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/build_log.json +102 -100
- {mito_ai-0.1.39.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/package.json +4 -2
- {mito_ai-0.1.39.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.39.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.16b532b655cd2906e04a.js → mito_ai-0.1.41.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.01a962c68c8fae380f30.js +1782 -891
- 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.39.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.606207904e6aaa42b1bf.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.39.dist-info → mito_ai-0.1.41.dist-info}/METADATA +1 -1
- {mito_ai-0.1.39.dist-info → mito_ai-0.1.41.dist-info}/RECORD +53 -36
- mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/lib_index_js.16b532b655cd2906e04a.js.map +0 -1
- mito_ai-0.1.39.data/data/share/jupyter/labextensions/mito_ai/static/remoteEntry.606207904e6aaa42b1bf.js.map +0 -1
- {mito_ai-0.1.39.data → mito_ai-0.1.41.data}/data/etc/jupyter/jupyter_server_config.d/mito_ai.json +0 -0
- {mito_ai-0.1.39.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.39.data → mito_ai-0.1.41.data}/data/share/jupyter/labextensions/mito_ai/static/style.js +0 -0
- {mito_ai-0.1.39.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.39.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.39.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.39.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.39.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.39.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.39.dist-info → mito_ai-0.1.41.dist-info}/WHEEL +0 -0
- {mito_ai-0.1.39.dist-info → mito_ai-0.1.41.dist-info}/entry_points.txt +0 -0
- {mito_ai-0.1.39.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,9 +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
|
|
528
|
-
/* harmony import */ var
|
|
527
|
+
/* harmony import */ var _utils_errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../utils/errors */ "./lib/utils/errors.js");
|
|
528
|
+
/* harmony import */ var _utils_stripe__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../utils/stripe */ "./lib/utils/stripe.js");
|
|
529
|
+
/* harmony import */ var _restAPI_RestAPI__WEBPACK_IMPORTED_MODULE_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");
|
|
529
531
|
/*
|
|
530
532
|
* Copyright (c) Saga Inc.
|
|
531
533
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -534,21 +536,76 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
534
536
|
|
|
535
537
|
|
|
536
538
|
|
|
539
|
+
|
|
540
|
+
// Add calendly link constant
|
|
541
|
+
const CALENDLY_LINK = 'https://calendly.com/jake_from_mito/mito-meeting';
|
|
537
542
|
const AlertBlock = ({ content, mitoAIConnectionErrorType }) => {
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("
|
|
547
|
-
|
|
548
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p",
|
|
549
|
-
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(
|
|
550
|
-
|
|
551
|
-
|
|
543
|
+
const [showEmailDetails, setShowEmailDetails] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
544
|
+
// The first time this AlertBlock is rendered, log the error type
|
|
545
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
546
|
+
void (0,_restAPI_RestAPI__WEBPACK_IMPORTED_MODULE_2__.logEvent)('alert_block_displayed', { 'type': mitoAIConnectionErrorType, 'error': content });
|
|
547
|
+
}, []);
|
|
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" },
|
|
590
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "chat-message-alert" },
|
|
591
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "alert-error-message" },
|
|
592
|
+
"\u26A0 ",
|
|
593
|
+
content)),
|
|
594
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", null,
|
|
595
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", { className: "alert-actions-title" }, "If this issue persists, we recommend:"),
|
|
596
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("ul", { className: "alert-actions-list" },
|
|
597
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "Restarting JupyterLab completely"),
|
|
598
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "Upgrading to the latest version of Mito AI"),
|
|
599
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null,
|
|
600
|
+
"Sending us an email to founders@sagacollab.com \u00A0",
|
|
601
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "details-toggle" },
|
|
602
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { type: "button", onClick: () => setShowEmailDetails(!showEmailDetails), className: "toggle-button" },
|
|
603
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { className: "toggle-text" }, " Info to send us"),
|
|
604
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", { className: `toggle-caret ${showEmailDetails ? 'open' : ''}` }, "\u25BC"))),
|
|
605
|
+
showEmailDetails && (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "details-content" },
|
|
606
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "A screenshot of your entire Jupyter window"),
|
|
607
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "A screenshot of your browser's console. You can access this by right clicking on this error message, clicking \"Inspect\", and then clicking the \"Console\" tab. Then find the red error message at the bottom of the console and screenshot it."),
|
|
608
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("li", null, "Your `pip list` output"))))))));
|
|
552
609
|
};
|
|
553
610
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AlertBlock);
|
|
554
611
|
|
|
@@ -586,10 +643,11 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
586
643
|
|
|
587
644
|
|
|
588
645
|
|
|
589
|
-
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, }) => {
|
|
590
647
|
const [isCodeExpanded, setIsCodeExpanded] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
591
648
|
const shouldShowToolbar = isLastAiMessage || isCodeComplete;
|
|
592
649
|
if (agentModeEnabled) {
|
|
650
|
+
// Handle regular code blocks
|
|
593
651
|
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: (0,_utils_classNames__WEBPACK_IMPORTED_MODULE_3__.classNames)('code-block-container', 'agent-mode', {
|
|
594
652
|
'agent-mode-collapsed': !isCodeExpanded,
|
|
595
653
|
}) },
|
|
@@ -906,12 +964,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
906
964
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
907
965
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
908
966
|
/* harmony import */ var _utils_classNames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../utils/classNames */ "./lib/utils/classNames.js");
|
|
909
|
-
/* harmony import */ var
|
|
967
|
+
/* harmony import */ var _ChatDropdown__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ChatDropdown */ "./lib/Extensions/AiChat/ChatMessage/ChatDropdown.js");
|
|
910
968
|
/* harmony import */ var _utils_notebook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../utils/notebook */ "./lib/utils/notebook.js");
|
|
911
969
|
/* harmony import */ var _style_ChatInput_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../style/ChatInput.css */ "./style/ChatInput.css");
|
|
912
970
|
/* harmony import */ var _style_ChatDropdown_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../style/ChatDropdown.css */ "./style/ChatDropdown.css");
|
|
913
971
|
/* harmony import */ var _hooks_useDebouncedFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../hooks/useDebouncedFunction */ "./lib/hooks/useDebouncedFunction.js");
|
|
914
|
-
/* 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");
|
|
915
974
|
/* harmony import */ var _components_DatabaseButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../components/DatabaseButton */ "./lib/components/DatabaseButton.js");
|
|
916
975
|
/*
|
|
917
976
|
* Copyright (c) Saga Inc.
|
|
@@ -926,6 +985,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
926
985
|
|
|
927
986
|
|
|
928
987
|
|
|
988
|
+
|
|
929
989
|
const ChatInput = ({ app, initialContent, placeholder, onSave, onCancel, isEditing, contextManager, notebookTracker, agentModeEnabled = false, agentExecutionStatus = 'idle', }) => {
|
|
930
990
|
var _a;
|
|
931
991
|
const [input, setInput] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initialContent);
|
|
@@ -937,6 +997,16 @@ const ChatInput = ({ app, initialContent, placeholder, onSave, onCancel, isEditi
|
|
|
937
997
|
const [dropdownFilter, setDropdownFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
|
|
938
998
|
const [additionalContext, setAdditionalContext] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]);
|
|
939
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
|
+
};
|
|
940
1010
|
// Debounce the active cell ID change to avoid multiple rerenders.
|
|
941
1011
|
// We use this to avoid a flickering screen when the active cell changes.
|
|
942
1012
|
const debouncedSetActiveCellID = (0,_hooks_useDebouncedFunction__WEBPACK_IMPORTED_MODULE_4__.useDebouncedFunction)((newID) => {
|
|
@@ -1141,6 +1211,7 @@ const ChatInput = ({ app, initialContent, placeholder, onSave, onCancel, isEditi
|
|
|
1141
1211
|
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: (0,_utils_classNames__WEBPACK_IMPORTED_MODULE_5__.classNames)("chat-input-container") },
|
|
1142
1212
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'context-container' },
|
|
1143
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 }),
|
|
1144
1215
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { className: "context-button", onClick: () => {
|
|
1145
1216
|
var _a;
|
|
1146
1217
|
setDropdownVisible(true);
|
|
@@ -1148,7 +1219,7 @@ const ChatInput = ({ app, initialContent, placeholder, onSave, onCancel, isEditi
|
|
|
1148
1219
|
setIsDropdownFromButton(true);
|
|
1149
1220
|
(_a = textAreaRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
1150
1221
|
} }, "\uFF20 Add Context"),
|
|
1151
|
-
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 })))),
|
|
1152
1223
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'chat-input-text-area-container' },
|
|
1153
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) => {
|
|
1154
1225
|
// If dropdown is visible, only handle escape to close it
|
|
@@ -1177,7 +1248,7 @@ const ChatInput = ({ app, initialContent, placeholder, onSave, onCancel, isEditi
|
|
|
1177
1248
|
}
|
|
1178
1249
|
}
|
|
1179
1250
|
} }),
|
|
1180
|
-
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 }))),
|
|
1181
1252
|
isEditing &&
|
|
1182
1253
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "message-edit-buttons" },
|
|
1183
1254
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { onClick: () => onSave(input, undefined, mapAdditionalContext()) }, "Save"),
|
|
@@ -1218,6 +1289,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1218
1289
|
/* harmony import */ var _components_AgentComponents_GetCellOutputToolUI__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../../../components/AgentComponents/GetCellOutputToolUI */ "./lib/components/AgentComponents/GetCellOutputToolUI.js");
|
|
1219
1290
|
/* harmony import */ var _components_AgentComponents_AssumptionToolUI__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../../components/AgentComponents/AssumptionToolUI */ "./lib/components/AgentComponents/AssumptionToolUI.js");
|
|
1220
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");
|
|
1221
1293
|
/*
|
|
1222
1294
|
* Copyright (c) Saga Inc.
|
|
1223
1295
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -1241,6 +1313,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
1241
1313
|
|
|
1242
1314
|
|
|
1243
1315
|
|
|
1316
|
+
|
|
1244
1317
|
const ChatMessage = ({ app, message, promptType, agentResponse, messageIndex, mitoAIConnectionError, mitoAIConnectionErrorType, notebookTracker, renderMimeRegistry, isLastAiMessage, isLastMessage, operatingSystem, previewAICode, acceptAICode, rejectAICode, onUpdateMessage, contextManager, codeReviewStatus, setNextSteps, agentModeEnabled, additionalContext, }) => {
|
|
1245
1318
|
const [isEditing, setIsEditing] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
1246
1319
|
if (message.role !== 'user' && message.role !== 'assistant') {
|
|
@@ -1294,7 +1367,7 @@ const ChatMessage = ({ app, message, promptType, agentResponse, messageIndex, mi
|
|
|
1294
1367
|
// An empty code will look like this '```python ```'
|
|
1295
1368
|
if (messagePart.length > 14) {
|
|
1296
1369
|
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null,
|
|
1297
|
-
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 })),
|
|
1298
1371
|
isLastAiMessage && isCodeComplete && codeReviewStatus === 'chatPreview' &&
|
|
1299
1372
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: 'chat-message-buttons' },
|
|
1300
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' }),
|
|
@@ -1332,7 +1405,9 @@ const ChatMessage = ({ app, message, promptType, agentResponse, messageIndex, mi
|
|
|
1332
1405
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("button", { className: "message-start-editing-button", onClick: handleEditClick, title: "Edit message" },
|
|
1333
1406
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_Pencil__WEBPACK_IMPORTED_MODULE_17__["default"], null))),
|
|
1334
1407
|
(agentResponse === null || agentResponse === void 0 ? void 0 : agentResponse.type) === 'get_cell_output' &&
|
|
1335
|
-
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)));
|
|
1336
1411
|
};
|
|
1337
1412
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ChatMessage);
|
|
1338
1413
|
|
|
@@ -2616,6 +2691,22 @@ const ChatTaskpane = ({ notebookTracker, renderMimeRegistry, contextManager, app
|
|
|
2616
2691
|
// in the next loop iteration
|
|
2617
2692
|
sendCellIDOutput = agentResponse.get_cell_output_cell_id;
|
|
2618
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
|
+
}
|
|
2619
2710
|
}
|
|
2620
2711
|
if (agentExecutionDepth > AGENT_EXECUTION_DEPTH_LIMIT) {
|
|
2621
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);
|
|
@@ -3279,6 +3370,7 @@ const getFirstMessageFromCookie = () => {
|
|
|
3279
3370
|
|
|
3280
3371
|
__webpack_require__.r(__webpack_exports__);
|
|
3281
3372
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3373
|
+
/* harmony export */ setDefaultWindowingMode: () => (/* binding */ setDefaultWindowingMode),
|
|
3282
3374
|
/* harmony export */ setRenameUntitledFileOnSave: () => (/* binding */ setRenameUntitledFileOnSave)
|
|
3283
3375
|
/* harmony export */ });
|
|
3284
3376
|
/*
|
|
@@ -3287,6 +3379,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3287
3379
|
*/
|
|
3288
3380
|
// Document manager plugin ID
|
|
3289
3381
|
const DOCMANAGER_PLUGIN_ID = '@jupyterlab/docmanager-extension:plugin';
|
|
3382
|
+
const NOTEBOOK_PLUGIN_ID = '@jupyterlab/notebook-extension:tracker';
|
|
3290
3383
|
// Set renameUntitledFileOnSave to false when the extension loads
|
|
3291
3384
|
const setRenameUntitledFileOnSave = async (settingRegistry, _documentManager) => {
|
|
3292
3385
|
// Note we don't use the documentManager, but we require it as a parameter to make sure
|
|
@@ -3295,7 +3388,15 @@ const setRenameUntitledFileOnSave = async (settingRegistry, _documentManager) =>
|
|
|
3295
3388
|
await settingRegistry.set(DOCMANAGER_PLUGIN_ID, 'renameUntitledFileOnSave', false);
|
|
3296
3389
|
}
|
|
3297
3390
|
catch (error) {
|
|
3298
|
-
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);
|
|
3299
3400
|
}
|
|
3300
3401
|
};
|
|
3301
3402
|
|
|
@@ -3513,12 +3614,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3513
3614
|
/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__);
|
|
3514
3615
|
/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/apputils */ "webpack/sharing/consume/default/@jupyterlab/apputils");
|
|
3515
3616
|
/* harmony import */ var _jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_apputils__WEBPACK_IMPORTED_MODULE_1__);
|
|
3516
|
-
/* harmony import */ var
|
|
3517
|
-
/* 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");
|
|
3518
3619
|
/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/coreutils */ "webpack/sharing/consume/default/@lumino/coreutils");
|
|
3519
3620
|
/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__);
|
|
3520
|
-
/* harmony import */ var
|
|
3621
|
+
/* harmony import */ var _DeployAppNotification__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./DeployAppNotification */ "./lib/Extensions/AppBuilder/DeployAppNotification.js");
|
|
3521
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");
|
|
3522
3624
|
/*
|
|
3523
3625
|
* Copyright (c) Saga Inc.
|
|
3524
3626
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -3530,15 +3632,32 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3530
3632
|
|
|
3531
3633
|
|
|
3532
3634
|
|
|
3635
|
+
|
|
3533
3636
|
/*
|
|
3534
3637
|
This function generates a requirements.txt file that lists the dependencies for the streamlit app
|
|
3535
3638
|
*/
|
|
3536
3639
|
const convertNotebookToStreamlit = async (notebookTracker, appBuilderService) => {
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3640
|
+
let jwtToken = await (0,_auth__WEBPACK_IMPORTED_MODULE_3__.getJWTToken)();
|
|
3641
|
+
if (!jwtToken) {
|
|
3642
|
+
// No token found, show authentication popup
|
|
3540
3643
|
console.log('User not authenticated, redirected to signup');
|
|
3541
|
-
|
|
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
|
+
}
|
|
3542
3661
|
}
|
|
3543
3662
|
const notebookPanel = notebookTracker.currentWidget;
|
|
3544
3663
|
if (!notebookPanel) {
|
|
@@ -3552,15 +3671,14 @@ const convertNotebookToStreamlit = async (notebookTracker, appBuilderService) =>
|
|
|
3552
3671
|
console.log('Current working directory info:', notebookPanel.context);
|
|
3553
3672
|
// Build the requirements.txt file
|
|
3554
3673
|
console.debug("Building requirements.txt file");
|
|
3555
|
-
const requirementsContent = await (0,
|
|
3674
|
+
const requirementsContent = await (0,_requirementsUtils__WEBPACK_IMPORTED_MODULE_5__.generateRequirementsTxt)(notebookTracker);
|
|
3556
3675
|
// Save the files to the current directory
|
|
3557
|
-
await (0,
|
|
3676
|
+
await (0,_fileUtils__WEBPACK_IMPORTED_MODULE_6__.saveFileWithKernel)(notebookTracker, './requirements.txt', requirementsContent);
|
|
3558
3677
|
// After building the files, we need to send a request to the backend to deploy the app
|
|
3559
3678
|
if (appBuilderService) {
|
|
3560
3679
|
try {
|
|
3561
3680
|
console.log("Sending request to deploy the app");
|
|
3562
|
-
//
|
|
3563
|
-
const jwtToken = (0,_auth__WEBPACK_IMPORTED_MODULE_3__.getJWTToken)();
|
|
3681
|
+
// Use the JWT token that was already obtained or refreshed above
|
|
3564
3682
|
const response = await appBuilderService.client.sendMessage({
|
|
3565
3683
|
type: 'build-app',
|
|
3566
3684
|
message_id: _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__.UUID.uuid4(),
|
|
@@ -3575,7 +3693,7 @@ const convertNotebookToStreamlit = async (notebookTracker, appBuilderService) =>
|
|
|
3575
3693
|
else {
|
|
3576
3694
|
console.log("App deployment response:", response);
|
|
3577
3695
|
const url = response.url;
|
|
3578
|
-
(0,
|
|
3696
|
+
(0,_DeployAppNotification__WEBPACK_IMPORTED_MODULE_7__.deployAppNotification)(url);
|
|
3579
3697
|
}
|
|
3580
3698
|
}
|
|
3581
3699
|
catch (error) {
|
|
@@ -3589,6 +3707,116 @@ const convertNotebookToStreamlit = async (notebookTracker, appBuilderService) =>
|
|
|
3589
3707
|
};
|
|
3590
3708
|
|
|
3591
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
|
+
|
|
3592
3820
|
/***/ }),
|
|
3593
3821
|
|
|
3594
3822
|
/***/ "./lib/Extensions/AppBuilder/auth.js":
|
|
@@ -3599,169 +3827,39 @@ const convertNotebookToStreamlit = async (notebookTracker, appBuilderService) =>
|
|
|
3599
3827
|
|
|
3600
3828
|
__webpack_require__.r(__webpack_exports__);
|
|
3601
3829
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3602
|
-
/* harmony export */ checkAuthenticationAndRedirect: () => (/* binding */ checkAuthenticationAndRedirect),
|
|
3603
|
-
/* harmony export */ exchangeCodeForTokens: () => (/* binding */ exchangeCodeForTokens),
|
|
3604
3830
|
/* harmony export */ getAuthHeaders: () => (/* binding */ getAuthHeaders),
|
|
3605
|
-
/* harmony export */ getJWTToken: () => (/* binding */ getJWTToken)
|
|
3606
|
-
/* harmony export */ isUserAuthenticated: () => (/* binding */ isUserAuthenticated),
|
|
3607
|
-
/* harmony export */ redirectToSignin: () => (/* binding */ redirectToSignin),
|
|
3608
|
-
/* harmony export */ redirectToSignup: () => (/* binding */ redirectToSignup),
|
|
3609
|
-
/* harmony export */ removeJWTToken: () => (/* binding */ removeJWTToken),
|
|
3610
|
-
/* harmony export */ setJWTToken: () => (/* binding */ setJWTToken)
|
|
3831
|
+
/* harmony export */ getJWTToken: () => (/* binding */ getJWTToken)
|
|
3611
3832
|
/* harmony export */ });
|
|
3612
|
-
/* 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");
|
|
3613
3835
|
/*
|
|
3614
3836
|
* Copyright (c) Saga Inc.
|
|
3615
3837
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
3616
3838
|
*/
|
|
3617
3839
|
|
|
3618
|
-
|
|
3619
|
-
|
|
3620
|
-
|
|
3621
|
-
const active_domain = domain_dev;
|
|
3622
|
-
const currentUrl = window.location.href;
|
|
3623
|
-
let redirectUrl;
|
|
3624
|
-
// As of now we only support localhost:8888 because we have only allowed this redirect url on AWS conito
|
|
3625
|
-
// We can modify the redirect to include other ports in the future
|
|
3626
|
-
if (currentUrl.includes('localhost')) {
|
|
3627
|
-
redirectUrl = 'http://localhost:8888/lab';
|
|
3628
|
-
}
|
|
3629
|
-
else if (currentUrl.includes('trymito')) {
|
|
3630
|
-
redirectUrl = 'https://launch.trymito.io';
|
|
3631
|
-
}
|
|
3632
|
-
else {
|
|
3633
|
-
redirectUrl = currentUrl;
|
|
3634
|
-
}
|
|
3635
|
-
console.log("currentUrl: ", currentUrl);
|
|
3636
|
-
// AWS Cognito configuration
|
|
3637
|
-
const COGNITO_CONFIG = {
|
|
3638
|
-
SIGNUP_URL: `${active_domain}/signup?client_id=${client_id}&response_type=code&scope=email+openid+profile&redirect_uri=${redirectUrl}`,
|
|
3639
|
-
SIGNIN_URL: `${active_domain}/login?client_id=${client_id}&response_type=code&scope=email+openid+profile&redirect_uri=${redirectUrl}`,
|
|
3640
|
-
JWT_COOKIE_NAME: 'mito-auth-token',
|
|
3641
|
-
JWT_COOKIE_EXPIRY_HOURS: 1
|
|
3642
|
-
};
|
|
3643
|
-
/**
|
|
3644
|
-
* Check if user is authenticated by looking for JWT token in cookies
|
|
3645
|
-
*/
|
|
3646
|
-
const isUserAuthenticated = () => {
|
|
3647
|
-
const token = getJWTToken();
|
|
3648
|
-
return token !== null && token !== undefined && token !== '';
|
|
3649
|
-
};
|
|
3840
|
+
|
|
3841
|
+
// Ensure Amplify is configured before any auth operations
|
|
3842
|
+
(0,_aws_config__WEBPACK_IMPORTED_MODULE_0__.configureAmplify)();
|
|
3650
3843
|
/**
|
|
3651
3844
|
* Get JWT token from cookies
|
|
3652
3845
|
*/
|
|
3653
|
-
const getJWTToken = () => {
|
|
3654
|
-
|
|
3655
|
-
const jwtCookie = cookies.find(cookie => cookie.trim().startsWith(`${COGNITO_CONFIG.JWT_COOKIE_NAME}=`));
|
|
3656
|
-
if (jwtCookie) {
|
|
3657
|
-
const token = jwtCookie.split('=')[1];
|
|
3658
|
-
return token || null;
|
|
3659
|
-
}
|
|
3660
|
-
return null;
|
|
3661
|
-
};
|
|
3662
|
-
/**
|
|
3663
|
-
* Set JWT token as a cookie
|
|
3664
|
-
*/
|
|
3665
|
-
const setJWTToken = (token) => {
|
|
3666
|
-
const date = new Date();
|
|
3667
|
-
date.setTime(date.getTime() + (COGNITO_CONFIG.JWT_COOKIE_EXPIRY_HOURS * 60 * 60 * 1000));
|
|
3668
|
-
const expires = "expires=" + date.toUTCString();
|
|
3669
|
-
// Set cookie for all subdomains of trymito.io (production)
|
|
3670
|
-
document.cookie = `${COGNITO_CONFIG.JWT_COOKIE_NAME}=${token}; ${expires}; path=/; domain=.trymito.io; SameSite=Lax; Secure`;
|
|
3671
|
-
// For localhost development
|
|
3672
|
-
if (window.location.hostname === 'localhost') {
|
|
3673
|
-
document.cookie = `${COGNITO_CONFIG.JWT_COOKIE_NAME}=${token}; ${expires}; path=/`;
|
|
3674
|
-
}
|
|
3675
|
-
};
|
|
3676
|
-
/**
|
|
3677
|
-
* Remove JWT token from cookies
|
|
3678
|
-
*/
|
|
3679
|
-
const removeJWTToken = () => {
|
|
3680
|
-
// Delete for current domain
|
|
3681
|
-
document.cookie = `${COGNITO_CONFIG.JWT_COOKIE_NAME}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;
|
|
3682
|
-
// Delete for all subdomains
|
|
3683
|
-
document.cookie = `${COGNITO_CONFIG.JWT_COOKIE_NAME}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; domain=.trymito.io;`;
|
|
3684
|
-
};
|
|
3685
|
-
/**
|
|
3686
|
-
* Exchange authorization code for JWT tokens
|
|
3687
|
-
*/
|
|
3688
|
-
const exchangeCodeForTokens = async (code) => {
|
|
3846
|
+
const getJWTToken = async () => {
|
|
3847
|
+
var _a, _b;
|
|
3689
3848
|
try {
|
|
3690
|
-
const
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
});
|
|
3694
|
-
if (response.error) {
|
|
3695
|
-
console.error('Failed to exchange code for tokens:', response.error);
|
|
3696
|
-
return false;
|
|
3697
|
-
}
|
|
3698
|
-
if (response.data) {
|
|
3699
|
-
const data = response.data;
|
|
3700
|
-
const { access_token } = data;
|
|
3701
|
-
// Store the access token as the JWT token
|
|
3702
|
-
if (access_token) {
|
|
3703
|
-
setJWTToken(access_token);
|
|
3704
|
-
return true;
|
|
3705
|
-
}
|
|
3706
|
-
}
|
|
3707
|
-
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 || '';
|
|
3708
3852
|
}
|
|
3709
3853
|
catch (error) {
|
|
3710
|
-
console.error('Error
|
|
3711
|
-
return
|
|
3712
|
-
}
|
|
3713
|
-
};
|
|
3714
|
-
/**
|
|
3715
|
-
* Redirect user to AWS Cognito signup page
|
|
3716
|
-
*/
|
|
3717
|
-
const redirectToSignup = () => {
|
|
3718
|
-
window.location.href = COGNITO_CONFIG.SIGNUP_URL;
|
|
3719
|
-
};
|
|
3720
|
-
/**
|
|
3721
|
-
* Redirect user to AWS Cognito signin page
|
|
3722
|
-
*/
|
|
3723
|
-
const redirectToSignin = () => {
|
|
3724
|
-
window.location.href = COGNITO_CONFIG.SIGNIN_URL;
|
|
3725
|
-
};
|
|
3726
|
-
/**
|
|
3727
|
-
* Handle authentication check and redirect if needed
|
|
3728
|
-
* Returns true if user is authenticated, false if redirected
|
|
3729
|
-
*/
|
|
3730
|
-
const checkAuthenticationAndRedirect = async () => {
|
|
3731
|
-
if (!isUserAuthenticated()) {
|
|
3732
|
-
// Check if there's a code parameter in the URL (indicating return from Cognito)
|
|
3733
|
-
const urlParams = new URLSearchParams(window.location.search);
|
|
3734
|
-
const code = urlParams.get('code');
|
|
3735
|
-
if (code) {
|
|
3736
|
-
// User has returned from Cognito with authorization code
|
|
3737
|
-
console.log('Received authorization code from Cognito:', code);
|
|
3738
|
-
// Exchange the code for JWT tokens
|
|
3739
|
-
const success = await exchangeCodeForTokens(code);
|
|
3740
|
-
if (success) {
|
|
3741
|
-
// Clean up URL
|
|
3742
|
-
const newUrl = window.location.pathname;
|
|
3743
|
-
window.history.replaceState({}, document.title, newUrl);
|
|
3744
|
-
return true;
|
|
3745
|
-
}
|
|
3746
|
-
else {
|
|
3747
|
-
// Failed to exchange code, redirect to signup
|
|
3748
|
-
redirectToSignup();
|
|
3749
|
-
return false;
|
|
3750
|
-
}
|
|
3751
|
-
}
|
|
3752
|
-
else {
|
|
3753
|
-
// No token and no code, redirect to signup
|
|
3754
|
-
redirectToSignup();
|
|
3755
|
-
return false;
|
|
3756
|
-
}
|
|
3854
|
+
console.error('Error getting JWT token:', error);
|
|
3855
|
+
return '';
|
|
3757
3856
|
}
|
|
3758
|
-
return true;
|
|
3759
3857
|
};
|
|
3760
3858
|
/**
|
|
3761
3859
|
* Get authentication headers for API requests
|
|
3762
3860
|
*/
|
|
3763
|
-
const getAuthHeaders = () => {
|
|
3764
|
-
const token = getJWTToken();
|
|
3861
|
+
const getAuthHeaders = async () => {
|
|
3862
|
+
const token = await getJWTToken();
|
|
3765
3863
|
if (token) {
|
|
3766
3864
|
return {
|
|
3767
3865
|
'Authorization': `Bearer ${token}`
|
|
@@ -3771,6 +3869,101 @@ const getAuthHeaders = () => {
|
|
|
3771
3869
|
};
|
|
3772
3870
|
|
|
3773
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
|
+
|
|
3774
3967
|
/***/ }),
|
|
3775
3968
|
|
|
3776
3969
|
/***/ "./lib/Extensions/AppBuilder/fileUtils.js":
|
|
@@ -4179,7 +4372,13 @@ def get_dataframe_structure(df, sample_size=5):
|
|
|
4179
4372
|
# Handle None and NaN (convert to None, which maps to null in JSON)
|
|
4180
4373
|
return None
|
|
4181
4374
|
elif not isinstance(value, (str, int, float, bool, type(None))):
|
|
4182
|
-
|
|
4375
|
+
value_str = str(value)
|
|
4376
|
+
if len(value_str) > 50:
|
|
4377
|
+
return value_str[:50] + "..."
|
|
4378
|
+
return value_str
|
|
4379
|
+
elif isinstance(value, str) and len(value) > 50:
|
|
4380
|
+
# Truncate strings longer than 50 characters
|
|
4381
|
+
return value[:50] + "..."
|
|
4183
4382
|
return value
|
|
4184
4383
|
|
|
4185
4384
|
structure = {}
|
|
@@ -4237,10 +4436,17 @@ def structured_globals():
|
|
|
4237
4436
|
|
|
4238
4437
|
else:
|
|
4239
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
|
+
|
|
4240
4446
|
new_variable = {
|
|
4241
4447
|
"variable_name": k,
|
|
4242
4448
|
"type": str(type(v)),
|
|
4243
|
-
"value":
|
|
4449
|
+
"value": truncated_value
|
|
4244
4450
|
}
|
|
4245
4451
|
|
|
4246
4452
|
try:
|
|
@@ -6616,11 +6822,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6616
6822
|
/* harmony import */ var _utils_classNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/classNames */ "./lib/utils/classNames.js");
|
|
6617
6823
|
/* harmony import */ var _utils_strings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/strings */ "./lib/utils/strings.js");
|
|
6618
6824
|
/* harmony import */ var _Extensions_AiChat_ChatMessage_PythonCode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../Extensions/AiChat/ChatMessage/PythonCode */ "./lib/Extensions/AiChat/ChatMessage/PythonCode.js");
|
|
6619
|
-
/* 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");
|
|
6620
6826
|
/* harmony import */ var _icons_AlertIcon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../icons/AlertIcon */ "./lib/icons/AlertIcon.js");
|
|
6621
6827
|
/* harmony import */ var _AgentComponentHeader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AgentComponentHeader */ "./lib/components/AgentComponents/AgentComponentHeader.js");
|
|
6622
6828
|
/* harmony import */ var _style_ErrorFixupToolUI_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../style/ErrorFixupToolUI.css */ "./style/ErrorFixupToolUI.css");
|
|
6623
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");
|
|
6624
6831
|
/*
|
|
6625
6832
|
* Copyright (c) Saga Inc.
|
|
6626
6833
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -6634,6 +6841,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6634
6841
|
|
|
6635
6842
|
|
|
6636
6843
|
|
|
6844
|
+
|
|
6637
6845
|
const parsePythonErrorType = (content) => {
|
|
6638
6846
|
if (!content)
|
|
6639
6847
|
return 'Error';
|
|
@@ -6666,12 +6874,15 @@ const GroupedErrorsAndFixes = ({ messages, renderMimeRegistry, }) => {
|
|
|
6666
6874
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "error-fixup-header" },
|
|
6667
6875
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", null, "Fixing an error")),
|
|
6668
6876
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "error-fixup-messages-container" }, messages.map((messageItem, index) => {
|
|
6669
|
-
var _a, _b, _c;
|
|
6877
|
+
var _a, _b, _c, _d;
|
|
6670
6878
|
const isUserMessage = messageItem.message.role === 'user';
|
|
6671
6879
|
if (isUserMessage) {
|
|
6672
6880
|
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ErrorDetectedBlock, { key: `error-${index}`, errorMessage: messageItem.message, renderMimeRegistry: renderMimeRegistry }));
|
|
6673
6881
|
}
|
|
6674
|
-
|
|
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 }));
|
|
6675
6886
|
}))));
|
|
6676
6887
|
};
|
|
6677
6888
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (GroupedErrorsAndFixes);
|
|
@@ -6692,7 +6903,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6692
6903
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
6693
6904
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
6694
6905
|
/* harmony import */ var _icons_MagnifyingGlassIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../icons/MagnifyingGlassIcon */ "./lib/icons/MagnifyingGlassIcon.js");
|
|
6695
|
-
/* harmony import */ var
|
|
6906
|
+
/* harmony import */ var _style_AgentToolUIComponent_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../style/AgentToolUIComponent.css */ "./style/AgentToolUIComponent.css");
|
|
6696
6907
|
/*
|
|
6697
6908
|
* Copyright (c) Saga Inc.
|
|
6698
6909
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -6701,8 +6912,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6701
6912
|
|
|
6702
6913
|
|
|
6703
6914
|
const GetCellOutputToolUI = () => {
|
|
6704
|
-
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: "
|
|
6705
|
-
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" },
|
|
6706
6917
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_icons_MagnifyingGlassIcon__WEBPACK_IMPORTED_MODULE_2__["default"], null),
|
|
6707
6918
|
react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", null, "Taking a look at the cell output"))));
|
|
6708
6919
|
};
|
|
@@ -6711,10 +6922,10 @@ const GetCellOutputToolUI = () => {
|
|
|
6711
6922
|
|
|
6712
6923
|
/***/ }),
|
|
6713
6924
|
|
|
6714
|
-
/***/ "./lib/components/
|
|
6715
|
-
|
|
6716
|
-
!*** ./lib/components/
|
|
6717
|
-
|
|
6925
|
+
/***/ "./lib/components/AgentComponents/RunAllCellsToolUI.js":
|
|
6926
|
+
/*!*************************************************************!*\
|
|
6927
|
+
!*** ./lib/components/AgentComponents/RunAllCellsToolUI.js ***!
|
|
6928
|
+
\*************************************************************/
|
|
6718
6929
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6719
6930
|
|
|
6720
6931
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -6723,10 +6934,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6723
6934
|
/* harmony export */ });
|
|
6724
6935
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
6725
6936
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
6726
|
-
/* harmony import */ var
|
|
6727
|
-
/* harmony import */ var
|
|
6728
|
-
/* harmony import */ var
|
|
6729
|
-
/* 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");
|
|
6730
6940
|
/*
|
|
6731
6941
|
* Copyright (c) Saga Inc.
|
|
6732
6942
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
@@ -6735,42 +6945,23 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6735
6945
|
|
|
6736
6946
|
|
|
6737
6947
|
|
|
6738
|
-
|
|
6739
|
-
|
|
6740
|
-
|
|
6741
|
-
|
|
6742
|
-
|
|
6743
|
-
|
|
6744
|
-
|
|
6745
|
-
setDatabaseConnections(databaseConnections);
|
|
6746
|
-
};
|
|
6747
|
-
// Fetch database connections
|
|
6748
|
-
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
6749
|
-
void fetchDatabaseConnections();
|
|
6750
|
-
}, []);
|
|
6751
|
-
// Determine notification dot type based on connections
|
|
6752
|
-
const getNotificationDotType = () => {
|
|
6753
|
-
if (!isIconVisible) {
|
|
6754
|
-
return null;
|
|
6755
|
-
}
|
|
6756
|
-
return Object.keys(databaseConnections).length > 0 ? 'success' : 'warning';
|
|
6757
|
-
};
|
|
6758
|
-
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: () => {
|
|
6759
|
-
void app.commands.execute(_Extensions_SettingsManager_SettingsManagerPlugin__WEBPACK_IMPORTED_MODULE_4__.COMMAND_MITO_AI_SETTINGS);
|
|
6760
|
-
setIsIconVisible(false);
|
|
6761
|
-
}, notificationDotType: getNotificationDotType(), className: 'icon-button-hover', style: {
|
|
6762
|
-
height: 'var(--chat-context-button-height)'
|
|
6763
|
-
} }));
|
|
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"))));
|
|
6764
6955
|
};
|
|
6765
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (
|
|
6956
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RunAllCellsToolUI);
|
|
6766
6957
|
|
|
6767
6958
|
|
|
6768
6959
|
/***/ }),
|
|
6769
6960
|
|
|
6770
|
-
/***/ "./lib/components/
|
|
6771
|
-
|
|
6772
|
-
!*** ./lib/components/
|
|
6773
|
-
|
|
6961
|
+
/***/ "./lib/components/AttachFileButton.js":
|
|
6962
|
+
/*!********************************************!*\
|
|
6963
|
+
!*** ./lib/components/AttachFileButton.js ***!
|
|
6964
|
+
\********************************************/
|
|
6774
6965
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6775
6966
|
|
|
6776
6967
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -6779,48 +6970,309 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6779
6970
|
/* harmony export */ });
|
|
6780
6971
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "webpack/sharing/consume/default/react");
|
|
6781
6972
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
6782
|
-
/* 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__);
|
|
6783
6978
|
/*
|
|
6784
6979
|
* Copyright (c) Saga Inc.
|
|
6785
6980
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
6786
6981
|
*/
|
|
6787
6982
|
|
|
6788
6983
|
|
|
6789
|
-
|
|
6790
|
-
|
|
6791
|
-
|
|
6792
|
-
|
|
6793
|
-
|
|
6794
|
-
|
|
6795
|
-
|
|
6796
|
-
|
|
6797
|
-
|
|
6798
|
-
|
|
6799
|
-
|
|
6800
|
-
|
|
6801
|
-
|
|
6802
|
-
|
|
6803
|
-
|
|
6804
|
-
|
|
6805
|
-
|
|
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)
|
|
6806
7006
|
return;
|
|
6807
|
-
|
|
6808
|
-
|
|
7007
|
+
// Trigger the hidden file input
|
|
7008
|
+
(_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
|
|
6809
7009
|
};
|
|
6810
|
-
|
|
6811
|
-
|
|
6812
|
-
|
|
6813
|
-
|
|
6814
|
-
|
|
6815
|
-
|
|
6816
|
-
|
|
6817
|
-
|
|
6818
|
-
|
|
6819
|
-
|
|
6820
|
-
|
|
6821
|
-
|
|
6822
|
-
|
|
6823
|
-
|
|
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();
|
|
7274
|
+
setIsOpen(false); // optional: close the dropdown after secondary action
|
|
7275
|
+
}
|
|
6824
7276
|
}, disabled: action.disabled, title: action.tooltip, style: {
|
|
6825
7277
|
background: 'none',
|
|
6826
7278
|
border: 'none',
|
|
@@ -6856,8 +7308,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6856
7308
|
|
|
6857
7309
|
|
|
6858
7310
|
|
|
6859
|
-
const IconButton = ({ icon, onClick, title, style, notificationDotType = null, className }) => {
|
|
6860
|
-
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 },
|
|
6861
7313
|
icon,
|
|
6862
7314
|
notificationDotType && react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { className: `notification-dot notification-dot-${notificationDotType}` })));
|
|
6863
7315
|
};
|
|
@@ -7683,6 +8135,31 @@ const NucleausIcon = ({ height = 20, width = 20, }) => (react__WEBPACK_IMPORTED_
|
|
|
7683
8135
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NucleausIcon);
|
|
7684
8136
|
|
|
7685
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
|
+
|
|
7686
8163
|
/***/ }),
|
|
7687
8164
|
|
|
7688
8165
|
/***/ "./lib/icons/Pencil.js":
|
|
@@ -8161,7 +8638,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
8161
8638
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8162
8639
|
/* harmony export */ acceptAndRunCellUpdate: () => (/* binding */ acceptAndRunCellUpdate),
|
|
8163
8640
|
/* harmony export */ acceptAndRunCode: () => (/* binding */ acceptAndRunCode),
|
|
8164
|
-
/* harmony export */ retryIfExecutionError: () => (/* binding */ retryIfExecutionError)
|
|
8641
|
+
/* harmony export */ retryIfExecutionError: () => (/* binding */ retryIfExecutionError),
|
|
8642
|
+
/* harmony export */ runAllCells: () => (/* binding */ runAllCells)
|
|
8165
8643
|
/* harmony export */ });
|
|
8166
8644
|
/* harmony import */ var _Extensions_ErrorMimeRenderer_errorUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Extensions/ErrorMimeRenderer/errorUtils */ "./lib/Extensions/ErrorMimeRenderer/errorUtils.js");
|
|
8167
8645
|
/* harmony import */ var _sleep__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sleep */ "./lib/utils/sleep.js");
|
|
@@ -8217,12 +8695,14 @@ const acceptAndRunCode = async (app, notebookTracker, previewAICodeToActiveCell,
|
|
|
8217
8695
|
await (0,_sleep__WEBPACK_IMPORTED_MODULE_1__.sleep)(1000);
|
|
8218
8696
|
};
|
|
8219
8697
|
const retryIfExecutionError = async (notebookTracker, app, getDuplicateChatHistoryManager, addAIMessageFromResponseAndUpdateState, sendAgentSmartDebugMessage, previewAICodeToActiveCell, acceptAICode, shouldContinueAgentExecution, finalizeAgentStop, chatHistoryManagerRef) => {
|
|
8220
|
-
var _a, _b, _c
|
|
8698
|
+
var _a, _b, _c;
|
|
8221
8699
|
const cell = (_b = (_a = notebookTracker.currentWidget) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.activeCell;
|
|
8222
8700
|
// Note: If you update the max retries, update the message we display on each failure
|
|
8223
8701
|
// attempt to ensure we don't say "third attempt" over and over again.
|
|
8224
8702
|
const MAX_RETRIES = 3;
|
|
8225
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
|
|
8226
8706
|
while ((0,_notebook__WEBPACK_IMPORTED_MODULE_0__.didCellExecutionError)(cell) && attempts < MAX_RETRIES) {
|
|
8227
8707
|
if (!shouldContinueAgentExecution.current) {
|
|
8228
8708
|
finalizeAgentStop();
|
|
@@ -8237,16 +8717,35 @@ const retryIfExecutionError = async (notebookTracker, app, getDuplicateChatHisto
|
|
|
8237
8717
|
const errorMessage = (0,_Extensions_ErrorMimeRenderer_errorUtils__WEBPACK_IMPORTED_MODULE_2__.getFullErrorMessageFromTraceback)(errorOutput.traceback);
|
|
8238
8718
|
await sendAgentSmartDebugMessage(errorMessage);
|
|
8239
8719
|
const aiDisplayOptimizedChatItem = chatHistoryManagerRef.current.getLastAIDisplayOptimizedChatItem();
|
|
8240
|
-
//
|
|
8241
|
-
|
|
8242
|
-
|
|
8243
|
-
// typescript knows what type it is.
|
|
8244
|
-
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) {
|
|
8245
8723
|
return 'failure';
|
|
8246
8724
|
}
|
|
8247
|
-
|
|
8248
|
-
|
|
8249
|
-
|
|
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';
|
|
8250
8749
|
}
|
|
8251
8750
|
attempts++;
|
|
8252
8751
|
// If this was the last attempt and it still failed
|
|
@@ -8256,6 +8755,37 @@ const retryIfExecutionError = async (notebookTracker, app, getDuplicateChatHisto
|
|
|
8256
8755
|
}
|
|
8257
8756
|
return 'success';
|
|
8258
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
|
+
};
|
|
8259
8789
|
|
|
8260
8790
|
|
|
8261
8791
|
/***/ }),
|
|
@@ -10411,10 +10941,10 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
10411
10941
|
|
|
10412
10942
|
/***/ }),
|
|
10413
10943
|
|
|
10414
|
-
/***/ "./node_modules/css-loader/dist/cjs.js!./style/
|
|
10415
|
-
|
|
10416
|
-
!*** ./node_modules/css-loader/dist/cjs.js!./style/
|
|
10417
|
-
|
|
10944
|
+
/***/ "./node_modules/css-loader/dist/cjs.js!./style/AgentToolUIComponent.css":
|
|
10945
|
+
/*!******************************************************************************!*\
|
|
10946
|
+
!*** ./node_modules/css-loader/dist/cjs.js!./style/AgentToolUIComponent.css ***!
|
|
10947
|
+
\******************************************************************************/
|
|
10418
10948
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
10419
10949
|
|
|
10420
10950
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -10435,57 +10965,42 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
10435
10965
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
10436
10966
|
*/
|
|
10437
10967
|
|
|
10438
|
-
.
|
|
10439
|
-
color: var(--jp-ui-font-color2);
|
|
10968
|
+
.agent-tool-ui-container {
|
|
10440
10969
|
display: flex;
|
|
10441
|
-
|
|
10970
|
+
flex-direction: row;
|
|
10442
10971
|
align-items: center;
|
|
10443
|
-
|
|
10444
|
-
|
|
10445
|
-
|
|
10446
|
-
|
|
10447
|
-
border-radius: var(--chat-taskpane-item-border-radius);
|
|
10448
|
-
border: 1px solid var(--jp-cell-editor-border-color);
|
|
10449
|
-
cursor: default;
|
|
10972
|
+
justify-content: start;
|
|
10973
|
+
background-color: transparent;
|
|
10974
|
+
padding: 10px;
|
|
10975
|
+
color: var(--jp-ui-font-color2);
|
|
10450
10976
|
}
|
|
10451
10977
|
|
|
10452
|
-
.
|
|
10453
|
-
|
|
10454
|
-
|
|
10455
|
-
|
|
10456
|
-
background-color: var(--chat-background-color);
|
|
10457
|
-
padding: 2px 8px;
|
|
10458
|
-
border-radius: 4px;
|
|
10459
|
-
font-size: 12px;
|
|
10460
|
-
color: var(--jp-ui-font-color2);
|
|
10461
|
-
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);
|
|
10462
10982
|
}
|
|
10463
10983
|
|
|
10464
|
-
.
|
|
10465
|
-
|
|
10466
|
-
align-items: flex-start;
|
|
10467
|
-
gap: 8px;
|
|
10468
|
-
color: var(--jp-ui-font-color2);
|
|
10469
|
-
font-size: 14px;
|
|
10470
|
-
line-height: 1.4;
|
|
10471
|
-
margin: 0;
|
|
10472
|
-
padding: 10px 10px 5px 10px;
|
|
10984
|
+
.agent-tool-ui-container:not(.agent-tool-ui-error-fixup) .agent-tool-ui-content {
|
|
10985
|
+
margin-left: 5px;
|
|
10473
10986
|
}
|
|
10474
10987
|
|
|
10475
|
-
.
|
|
10476
|
-
|
|
10477
|
-
|
|
10478
|
-
|
|
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":""}]);
|
|
10479
10994
|
// Exports
|
|
10480
10995
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
10481
10996
|
|
|
10482
10997
|
|
|
10483
10998
|
/***/ }),
|
|
10484
10999
|
|
|
10485
|
-
/***/ "./node_modules/css-loader/dist/cjs.js!./style/
|
|
10486
|
-
|
|
10487
|
-
!*** ./node_modules/css-loader/dist/cjs.js!./style/
|
|
10488
|
-
|
|
11000
|
+
/***/ "./node_modules/css-loader/dist/cjs.js!./style/AlertBlock.css":
|
|
11001
|
+
/*!********************************************************************!*\
|
|
11002
|
+
!*** ./node_modules/css-loader/dist/cjs.js!./style/AlertBlock.css ***!
|
|
11003
|
+
\********************************************************************/
|
|
10489
11004
|
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
10490
11005
|
|
|
10491
11006
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -10506,7 +11021,743 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
10506
11021
|
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
10507
11022
|
*/
|
|
10508
11023
|
|
|
10509
|
-
|
|
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 {
|
|
10510
11761
|
width: 100%;
|
|
10511
11762
|
}
|
|
10512
11763
|
|
|
@@ -10985,21 +12236,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
10985
12236
|
|
|
10986
12237
|
.message-edit-buttons button:hover {
|
|
10987
12238
|
background-color: var(--jp-layout-color2);
|
|
10988
|
-
}
|
|
10989
|
-
|
|
10990
|
-
.chat-message-alert {
|
|
10991
|
-
background-color: var(--purple-300);
|
|
10992
|
-
border-radius: 5px;
|
|
10993
|
-
padding: 10px;
|
|
10994
|
-
border: 1px solid var(--purple-500);
|
|
10995
|
-
color: var(--grey-900);
|
|
10996
|
-
}
|
|
10997
|
-
|
|
10998
|
-
.chat-message-alert a {
|
|
10999
|
-
color: var(--purple-700);
|
|
11000
|
-
text-decoration: underline;
|
|
11001
|
-
}
|
|
11002
|
-
`, "",{"version":3,"sources":["webpack://./style/ChatMessage.css"],"names":[],"mappings":"AAAA;;;EAGE;;AAEF;EACE,kBAAkB;EAClB,mBAAmB;EACnB,sBAAsB;EACtB,WAAW;EACX,eAAe;EACf,sDAAsD;EACtD,2CAA2C;AAC7C;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,2DAA2D;EAC3D,0CAA0C;EAC1C,aAAa;AACf;;AAEA;EACE,+CAA+C;AACjD;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,QAAQ;EACR,gBAAgB;EAChB,kBAAkB;EAClB,eAAe;AACjB;;AAEA;EACE,gBAAgB;EAChB,sBAAsB;EACtB,SAAS;EACT,gBAAgB;AAClB;;AAEA;EACE,mBAAmB;AACrB;;AAEA,qCAAqC;AACrC;EACE,kBAAkB;EAClB,WAAW;EACX,UAAU;EACV,aAAa;EACb,kBAAkB;EAClB,gBAAgB,EAAE,0DAA0D;AAC9E;;AAEA,qCAAqC;AACrC;;EAEE,eAAe;EACf,UAAU;EACV;;qCAEmC;EACnC,yCAAyC;EACzC,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,oCAAoC;AACtC;;AAEA,gCAAgC;AAChC;EACE,WAAW;EACX,YAAY;EACZ,UAAU;EACV,gBAAgB,EAAE,oCAAoC;AACxD;;AAEA,yCAAyC;AACzC;EACE,+CAA+C;AACjD;;AAEA,8FAA8F;AAC9F;;EAEE,gBAAgB;AAClB;;AAEA,2BAA2B;AAC3B;EACE,kBAAkB;EAClB,YAAY;EACZ,kBAAkB;AACpB;;AAEA,mBAAmB;AACnB;EACE,oCAAoC;AACtC;;AAEA,iBAAiB;AACjB;;EAEE,yCAAyC;AAC3C;;AAEA,kCAAkC;AAClC;;EAEE,UAAU;AACZ;;AAEA;EACE,aAAa;EACb,QAAQ;EACR,YAAY;AACd;;AAEA;EACE,iBAAiB;EACjB,kBAAkB;EAClB,yCAAyC;EACzC,oCAAoC;EACpC,yCAAyC;EACzC,eAAe;AACjB;;AAEA;EACE,yCAAyC;AAC3C;;AAEA;EACE,mCAAmC;EACnC,kBAAkB;EAClB,aAAa;EACb,mCAAmC;EACnC,sBAAsB;AACxB;;AAEA;EACE,wBAAwB;EACxB,0BAA0B;AAC5B","sourcesContent":["/*\n * Copyright (c) Saga Inc.\n * Distributed under the terms of the GNU Affero General Public License v3.0 License.\n */\n\n.message {\n position: relative;\n height: min-content;\n box-sizing: border-box;\n width: 100%;\n font-size: 14px;\n border-radius: var(--chat-taskpane-item-border-radius);\n padding: 0 var(--chat-taskpane-item-indent);\n}\n\n.message:not(.chat-input) {\n margin-bottom: 20px;\n}\n\n.message:hover .message-start-editing-button {\n opacity: 1 !important;\n}\n\n.message-user {\n background-color: var(--chat-user-message-background-color);\n color: var(--chat-user-message-font-color);\n padding: 10px;\n}\n\n.message-assistant-chat {\n color: var(--chat-assistant-message-font-color);\n}\n\n.chat-message-buttons {\n display: flex;\n flex-direction: row;\n gap: 8px;\n margin-top: 10px;\n margin-bottom: 4px;\n flex-wrap: wrap;\n}\n\n.chat-taskpane-smart-debug-error-message {\n white-space: pre;\n font-family: monospace;\n margin: 0;\n overflow-x: auto;\n}\n\n.message-text {\n align-items: center;\n}\n\n/* Message Action Buttons Container */\n.message-action-buttons {\n position: absolute;\n bottom: 8px;\n right: 8px;\n display: flex;\n border-radius: 4px;\n overflow: hidden; /* Ensures inner buttons don't break the rounded corners */\n}\n\n/* Common styles for action buttons */\n.message-action-buttons button,\n.message-start-editing-button {\n cursor: pointer;\n opacity: 0;\n transition:\n opacity 0.2s ease-in-out,\n background-color 0.2s ease-in-out;\n background-color: var(--jp-layout-color3);\n border: none;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--jp-content-font-color1);\n}\n\n/* Action buttons in the group */\n.message-action-buttons button {\n width: 28px;\n height: 28px;\n padding: 0;\n border-radius: 0; /* Remove individual button radius */\n}\n\n/* Add subtle separator between buttons */\n.message-action-buttons button:not(:last-child) {\n border-right: 1px solid var(--jp-border-color1);\n}\n\n/* Remove the individual button radius styles since we're handling it at the container level */\n.message-action-buttons button:first-child,\n.message-action-buttons button:last-child {\n border-radius: 0;\n}\n\n/* Standalone edit button */\n.message-start-editing-button {\n position: relative;\n padding: 4px;\n border-radius: 4px;\n}\n\n/* SVG icon color */\n.message-action-buttons button svg {\n color: var(--jp-content-font-color1);\n}\n\n/* Hover states */\n.message-action-buttons button:hover,\n.message-start-editing-button:hover {\n background-color: var(--jp-layout-color4);\n}\n\n/* Show buttons on message hover */\n.message:hover .message-action-buttons button,\n.message:hover .message-start-editing-button {\n opacity: 1;\n}\n\n.message-edit-buttons {\n display: flex;\n gap: 8px;\n padding: 5px;\n}\n\n.message-edit-buttons button {\n padding: 4px 12px;\n border-radius: 4px;\n background-color: var(--jp-layout-color1);\n color: var(--jp-content-font-color1);\n border: 1px solid var(--jp-border-color1);\n cursor: pointer;\n}\n\n.message-edit-buttons button:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.chat-message-alert {\n background-color: var(--purple-300);\n border-radius: 5px;\n padding: 10px;\n border: 1px solid var(--purple-500);\n color: var(--grey-900);\n}\n\n.chat-message-alert a {\n color: var(--purple-700);\n text-decoration: underline;\n}\n"],"sourceRoot":""}]);
|
|
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":""}]);
|
|
11003
12240
|
// Exports
|
|
11004
12241
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
11005
12242
|
|
|
@@ -12107,55 +13344,6 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
12107
13344
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
12108
13345
|
|
|
12109
13346
|
|
|
12110
|
-
/***/ }),
|
|
12111
|
-
|
|
12112
|
-
/***/ "./node_modules/css-loader/dist/cjs.js!./style/GetCellOutputToolUI.css":
|
|
12113
|
-
/*!*****************************************************************************!*\
|
|
12114
|
-
!*** ./node_modules/css-loader/dist/cjs.js!./style/GetCellOutputToolUI.css ***!
|
|
12115
|
-
\*****************************************************************************/
|
|
12116
|
-
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
12117
|
-
|
|
12118
|
-
__webpack_require__.r(__webpack_exports__);
|
|
12119
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
12120
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
12121
|
-
/* harmony export */ });
|
|
12122
|
-
/* 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");
|
|
12123
|
-
/* 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__);
|
|
12124
|
-
/* 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");
|
|
12125
|
-
/* 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__);
|
|
12126
|
-
// Imports
|
|
12127
|
-
|
|
12128
|
-
|
|
12129
|
-
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()));
|
|
12130
|
-
// Module
|
|
12131
|
-
___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
12132
|
-
* Copyright (c) Saga Inc.
|
|
12133
|
-
* Distributed under the terms of the GNU Affero General Public License v3.0 License.
|
|
12134
|
-
*/
|
|
12135
|
-
|
|
12136
|
-
.get-cell-output-container {
|
|
12137
|
-
display: flex;
|
|
12138
|
-
flex-direction: row;
|
|
12139
|
-
align-items: center;
|
|
12140
|
-
justify-content: start;
|
|
12141
|
-
background-color: transparent;
|
|
12142
|
-
padding: 10px;
|
|
12143
|
-
border-radius: 5px;
|
|
12144
|
-
border: 1px solid var(--jp-cell-editor-border-color);
|
|
12145
|
-
margin: 10px 0;
|
|
12146
|
-
color: var(--jp-ui-font-color2);
|
|
12147
|
-
}
|
|
12148
|
-
|
|
12149
|
-
.get-cell-output-content {
|
|
12150
|
-
display: flex;
|
|
12151
|
-
align-items: center;
|
|
12152
|
-
gap: 10px;
|
|
12153
|
-
margin-left: 5px;
|
|
12154
|
-
} `, "",{"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":""}]);
|
|
12155
|
-
// Exports
|
|
12156
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
12157
|
-
|
|
12158
|
-
|
|
12159
13347
|
/***/ }),
|
|
12160
13348
|
|
|
12161
13349
|
/***/ "./node_modules/css-loader/dist/cjs.js!./style/IconButton.css":
|
|
@@ -13012,15 +14200,19 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
13012
14200
|
white-space: pre !important;
|
|
13013
14201
|
}
|
|
13014
14202
|
|
|
13015
|
-
.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 {
|
|
13016
14209
|
/*
|
|
13017
14210
|
Remove the default Jupyter ending margin
|
|
13018
14211
|
so that the rendered code is flush with the bottom
|
|
13019
14212
|
of the CodeMessagePart
|
|
13020
14213
|
*/
|
|
13021
14214
|
margin-bottom: 0px;
|
|
13022
|
-
}
|
|
13023
|
-
`, "",{"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":""}]);
|
|
13024
14216
|
// Exports
|
|
13025
14217
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
13026
14218
|
|
|
@@ -13685,472 +14877,63 @@ ___CSS_LOADER_EXPORT___.push([module.id, `/*
|
|
|
13685
14877
|
color: var(--green-900) !important;
|
|
13686
14878
|
}
|
|
13687
14879
|
|
|
13688
|
-
.button-green:hover {
|
|
13689
|
-
background-color: var(--green-500);
|
|
13690
|
-
}
|
|
13691
|
-
|
|
13692
|
-
.button-red {
|
|
13693
|
-
background-color: var(--red-400);
|
|
13694
|
-
color: var(--red-900) !important;
|
|
13695
|
-
}
|
|
13696
|
-
|
|
13697
|
-
.button-red:hover {
|
|
13698
|
-
background-color: var(--red-500);
|
|
13699
|
-
}
|
|
13700
|
-
|
|
13701
|
-
.button-gray {
|
|
13702
|
-
background-color: var(--jp-layout-color2);
|
|
13703
|
-
color: var(--jp-content-font-color1) !important;
|
|
13704
|
-
}
|
|
13705
|
-
|
|
13706
|
-
.button-gray:hover {
|
|
13707
|
-
background-color: var(--jp-layout-color3);
|
|
13708
|
-
}
|
|
13709
|
-
|
|
13710
|
-
.button-purple {
|
|
13711
|
-
background-color: var(--purple-300);
|
|
13712
|
-
color: var(--purple-700) !important;
|
|
13713
|
-
}
|
|
13714
|
-
|
|
13715
|
-
.button-purple:hover {
|
|
13716
|
-
background-color: var(--purple-400);
|
|
13717
|
-
}
|
|
13718
|
-
|
|
13719
|
-
.button-width-block {
|
|
13720
|
-
width: 100%;
|
|
13721
|
-
}
|
|
13722
|
-
|
|
13723
|
-
.button-width-fit-contents {
|
|
13724
|
-
width: fit-content;
|
|
13725
|
-
}
|
|
13726
|
-
|
|
13727
|
-
.button-small {
|
|
13728
|
-
height: 20px;
|
|
13729
|
-
font-size: 12px;
|
|
13730
|
-
padding: 2px 5px;
|
|
13731
|
-
}
|
|
13732
|
-
`, "",{"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":""}]);
|
|
13733
|
-
// Exports
|
|
13734
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
13735
|
-
|
|
13736
|
-
|
|
13737
|
-
/***/ }),
|
|
13738
|
-
|
|
13739
|
-
/***/ "./node_modules/css-loader/dist/runtime/api.js":
|
|
13740
|
-
/*!*****************************************************!*\
|
|
13741
|
-
!*** ./node_modules/css-loader/dist/runtime/api.js ***!
|
|
13742
|
-
\*****************************************************/
|
|
13743
|
-
/***/ ((module) => {
|
|
13744
|
-
|
|
13745
|
-
|
|
13746
|
-
|
|
13747
|
-
/*
|
|
13748
|
-
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
13749
|
-
Author Tobias Koppers @sokra
|
|
13750
|
-
*/
|
|
13751
|
-
module.exports = function (cssWithMappingToString) {
|
|
13752
|
-
var list = [];
|
|
13753
|
-
|
|
13754
|
-
// return the list of modules as css string
|
|
13755
|
-
list.toString = function toString() {
|
|
13756
|
-
return this.map(function (item) {
|
|
13757
|
-
var content = "";
|
|
13758
|
-
var needLayer = typeof item[5] !== "undefined";
|
|
13759
|
-
if (item[4]) {
|
|
13760
|
-
content += "@supports (".concat(item[4], ") {");
|
|
13761
|
-
}
|
|
13762
|
-
if (item[2]) {
|
|
13763
|
-
content += "@media ".concat(item[2], " {");
|
|
13764
|
-
}
|
|
13765
|
-
if (needLayer) {
|
|
13766
|
-
content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
|
|
13767
|
-
}
|
|
13768
|
-
content += cssWithMappingToString(item);
|
|
13769
|
-
if (needLayer) {
|
|
13770
|
-
content += "}";
|
|
13771
|
-
}
|
|
13772
|
-
if (item[2]) {
|
|
13773
|
-
content += "}";
|
|
13774
|
-
}
|
|
13775
|
-
if (item[4]) {
|
|
13776
|
-
content += "}";
|
|
13777
|
-
}
|
|
13778
|
-
return content;
|
|
13779
|
-
}).join("");
|
|
13780
|
-
};
|
|
13781
|
-
|
|
13782
|
-
// import a list of modules into the list
|
|
13783
|
-
list.i = function i(modules, media, dedupe, supports, layer) {
|
|
13784
|
-
if (typeof modules === "string") {
|
|
13785
|
-
modules = [[null, modules, undefined]];
|
|
13786
|
-
}
|
|
13787
|
-
var alreadyImportedModules = {};
|
|
13788
|
-
if (dedupe) {
|
|
13789
|
-
for (var k = 0; k < this.length; k++) {
|
|
13790
|
-
var id = this[k][0];
|
|
13791
|
-
if (id != null) {
|
|
13792
|
-
alreadyImportedModules[id] = true;
|
|
13793
|
-
}
|
|
13794
|
-
}
|
|
13795
|
-
}
|
|
13796
|
-
for (var _k = 0; _k < modules.length; _k++) {
|
|
13797
|
-
var item = [].concat(modules[_k]);
|
|
13798
|
-
if (dedupe && alreadyImportedModules[item[0]]) {
|
|
13799
|
-
continue;
|
|
13800
|
-
}
|
|
13801
|
-
if (typeof layer !== "undefined") {
|
|
13802
|
-
if (typeof item[5] === "undefined") {
|
|
13803
|
-
item[5] = layer;
|
|
13804
|
-
} else {
|
|
13805
|
-
item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
|
|
13806
|
-
item[5] = layer;
|
|
13807
|
-
}
|
|
13808
|
-
}
|
|
13809
|
-
if (media) {
|
|
13810
|
-
if (!item[2]) {
|
|
13811
|
-
item[2] = media;
|
|
13812
|
-
} else {
|
|
13813
|
-
item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
|
|
13814
|
-
item[2] = media;
|
|
13815
|
-
}
|
|
13816
|
-
}
|
|
13817
|
-
if (supports) {
|
|
13818
|
-
if (!item[4]) {
|
|
13819
|
-
item[4] = "".concat(supports);
|
|
13820
|
-
} else {
|
|
13821
|
-
item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
|
|
13822
|
-
item[4] = supports;
|
|
13823
|
-
}
|
|
13824
|
-
}
|
|
13825
|
-
list.push(item);
|
|
13826
|
-
}
|
|
13827
|
-
};
|
|
13828
|
-
return list;
|
|
13829
|
-
};
|
|
13830
|
-
|
|
13831
|
-
/***/ }),
|
|
13832
|
-
|
|
13833
|
-
/***/ "./node_modules/css-loader/dist/runtime/sourceMaps.js":
|
|
13834
|
-
/*!************************************************************!*\
|
|
13835
|
-
!*** ./node_modules/css-loader/dist/runtime/sourceMaps.js ***!
|
|
13836
|
-
\************************************************************/
|
|
13837
|
-
/***/ ((module) => {
|
|
13838
|
-
|
|
13839
|
-
|
|
13840
|
-
|
|
13841
|
-
module.exports = function (item) {
|
|
13842
|
-
var content = item[1];
|
|
13843
|
-
var cssMapping = item[3];
|
|
13844
|
-
if (!cssMapping) {
|
|
13845
|
-
return content;
|
|
13846
|
-
}
|
|
13847
|
-
if (typeof btoa === "function") {
|
|
13848
|
-
var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));
|
|
13849
|
-
var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
|
|
13850
|
-
var sourceMapping = "/*# ".concat(data, " */");
|
|
13851
|
-
return [content].concat([sourceMapping]).join("\n");
|
|
13852
|
-
}
|
|
13853
|
-
return [content].join("\n");
|
|
13854
|
-
};
|
|
13855
|
-
|
|
13856
|
-
/***/ }),
|
|
13857
|
-
|
|
13858
|
-
/***/ "./node_modules/react-dom/client.js":
|
|
13859
|
-
/*!******************************************!*\
|
|
13860
|
-
!*** ./node_modules/react-dom/client.js ***!
|
|
13861
|
-
\******************************************/
|
|
13862
|
-
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
13863
|
-
|
|
13864
|
-
|
|
13865
|
-
|
|
13866
|
-
var m = __webpack_require__(/*! react-dom */ "webpack/sharing/consume/default/react-dom");
|
|
13867
|
-
if (false) {} else {
|
|
13868
|
-
var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
13869
|
-
exports.createRoot = function(c, o) {
|
|
13870
|
-
i.usingClientEntryPoint = true;
|
|
13871
|
-
try {
|
|
13872
|
-
return m.createRoot(c, o);
|
|
13873
|
-
} finally {
|
|
13874
|
-
i.usingClientEntryPoint = false;
|
|
13875
|
-
}
|
|
13876
|
-
};
|
|
13877
|
-
exports.hydrateRoot = function(c, h, o) {
|
|
13878
|
-
i.usingClientEntryPoint = true;
|
|
13879
|
-
try {
|
|
13880
|
-
return m.hydrateRoot(c, h, o);
|
|
13881
|
-
} finally {
|
|
13882
|
-
i.usingClientEntryPoint = false;
|
|
13883
|
-
}
|
|
13884
|
-
};
|
|
13885
|
-
}
|
|
13886
|
-
|
|
13887
|
-
|
|
13888
|
-
/***/ }),
|
|
13889
|
-
|
|
13890
|
-
/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
|
|
13891
|
-
/*!****************************************************************************!*\
|
|
13892
|
-
!*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
|
|
13893
|
-
\****************************************************************************/
|
|
13894
|
-
/***/ ((module) => {
|
|
13895
|
-
|
|
13896
|
-
|
|
13897
|
-
|
|
13898
|
-
var stylesInDOM = [];
|
|
13899
|
-
function getIndexByIdentifier(identifier) {
|
|
13900
|
-
var result = -1;
|
|
13901
|
-
for (var i = 0; i < stylesInDOM.length; i++) {
|
|
13902
|
-
if (stylesInDOM[i].identifier === identifier) {
|
|
13903
|
-
result = i;
|
|
13904
|
-
break;
|
|
13905
|
-
}
|
|
13906
|
-
}
|
|
13907
|
-
return result;
|
|
13908
|
-
}
|
|
13909
|
-
function modulesToDom(list, options) {
|
|
13910
|
-
var idCountMap = {};
|
|
13911
|
-
var identifiers = [];
|
|
13912
|
-
for (var i = 0; i < list.length; i++) {
|
|
13913
|
-
var item = list[i];
|
|
13914
|
-
var id = options.base ? item[0] + options.base : item[0];
|
|
13915
|
-
var count = idCountMap[id] || 0;
|
|
13916
|
-
var identifier = "".concat(id, " ").concat(count);
|
|
13917
|
-
idCountMap[id] = count + 1;
|
|
13918
|
-
var indexByIdentifier = getIndexByIdentifier(identifier);
|
|
13919
|
-
var obj = {
|
|
13920
|
-
css: item[1],
|
|
13921
|
-
media: item[2],
|
|
13922
|
-
sourceMap: item[3],
|
|
13923
|
-
supports: item[4],
|
|
13924
|
-
layer: item[5]
|
|
13925
|
-
};
|
|
13926
|
-
if (indexByIdentifier !== -1) {
|
|
13927
|
-
stylesInDOM[indexByIdentifier].references++;
|
|
13928
|
-
stylesInDOM[indexByIdentifier].updater(obj);
|
|
13929
|
-
} else {
|
|
13930
|
-
var updater = addElementStyle(obj, options);
|
|
13931
|
-
options.byIndex = i;
|
|
13932
|
-
stylesInDOM.splice(i, 0, {
|
|
13933
|
-
identifier: identifier,
|
|
13934
|
-
updater: updater,
|
|
13935
|
-
references: 1
|
|
13936
|
-
});
|
|
13937
|
-
}
|
|
13938
|
-
identifiers.push(identifier);
|
|
13939
|
-
}
|
|
13940
|
-
return identifiers;
|
|
13941
|
-
}
|
|
13942
|
-
function addElementStyle(obj, options) {
|
|
13943
|
-
var api = options.domAPI(options);
|
|
13944
|
-
api.update(obj);
|
|
13945
|
-
var updater = function updater(newObj) {
|
|
13946
|
-
if (newObj) {
|
|
13947
|
-
if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
|
|
13948
|
-
return;
|
|
13949
|
-
}
|
|
13950
|
-
api.update(obj = newObj);
|
|
13951
|
-
} else {
|
|
13952
|
-
api.remove();
|
|
13953
|
-
}
|
|
13954
|
-
};
|
|
13955
|
-
return updater;
|
|
13956
|
-
}
|
|
13957
|
-
module.exports = function (list, options) {
|
|
13958
|
-
options = options || {};
|
|
13959
|
-
list = list || [];
|
|
13960
|
-
var lastIdentifiers = modulesToDom(list, options);
|
|
13961
|
-
return function update(newList) {
|
|
13962
|
-
newList = newList || [];
|
|
13963
|
-
for (var i = 0; i < lastIdentifiers.length; i++) {
|
|
13964
|
-
var identifier = lastIdentifiers[i];
|
|
13965
|
-
var index = getIndexByIdentifier(identifier);
|
|
13966
|
-
stylesInDOM[index].references--;
|
|
13967
|
-
}
|
|
13968
|
-
var newLastIdentifiers = modulesToDom(newList, options);
|
|
13969
|
-
for (var _i = 0; _i < lastIdentifiers.length; _i++) {
|
|
13970
|
-
var _identifier = lastIdentifiers[_i];
|
|
13971
|
-
var _index = getIndexByIdentifier(_identifier);
|
|
13972
|
-
if (stylesInDOM[_index].references === 0) {
|
|
13973
|
-
stylesInDOM[_index].updater();
|
|
13974
|
-
stylesInDOM.splice(_index, 1);
|
|
13975
|
-
}
|
|
13976
|
-
}
|
|
13977
|
-
lastIdentifiers = newLastIdentifiers;
|
|
13978
|
-
};
|
|
13979
|
-
};
|
|
13980
|
-
|
|
13981
|
-
/***/ }),
|
|
13982
|
-
|
|
13983
|
-
/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js":
|
|
13984
|
-
/*!********************************************************************!*\
|
|
13985
|
-
!*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***!
|
|
13986
|
-
\********************************************************************/
|
|
13987
|
-
/***/ ((module) => {
|
|
13988
|
-
|
|
13989
|
-
|
|
13990
|
-
|
|
13991
|
-
var memo = {};
|
|
13992
|
-
|
|
13993
|
-
/* istanbul ignore next */
|
|
13994
|
-
function getTarget(target) {
|
|
13995
|
-
if (typeof memo[target] === "undefined") {
|
|
13996
|
-
var styleTarget = document.querySelector(target);
|
|
13997
|
-
|
|
13998
|
-
// Special case to return head of iframe instead of iframe itself
|
|
13999
|
-
if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
|
|
14000
|
-
try {
|
|
14001
|
-
// This will throw an exception if access to iframe is blocked
|
|
14002
|
-
// due to cross-origin restrictions
|
|
14003
|
-
styleTarget = styleTarget.contentDocument.head;
|
|
14004
|
-
} catch (e) {
|
|
14005
|
-
// istanbul ignore next
|
|
14006
|
-
styleTarget = null;
|
|
14007
|
-
}
|
|
14008
|
-
}
|
|
14009
|
-
memo[target] = styleTarget;
|
|
14010
|
-
}
|
|
14011
|
-
return memo[target];
|
|
14012
|
-
}
|
|
14013
|
-
|
|
14014
|
-
/* istanbul ignore next */
|
|
14015
|
-
function insertBySelector(insert, style) {
|
|
14016
|
-
var target = getTarget(insert);
|
|
14017
|
-
if (!target) {
|
|
14018
|
-
throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
|
|
14019
|
-
}
|
|
14020
|
-
target.appendChild(style);
|
|
14021
|
-
}
|
|
14022
|
-
module.exports = insertBySelector;
|
|
14023
|
-
|
|
14024
|
-
/***/ }),
|
|
14025
|
-
|
|
14026
|
-
/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js":
|
|
14027
|
-
/*!**********************************************************************!*\
|
|
14028
|
-
!*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
|
|
14029
|
-
\**********************************************************************/
|
|
14030
|
-
/***/ ((module) => {
|
|
14031
|
-
|
|
14032
|
-
|
|
14033
|
-
|
|
14034
|
-
/* istanbul ignore next */
|
|
14035
|
-
function insertStyleElement(options) {
|
|
14036
|
-
var element = document.createElement("style");
|
|
14037
|
-
options.setAttributes(element, options.attributes);
|
|
14038
|
-
options.insert(element, options.options);
|
|
14039
|
-
return element;
|
|
14040
|
-
}
|
|
14041
|
-
module.exports = insertStyleElement;
|
|
14042
|
-
|
|
14043
|
-
/***/ }),
|
|
14044
|
-
|
|
14045
|
-
/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":
|
|
14046
|
-
/*!**********************************************************************************!*\
|
|
14047
|
-
!*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
|
|
14048
|
-
\**********************************************************************************/
|
|
14049
|
-
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
14050
|
-
|
|
14051
|
-
|
|
14052
|
-
|
|
14053
|
-
/* istanbul ignore next */
|
|
14054
|
-
function setAttributesWithoutAttributes(styleElement) {
|
|
14055
|
-
var nonce = true ? __webpack_require__.nc : 0;
|
|
14056
|
-
if (nonce) {
|
|
14057
|
-
styleElement.setAttribute("nonce", nonce);
|
|
14058
|
-
}
|
|
14059
|
-
}
|
|
14060
|
-
module.exports = setAttributesWithoutAttributes;
|
|
14061
|
-
|
|
14062
|
-
/***/ }),
|
|
14063
|
-
|
|
14064
|
-
/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js":
|
|
14065
|
-
/*!***************************************************************!*\
|
|
14066
|
-
!*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
|
|
14067
|
-
\***************************************************************/
|
|
14068
|
-
/***/ ((module) => {
|
|
14880
|
+
.button-green:hover {
|
|
14881
|
+
background-color: var(--green-500);
|
|
14882
|
+
}
|
|
14069
14883
|
|
|
14884
|
+
.button-red {
|
|
14885
|
+
background-color: var(--red-400);
|
|
14886
|
+
color: var(--red-900) !important;
|
|
14887
|
+
}
|
|
14070
14888
|
|
|
14889
|
+
.button-red:hover {
|
|
14890
|
+
background-color: var(--red-500);
|
|
14891
|
+
}
|
|
14071
14892
|
|
|
14072
|
-
|
|
14073
|
-
|
|
14074
|
-
var
|
|
14075
|
-
|
|
14076
|
-
css += "@supports (".concat(obj.supports, ") {");
|
|
14077
|
-
}
|
|
14078
|
-
if (obj.media) {
|
|
14079
|
-
css += "@media ".concat(obj.media, " {");
|
|
14080
|
-
}
|
|
14081
|
-
var needLayer = typeof obj.layer !== "undefined";
|
|
14082
|
-
if (needLayer) {
|
|
14083
|
-
css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
|
|
14084
|
-
}
|
|
14085
|
-
css += obj.css;
|
|
14086
|
-
if (needLayer) {
|
|
14087
|
-
css += "}";
|
|
14088
|
-
}
|
|
14089
|
-
if (obj.media) {
|
|
14090
|
-
css += "}";
|
|
14091
|
-
}
|
|
14092
|
-
if (obj.supports) {
|
|
14093
|
-
css += "}";
|
|
14094
|
-
}
|
|
14095
|
-
var sourceMap = obj.sourceMap;
|
|
14096
|
-
if (sourceMap && typeof btoa !== "undefined") {
|
|
14097
|
-
css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
|
|
14098
|
-
}
|
|
14893
|
+
.button-gray {
|
|
14894
|
+
background-color: var(--jp-layout-color2);
|
|
14895
|
+
color: var(--jp-content-font-color1) !important;
|
|
14896
|
+
}
|
|
14099
14897
|
|
|
14100
|
-
|
|
14101
|
-
|
|
14102
|
-
options.styleTagTransform(css, styleElement, options.options);
|
|
14898
|
+
.button-gray:hover {
|
|
14899
|
+
background-color: var(--jp-layout-color3);
|
|
14103
14900
|
}
|
|
14104
|
-
|
|
14105
|
-
|
|
14106
|
-
|
|
14107
|
-
|
|
14108
|
-
}
|
|
14109
|
-
styleElement.parentNode.removeChild(styleElement);
|
|
14901
|
+
|
|
14902
|
+
.button-purple {
|
|
14903
|
+
background-color: var(--purple-300);
|
|
14904
|
+
color: var(--purple-700) !important;
|
|
14110
14905
|
}
|
|
14111
14906
|
|
|
14112
|
-
|
|
14113
|
-
|
|
14114
|
-
if (typeof document === "undefined") {
|
|
14115
|
-
return {
|
|
14116
|
-
update: function update() {},
|
|
14117
|
-
remove: function remove() {}
|
|
14118
|
-
};
|
|
14119
|
-
}
|
|
14120
|
-
var styleElement = options.insertStyleElement(options);
|
|
14121
|
-
return {
|
|
14122
|
-
update: function update(obj) {
|
|
14123
|
-
apply(styleElement, options, obj);
|
|
14124
|
-
},
|
|
14125
|
-
remove: function remove() {
|
|
14126
|
-
removeStyleElement(styleElement);
|
|
14127
|
-
}
|
|
14128
|
-
};
|
|
14907
|
+
.button-purple:hover {
|
|
14908
|
+
background-color: var(--purple-400);
|
|
14129
14909
|
}
|
|
14130
|
-
module.exports = domAPI;
|
|
14131
14910
|
|
|
14132
|
-
|
|
14911
|
+
.button-dark-purple {
|
|
14912
|
+
background-color: var(--purple-500);
|
|
14913
|
+
color: var(--white) !important;
|
|
14914
|
+
}
|
|
14133
14915
|
|
|
14134
|
-
|
|
14135
|
-
|
|
14136
|
-
|
|
14137
|
-
\*********************************************************************/
|
|
14138
|
-
/***/ ((module) => {
|
|
14916
|
+
.button-dark-purple:hover {
|
|
14917
|
+
background-color: var(--purple-600);
|
|
14918
|
+
}
|
|
14139
14919
|
|
|
14920
|
+
.button-width-block {
|
|
14921
|
+
width: 100%;
|
|
14922
|
+
}
|
|
14140
14923
|
|
|
14924
|
+
.button-width-fit-contents {
|
|
14925
|
+
width: fit-content;
|
|
14926
|
+
}
|
|
14141
14927
|
|
|
14142
|
-
|
|
14143
|
-
|
|
14144
|
-
|
|
14145
|
-
|
|
14146
|
-
} else {
|
|
14147
|
-
while (styleElement.firstChild) {
|
|
14148
|
-
styleElement.removeChild(styleElement.firstChild);
|
|
14149
|
-
}
|
|
14150
|
-
styleElement.appendChild(document.createTextNode(css));
|
|
14151
|
-
}
|
|
14928
|
+
.button-small {
|
|
14929
|
+
height: 20px;
|
|
14930
|
+
font-size: 12px;
|
|
14931
|
+
padding: 2px 5px;
|
|
14152
14932
|
}
|
|
14153
|
-
|
|
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
|
+
|
|
14154
14937
|
|
|
14155
14938
|
/***/ }),
|
|
14156
14939
|
|
|
@@ -14266,6 +15049,114 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
|
|
|
14266
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);
|
|
14267
15050
|
|
|
14268
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
|
+
|
|
14269
15160
|
/***/ }),
|
|
14270
15161
|
|
|
14271
15162
|
/***/ "./style/AssumptionTool.css":
|
|
@@ -14320,6 +15211,60 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
|
|
|
14320
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);
|
|
14321
15212
|
|
|
14322
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
|
+
|
|
14323
15268
|
/***/ }),
|
|
14324
15269
|
|
|
14325
15270
|
/***/ "./style/CTACarousel.css":
|
|
@@ -14968,60 +15913,6 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
|
|
|
14968
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);
|
|
14969
15914
|
|
|
14970
15915
|
|
|
14971
|
-
/***/ }),
|
|
14972
|
-
|
|
14973
|
-
/***/ "./style/GetCellOutputToolUI.css":
|
|
14974
|
-
/*!***************************************!*\
|
|
14975
|
-
!*** ./style/GetCellOutputToolUI.css ***!
|
|
14976
|
-
\***************************************/
|
|
14977
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
14978
|
-
|
|
14979
|
-
__webpack_require__.r(__webpack_exports__);
|
|
14980
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
14981
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
14982
|
-
/* harmony export */ });
|
|
14983
|
-
/* 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");
|
|
14984
|
-
/* 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__);
|
|
14985
|
-
/* 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");
|
|
14986
|
-
/* 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__);
|
|
14987
|
-
/* 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");
|
|
14988
|
-
/* 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__);
|
|
14989
|
-
/* 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");
|
|
14990
|
-
/* 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__);
|
|
14991
|
-
/* 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");
|
|
14992
|
-
/* 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__);
|
|
14993
|
-
/* 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");
|
|
14994
|
-
/* 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__);
|
|
14995
|
-
/* 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");
|
|
14996
|
-
|
|
14997
|
-
|
|
14998
|
-
|
|
14999
|
-
|
|
15000
|
-
|
|
15001
|
-
|
|
15002
|
-
|
|
15003
|
-
|
|
15004
|
-
|
|
15005
|
-
|
|
15006
|
-
|
|
15007
|
-
var options = {};
|
|
15008
|
-
|
|
15009
|
-
options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
|
|
15010
|
-
options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
|
|
15011
|
-
|
|
15012
|
-
options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
|
|
15013
|
-
|
|
15014
|
-
options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
|
|
15015
|
-
options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
|
|
15016
|
-
|
|
15017
|
-
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);
|
|
15018
|
-
|
|
15019
|
-
|
|
15020
|
-
|
|
15021
|
-
|
|
15022
|
-
/* 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);
|
|
15023
|
-
|
|
15024
|
-
|
|
15025
15916
|
/***/ }),
|
|
15026
15917
|
|
|
15027
15918
|
/***/ "./style/IconButton.css":
|
|
@@ -15781,4 +16672,4 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
|
|
|
15781
16672
|
/***/ })
|
|
15782
16673
|
|
|
15783
16674
|
}]);
|
|
15784
|
-
//# sourceMappingURL=lib_index_js.
|
|
16675
|
+
//# sourceMappingURL=lib_index_js.01a962c68c8fae380f30.js.map
|