signalpilot-ai-internal 0.7.3__py3-none-any.whl → 0.7.4__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 signalpilot-ai-internal might be problematic. Click here for more details.
- signalpilot_ai_internal/_version.py +1 -1
- signalpilot_ai_internal/html_export_template/index.html.j2 +74 -2
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/package.json +2 -2
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/schemas/signalpilot-ai-internal/package.json.orig +1 -1
- signalpilot_ai_internal-0.7.4.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/490.df46de3204baf3f6f2cb.js +1 -0
- signalpilot_ai_internal-0.7.4.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/839.8035d1ec9fe73db8a19a.js +1 -0
- signalpilot_ai_internal-0.7.3.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/remoteEntry.3f1658d62d8de052206a.js → signalpilot_ai_internal-0.7.4.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/remoteEntry.765138384158f5fc3d8a.js +1 -1
- {signalpilot_ai_internal-0.7.3.dist-info → signalpilot_ai_internal-0.7.4.dist-info}/METADATA +1 -1
- {signalpilot_ai_internal-0.7.3.dist-info → signalpilot_ai_internal-0.7.4.dist-info}/RECORD +36 -36
- signalpilot_ai_internal-0.7.3.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/490.64082742bb093355f325.js +0 -1
- signalpilot_ai_internal-0.7.3.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/839.c400f449d501117eee19.js +0 -1
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/etc/jupyter/jupyter_server_config.d/signalpilot_ai.json +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/install.json +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/schemas/signalpilot-ai-internal/plugin.json +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/122.e2dadf63dc64d7b5f1ee.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/220.328403b5545f268b95c6.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/262.726e1da31a50868cb297.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/353.72484b768a04f89bd3dd.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/364.dbec4c2dc12e7b050dcc.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/384.fa432bdb7fb6b1c95ad6.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/439.37e271d7a80336daabe2.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/476.9b4f05a99f5003f82094.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/481.73c7a9290b7d35a8b9c1.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/512.b58fc0093d080b8ee61c.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/553.b4042a795c91d9ff71ef.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/553.b4042a795c91d9ff71ef.js.LICENSE.txt +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/635.9720593ee20b768da3ca.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/713.8e6edc9a965bdd578ca7.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/741.dc49867fafb03ea2ba4d.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/742.91e7b516c8699eea3373.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/785.3aa564fc148b37d1d719.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/888.34054db17bcf6e87ec95.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/898.4e9edb7f224152c1dcb4.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/898.4e9edb7f224152c1dcb4.js.LICENSE.txt +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/style.js +0 -0
- {signalpilot_ai_internal-0.7.3.data → signalpilot_ai_internal-0.7.4.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/third-party-licenses.json +0 -0
- {signalpilot_ai_internal-0.7.3.dist-info → signalpilot_ai_internal-0.7.4.dist-info}/WHEEL +0 -0
- {signalpilot_ai_internal-0.7.3.dist-info → signalpilot_ai_internal-0.7.4.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunksignalpilot_ai_internal=self.webpackChunksignalpilot_ai_internal||[]).push([[490],{4417:n=>{n.exports=function(n,o){return o||(o={}),n?(n=String(n.__esModule?n.default:n),/^['"].*['"]$/.test(n)&&(n=n.slice(1,-1)),o.hash&&(n+=o.hash),/["'() \t\n]|(%20)/.test(n)||o.needQuotes?'"'.concat(n.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):n):n}},5248:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"@import url(https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap);"]),i.push([n.id,"/* Import Geist font from Google Fonts */\n\n/* Override JupyterLab font variables to use Geist */\n:root {\n --jp-ui-font-family:\n 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial,\n sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' !important;\n --jp-content-font-family: 'Geist', 'Source Sans Pro', sans-serif !important;\n}\n\n/* Ensure Geist is applied to the plugin elements */\n.sage-ai-chatbox,\n.sage-ai-chat-input,\n.sage-ai-rich-chat-input,\n.sage-ai-rich-chat-input-wrapper,\n.sage-ai-message,\n.sage-ai-markdown-content,\n.sage-ai-tool-calls,\n.sage-ai-step-floating-box,\n.sage-ai-banner-header {\n font-family:\n 'Geist',\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Helvetica,\n Arial,\n sans-serif;\n}\n",""]);const s=i},8789:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* Modal dialog styling */\n.sage-ai-modal {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0,0,0,0.5);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n}\n\n.sage-ai-dialog {\n background-color: var(--jp-layout-color1);\n padding: 20px;\n border-radius: 5px;\n width: 50%;\n max-width: 500px;\n box-sizing: border-box;\n}\n\n/* Override width for snippet form modal */\n.sage-ai-dialog.sage-ai-snippet-form-modal {\n width: 90%;\n max-width: 600px;\n}\n\n/* Custom styling for snippet modal in dark mode */\n[data-jp-theme-name='JupyterLab Dark'] .sage-ai-custom-snippet-modal .modal-content {\n border-radius: 12px;\n border: 1px solid var(--Border-Border, #383838);\n background: var(--BG-main, #111);\n box-shadow: 0 8px 17.1px 0 rgba(208, 208, 208, 0.09);\n}\n\n/* Custom styling for form inputs in snippet modal - dark mode only */\n[data-jp-theme-name='JupyterLab Dark'] .sage-ai-custom-snippet-modal .form-control {\n border-radius: 8px;\n border: 0.8px solid var(--Border-Border, #383838);\n background: var(--Prompt-box-bg-default, #141414);\n}\n\n.sage-ai-dialog-title {\n margin-top: 0;\n}\n\n.sage-ai-dialog-label {\n display: block;\n margin: 10px 0;\n}\n\n/* Checkbox styling consistent with the autorun checkbox */\n.sage-ai-dialog-checkbox-container {\n display: flex;\n align-items: center;\n margin: 15px 0;\n}\n\n.sage-ai-dialog-checkbox {\n margin-right: 8px;\n cursor: pointer;\n}\n\n.sage-ai-dialog-checkbox-label {\n font-size: var(--jp-ui-font-size1);\n color: var(--jp-ui-font-color1);\n cursor: pointer;\n user-select: none;\n}\n\n.sage-ai-dialog-textarea {\n width: 100%;\n height: 100px;\n margin-bottom: 15px;\n padding: 8px;\n box-sizing: border-box;\n}\n\n.sage-ai-dialog-button-container {\n display: flex;\n justify-content: flex-end;\n}\n\n.sage-ai-dialog-submit-button {\n padding: 8px 16px;\n background-color: var(--jp-brand-color1);\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n}\n\n.sage-ai-dialog-input {\n width: 100%;\n padding: 8px;\n margin-bottom: 15px;\n box-sizing: border-box;\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n font-family: var(--jp-ui-font-family);\n font-size: var(--jp-ui-font-size1);\n}\n\n.sage-ai-dialog-input:focus {\n outline: none;\n border-color: var(--jp-brand-color1);\n box-shadow: 0 0 0 2px var(--jp-brand-color1-alpha);\n}\n\n.sage-ai-dialog-error-button {\n padding: 8px 16px;\n background-color: var(--jp-error-color1);\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n}\n\n/* Revert-and-send button styling in modal context */\n.sage-ai-revert-send-button-modal {\n padding: 8px 16px;\n background-color: var(--jp-warn-color1);\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n margin-right: 10px;\n}\n\n.sage-ai-revert-send-button-modal:hover {\n background-color: var(--jp-warn-color0);\n}\n\n.sage-ai-revert-send-button-modal:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n/* Code confirmation styling */\n.sage-ai-code-confirmation {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px;\n margin: 15px 0;\n border: 2px solid var(--jp-border-color1);\n border-radius: 8px;\n background-color: var(--jp-layout-color2);\n}\n\n.sage-ai-confirmation-button-container {\n display: flex;\n gap: 4px;\n}\n\n.sage-ai-reject-button {\n padding: 8px 16px;\n background-color: var(--jp-warn-color1);\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n}\n\n.sage-ai-confirm-button {\n padding: 8px 16px;\n background-color: var(--jp-brand-color1);\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n}\n\n/* Post-cancellation dialog styling */\n.sage-ai-post-cancel-dialog {\n padding: 15px;\n margin: 15px 0;\n border: 1px solid var(--jp-border-color1);\n border-radius: 4px;\n background-color: var(--jp-layout-color1);\n text-align: center;\n}\n\n.sage-ai-post-cancel-heading {\n margin: 0 0 15px 0;\n color: var(--jp-ui-font-color1);\n font-weight: bold;\n}\n\n/* Thread selector dropdown styling - additional styles */\n.sage-ai-thread-dropdown-container {\n position: relative;\n display: inline-block;\n}\n\n.sage-ai-thread-dropdown-header {\n border-bottom: 1px solid var(--jp-border-color1);\n padding: 8px 12px;\n font-weight: bold;\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-thread-dropdown-footer {\n border-top: 1px solid var(--jp-border-color1);\n padding: 8px 12px;\n text-align: center;\n}\n\n.sage-ai-thread-dropdown-empty {\n padding: 12px;\n font-style: italic;\n color: var(--jp-ui-font-color2);\n text-align: center;\n}\n\n/* Enhanced button styling for thread items */\n.sage-ai-thread-item-button {\n background: none;\n border: none;\n color: var(--jp-warn-color1);\n cursor: pointer;\n padding: 2px 4px;\n font-size: var(--jp-ui-font-size0);\n visibility: hidden;\n float: right;\n}\n\n.sage-ai-thread-item:hover .sage-ai-thread-item-button {\n visibility: visible;\n}\n\n.sage-ai-thread-item-button:hover {\n color: var(--jp-warn-color0);\n background-color: var(--jp-warn-color3);\n border-radius: 2px;\n}\n\n/* Context display styling */\n.sage-ai-context-display {\n margin: 15px 0;\n padding: 12px;\n border: 1px solid var(--jp-border-color1);\n border-radius: 4px;\n background-color: var(--jp-layout-color0);\n}\n\n.sage-ai-context-display-header {\n font-weight: bold;\n color: var(--jp-ui-font-color0);\n margin-bottom: 8px;\n font-size: var(--jp-ui-font-size1);\n}\n\n.sage-ai-context-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n border-bottom: 1px solid var(--jp-border-color2);\n}\n\n.sage-ai-context-item:last-child {\n border-bottom: none;\n}\n\n.sage-ai-context-item-icon {\n font-size: 14px;\n width: 20px;\n text-align: center;\n}\n\n.sage-ai-context-item-info {\n flex: 1;\n}\n\n.sage-ai-context-item-name {\n font-weight: 500;\n color: var(--jp-ui-font-color0);\n font-size: var(--jp-ui-font-size0);\n}\n\n.sage-ai-context-item-preview {\n color: var(--jp-ui-font-color2);\n font-size: var(--jp-ui-font-size0);\n font-style: italic;\n}\n\n.sage-ai-context-empty {\n color: var(--jp-ui-font-color2);\n font-style: italic;\n text-align: center;\n padding: 8px;\n}\n\n[data-jp-theme-name='JupyterLab Dark'] .form-control {\n border-radius: 8px;\nborder: 0.8px solid var(--Border-Border, #383838);\nbackground: var(--Prompt-box-bg-default, #141414);\ncolor: var(--Text-text-secondary, #949494) !important;\n\n/* Subtle/Medium */\nfont-family: Geist;\nfont-size: 13px;\nfont-style: normal;\nfont-weight: 500;\nline-height: 155%; /* 20.15px */\n}\n\n/* JWT Authentication Modal Styles */\n.sage-ai-jwt-auth-modal .modal-dialog {\n max-width: 520px;\n margin: 30px auto;\n}\n\n.sage-ai-jwt-auth-modal .modal-content {\n border: none;\n border-radius: 16px;\n background: var(--jp-layout-color0);\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);\n overflow: hidden;\n}\n\n[data-jp-theme-light='false'] .sage-ai-jwt-auth-modal .modal-content {\n background: linear-gradient(135deg, #1e1e1e 0%, #252525 100%);\n border: 1px solid #3a3a3a;\n box-shadow: 0 8px 40px rgba(0, 0, 0, 0.3);\n}\n\n[data-jp-theme-light='true'] .sage-ai-jwt-auth-modal .modal-content {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border: 1px solid #e1e5e9;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);\n}\n\n.sage-ai-jwt-auth-logo-container {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 32px 32px 16px 32px;\n background: transparent;\n}\n\n.sage-ai-jwt-auth-logo-container svg {\n width: 48px;\n height: auto;\n}\n\n.sage-ai-jwt-auth-header {\n border-bottom: none;\n padding: 32px 32px 0 32px;\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n}\n\n.sage-ai-jwt-auth-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 64px;\n height: 64px;\n border-radius: 16px;\n background: linear-gradient(135deg, #4a90e2 0%, #357abd 100%);\n color: white;\n margin-bottom: 16px;\n box-shadow: 0 4px 16px rgba(74, 144, 226, 0.3);\n}\n\n.sage-ai-jwt-auth-title {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n letter-spacing: -0.02em;\n}\n\n.sage-ai-jwt-auth-body {\n padding: 24px 32px 32px 32px;\n}\n\n.sage-ai-jwt-auth-content {\n text-align: center;\n margin-bottom: 32px;\n}\n\n.sage-ai-jwt-auth-subtitle {\n margin: 0 0 16px 0;\n font-size: 18px;\n font-weight: 500;\n color: var(--jp-ui-font-color0);\n letter-spacing: -0.01em;\n}\n\n.sage-ai-jwt-auth-message {\n margin: 0 0 24px 0;\n font-size: 14px;\n color: var(--jp-ui-font-color2);\n line-height: 1.6;\n max-width: 400px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.sage-ai-jwt-auth-features {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin: 24px 0;\n padding: 20px;\n border-radius: 12px;\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color2);\n}\n\n[data-jp-theme-light='false'] .sage-ai-jwt-auth-features {\n background: rgba(255, 255, 255, 0.02);\n border: 1px solid rgba(255, 255, 255, 0.08);\n}\n\n[data-jp-theme-light='true'] .sage-ai-jwt-auth-features {\n background: rgba(74, 144, 226, 0.02);\n border: 1px solid rgba(74, 144, 226, 0.08);\n}\n\n.sage-ai-jwt-auth-feature {\n display: flex;\n align-items: center;\n gap: 12px;\n font-size: 14px;\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-jwt-auth-feature-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 8px;\n background: linear-gradient(135deg, rgba(74, 144, 226, 0.1) 0%, rgba(53, 122, 189, 0.1) 100%);\n color: #4a90e2;\n flex-shrink: 0;\n}\n\n.sage-ai-jwt-auth-actions {\n display: flex;\n flex-direction: column;\n gap: 12px;\n align-items: center;\n}\n\n.sage-ai-jwt-auth-login-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n min-width: 200px;\n height: 48px;\n padding: 0 24px;\n border: none;\n border-radius: 12px !important;\n background: linear-gradient(135deg, #4a90e2 0%, #357abd 100%);\n color: white !important;\n font-size: 15px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 4px 16px rgba(74, 144, 226, 0.3);\n text-decoration: none;\n}\n\n.sage-ai-jwt-auth-login-btn:hover {\n transform: translateY(-2px);\n box-shadow: 0 6px 20px rgba(74, 144, 226, 0.4);\n background: linear-gradient(135deg, #5ba0f2 0%, #4689cd 100%);\n color: white !important;\n text-decoration: none;\n}\n\n.sage-ai-jwt-auth-login-btn:focus {\n outline: none;\n box-shadow: 0 4px 16px rgba(74, 144, 226, 0.4), 0 0 0 3px rgba(74, 144, 226, 0.1);\n color: white !important;\n}\n\n.sage-ai-jwt-auth-login-btn:active {\n transform: translateY(0);\n box-shadow: 0 2px 8px rgba(74, 144, 226, 0.3);\n}\n\n.sage-ai-jwt-auth-dismiss-btn {\n min-width: 160px;\n height: 40px;\n padding: 0 20px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 12px !important;\n background: transparent;\n color: var(--jp-ui-font-color2) !important;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n text-decoration: none;\n}\n\n.sage-ai-jwt-auth-dismiss-btn:hover {\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1) !important;\n text-decoration: none;\n}\n\n.sage-ai-jwt-auth-dismiss-btn:focus {\n outline: none;\n box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);\n color: var(--jp-ui-font-color1) !important;\n}\n\n/* Animation for modal entrance */\n.sage-ai-jwt-auth-modal.show .modal-dialog {\n animation: jwtModalSlideIn 0.3s ease-out;\n}\n\n@keyframes jwtModalSlideIn {\n from {\n opacity: 0;\n transform: translateY(-30px) scale(0.95);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n/* Responsive adjustments */\n@media (max-width: 576px) {\n .sage-ai-jwt-auth-modal .modal-dialog {\n margin: 15px;\n max-width: none;\n }\n \n .sage-ai-jwt-auth-header,\n .sage-ai-jwt-auth-body {\n padding-left: 20px;\n padding-right: 20px;\n }\n \n .sage-ai-jwt-auth-login-btn {\n min-width: 180px;\n }\n}\n\n/* Login Success Modal Styles */\n.sage-ai-login-success-modal .modal-dialog {\n max-width: 580px;\n margin: 30px auto;\n}\n\n.sage-ai-login-success-modal .modal-content {\n border: none;\n border-radius: 20px;\n background: var(--jp-layout-color0);\n box-shadow: 0 12px 48px rgba(0, 0, 0, 0.15);\n overflow: hidden;\n position: relative;\n}\n\n[data-jp-theme-light='false'] .sage-ai-login-success-modal .modal-content {\n background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 50%, #1a1a1a 100%);\n border: 1px solid #3a3a3a;\n box-shadow: 0 12px 48px rgba(0, 0, 0, 0.4);\n}\n\n[data-jp-theme-light='true'] .sage-ai-login-success-modal .modal-content {\n background: linear-gradient(135deg, #ffffff 0%, #f8fafb 50%, #ffffff 100%);\n border: 1px solid #e1e8ed;\n box-shadow: 0 12px 48px rgba(0, 0, 0, 0.12);\n}\n\n/* Success header with celebration effect */\n.sage-ai-login-success-header {\n padding: 40px 40px 20px 40px;\n text-align: center;\n position: relative;\n background: linear-gradient(135deg, rgba(74, 144, 226, 0.05) 0%, rgba(53, 122, 189, 0.05) 100%);\n}\n\n[data-jp-theme-light='false'] .sage-ai-login-success-header {\n background: linear-gradient(135deg, rgba(74, 144, 226, 0.08) 0%, rgba(53, 122, 189, 0.08) 100%);\n}\n\n.sage-ai-login-success-icon-container {\n display: flex;\n justify-content: center;\n margin-bottom: 24px;\n}\n\n.sage-ai-login-success-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n height: 80px;\n border-radius: 50%;\n background: linear-gradient(135deg, #4a90e2 0%, #357abd 100%);\n color: white;\n box-shadow: 0 8px 32px rgba(74, 144, 226, 0.3);\n animation: successPulse 2s ease-in-out infinite;\n}\n\n[data-jp-theme-light='false'] .sage-ai-login-success-icon {\n box-shadow: 0 8px 32px rgba(74, 144, 226, 0.4);\n}\n\n@keyframes successPulse {\n 0%, 100% {\n transform: scale(1);\n box-shadow: 0 8px 32px rgba(74, 144, 226, 0.3);\n }\n 50% {\n transform: scale(1.05);\n box-shadow: 0 12px 40px rgba(74, 144, 226, 0.4);\n }\n}\n\n.sage-ai-login-success-title {\n margin: 0 0 16px 0;\n font-size: 28px;\n font-weight: 700;\n color: var(--jp-ui-font-color0);\n letter-spacing: -0.02em;\n background: linear-gradient(135deg, #4a90e2 0%, #357abd 100%);\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n text-align: center;\n}\n\n.sage-ai-login-success-subtitle {\n margin: 0;\n font-size: 16px;\n color: var(--jp-ui-font-color2);\n line-height: 1.6;\n max-width: 420px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.sage-ai-login-success-body {\n padding: 20px 40px 40px 40px;\n}\n\n.sage-ai-login-success-content {\n margin-bottom: 32px;\n}\n\n.sage-ai-login-success-features {\n display: flex;\n flex-direction: column;\n gap: 20px;\n}\n\n.sage-ai-login-success-tip {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 20px;\n border-radius: 16px;\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color2);\n transition: all 0.2s ease;\n}\n\n[data-jp-theme-light='false'] .sage-ai-login-success-tip {\n background: rgba(255, 255, 255, 0.03);\n border: 1px solid rgba(255, 255, 255, 0.08);\n}\n\n[data-jp-theme-light='true'] .sage-ai-login-success-tip {\n background: rgba(74, 144, 226, 0.02);\n border: 1px solid rgba(74, 144, 226, 0.08);\n}\n\n.sage-ai-login-success-tip:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);\n}\n\n[data-jp-theme-light='false'] .sage-ai-login-success-tip:hover {\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n}\n\n.sage-ai-login-success-tip-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: 12px;\n background: linear-gradient(135deg, rgba(74, 144, 226, 0.1) 0%, rgba(53, 122, 189, 0.1) 100%);\n color: #4a90e2;\n flex-shrink: 0;\n}\n\n.sage-ai-login-success-tip-content {\n flex: 1;\n min-width: 0;\n}\n\n.sage-ai-login-success-tip-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n margin-bottom: 6px;\n}\n\n.sage-ai-login-success-tip-description {\n font-size: 14px;\n color: var(--jp-ui-font-color2);\n line-height: 1.5;\n}\n\n.sage-ai-login-success-tip-description code {\n background: rgba(74, 144, 226, 0.1);\n color: #4a90e2;\n padding: 2px 6px;\n border-radius: 4px;\n font-size: 13px;\n font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace;\n}\n\n.sage-ai-login-success-actions {\n display: flex;\n flex-direction: column;\n gap: 16px;\n align-items: center;\n}\n\n.sage-ai-login-success-start-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n min-width: 220px;\n height: 52px;\n padding: 0 28px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 16px !important;\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color0) !important;\n font-size: 16px;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s ease;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n text-decoration: none;\n position: relative;\n overflow: hidden;\n}\n\n.sage-ai-login-success-start-btn::before {\n content: '';\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);\n transition: left 0.6s ease;\n}\n\n.sage-ai-login-success-start-btn:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color0) !important;\n border-color: var(--jp-border-color1);\n text-decoration: none;\n}\n\n.sage-ai-login-success-start-btn:hover::before {\n left: 100%;\n}\n\n.sage-ai-login-success-start-btn:focus {\n outline: none;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), 0 0 0 3px rgba(74, 144, 226, 0.1);\n color: var(--jp-ui-font-color0) !important;\n}\n\n.sage-ai-login-success-start-btn:active {\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.sage-ai-login-success-auto-close {\n font-size: 13px;\n color: var(--jp-ui-font-color2);\n opacity: 0.7;\n font-style: italic;\n}\n\n/* Modal entrance animation */\n.sage-ai-login-success-modal.show .modal-dialog {\n animation: loginSuccessSlideIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n\n@keyframes loginSuccessSlideIn {\n from {\n opacity: 0;\n transform: translateY(-40px) scale(0.9);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n/* Confetti effect */\n.sage-ai-login-success-modal .modal-content::before {\n content: '';\n position: absolute;\n top: -50px;\n left: -50px;\n right: -50px;\n bottom: -50px;\n background: radial-gradient(circle at 20% 80%, rgba(74, 144, 226, 0.1) 0%, transparent 50%),\n radial-gradient(circle at 80% 20%, rgba(53, 122, 189, 0.1) 0%, transparent 50%),\n radial-gradient(circle at 40% 40%, rgba(91, 160, 242, 0.1) 0%, transparent 50%);\n animation: confettiFloat 3s ease-in-out infinite;\n pointer-events: none;\n z-index: -1;\n}\n\n@keyframes confettiFloat {\n 0%, 100% {\n opacity: 0.3;\n transform: rotate(0deg);\n }\n 50% {\n opacity: 0.6;\n transform: rotate(2deg);\n }\n}\n\n/* Responsive adjustments */\n@media (max-width: 576px) {\n .sage-ai-login-success-modal .modal-dialog {\n margin: 15px;\n max-width: none;\n }\n \n .sage-ai-login-success-header,\n .sage-ai-login-success-body {\n padding-left: 24px;\n padding-right: 24px;\n }\n \n .sage-ai-login-success-title {\n font-size: 24px;\n }\n \n .sage-ai-login-success-start-btn {\n min-width: 200px;\n height: 48px;\n }\n \n .sage-ai-login-success-tip {\n padding: 16px;\n }\n}\n",""]);const s=i},10540:n=>{n.exports=function(n){var o=document.createElement("style");return n.setAttributes(o,n.attributes),n.insert(o,n.options),o}},10844:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,".sage-ai-unified-diff-active.has-merge-chunks .jp-Toolbar {\n display: none !important;\n }\n\n.ͼ2.cm-merge-b .cm-changedText {\n background: none !important;\n}\n.code-mirror-empty-original-content .cm-deletedLine:first-of-type,\n.code-mirror-empty-original-content .cm-deletedChunk:first-of-type > .cm-deletedLine {\n display: none !important;\n}\n\n.cm-collapsedLines {\n background: transparent !important;\n}\n\n.cm-deletedChunk {\n background-color: #e5534b1a !important;\n}\n\n.cm-changedLine {\n background-color: #46954a26 !important;\n}",""]);const s=i},13342:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,'/* Diff Navigation Widget Styles */\n.sage-ai-diff-navigation-widget {\n position: absolute;\n bottom: 20px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1000;\n pointer-events: auto;\n transition: bottom 0.2s ease;\n}\n\n.sage-ai-diff-navigation-widget:hover {\n bottom: 22px;\n}\n\n/* Ensure the notebook container has relative positioning for absolute child positioning */\n.jp-Notebook {\n position: relative;\n}\n\n.sage-ai-diff-navigation-floating-content {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 8px;\n background-color: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color1);\n border-radius: 8px;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n font-family: var(--jp-ui-font-family);\n}\n\n/* Navigation Section */\n.sage-ai-diff-navigation-navigation-section {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.sage-ai-diff-navigation-nav-button {\n width: 24px;\n height: 24px;\n border: none;\n border-radius: 8px;\n background-color: transparent;\n color: var(--jp-ui-font-color0);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: bold;\n transition: all 0.2s ease;\n font-family: var(--jp-ui-font-family);\n}\n\n.sage-ai-diff-navigation-nav-button:hover:not(:disabled) {\n background-color: var(--jp-layout-color2);\n}\n\n.sage-ai-diff-navigation-nav-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n color: var(--jp-ui-font-color3);\n}\n\n.sage-ai-diff-navigation-counter-display {\n font-size: var(--jp-ui-font-size1);\n font-weight: 500;\n color: var(--jp-ui-font-color0);\n min-width: 40px;\n text-align: center;\n font-family: var(--jp-ui-font-family);\n}\n\n/* Button Section */\n.sage-ai-diff-navigation-button-section {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.sage-ai-diff-navigation-action-button {\n padding: 4px 6px;\n border-radius: 6px !important;\n font-size: var(--jp-ui-font-size1);\n font-weight: 500;\n cursor: pointer;\n border: none;\n transition: all 0.2s ease;\n font-family: var(--jp-ui-font-family);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.sage-ai-diff-navigation-action-button span {\n white-space: nowrap;\n}\n\n/* Reject Button (Outlined) */\n.sage-ai-diff-navigation-reject-button {\n background-color: var(--jp-layout-color3);\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-diff-navigation-reject-button:hover {\n background-color: var(--jp-layout-color4);\n}\n\n/* Approve Button (Primary) */\n.sage-ai-diff-navigation-approve-button {\n background-color: var(--jp-layout-color3);\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-diff-navigation-approve-button:hover {\n background-color: var(--jp-layout-color4);\n}\n\n/* Accept & Run All Button (Enhanced Primary) */\n.sage-ai-diff-navigation-accept-run-button {\n background-color: var(--jp-inverse-layout-color2);\n color: var(--jp-ui-inverse-font-color0);\n}\n\n.sage-ai-diff-navigation-accept-run-button:hover {\n background-color: var(--jp-inverse-layout-color0);\n}\n\n/* Hidden state */\n.sage-ai-diff-navigation-widget.hidden {\n display: none;\n}\n\n/* Dark theme adjustments */\n[data-jp-theme-light="false"] .sage-ai-diff-navigation-floating-content {\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.3);\n}\n\n/* Light theme specific overrides if needed */\n[data-jp-theme-light="true"] .sage-ai-diff-navigation-floating-content {\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n}\n\n/* Icon styling */\n.sage-ai-diff-navigation-nav-icon {\n opacity: 0.7;\n transition: opacity 0.2s ease;\n}\n\n.sage-ai-diff-navigation-action-icon {\n opacity: 0.8;\n transition: opacity 0.2s ease;\n}\n\n/* Make icons lighter on hover */\n.sage-ai-diff-navigation-nav-button:hover:not(:disabled) .sage-ai-diff-navigation-nav-icon {\n opacity: 1;\n}\n\n.sage-ai-diff-navigation-action-button:hover .sage-ai-diff-navigation-action-icon {\n opacity: 1;\n}\n\n/* Icon color adjustments for different button states */\n.sage-ai-diff-navigation-nav-button:disabled .sage-ai-diff-navigation-nav-icon {\n opacity: 0.3;\n}\n\n/* Specific button styling (if needed for customization) */\n.sage-ai-diff-navigation-prev-button {\n /* Previous button specific styles can be added here */\n}\n\n.sage-ai-diff-navigation-next-button {\n /* Next button specific styles can be added here */\n}\n',""]);const s=i},13574:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* \n * Styles specific to the chatbox when attached to the JupyterLab launcher\n * These styles are only applied when the chatbox is displayed in the launcher view\n */\n\n.sage-chatbox-launcher-wrapper {\n /* Wrapper styles for the chatbox in launcher */\n position: relative;\n background: var(--jp-layout-color0);\n border-radius: 12px;\n margin-top: 40px;\n overflow: hidden;\n}\n\n.sage-chatbox-launcher-wrapper .sage-ai-waiting-reply-text {\n display: none !important;\n}\n\n.sage-chatbox-launcher-wrapper::before {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: 12px;\n padding: 2px;\n background: linear-gradient(\n to right,\n #a7d8f0,\n #a5ddf4,\n #8521ca,\n #b169e8,\n #ff9270,\n #fdf0b2,\n #fbf4c8,\n #a7d8f0\n );\n -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n -webkit-mask-composite: xor;\n mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n mask-composite: exclude;\n animation: glow-rotate 4s linear infinite, glow-pulse 2s ease-in-out infinite;\n pointer-events: none;\n z-index: 1;\n}\n\n@keyframes glow-rotate {\n 0% {\n filter: hue-rotate(0deg);\n }\n 100% {\n filter: hue-rotate(360deg);\n }\n}\n\n@keyframes glow-pulse {\n 0%, 100% {\n opacity: 0.8;\n box-shadow: 0 0 20px rgba(167, 216, 240, 0.6),\n 0 0 40px rgba(165, 221, 244, 0.4),\n 0 0 60px rgba(133, 33, 202, 0.3);\n }\n 50% {\n opacity: 1;\n box-shadow: 0 0 30px rgba(177, 105, 232, 0.8),\n 0 0 60px rgba(255, 146, 112, 0.6),\n 0 0 90px rgba(253, 240, 178, 0.4);\n }\n}\n\n.sage-chatbox-launcher-wrapper .sage-ai-new-prompt-cta, .sage-chatbox-launcher-wrapper .sage-ai-toolbar {\n display: none !important;\n}\n\n.sage-chatbox-launcher-wrapper .sage-ai-chat-history {\n max-height: 50vh !important;\n}\n\n.sage-chatbox-launcher-wrapper .sage-ai-chatbox {\n overflow: hidden !important;\n}\n\n.sage-chatbox-launcher-wrapper .sage-ai-history-container {\n margin-top: 12px;\n}\n\n.sage-chatbox-launcher-wrapper .sage-ai-chat-history::-webkit-scrollbar-button {\n display: none;\n}\n\n.sage-chatbox-launcher-wrapper .sage-ai-prompt-button {\n background: linear-gradient(135deg, #7c3aed 0%, #5b21b6 100%) !important;\n color: white !important;\n border: 1px solid rgba(255, 255, 255, 0.2) !important;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;\n transition: transform 0.2s ease, box-shadow 0.2s ease !important;\n}\n\n.sage-chatbox-launcher-wrapper .sage-ai-prompt-button:hover {\n transform: translateY(-1px) !important;\n box-shadow: 0 4px 12px rgba(124, 58, 237, 0.4) !important;\n}",""]);const s=i},14453:(n,o,e)=>{e.r(o),e.d(o,{default:()=>u});var a=e(85072),r=e.n(a),t=e(97825),i=e.n(t),s=e(77659),l=e.n(s),p=e(55056),d=e.n(p),c=e(10540),g=e.n(c),b=e(41113),m=e.n(b),f=e(27348),x={};x.styleTagTransform=m(),x.setAttributes=d(),x.insert=l().bind(null,"head"),x.domAPI=i(),x.insertStyleElement=g(),r()(f.A,x);const u=f.A&&f.A.locals?f.A.locals:void 0},15147:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,'.html-preview-widget {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.html-preview-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.html-preview-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 6px 12px;\n border-bottom: 1px solid var(--jp-border-color1);\n background: var(--jp-layout-color1);\n flex-shrink: 0;\n}\n\n.html-preview-config {\n display: flex;\n flex-direction: row;\n gap: 16px;\n align-items: center;\n}\n\n.html-preview-checkbox {\n display: flex;\n align-items: center;\n gap: 4px;\n font-size: 11px;\n color: var(--jp-ui-font-color1);\n cursor: pointer;\n}\n\n.html-preview-checkbox input[type="checkbox"] {\n margin: 0;\n cursor: pointer;\n width: 12px;\n height: 12px;\n}\n\n.html-preview-checkbox:hover {\n color: var(--jp-ui-font-color0);\n}\n\n.html-preview-status-container {\n display: flex;\n gap: 12px;\n align-items: center;\n justify-content: flex-end;\n}\n\n.html-preview-status-ball-container {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.html-preview-status-ball {\n width: 12px;\n height: 12px;\n border-radius: 50%;\n cursor: pointer;\n transition: transform 0.2s ease;\n position: relative;\n flex-shrink: 0;\n}\n\n.html-preview-status-ball.small {\n width: 8px;\n height: 8px;\n}\n\n.html-preview-status-ball:hover {\n transform: scale(1.3);\n}\n\n.html-preview-status-ball.deployed {\n background: var(--jp-success-color1);\n box-shadow: 0 0 0 2px var(--jp-success-color3);\n}\n\n.html-preview-status-ball.uploading {\n background: var(--jp-brand-color1);\n animation: html-preview-pulse 1.5s infinite;\n box-shadow: 0 0 0 2px var(--jp-brand-color3);\n}\n\n.html-preview-status-ball.error {\n background: var(--jp-error-color1);\n box-shadow: 0 0 0 2px var(--jp-error-color3);\n}\n\n.html-preview-status-ball.idle {\n background: var(--jp-border-color2);\n border: 2px solid var(--jp-border-color1);\n}\n\n@keyframes html-preview-pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n}\n\n.html-preview-deployment-popover {\n position: absolute;\n background: var(--jp-layout-color0);\n border: 1px solid var(--jp-border-color1);\n border-radius: 6px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n padding: 12px;\n z-index: 999999;\n min-width: 280px;\n max-width: 320px;\n top: 22px;\n}\n\n.html-preview-deployment-popover.left {\n left: -270px;\n}\n\n.html-preview-deployment-popover.center {\n left: -140px;\n}\n\n.html-preview-popover-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--jp-ui-font-color2);\n text-transform: uppercase;\n margin-top: 12px;\n margin-bottom: 4px;\n}\n\n.html-preview-popover-label:first-child {\n margin-top: 0;\n}\n\n.html-preview-popover-value {\n font-size: 13px;\n color: var(--jp-ui-font-color1);\n margin-bottom: 8px;\n word-break: break-word;\n}\n\n.html-preview-popover-buttons {\n display: flex;\n flex-direction: column;\n gap: 6px;\n margin-top: 12px;\n}\n\n.html-preview-popover-button {\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n border: 1px solid var(--jp-border-color1);\n padding: 6px 12px;\n border-radius: 3px;\n font-size: 12px;\n cursor: pointer;\n transition: all 0.2s;\n text-align: left;\n}\n\n.html-preview-popover-button:hover:not(:disabled) {\n background: var(--jp-layout-color3);\n border-color: var(--jp-border-color2);\n}\n\n.html-preview-popover-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.html-preview-popover-message {\n font-size: 13px;\n color: var(--jp-ui-font-color2);\n text-align: center;\n padding: 8px;\n}\n\n.html-preview-button-primary {\n background: var(--jp-ui-inverse-font-color1);\n color: var(--jp-ui-font-color1);\n border: 1px solid var(--jp-border-color1);\n padding: 4px 6px;\n border-radius: 3px !important;\n font-size: 11px;\n cursor: pointer;\n transition: all 0.2s;\n font-weight: 500;\n}\n\n.html-preview-button-primary:hover:not(:disabled) {\n background: var(--jp-layout-color2);\n border-color: var(--jp-border-color2);\n}\n\n.html-preview-button-primary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.html-preview-button-primary.html-preview-not-deployed {\n animation: html-preview-border-pulse 2s infinite;\n}\n\n@keyframes html-preview-border-pulse {\n 0%, 100% {\n border-color: var(--jp-border-color1);\n }\n 50% {\n border-color: var(--jp-brand-color1);\n }\n}\n\n.html-preview-button-secondary {\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n border: 1px solid var(--jp-border-color1);\n padding: 4px 6px;\n border-radius: 3px !important;\n font-size: 11px;\n cursor: pointer;\n transition: all 0.2s;\n font-weight: 400;\n}\n\n.html-preview-button-secondary:hover:not(:disabled) {\n background: var(--jp-layout-color3);\n border-color: var(--jp-border-color2);\n}\n\n.html-preview-button-secondary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.html-preview-button-danger {\n background: var(--jp-error-color1);\n color: var(--jp-ui-inverse-font-color1);\n border: none;\n}\n\n.html-preview-button-danger:hover:not(:disabled) {\n background: var(--jp-error-color0);\n}\n\n.html-preview-area {\n flex: 1;\n position: relative;\n overflow: hidden;\n}\n\n.html-preview-loading {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: var(--jp-ui-font-color2);\n font-size: 14px;\n}\n\n.html-preview-iframe {\n width: 100%;\n height: 100%;\n border: none;\n background: white;\n}\n\n.html-preview-error {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: var(--jp-error-color1);\n font-size: 14px;\n text-align: center;\n padding: 20px;\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-error-color1);\n border-radius: 4px;\n}\n\n',""]);const s=i},15544:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* When LLM state display is hidden, move plan state display up */\n.sage-ai-chatbox:has(.sage-ai-llm-state-widget.hidden)\n .sage-ai-plan-state-widget {\n margin-bottom: 0 !important;\n}\n\n/* Wrapper for fixed positioning with flexbox */\n.sage-ai-state-display-container {\n left: 0;\n right: 0;\n pointer-events: none;\n z-index: 1;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n}\n\n/* Apply styles directly to widget nodes */\n.sage-ai-plan-state-widget {\n order: 1;\n pointer-events: auto;\n margin: 0 10px;\n bottom: -12px !important;\n}\n\n.sage-ai-plan-state-widget.hidden {\n display: none;\n}\n\n.sage-ai-llm-state-widget {\n order: 2;\n pointer-events: auto;\n bottom: -12px;\n margin: -4px 10px 0;\n}\n\n.sage-ai-input-spacer {\n order: 3;\n flex-shrink: 0;\n}\n\n[data-jp-theme-light='false'] .sage-ai-plan-state-display {\n background-color: #1a1a1a;\n}\n\n[data-jp-theme-light='true'] .sage-ai-plan-state-display {\n background-color: #fff;\n}\n\n/* Plan State Display - positioned above the LLM state display */\n.sage-ai-plan-state-display {\n display: flex;\n flex-direction: column;\n padding: 8px 12px;\n padding-bottom: 14px;\n border-radius: 8px 8px 0 0;\n font-size: 13px;\n color: var(--jp-ui-font-color1);\n box-shadow: 0 2px 4px rgb(0 0 0 / 5%);\n transition: all 0.2s ease-in-out;\n border: 1px solid var(--jp-border-color2);\n}\n\n.sage-ai-plan-state-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.sage-ai-plan-state-content {\n display: flex;\n flex-direction: column;\n gap: 4px;\n width: 100%;\n}\n\n.sage-ai-plan-current-step {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.sage-ai-plan-current-text {\n color: var(--jp-ui-font-color1);\n font-size: 12px;\n font-weight: 400;\n}\n\n.sage-ai-plan-bottom-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.sage-ai-plan-next-text {\n color: var(--jp-ui-font-color2);\n font-weight: 300;\n font-size: 10px;\n flex: 1; /* Take up available space */\n}\n\n.sage-ai-plan-source-toggle {\n align-self: center;\n background: none;\n border: none;\n color: var(--jp-ui-font-color2);\n cursor: pointer;\n font-size: var(--jp-ui-font-size0);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border-radius: 4px;\n transition:\n background-color 0.2s,\n color 0.2s;\n width: 24px;\n height: 24px;\n}\n\n.sage-ai-plan-source-toggle:hover {\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-plan-source-content {\n margin-top: 8px;\n margin-bottom: 4px;\n padding: 12px;\n background-color: var(--jp-layout-color2);\n border-radius: 6px;\n overflow-y: auto;\n min-height: 100px;\n max-height: 25vh;\n transition: all 0.3s ease-in-out;\n transform-origin: bottom; /* Changed from top to bottom to expand upward */\n}\n\n.sage-ai-plan-source-content.collapsed {\n max-height: 0;\n min-height: 0;\n padding-top: 0;\n padding-bottom: 0;\n margin-top: 0;\n border: none;\n opacity: 0;\n transform: scaleY(0);\n}\n\n.sage-ai-plan-source-content.expanded {\n opacity: 1;\n transform: scaleY(1);\n}\n\n.sage-ai-plan-tasks-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n font-family: var(--jp-ui-font-family);\n font-size: 12px;\n line-height: 1.4;\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-plan-title {\n font-weight: 600;\n font-size: 12px;\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-plan-task-item {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.sage-ai-plan-subtask-item {\n margin-left: 16px;\n}\n\n.sage-ai-task-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.sage-ai-plan-subtopics {\n margin-top: 4px;\n margin-bottom: 0;\n}\n\n.sage-ai-plan-subtopic {\n margin: 0;\n padding: 0;\n}\n\n.sage-ai-subtopic-bullet {\n color: var(--jp-ui-font-color2);\n font-size: 12px;\n font-weight: bold;\n}\n\n.sage-ai-subtopic-text {\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n font-weight: 400;\n}\n\n.sage-ai-task-executing {\n background: linear-gradient(\n 135deg,\n transparent,\n var(--jp-ui-font-color1),\n transparent\n );\n background-clip: text;\n color: transparent !important;\n background-size: 200% 100%;\n animation: shimmer 2.5s linear infinite;\n}\n\n@keyframes shimmer {\n 0% {\n background-position: 200% 0;\n }\n\n 100% {\n background-position: -200% 0;\n }\n}\n\n/* Keep the old markdown styles for backward compatibility */\n.sage-ai-plan-source-markdown {\n font-family: var(--jp-code-font-family);\n font-size: 11px;\n line-height: 1.4;\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-plan-source-markdown h1,\n.sage-ai-plan-source-markdown h2,\n.sage-ai-plan-source-markdown h3,\n.sage-ai-plan-source-markdown h4,\n.sage-ai-plan-source-markdown h5,\n.sage-ai-plan-source-markdown h6 {\n margin: 8px 0 4px;\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-plan-source-markdown h1 {\n font-size: 14px;\n}\n\n.sage-ai-plan-source-markdown h2 {\n font-size: 13px;\n}\n\n.sage-ai-plan-source-markdown h3 {\n font-size: 12px;\n}\n\n.sage-ai-plan-source-markdown h4,\n.sage-ai-plan-source-markdown h5,\n.sage-ai-plan-source-markdown h6 {\n font-size: 11px;\n}\n\n.sage-ai-plan-source-markdown p {\n margin: 4px 0;\n}\n\n.sage-ai-plan-source-markdown ul,\n.sage-ai-plan-source-markdown ol {\n padding-left: 16px;\n margin: 4px 0;\n}\n\n.sage-ai-plan-source-markdown li {\n margin: 2px 0;\n}\n\n.sage-ai-plan-source-markdown code {\n background-color: var(--jp-layout-color1);\n padding: 1px 3px;\n border-radius: 2px;\n font-size: 10px;\n}\n\n.sage-ai-plan-source-markdown pre {\n background-color: var(--jp-layout-color1);\n border-radius: 4px;\n padding: 6px;\n margin: 4px 0;\n overflow-x: auto;\n}\n\n.sage-ai-plan-source-markdown pre code {\n background-color: transparent;\n padding: 0;\n font-size: 10px;\n}\n\n.sage-ai-plan-source-markdown blockquote {\n border-left: 3px solid var(--jp-border-color2);\n padding-left: 8px;\n margin: 4px 0;\n color: var(--jp-ui-font-color2);\n font-style: italic;\n}\n\n/* Ensure the blob loader works in this context */\n.sage-ai-plan-state-display .sage-ai-blob-loader {\n flex-shrink: 0;\n}\n\n/* Toggle icon animation */\n.sage-ai-plan-toggle-icon {\n font-size: 12px;\n transition: transform 0.2s ease;\n line-height: 1;\n}\n\n.sage-ai-plan-source-toggle[aria-expanded='false'] > svg {\n transform: rotate(180deg);\n}\n\n.sage-ai-plan-state-loader {\n width: 26px;\n height: 26px;\n display: inline-block;\n position: relative;\n}\n\n.sage-ai-plan-state-loader::after,\n.sage-ai-plan-state-loader::before {\n content: '';\n box-sizing: border-box;\n width: 26px;\n height: 26px;\n border-radius: 50%;\n border: 2px solid rgba(59, 130, 246, 1);\n position: absolute;\n left: 0;\n top: 0;\n opacity: 0;\n animation: sage-ai-plan-state-display-animloader 2s linear infinite;\n}\n\n.sage-ai-plan-state-loader::after {\n animation-delay: 1s;\n}\n\n@keyframes sage-ai-plan-state-display-animloader {\n 0% {\n transform: scale(0);\n opacity: 1;\n }\n\n 100% {\n border-color: #ccdffe;\n transform: scale(1);\n opacity: 0;\n }\n}\n",""]);const s=i},27348:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,'.driver-active .driver-overlay,.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in .2s ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in .2s}.driver-popover{all:unset;box-sizing:border-box;color:#2d2d2d;margin:0;padding:15px;border-radius:5px;min-width:250px;max-width:300px;box-shadow:0 1px 10px #0006;z-index:1000000000;position:fixed;top:0;right:0;background-color:#fff}.driver-popover *{font-family:Helvetica Neue,Inter,ui-sans-serif,"Apple Color Emoji",Helvetica,Arial,sans-serif}.driver-popover-title{font:19px/normal sans-serif;font-weight:700;display:block;position:relative;line-height:1.5;zoom:1;margin:0}.driver-popover-close-btn{all:unset;position:absolute;top:0;right:0;width:32px;height:28px;cursor:pointer;font-size:18px;font-weight:500;color:#d2d2d2;z-index:1;text-align:center;transition:color;transition-duration:.2s}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{margin-bottom:0;font:14px/normal sans-serif;line-height:1.5;font-weight:400;zoom:1}.driver-popover-footer{margin-top:15px;text-align:right;zoom:1;display:flex;align-items:center;justify-content:space-between}.driver-popover-progress-text{font-size:13px;font-weight:400;color:#727272;zoom:1}.driver-popover-footer button{all:unset;display:inline-block;box-sizing:border-box;padding:3px 7px;text-decoration:none;text-shadow:1px 1px 0 #fff;background-color:#fff;color:#2d2d2d;font:12px/normal sans-serif;cursor:pointer;outline:0;zoom:1;line-height:1.3;border:1px solid #ccc;border-radius:3px}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}:not(body):has(>.driver-active-element){overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.driver-popover-footer button:hover,.driver-popover-footer button:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{display:flex;flex-grow:1;justify-content:flex-end}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";position:absolute;border:5px solid #fff}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{left:100%;border-right-color:transparent;border-bottom-color:transparent;border-top-color:transparent}.driver-popover-arrow-side-right{right:100%;border-left-color:transparent;border-bottom-color:transparent;border-top-color:transparent}.driver-popover-arrow-side-top{top:100%;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.driver-popover-arrow-side-bottom{bottom:100%;border-left-color:transparent;border-top-color:transparent;border-right-color:transparent}.driver-popover-arrow-side-center{display:none}.driver-popover-arrow-side-left.driver-popover-arrow-align-start,.driver-popover-arrow-side-right.driver-popover-arrow-align-start{top:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-start,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-start{left:15px}.driver-popover-arrow-align-end.driver-popover-arrow-side-left,.driver-popover-arrow-align-end.driver-popover-arrow-side-right{bottom:15px}.driver-popover-arrow-side-top.driver-popover-arrow-align-end,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-end{right:15px}.driver-popover-arrow-side-left.driver-popover-arrow-align-center,.driver-popover-arrow-side-right.driver-popover-arrow-align-center{top:50%;margin-top:-5px}.driver-popover-arrow-side-top.driver-popover-arrow-align-center,.driver-popover-arrow-side-bottom.driver-popover-arrow-align-center{left:50%;margin-left:-5px}.driver-popover-arrow-none{display:none}\n',""]);const s=i},27439:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* Inline Diff Approval for Chat interface */\n.sage-ai-inline-diff-approval,\n.sage-ai-diff-approval-dialog-embedded {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 4px 12px;\n}\n\n.sage-ai-inline-diff-header,\n.sage-ai-diff-approval-header {\n padding-bottom: 8px;\n display: flex;\n align-items: center;\n border-bottom: 1px solid var(--jp-border-color2);\n}\n\n.sage-ai-inline-diff-title,\n.sage-ai-diff-title {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n display: flex;\n align-items: center;\n}\n\n.sage-ai-inline-diff-summary,\n.sage-ai-diff-summary {\n font-size: var(--jp-ui-font-size0);\n color: var(--jp-ui-font-color0);\n flex-grow: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.sage-ai-inline-diff-note {\n font-size: 12px;\n color: var(--jp-ui-font-color2);\n font-style: italic;\n margin-bottom: 12px;\n}\n\n.sage-ai-inline-diff-actions {\n display: flex;\n /* TODO: Remove the element from the DOM */\n display: none;\n justify-content: end;\n gap: 8px;\n margin-top: 4px;\n}\n\n.sage-ai-inline-diff-actions button {\n padding: 8px 14px;\n border-radius: 4px;\n font-size: 13px;\n border: none;\n cursor: pointer;\n transition:\n background-color 0.2s,\n transform 0.1s;\n}\n\n.sage-ai-inline-diff-actions button:hover {\n transform: translateY(-1px);\n}\n\n.sage-ai-inline-diff-actions button:active {\n transform: translateY(0px);\n}\n\n.sage-ai-inline-diff-count,\n.sage-ai-diff-count {\n display: inline-block;\n background-color: var(--jp-layout-color3);\n color: var(--jp-ui-font-color1);\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 12px;\n margin-left: 6px;\n min-width: 18px;\n text-align: center;\n}\n\n.sage-ai-confirm-button {\n padding: 4px 8px;\n background-color: var(--jp-inverse-layout-color0);\n color: var(--jp-ui-inverse-font-color0);\n transition: background-color 0.2s ease;\n border-radius: 8px !important;\n}\n\n.sage-ai-confirm-button:hover {\n background-color: var(--jp-inverse-layout-color2);\n}\n\n.sage-ai-reject-button {\n padding: 0px 8px;\n font-size: var(--jp-ui-font-size1);\n background-color: transparent;\n color: var(--jp-ui-font-color1);\n}\n\n/* Styles for embedded diff list and cells */\n.sage-ai-diff-approval-dialog-embedded .sage-ai-diff-list {\n margin: 8px 0;\n gap: 8px;\n display: flex;\n flex-direction: column;\n}\n\n.sage-ai-diff-cell-item {\n border-radius: 10px;\n border: 0.5px solid var(--jp-border-color2);\n background-color: transparent;\n display: flex;\n flex-direction: column;\n}\n\n.sage-ai-diff-content-collapse-icon {\n display: flex;\n cursor: pointer;\n transition: transform 0.2s;\n}\n\n.sage-ai-diff-content-collapse-icon:hover {\n transform: scale(1.1);\n}\n\n.sage-ai-diff-cell-header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n}\n\n.sage-ai-diff-operation {\n display: flex;\n}\n\n.sage-ai-diff-content {\n position: relative;\n max-height: 150px;\n overflow-y: hidden;\n background-color: var(--jp-layout-color2);\n border-radius: 0 0 10px 10px;\n border-top: 0.5px solid var(--jp-border-color2);\n}\n\n.sage-ai-diff-content .d2h-file-wrapper {\n border-radius: 0 !important;\n}\n\n.sage-ai-diff-content.sage-ai-diff-expanded {\n max-height: none;\n overflow-y: visible;\n}\n\n/* Gradient overlay that stays at bottom when scrolling */\n.sage-ai-diff-gradient-overlay {\n display: flex;\n align-items: center;\n justify-content: center;\n position: sticky;\n bottom: 0;\n left: 0;\n right: 0;\n height: 20px;\n background: linear-gradient(to top, rgba(25, 25, 25, 1) 0%, transparent 100%);\n pointer-events: none;\n border-radius: 0 0 4px 4px;\n z-index: 0;\n}\n\n[data-jp-theme-light='true'] .sage-ai-diff-gradient-overlay {\n background: linear-gradient(\n to top,\n rgba(255, 255, 255, 1) 0%,\n transparent 100%\n );\n}\n\n.sage-ai-diff-cell-id-label {\n color: #1976d2;\n border-radius: 4px;\n font-size: 12px;\n padding: 2px 6px;\n cursor: pointer;\n flex: 1;\n}\n\n.sage-ai-diff-old-content,\n.sage-ai-diff-new-content {\n padding: 6px;\n font-family: monospace;\n font-size: 12px;\n white-space: pre-wrap;\n}\n\n.sage-ai-diff-old-content {\n border-bottom: 1px dashed var(--jp-border-color2);\n color: var(--jp-content-font-color2);\n text-decoration: line-through;\n}\n\n.sage-ai-diff-cell-actions {\n display: flex;\n justify-content: flex-end;\n margin-top: 6px;\n gap: 8px;\n}\n\n.sage-ai-diff-approval-dialog-embedded .cm-editor {\n border-radius: 0 0 10px 10px !important;\n background: var(--jp-layout-color1) !important;\n}\n\n.sage-ai-diff-hover-buttons {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Diff action buttons - visible by default */\n.sage-ai-diff-approve-button,\n.sage-ai-diff-reject-button,\n.sage-ai-diff-run-button,\n.sage-ai-diff-reapply-button {\n background-color: transparent;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-weight: bold;\n display: flex;\n align-items: center;\n font-size: 12px;\n padding: 0;\n}\n\n.sage-ai-diff-approve-button:hover,\n.sage-ai-diff-reject-button:hover,\n.sage-ai-diff-run-button:hover,\n.sage-ai-diff-reapply-button:hover {\n transform: scale(1.1);\n transition: transform 0.2s;\n}\n\n/* Disabled button states */\n.sage-ai-diff-approve-button.disabled,\n.sage-ai-diff-reject-button.disabled,\n.sage-ai-diff-run-button.disabled,\n.sage-ai-diff-reapply-button.disabled {\n opacity: 0.6;\n cursor: default;\n pointer-events: none;\n}\n\n.sage-ai-diff-approve-button.disabled:hover,\n.sage-ai-diff-reject-button.disabled:hover,\n.sage-ai-diff-run-button.disabled:hover,\n.sage-ai-diff-reapply-button.disabled:hover {\n transform: none;\n}\n\n/* Button visibility states */\n.sage-ai-diff-approve-button.hidden,\n.sage-ai-diff-reject-button.hidden,\n.sage-ai-diff-run-button.hidden,\n.sage-ai-diff-reapply-button.hidden {\n display: none;\n}\n\n/* Spinner for buttons - visible by default */\n.sage-ai-diff-spinner {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: 2px solid #f3f3f3;\n border-top: 2px solid #3498db;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n.sage-ai-diff-spinner.hidden {\n display: none;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n",""]);const s=i},31601:n=>{n.exports=function(n){return n[1]}},33114:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,".sage-ai-input-spacer {\n order: 3;\n flex-shrink: 0;\n}\n\n/* LLM State Display - positioned above the chat input */\n.sage-ai-llm-state-display {\n display: none; /* Hidden by default */\n align-items: center;\n justify-content: center;\n padding: 8px;\n padding-bottom: 18px;\n margin-bottom: 0;\n background-color: var(--jp-layout-color1);\n border-radius: 8px;\n font-size: 13px;\n color: var(--jp-ui-font-color1);\n box-shadow: 0 2px 4px rgb(0 0 0 / 5%);\n transition: all 0.2s ease-in-out;\n /*transform: translateY(-10px);*/\n border: 1px solid var(--jp-border-color2);\n position: relative;\n z-index: 0; /* Ensure it stays above other content */\n}\n\n.sage-ai-generating,\n.sage-ai-using-tool {\n justify-content: space-between !important;\n}\n\n.sage-ai-llm-state-content {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.sage-ai-waiting-for-user {\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: transparent;\n border: 1px dashed #d3a500;\n}\n\n.sage-ai-llm-state-text {\n color: var(--jp-ui-font-color2);\n font-style: normal;\n font-weight: 500;\n font-size: var(--jp-ui-font-size1);\n}\n\n/* Ensure the blob loader works in this context */\n.sage-ai-llm-state-display .sage-ai-blob-loader {\n flex-shrink: 0;\n}\n\n/* Diff State Styles */\n.sage-ai-diff-state {\n display: flex !important;\n flex-direction: column;\n align-items: stretch !important;\n justify-content: flex-start !important;\n}\n\n/* Diff State Styles */\n.sage-ai-run-kernel {\n display: flex !important;\n justify-content: space-between !important;\n}\n\n.sage-ai-diff-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 12px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--jp-border-color2);\n}\n\n.sage-ai-diff-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-diff-icon {\n font-size: 16px;\n}\n\n.sage-ai-diff-text {\n font-size: 14px;\n}\n\n.sage-ai-diff-bulk-actions {\n display: flex;\n gap: 6px;\n}\n\n.sage-ai-diff-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n overflow-y: auto;\n margin-top: 6px;\n}\n\n.sage-ai-diff-decision {\n margin-left: 4px;\n font-size: 9px;\n}\n\n.sage-ai-llm-state-stop-button {\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n font-style: normal;\n font-weight: 500;\n line-height: 160%; /* 19.2px */\n padding: 2px 6px;\n box-shadow: none;\n border: none;\n cursor: pointer;\n}\n\n.sage-ai-llm-state-stop-button:hover {\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-diff-decision-approved {\n color: #28a745;\n}\n\n.sage-ai-diff-decision-rejected {\n color: #dc3545;\n}\n\n.sage-ai-diff-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 4px 6px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 6px;\n font-size: 12px;\n transition: all 0.2s ease;\n position: relative;\n z-index: 0;\n}\n\n.sage-ai-diff-item::before {\n content: '';\n position: absolute;\n inset: 0; /* shorthand for top/right/bottom/left: 0 */\n background: var(--jp-layout-color1);\n opacity: 1; /* initial opacity */\n transition: opacity 0.25s ease;\n z-index: -1; /* behind the box's content */\n border-radius: 6px;\n}\n\n.sage-ai-diff-item:hover {\n cursor: pointer;\n}\n\n.sage-ai-diff-item:hover::before {\n opacity: 0.8; /* hover opacity */\n}\n\n.sage-ai-diff-info {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n}\n\n.sage-ai-diff-operation {\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n font-size: 14px;\n flex-shrink: 0;\n}\n\n.sage-ai-diff-changes {\n display: flex;\n gap: 4px;\n font-size: 11px;\n font-weight: 600;\n align-items: center;\n}\n\n.fix_run_cell_size {\n height: 16px;\n}\n\n.sage-ai-diff-summary {\n width: fit-content;\n}\n\n.sage-ai-diff-added {\n color: #28a745;\n}\n\n.sage-ai-diff-removed {\n color: #dc3545;\n}\n\n.sage-ai-diff-actions {\n display: flex;\n gap: 4px;\n flex-shrink: 0;\n}\n\n.sage-ai-diff-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 12px;\n font-weight: bold;\n transition: all 0.2s ease;\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color2);\n}\n\n.sage-ai-diff-approve {\n color: #28a745;\n}\n\n.sage-ai-diff-approve:hover {\n background-color: #28a745;\n color: white;\n}\n\n.sage-ai-diff-reject {\n color: #dc3545;\n}\n\n.sage-ai-diff-reject:hover {\n color: white;\n}\n\n.sage-ai-diff-approve-all,\n.sage-ai-diff-reject-all {\n padding: 2px 6px;\n width: auto;\n height: auto;\n border-radius: 5px !important;\n font-size: var(--jp-ui-font-size1);\n font-weight: 500;\n line-height: 160%;\n}\n\n.sage-ai-diff-approve-all {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-inverse-layout-color2);\n}\n\n.sage-ai-diff-approve-all:hover {\n color: var(--jp-ui-inverse-font-color1);\n background-color: var(--jp-inverse-layout-color3);\n}\n\n.sage-ai-diff-reject-all {\n background-color: var(--jp-layout-color0);\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-diff-reject-all:hover {\n color: var(--jp-ui-font-color0);\n background-color: var(--jp-layout-color1);\n}\n\n/* Generating state specific styles */\n.sage-ai-generating {\n display: flex !important;\n}\n\n/* Using tool state specific styles */\n.sage-ai-using-tool {\n display: flex !important;\n}\n\n.sage-ai-tool-loader {\n width: 16px;\n height: 16px;\n border: 2px solid var(--jp-border-color2);\n border-top: 2px solid var(--jp-brand-color1);\n border-radius: 50%;\n animation: spin 1s linear infinite;\n flex-shrink: 0;\n}\n\n.sage-ai-tool-icon-container {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.sage-ai-tool-icon-container svg {\n width: 16px;\n height: 16px;\n fill: var(--jp-brand-color1);\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n/* Ensure the tool state has the same styling as generating */\n.sage-ai-using-tool .sage-ai-llm-state-text {\n color: var(--jp-ui-font-color2);\n font-style: italic;\n font-weight: 500;\n}\n\n/* Collapsible Diff Summary Bar */\n.sage-ai-diff-summary-bar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n transition: background-color 0.2s ease;\n user-select: none;\n}\n\n.sage-ai-diff-menu-icon {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.sage-ai-diff-summary-info {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n}\n\n.sage-ai-diff-cell-count {\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n}\n\n.sage-ai-diff-cell-count-info {\n display: flex;\n gap: 4px;\n margin: 0;\n}\n\n.sage-ai-diff-added-count {\n color: #28a745;\n border-radius: 4px;\n font-size: 11px;\n font-weight: bold;\n}\n\n.sage-ai-diff-removed-count {\n color: #dc3545;\n border-radius: 4px;\n font-size: 11px;\n font-weight: bold;\n}\n\n.sage-ai-diff-expand-icon {\n color: var(--jp-ui-font-color2);\n font-size: 12px;\n margin-left: auto;\n margin-right: 8px;\n transition: transform 0.2s ease;\n}\n\n.sage-ai-diff-summary-actions {\n display: flex;\n gap: 6px;\n flex-shrink: 0;\n}\n\n/* Hide actions on hover for diff items when showActionsOnHover is true */\n.sage-ai-diff-item-hover-actions .sage-ai-diff-actions {\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n\n.sage-ai-diff-item-hover-actions:hover .sage-ai-diff-actions {\n opacity: 1;\n}\n\n/* Button container for LLM state display */\n.sage-ai-llm-state-buttons {\n display: flex;\n gap: 6px;\n align-items: center;\n}\n\n/* Run/Reject buttons for notebook-run_cell tool */\n.sage-ai-llm-state-run-button,\n.sage-ai-llm-state-reject-button {\n padding: 4px 8px;\n border: none;\n border-radius: 8px !important;\n cursor: pointer;\n font-size: var(--jp-ui-font-size1);\n font-weight: 500;\n line-height: 160%;\n transition: all 0.2s ease;\n box-shadow: none;\n}\n\n.sage-ai-llm-state-run-button {\n background-color: var(--jp-inverse-layout-color0);\n color: var(--jp-ui-inverse-font-color0);\n}\n\n.sage-ai-llm-state-run-button:hover {\n background-color: var(--jp-inverse-layout-color2);\n color: var(--jp-ui-inverse-font-color1);\n}\n\n.sage-ai-llm-state-reject-button {\n background-color: var(--jp-layout-color0);\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-llm-state-reject-button:hover {\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color0);\n}\n",""]);const s=i},34944:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* Welcome Component Styles */\n\n.sage-welcome-wrapper {\n width: 100%;\n margin-bottom: 20px;\n padding: 0 20px;\n}\n\n.sage-ai-welcome-component {\n width: 100%;\n}\n\n.sage-welcome-container {\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color2);\n border-radius: 8px;\n padding: 20px;\n margin: 10px 0;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.sage-welcome-message {\n font-size: 14px;\n line-height: 1.6;\n color: var(--jp-ui-font-color1);\n max-height: 400px;\n overflow-y: auto;\n}\n\n.sage-welcome-loading {\n color: var(--jp-ui-font-color2);\n font-style: italic;\n text-align: center;\n padding: 20px;\n}\n\n.sage-welcome-content {\n animation: fadeIn 0.3s ease-in;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n.sage-welcome-content h1 {\n font-size: 20px;\n font-weight: 600;\n margin: 10px 0;\n color: var(--jp-ui-font-color0);\n}\n\n.sage-welcome-content h2 {\n font-size: 18px;\n font-weight: 600;\n margin: 8px 0;\n color: var(--jp-ui-font-color0);\n}\n\n.sage-welcome-content h3 {\n font-size: 16px;\n font-weight: 600;\n margin: 6px 0;\n color: var(--jp-ui-font-color1);\n}\n\n.sage-welcome-content strong {\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n}\n\n.sage-welcome-content em {\n font-style: italic;\n}\n\n.sage-welcome-content code {\n background: var(--jp-layout-color2);\n padding: 2px 6px;\n border-radius: 3px;\n font-family: var(--jp-code-font-family);\n font-size: 13px;\n}\n\n.sage-welcome-error {\n color: var(--jp-error-color1);\n padding: 20px;\n text-align: center;\n}\n\n.sage-welcome-error .error-details {\n font-size: 12px;\n margin-top: 10px;\n color: var(--jp-ui-font-color2);\n font-family: var(--jp-code-font-family);\n}\n\n/* Scrollbar styling for welcome message */\n.sage-welcome-message::-webkit-scrollbar {\n width: 8px;\n}\n\n.sage-welcome-message::-webkit-scrollbar-track {\n background: var(--jp-layout-color2);\n border-radius: 4px;\n}\n\n.sage-welcome-message::-webkit-scrollbar-thumb {\n background: var(--jp-border-color2);\n border-radius: 4px;\n}\n\n.sage-welcome-message::-webkit-scrollbar-thumb:hover {\n background: var(--jp-border-color1);\n}\n",""]);const s=i},37490:(n,o,e)=>{var a=e(85072),r=e.n(a),t=e(97825),i=e.n(t),s=e(77659),l=e.n(s),p=e(55056),d=e.n(p),c=e(10540),g=e.n(c),b=e(41113),m=e.n(b),f=e(5248),x={};x.styleTagTransform=m(),x.setAttributes=d(),x.insert=l().bind(null,"head"),x.domAPI=i(),x.insertStyleElement=g(),r()(f.A,x),f.A&&f.A.locals&&f.A.locals;var u=e(68475),h={};h.styleTagTransform=m(),h.setAttributes=d(),h.insert=l().bind(null,"head"),h.domAPI=i(),h.insertStyleElement=g(),r()(u.A,h),u.A&&u.A.locals&&u.A.locals;var v=e(8789),y={};y.styleTagTransform=m(),y.setAttributes=d(),y.insert=l().bind(null,"head"),y.domAPI=i(),y.insertStyleElement=g(),r()(v.A,y),v.A&&v.A.locals&&v.A.locals;var w=e(27439),j={};j.styleTagTransform=m(),j.setAttributes=d(),j.insert=l().bind(null,"head"),j.domAPI=i(),j.insertStyleElement=g(),r()(w.A,j),w.A&&w.A.locals&&w.A.locals;var k=e(81346),z={};z.styleTagTransform=m(),z.setAttributes=d(),z.insert=l().bind(null,"head"),z.domAPI=i(),z.insertStyleElement=g(),r()(k.A,z),k.A&&k.A.locals&&k.A.locals;var A=e(74246),M={};M.styleTagTransform=m(),M.setAttributes=d(),M.insert=l().bind(null,"head"),M.domAPI=i(),M.insertStyleElement=g(),r()(A.A,M),A.A&&A.A.locals&&A.A.locals;var S=e(65433),D={};D.styleTagTransform=m(),D.setAttributes=d(),D.insert=l().bind(null,"head"),D.domAPI=i(),D.insertStyleElement=g(),r()(S.A,D),S.A&&S.A.locals&&S.A.locals;var I=e(56785),E={};E.styleTagTransform=m(),E.setAttributes=d(),E.insert=l().bind(null,"head"),E.domAPI=i(),E.insertStyleElement=g(),r()(I.A,E),I.A&&I.A.locals&&I.A.locals;var T=e(47476),N={};N.styleTagTransform=m(),N.setAttributes=d(),N.insert=l().bind(null,"head"),N.domAPI=i(),N.insertStyleElement=g(),r()(T.A,N),T.A&&T.A.locals&&T.A.locals;var C=e(33114),L={};L.styleTagTransform=m(),L.setAttributes=d(),L.insert=l().bind(null,"head"),L.domAPI=i(),L.insertStyleElement=g(),r()(C.A,L),C.A&&C.A.locals&&C.A.locals;var Y=e(15544),O={};O.styleTagTransform=m(),O.setAttributes=d(),O.insert=l().bind(null,"head"),O.domAPI=i(),O.insertStyleElement=g(),r()(Y.A,O),Y.A&&Y.A.locals&&Y.A.locals;var B=e(67342),P={};P.styleTagTransform=m(),P.setAttributes=d(),P.insert=l().bind(null,"head"),P.domAPI=i(),P.insertStyleElement=g(),r()(B.A,P),B.A&&B.A.locals&&B.A.locals;var R=e(67826),U={};U.styleTagTransform=m(),U.setAttributes=d(),U.insert=l().bind(null,"head"),U.domAPI=i(),U.insertStyleElement=g(),r()(R.A,U),R.A&&R.A.locals&&R.A.locals;var Q=e(99508),F={};F.styleTagTransform=m(),F.setAttributes=d(),F.insert=l().bind(null,"head"),F.domAPI=i(),F.insertStyleElement=g(),r()(Q.A,F),Q.A&&Q.A.locals&&Q.A.locals;var H=e(10844),G={};G.styleTagTransform=m(),G.setAttributes=d(),G.insert=l().bind(null,"head"),G.domAPI=i(),G.insertStyleElement=g(),r()(H.A,G),H.A&&H.A.locals&&H.A.locals;var J=e(92331),W={};W.styleTagTransform=m(),W.setAttributes=d(),W.insert=l().bind(null,"head"),W.domAPI=i(),W.insertStyleElement=g(),r()(J.A,W),J.A&&J.A.locals&&J.A.locals;var X=e(95943),q={};q.styleTagTransform=m(),q.setAttributes=d(),q.insert=l().bind(null,"head"),q.domAPI=i(),q.insertStyleElement=g(),r()(X.A,q),X.A&&X.A.locals&&X.A.locals;var V=e(13342),_={};_.styleTagTransform=m(),_.setAttributes=d(),_.insert=l().bind(null,"head"),_.domAPI=i(),_.insertStyleElement=g(),r()(V.A,_),V.A&&V.A.locals&&V.A.locals;var Z=e(59025),K={};K.styleTagTransform=m(),K.setAttributes=d(),K.insert=l().bind(null,"head"),K.domAPI=i(),K.insertStyleElement=g(),r()(Z.A,K),Z.A&&Z.A.locals&&Z.A.locals;var $=e(61587),nn={};nn.styleTagTransform=m(),nn.setAttributes=d(),nn.insert=l().bind(null,"head"),nn.domAPI=i(),nn.insertStyleElement=g(),r()($.A,nn),$.A&&$.A.locals&&$.A.locals;var on=e(68384),en={};en.styleTagTransform=m(),en.setAttributes=d(),en.insert=l().bind(null,"head"),en.domAPI=i(),en.insertStyleElement=g(),r()(on.A,en),on.A&&on.A.locals&&on.A.locals;var an=e(84651),rn={};rn.styleTagTransform=m(),rn.setAttributes=d(),rn.insert=l().bind(null,"head"),rn.domAPI=i(),rn.insertStyleElement=g(),r()(an.A,rn),an.A&&an.A.locals&&an.A.locals;var tn=e(43852),sn={};sn.styleTagTransform=m(),sn.setAttributes=d(),sn.insert=l().bind(null,"head"),sn.domAPI=i(),sn.insertStyleElement=g(),r()(tn.A,sn),tn.A&&tn.A.locals&&tn.A.locals;var ln=e(34944),pn={};pn.styleTagTransform=m(),pn.setAttributes=d(),pn.insert=l().bind(null,"head"),pn.domAPI=i(),pn.insertStyleElement=g(),r()(ln.A,pn),ln.A&&ln.A.locals&&ln.A.locals;var dn=e(13574),cn={};cn.styleTagTransform=m(),cn.setAttributes=d(),cn.insert=l().bind(null,"head"),cn.domAPI=i(),cn.insertStyleElement=g(),r()(dn.A,cn),dn.A&&dn.A.locals&&dn.A.locals,e(14453),e(65566);var gn=e(15147),bn={};bn.styleTagTransform=m(),bn.setAttributes=d(),bn.insert=l().bind(null,"head"),bn.domAPI=i(),bn.insertStyleElement=g(),r()(gn.A,bn),gn.A&&gn.A.locals&&gn.A.locals},41113:n=>{n.exports=function(n,o){if(o.styleSheet)o.styleSheet.cssText=n;else{for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(document.createTextNode(n))}}},43852:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* File Explorer Widget Styles */\n.sage-ai-file-explorer-widget {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--jp-layout-color1);\n border-right: var(--jp-border-width) solid var(--jp-border-color2);\n}\n\n.sage-ai-file-explorer-content {\n padding: 8px;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n}\n\n/* Header */\n.file-explorer-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--jp-border-color2);\n}\n\n.file-explorer-header h3 {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n}\n\n.refresh-button {\n background: none;\n border: none;\n padding: 4px;\n border-radius: 3px;\n cursor: pointer;\n font-size: 12px;\n transition: background-color 0.2s;\n}\n\n.refresh-button:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.refresh-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Loading and Error States */\n.loading-indicator {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n color: var(--jp-ui-font-color2);\n font-size: 12px;\n}\n\n.schema-extraction-progress {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background-color: var(--jp-accent-color3);\n border: 1px solid var(--jp-accent-color1);\n border-radius: 4px;\n color: var(--jp-accent-color1);\n font-size: 12px;\n margin-bottom: 12px;\n}\n\n.loading-spinner {\n width: 14px;\n height: 14px;\n border: 1px solid #949494;\n border-bottom-color: transparent;\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: rotation 1s linear infinite;\n margin-bottom: 0 !important;\n }\n \n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n} \n\n.error-message {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background-color: var(--jp-error-color3);\n border: 1px solid var(--jp-error-color1);\n border-radius: 4px;\n color: var(--jp-error-color1);\n font-size: 12px;\n margin-bottom: 12px;\n}\n\n.error-icon {\n font-size: 14px;\n}\n\n/* File Upload */\n.file-upload-container {\n margin-bottom: 12px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n align-items: center;\n}\n\n.file-upload-info {\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n}\n\n.file-upload-info a,\n.file-upload-info a:hover {\n cursor: pointer;\n color: var(--jp-brand-color1);\n text-decoration: underline;\n}\n\n.add-folder-button {\n background: var(--jp-brand-color1);\n color: var(--jp-ui-inverse-font-color1);\n border: none;\n padding: 6px;\n border-radius: 3px;\n font-size: var(--jp-ui-font-size2);\n cursor: pointer;\n transition: background-color 0.2s;\n width: 100%;\n}\n\n.add-folder-button:hover {\n background: var(--jp-brand-color0);\n}\n\n.file-upload-box {\n border: 1px dashed var(--jp-border-color2);\n border-radius: 8px;\n padding: 20px;\n text-align: center;\n cursor: pointer;\n transition: all 0.3s ease;\n background: var(--jp-layout-color1);\n position: relative;\n width: 100%;\n}\n\n.file-upload-box:hover:not(.disabled) {\n border-color: var(--jp-brand-color1);\n background: var(--jp-layout-color1);\n}\n\n.file-upload-box.drag-over {\n border-color: var(--jp-brand-color1);\n background: var(--jp-brand-color3);\n transform: scale(1.02);\n}\n\n.file-upload-box.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n border-color: var(--jp-border-color3);\n}\n\n.upload-icon {\n font-size: 24px;\n margin-bottom: 8px;\n opacity: 0.7;\n}\n\n.upload-text {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.upload-primary {\n font-size: 14px;\n font-weight: 500;\n color: var(--jp-ui-font-color1);\n}\n\n.upload-secondary {\n font-size: 12px;\n color: var(--jp-ui-font-color2);\n}\n\n.upload-progress {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px;\n background-color: var(--jp-brand-color3);\n border: 1px solid var(--jp-brand-color1);\n border-radius: 4px;\n color: var(--jp-brand-color1);\n font-size: 12px;\n margin-bottom: 12px;\n}\n\n/* File Count Info */\n.file-count-info {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 8px;\n padding: 4px 8px;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.count-text {\n font-size: 11px;\n color: var(--jp-ui-font-color2);\n}\n\n.file-actions-bar {\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n.load-all-button {\n background: var(--jp-brand-color1);\n color: var(--jp-ui-inverse-font-color1);\n border: none;\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n cursor: pointer;\n transition: background-color 0.2s;\n}\n\n.load-all-button:hover {\n background: var(--jp-brand-color0);\n}\n\n.extract-schemas-button {\n background: var(--jp-ui-font-color1);\n color: var(--jp-ui-inverse-font-color1);\n border: none;\n display: flex;\n gap: 4px;\n align-items: center;\n padding: 4px 6px;\n border-radius: 3px;\n font-size: 10px;\n cursor: pointer;\n transition: background-color 0.2s;\n}\n\n.extract-schemas-button:hover:not(:disabled) {\n background: var(--jp-ui-font-color0);\n}\n\n.extract-schemas-button:disabled {\n background: var(--jp-layout-color3);\n color: var(--jp-ui-font-color2);\n cursor: not-allowed;\n}\n\n/* File List */\n.file-list {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n/* File Tree */\n.file-tree {\n display: flex;\n flex-direction: column;\n}\n\n.file-item {\n border-radius: 4px;\n border: 1px solid transparent;\n}\n\n.file-header {\n display: flex;\n align-items: center;\n padding: 8px 6px;\n cursor: pointer;\n transition: background-color 0.2s;\n gap: 6px;\n}\n\n.file-item:hover .file-header {\n background-color: var(--jp-layout-color2);\n border-color: var(--jp-border-color1);\n}\n\n.expand-button {\n background: none;\n border: none;\n padding: 2px 4px;\n border-radius: 2px;\n cursor: pointer;\n font-size: 10px;\n color: var(--jp-ui-font-color2);\n transition: all 0.2s;\n min-width: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.expand-button:hover {\n background-color: var(--jp-layout-color3);\n color: var(--jp-ui-font-color1);\n}\n\n.file-icon {\n font-size: 14px;\n margin-right: 8px;\n margin-top: 1px;\n flex-shrink: 0;\n}\n\n.file-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin-right: 8px;\n}\n\n.file-name {\n display: flex;\n justify-content: space-between;\n font-size: 12px;\n font-weight: 500;\n color: var(--jp-ui-font-color1);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.file-name-text {\n display: flex;\n gap: 4px;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.toggle-preview-button {\n display: flex;\n align-items: center;\n cursor: pointer;\n margin: 0 14px 6px;\n font-size: 10px;\n color: var(--jp-ui-font-color2);\n background: transparent;\n border-radius: 6px;\n border: 0;\n transition: all 0.2s;\n}\n\n.toggle-preview-button:hover {\n color: var(--jp-ui-font-color1);\n background: var(--jp-ui-font-color3);\n}\n\n.file-content-preview {\n background: var(--jp-layout-color3);\n border-radius: 4px;\n margin: 0 14px 6px;\n padding: 6px 8px;\n}\n\n.file-add-to-context-button {\n font-size: var(--jp-ui-font-size0);\n color: var(--jp-ui-font-color2);\n background: var(--jp-ui-font-color3);\n border-radius: 6px;\n border: 0;\n transition: all 0.2s;\n}\n\n.file-add-to-context-button:hover {\n color: var(--jp-ui-font-color1);\n background: var(--jp-ui-font-color3);\n}\n\n.file-actions {\n display: flex;\n flex-direction: row;\n gap: 2px;\n flex-shrink: 0;\n}\n\n.column-count {\n background: var(--jp-layout-color3);\n color: var(--jp-ui-font-color1);\n padding: 1px 4px;\n border-radius: 2px;\n font-size: 9px;\n font-weight: 600;\n flex-shrink: 0;\n height: fit-content;\n}\n\n.file-error-message {\n color: var(--jp-error-color1);\n font-size: 10px;\n font-weight: 600;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0; /* allows flex item to shrink */\n flex-shrink: 1; /* critical for ellipsis in flex */\n margin-right: 12px;\n}\n\n.file-type-badge {\n background: var(--jp-brand-color3);\n color: var(--jp-brand-color1);\n padding: 1px 4px;\n border-radius: 2px;\n font-size: 9px;\n font-weight: 600;\n text-transform: uppercase;\n flex-shrink: 0;\n}\n\n.file-path {\n font-size: 10px;\n color: var(--jp-ui-font-color3);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: var(--jp-code-font-family);\n line-height: 11px;\n}\n\n.file-meta {\n font-size: 10px;\n color: var(--jp-ui-font-color3);\n font-style: italic;\n}\n\n/* Schema Information */\n.schema-info {\n margin-top: 4px;\n padding: 4px 6px;\n background: var(--jp-layout-color2);\n border-radius: 3px;\n border-left: 2px solid var(--jp-accent-color1);\n}\n\n.schema-badge {\n font-size: 9px;\n font-weight: 600;\n color: var(--jp-accent-color1);\n text-transform: uppercase;\n}\n\n.schema-summary {\n font-size: 9px;\n color: var(--jp-ui-font-color2);\n margin-top: 2px;\n line-height: 1.2;\n max-height: 24px;\n overflow: hidden;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.schema-columns {\n display: flex;\n flex-wrap: wrap;\n gap: 2px;\n margin-top: 3px;\n}\n\n.column-tag {\n background: var(--jp-brand-color3);\n color: var(--jp-brand-color1);\n font-size: 8px;\n padding: 1px 3px;\n border-radius: 2px;\n font-family: var(--jp-code-font-family);\n white-space: nowrap;\n}\n\n.more-columns {\n font-size: 8px;\n color: var(--jp-ui-font-color2);\n font-style: italic;\n}\n\n.file-actions {\n display: flex;\n flex-direction: row;\n gap: 8px;\n flex-shrink: 0;\n align-items: center;\n}\n\n/* File Columns (Expandable Content) */\n.file-columns {\n padding: 8px 12px 8px 24px;\n background: var(--jp-layout-color1);\n border-top: 1px solid var(--jp-border-color2);\n border-radius: 0 0 4px 4px;\n}\n\n.column-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 4px 8px;\n border-radius: 2px;\n transition: background-color 0.2s;\n}\n\n.column-item:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.column-name {\n font-size: 11px;\n color: var(--jp-ui-font-color1);\n font-family: var(--jp-code-font-family);\n flex: 1;\n}\n\n.column-type {\n font-size: 10px;\n color: var(--jp-ui-font-color2);\n font-family: var(--jp-code-font-family);\n font-weight: 600;\n background: var(--jp-layout-color2);\n padding: 2px 4px;\n border-radius: 2px;\n}\n\n.action-button {\n background: none;\n border: none;\n padding: 2px;\n border-radius: 2px;\n cursor: pointer;\n font-size: 10px;\n transition: background-color 0.2s;\n opacity: 0.6;\n}\n\n.action-button:hover {\n background-color: var(--jp-layout-color3);\n opacity: 1;\n}\n\n.action-button.extract-button {\n color: var(--jp-accent-color1);\n}\n\n.action-button.extract-button:hover:not(:disabled) {\n background-color: var(--jp-accent-color3);\n}\n\n.action-button:disabled {\n opacity: 0.3;\n cursor: not-allowed;\n}\n\n/* File Actions Menu */\n.file-actions-menu {\n position: relative;\n display: inline-block;\n}\n\n.three-dot-button {\n background: none;\n border: none;\n padding: 2px 4px;\n border-radius: 2px;\n cursor: pointer;\n font-size: 12px;\n font-weight: bold;\n color: var(--jp-ui-font-color2);\n transition: all 0.2s;\n opacity: 0.6;\n transform: rotate(90deg);\n}\n\n.three-dot-button:hover {\n background-color: var(--jp-layout-color3);\n opacity: 1;\n}\n\n.actions-dialog {\n position: absolute;\n top: 100%;\n right: 0;\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n min-width: 120px;\n padding: 4px 0;\n margin-top: 2px;\n}\n\n.action-menu-item {\n display: block;\n width: 100%;\n background: none;\n border: none;\n padding: 6px 12px;\n text-align: left;\n cursor: pointer;\n font-size: 11px;\n color: var(--jp-ui-font-color1);\n transition: background-color 0.2s;\n white-space: nowrap;\n}\n\n.action-menu-item:hover {\n background-color: var(--jp-layout-color2);\n}\n\n/* Empty State */\n.empty-message {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 8px;\n text-align: center;\n color: var(--jp-ui-font-color2);\n gap: 8px;\n}\n\n.empty-icon {\n font-size: 24px;\n opacity: 0.5;\n}\n\n.empty-message span {\n font-size: 12px;\n font-weight: 500;\n}\n\n.empty-message small {\n font-size: 10px;\n opacity: 0.7;\n}\n\n/* Folder Tree Styles */\n.folder-item {\n display: flex;\n flex-direction: column;\n}\n\n.folder-header {\n display: flex;\n align-items: center;\n padding: 8px 6px;\n cursor: pointer;\n transition: background-color 0.2s;\n gap: 6px;\n border-radius: 4px;\n border: 1px solid transparent;\n}\n\n.folder-header:hover {\n background-color: var(--jp-layout-color2);\n border-color: var(--jp-border-color1);\n}\n\n.folder-arrow {\n transition: transform 0.2s ease;\n flex-shrink: 0;\n}\n\n.folder-icon {\n flex-shrink: 0;\n margin-right: 4px;\n}\n\n.folder-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.folder-name {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 12px;\n font-weight: 500;\n color: var(--jp-ui-font-color1);\n}\n\n.folder-name-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.folder-file-count {\n font-size: 10px;\n color: var(--jp-ui-font-color2);\n background: var(--jp-layout-color3);\n padding: 1px 4px;\n border-radius: 2px;\n font-weight: 400;\n}\n\n.folder-children {\n display: flex;\n flex-direction: column;\n margin-left: 8px;\n padding-left: 8px;\n}\n\n/* Indentation for nested items */\n.folder-item .file-item {\n margin-left: 0;\n}\n\n.folder-item .folder-item {\n margin-left: 0;\n}\n\n/* Smooth transitions for expand/collapse */\n.folder-children {\n transition: all 0.2s ease;\n overflow: hidden;\n}\n\n/* File item indentation within folders */\n.file-item {\n position: relative;\n}\n\n/* Scanned directory sections */\n.scanned-dir-section {\n margin-bottom: 12px;\n border: 1px solid var(--jp-border-color2);\n border-radius: 6px;\n}\n\n.scanned-dir-header {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin: 6px 8px;\n background: var(--jp-layout-color2);\n transition: background-color 0.2s ease;\n}\n\n.scanned-dir-header:hover {\n background: var(--jp-layout-color1);\n}\n\n.scanned-dir-header-left {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.scanned-dir-path {\n font-weight: 600;\n max-width: 250px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: inline-block;\n vertical-align: top;\n}\n\n.dir-badge {\n font-size: 9px;\n padding: 2px 6px;\n border-radius: 10px;\n border: 1px solid var(--jp-border-color2);\n display: none;\n}\n\n.dir-badge.default {\n background: rgba(0, 128, 255, 0.08);\n color: var(--jp-brand-color1);\n}\n\n.dir-badge.added {\n background: rgba(0, 200, 0, 0.08);\n color: #1a7f37;\n}\n\n.dir-count {\n margin-left: auto;\n font-size: 9px;\n color: var(--jp-ui-font-color2);\n display: none;\n}\n\n.dir-menu-container {\n position: relative;\n}\n\n.dir-menu-button {\n background: none;\n border: none;\n color: var(--jp-ui-font-color2);\n font-size: 16px;\n font-weight: bold;\n padding: 2px 6px;\n cursor: pointer;\n opacity: 0.5;\n transition: opacity 0.2s ease, background-color 0.2s ease;\n border-radius: 3px;\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n height: 20px;\n}\n\n.dir-menu-button:hover {\n opacity: 1;\n background-color: var(--jp-layout-color1);\n}\n\n.dir-menu-button:focus {\n outline: 1px solid var(--jp-brand-color1);\n outline-offset: 1px;\n}\n\n.dir-menu-dropdown {\n position: absolute;\n top: 100%;\n right: 0;\n background: var(--jp-layout-color0);\n border: 1px solid var(--jp-border-color1);\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n min-width: 140px;\n margin-top: 2px;\n}\n\n.dir-menu-item {\n display: block;\n width: 100%;\n padding: 8px 12px;\n background: none;\n border: none;\n text-align: left;\n color: var(--jp-ui-font-color0);\n font-size: 13px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n}\n\n.dir-menu-item:hover {\n background-color: var(--jp-layout-color1);\n}\n\n.dir-menu-item:focus {\n outline: 1px solid var(--jp-brand-color1);\n outline-offset: -1px;\n}\n\n.dir-content {\n transition: all 0.3s ease;\n overflow: hidden;\n}\n\n.scanned-dir-section.collapsed .dir-content {\n max-height: 0;\n opacity: 0;\n}\n\n.scanned-dir-section:hover .dir-badge, .scanned-dir-section:hover .dir-count {\n display: block;\n}\n\n/* Skeleton Loading Styles */\n.skeleton-loading {\n opacity: 0.6;\n pointer-events: none;\n}\n\n.skeleton-loading .scanned-dir-header {\n background: var(--jp-layout-color3);\n}\n\n.skeleton-loading .scanned-dir-path {\n background: var(--jp-layout-color3);\n color: transparent;\n border-radius: 3px;\n position: relative;\n overflow: hidden;\n}\n\n.skeleton-loading .scanned-dir-path::after {\n content: '';\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n background: linear-gradient(\n 90deg,\n transparent,\n rgba(255, 255, 255, 0.2),\n transparent\n );\n animation: skeleton-shimmer 1.5s infinite;\n}\n\n.skeleton-loading .dir-badge {\n background: var(--jp-layout-color3);\n color: transparent;\n border-color: var(--jp-layout-color3);\n}\n\n.skeleton-loading .dir-count {\n background: var(--jp-layout-color3);\n color: transparent;\n border-radius: 3px;\n padding: 2px 6px;\n min-width: 60px;\n display: block;\n}\n\n.skeleton-loading .file-tree {\n padding: 8px;\n}\n\n.skeleton-loading .file-item {\n background: var(--jp-layout-color3);\n border-radius: 4px;\n margin-bottom: 4px;\n height: 40px;\n position: relative;\n overflow: hidden;\n}\n\n.skeleton-loading .file-item::after {\n content: '';\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n background: linear-gradient(\n 90deg,\n transparent,\n rgba(255, 255, 255, 0.1),\n transparent\n );\n animation: skeleton-shimmer 1.5s infinite;\n}\n\n@keyframes skeleton-shimmer {\n 0% {\n left: -100%;\n }\n 100% {\n left: 100%;\n }\n}\n",""]);const s=i},47476:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* New Chat Display Widget Styles */\n.sage-ai-new-chat-display {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 2rem;\n height: 100% !important;\n overflow: auto;\n}\n\n.sage-ai-new-chat-container {\n max-width: 400px;\n width: 100%;\n text-align: center;\n justify-self: center;\n}\n\n.sage-ai-new-chat-title-section {\n margin-bottom: 2rem;\n text-align: center !important;\n}\n\n.sage-ai-new-chat-title {\n font-size: 13px;\n font-weight: 400;\n color: var(--jp-ui-font-color2);\n font-size: 13px;\n font-weight: 600;\n color: var(--jp-ui-font-color2);\n margin: 0 0 0.5rem 0;\n text-align: center;\n}\n\n.sage-ai-new-chat-help {\n font-size: 15px;\n font-weight: 500;\n color: var(--jp-ui-font-color0);\n font-size: 16px;\n color: var(--jp-ui-font-color1);\n margin: 0;\n text-align: center;\n font-weight: 600;\n}\n\n.sage-ai-new-chat-prompts-section {\n text-align: left;\n}\n\n.sage-ai-new-chat-prompts-title {\n font-size: 0.9rem;\n font-weight: 500;\n color: var(--jp-ui-font-color2);\n margin: 0 0 1rem 0;\n}\n\n.sage-ai-new-chat-prompts-list {\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: 100%;\n gap: 0.5rem;\n}\n\n.sage-ai-new-chat-prompt-button {\n background: var(--jp-layout-color2);\n border-radius: 12px !important;\n border: none;\n color: var(--jp-ui-font-color0);\n text-align: left;\n cursor: pointer;\n transition: all 0.2s ease;\n line-height: 1.4;\n padding: 4px 14px;\n justify-content: center;\n align-items: center;\n width: fit-content;\n font-size: 13px;\n align-self: center;\n}\n\n.sage-ai-new-chat-prompt-button:hover {\n background: var(--jp-layout-color3);\n border-color: var(--jp-brand-color1);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n.sage-ai-new-chat-prompt-button:active {\n transform: translateY(0);\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\n}\n\n.sage-ai-new-chat-prompt-button:focus {\n outline: none;\n border-color: var(--jp-brand-color1);\n box-shadow: 0 0 0 2px rgba(54, 124, 226, 0.2);\n}\n",""]);const s=i},55056:(n,o,e)=>{n.exports=function(n){var o=e.nc;o&&n.setAttribute("nonce",o)}},56785:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* Mode Selector Dropdown - Ultra Polished Design */\n\n/* Base mode selector styling with proper positioning */\n.sage-ai-mode-selector {\n position: absolute;\n bottom: 12px;\n left: 12px;\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 3px 8px;\n background-color: var(--jp-layout-color0);\n border: 1px solid var(--jp-border-color1);\n border-radius: 8px;\n cursor: pointer;\n font-size: var(--jp-ui-font-size1);\n color: var(--jp-ui-font-color0);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\n /* box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); */\n backdrop-filter: blur(8px);\n z-index: 10; /* Ensure it's above other input elements */\n}\n\n.sage-ai-mode-selector-arrow {\n display: flex;\n align-items: center;\n}\n\n.sage-ai-mode-selector:hover {\n border: 1px solid var(--jp-ui-font-color1);\n\n /* background: linear-gradient( */\n\n /* 135deg, */\n\n /* var(--jp-layout-color3) 0%, */\n\n /* var(--jp-layout-color4) 100% */\n\n /* ); */\n\n /* border-color: var(--jp-brand-color1); */\n\n /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); */\n\n /* transform: translateY(-1px); */\n}\n\n.sage-ai-mode-selector:active {\n transform: translateY(0);\n box-shadow: 0 2px 6px rgb(0 0 0 / 12%);\n}\n\n/* Mode display styling */\n.sage-ai-mode-display {\n display: flex;\n align-items: center;\n gap: 6px;\n flex: 1;\n}\n\n.sage-ai-mode-display .sage-ai-mode-option-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n}\n\n.sage-ai-mode-display .sage-ai-mode-option-icon svg {\n width: 16px;\n height: 16px;\n transition: fill 0.2s ease;\n}\n\n.sage-ai-mode-display .sage-ai-mode-option-text {\n font-weight: 500;\n font-size: 12px;\n letter-spacing: 0.02em;\n}\n\n/* Dropdown arrow styling */\n.sage-ai-mode-arrow {\n color: var(--jp-ui-font-color2);\n font-size: 10px;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n margin-left: auto;\n}\n\n.sage-ai-mode-selector:hover .sage-ai-mode-arrow {\n color: var(--jp-brand-color1);\n transform: translateY(-1px);\n}\n\n.sage-ai-mode-selector.open .sage-ai-mode-arrow {\n transform: rotate(180deg);\n color: var(--jp-brand-color1);\n}\n\n/* Dropdown container */\n.sage-ai-mode-dropdown {\n position: absolute;\n bottom: calc(100% + 8px); /* Position above the selector */\n left: 0;\n right: 0;\n min-width: 100%;\n background: var(--jp-layout-color1);\n border: .5px solid var(--jp-border-color1);\n border-radius: 12px;\n box-shadow:\n 0 10px 40px rgb(0 0 0 / 15%),\n 0 4px 12px rgb(0 0 0 / 10%),\n 0 0 0 1px rgb(255 255 255 / 5%);\n z-index: 2000;\n overflow: hidden;\n backdrop-filter: blur(20px);\n\n /* Animation properties */\n opacity: 0;\n visibility: hidden;\n transform: translateY(10px) scale(0.95);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.sage-ai-mode-dropdown.visible {\n opacity: 1;\n visibility: visible;\n transform: translateY(0) scale(1);\n width: fit-content !important;\n}\n\n.sage-ai-mode-dropdown.hidden {\n opacity: 0;\n visibility: hidden;\n transform: translateY(10px) scale(0.95);\n pointer-events: none;\n}\n\n/* Dropdown options container */\n.sage-ai-mode-dropdown-content {\n display: flex;\n flex-direction: column;\n padding: 6px;\n gap: 2px;\n}\n\n/* Individual mode options */\n.sage-ai-mode-option {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 6px 8px;\n border-radius: 8px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n position: relative;\n overflow: hidden;\n background: transparent;\n border: 1px solid transparent;\n}\n\n/* Mode option icon */\n.sage-ai-mode-option-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border-radius: 6px;\n\n /* background: var(--jp-layout-color2); */\n /*transition: all 0.4s ease;*/\n flex-shrink: 0;\n}\n\n.sage-ai-mode-option:hover {\n background: var(--jp-border-color1);\n}\n\n.sage-ai-mode-option-icon svg {\n width: 16px;\n height: 16px;\n transition: fill 0.2s ease;\n}\n\n/* Mode option text */\n.sage-ai-mode-option-text {\n font-weight: 500;\n font-size: 14px;\n color: var(--jp-ui-font-color0);\n transition: color 0.2s ease;\n letter-spacing: 0.02em;\n margin: 0;\n line-height: 1.3;\n}\n\n.sage-ai-mode-option:hover .sage-ai-mode-option-text {\n color: var(--jp-ui-font-color0);\n}\n\n/* Add mode descriptions */\n.sage-ai-mode-option-description {\n font-size: 10px;\n color: var(--jp-ui-font-color2);\n transition: color 0.2s ease;\n line-height: 160%;\n margin: 0 !important;\n}\n\n.sage-ai-mode-option:hover .sage-ai-mode-option-description {\n color: var(--jp-ui-font-color1);\n}\n\n/* Enhanced flex layout for dropdown content */\n.sage-ai-mode-dropdown {\n display: flex;\n flex-direction: column;\n}\n\n/* Staggered animation for options */\n.sage-ai-mode-option:nth-child(1) {\n transition-delay: 0.05s;\n}\n\n.sage-ai-mode-option:nth-child(2) {\n transition-delay: 0.1s;\n}\n\n.sage-ai-mode-option:nth-child(3) {\n transition-delay: 0.15s;\n}\n\n/* Loading animation when opening */\n@keyframes slideInUp {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes slideOutDown {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n\n to {\n opacity: 0;\n transform: translateY(20px);\n }\n}\n\n/* Enhanced opening animation */\n.sage-ai-mode-dropdown.opening {\n animation: slideInUp 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n}\n\n.sage-ai-mode-dropdown.closing {\n animation: slideOutDown 0.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;\n}\n\n/* Subtle glow effect for active/focused state */\n.sage-ai-mode-selector:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 2px var(--jp-border-color1),\n 0 4px 12px rgb(0 0 0 / 15%);\n}\n\n/* Dark theme adjustments */\n[data-jp-theme-name='JupyterLab Dark'] .sage-ai-mode-dropdown {\n box-shadow:\n 0 10px 40px rgb(0 0 0 / 30%),\n 0 4px 12px rgb(0 0 0 / 20%),\n 0 0 0 1px rgb(255 255 255 / 10%);\n}\n\n.sage-ai-mode-option-title {\n font-size: 13px;\n font-style: normal;\n font-weight: 500;\n margin: 0 !important;\n line-height: 155%;\n}\n\n/* Responsive design for smaller screens */\n@media (max-width: 768px) {\n .sage-ai-mode-dropdown {\n bottom: calc(100% + 4px);\n }\n\n .sage-ai-mode-option {\n padding: 10px 14px;\n }\n\n .sage-ai-mode-option-text {\n font-size: 13px;\n }\n}\n",""]);const s=i},59025:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* ========================================\n MODERN DATABASE CREATION MODAL STYLES\n Clean Solid Design with Modern Elements\n ======================================== */\n\n/* Base Modal Styling */\n.sage-ai-database-creation-modal {\n --primary-gradient: linear-gradient(135deg, #383838 0%, #595959 100%);\n --secondary-gradient: linear-gradient(135deg, #7a7a7a 0%, #949494 100%);\n --success-gradient: linear-gradient(135deg, #4a4a4a 0%, #5a5a5a 100%);\n}\n\n/* Light Mode Styles */\n[data-jp-theme-light='true'] .sage-ai-database-creation-modal {\n --shadow-soft: 0px 8px 17.1px rgba(208, 208, 208, 0.09);\n --shadow-hover: 0 8px 24px rgba(0, 0, 0, 0.12);\n --text-primary: #000000;\n --text-secondary: #595959;\n --text-light: #949494;\n --bg-primary: #ffffff;\n --bg-secondary: #f9fafb;\n --bg-tertiary: #f3f4f6;\n --border-light: #e5e7eb;\n --border-medium: #d1d5db;\n --modal-bg: #ffffff;\n --modal-border: #383838;\n --form-bg: #ffffff;\n --form-border: #383838;\n}\n\n/* Dark Mode Styles */\n[data-jp-theme-light='false'] .sage-ai-database-creation-modal {\n --shadow-soft: 0px 8px 17.1px rgba(208, 208, 208, 0.09);\n --shadow-hover: 0 8px 24px rgba(0, 0, 0, 0.32);\n --text-primary: #E7E7E7;\n --text-secondary: #949494;\n --text-light: #7a7a7a;\n --bg-primary: #111111;\n --bg-secondary: #1A1A1A;\n --bg-tertiary: #141414;\n --border-light: #383838;\n --border-medium: #383838;\n --modal-bg: #111111;\n --modal-border: #383838;\n --form-bg: #141414;\n --form-border: #383838;\n}\n\n/* Enhanced Modal Backdrop */\n.sage-ai-database-creation-modal .modal-backdrop {\n background-color: rgba(0, 0, 0, 0.56);\n backdrop-filter: blur(3.4px);\n}\n\n.sage-ai-database-creation-modal .modal-dialog {\n margin: 1rem auto;\n max-width: 650px;\n transform: scale(0.95);\n transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n\n.sage-ai-database-creation-modal.show .modal-dialog {\n transform: scale(1);\n}\n\n.sage-ai-database-creation-modal .modal-content {\n border: 1px solid var(--modal-border) !important;\n border-radius: 12px !important;\n overflow: hidden;\n box-shadow: var(--shadow-soft);\n background: var(--modal-bg);\n}\n\n/* Modal Content Wrapper */\n.modal-content-wrapper {\n background: var(--modal-bg);\n border: 1px solid var(--modal-border) !important;\n border-radius: 12px !important;\n position: relative;\n overflow: hidden;\n box-shadow: var(--shadow-soft);\n}\n\n/* Header Styling */\n.modal-header-modern {\n border-bottom: 0.5px solid var(--border-light) !important;\n padding: 1.5rem 2rem;\n position: relative;\n background: var(--modal-bg);\n}\n\n.modal-title-section {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.modal-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n background: var(--bg-secondary);\n border-radius: 12px !important;\n box-shadow: none;\n position: relative;\n overflow: hidden;\n border: 0.5px solid var(--border-light);\n}\n\n.icon-database {\n z-index: 2;\n position: relative;\n}\n\n/* Make connection icon black in light mode */\n[data-jp-theme-light='true'] .icon-database svg path {\n fill: #000000 !important;\n}\n\n.modal-title-text {\n flex: 1;\n}\n\n.sage-ai-database-modal-title {\n color: var(--jp-ui-font-color0) !important;\n font-weight: 700;\n font-size: 1.5rem;\n margin: 0;\n}\n\n.modal-subtitle {\n color: var(--text-secondary);\n margin: 0.25rem 0 0;\n font-size: 0.95rem;\n font-weight: 500;\n}\n\n/* Body Styling */\n.sage-ai-database-modal-body {\n padding: 1.5rem 2rem 2rem;\n background: transparent;\n overflow-y: auto;\n max-height: 75vw;\n}\n\n/* Form Sections */\n.form-section {\n margin-bottom: 2rem;\n border-radius: 12px !important;\n padding: 1.5rem;\n border: 0.8px solid var(--border-light) !important;\n transition: all 0.3s ease;\n}\n\n[data-jp-theme-light='true'] .form-section {\n background: var(--bg-secondary);\n border: 0.8px solid var(--border-light) !important;\n}\n\n[data-jp-theme-light='false'] .form-section {\n background: var(--bg-secondary);\n border: 0.8px solid var(--border-light) !important;\n}\n\n[data-jp-theme-light='true'] .form-section:hover {\n background: var(--bg-tertiary);\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n[data-jp-theme-light='false'] .form-section:hover {\n background: var(--bg-tertiary);\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.24);\n}\n\n.section-header {\n margin-bottom: 1.5rem;\n padding-bottom: 0.75rem;\n border-bottom: 0.5px solid var(--border-light) !important;\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n color: var(--text-primary);\n font-weight: 600;\n font-size: 1rem;\n margin: 0;\n}\n\n.section-icon {\n font-size: 1.2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 4px;\n background: var(--bg-tertiary);\n border-radius: 6px !important;\n box-shadow: none;\n border: 0.5px solid var(--border-light);\n}\n\n/* Modern Form Controls */\n.form-floating {\n position: relative;\n}\n\n.form-control-modern {\n background: var(--form-bg) !important;\n border: 0.8px solid var(--form-border) !important;\n border-radius: 8px !important;\n padding: 0.75rem 1rem !important;\n font-size: 1rem !important;\n font-weight: 500 !important;\n color: var(--text-primary) !important;\n transition: all 0.3s ease !important;\n box-shadow: none !important;\n}\n\n[data-jp-theme-light='true'] .form-control-modern:focus {\n background: var(--form-bg) !important;\n border-color: #595959 !important;\n box-shadow: 0 0 0 3px rgba(56, 56, 56, 0.1) !important;\n outline: none !important;\n}\n\n[data-jp-theme-light='false'] .form-control-modern:focus {\n background: var(--form-bg) !important;\n border-color: #595959 !important;\n box-shadow: 0 0 0 3px rgba(56, 56, 56, 0.3) !important;\n outline: none !important;\n}\n\n.form-control-modern.is-invalid {\n border-color: #f56565 !important;\n box-shadow: 0 0 0 4px rgba(245, 101, 101, 0.1) !important;\n}\n\n.form-floating > label {\n color: var(--text-secondary) !important;\n font-weight: 500 !important;\n font-size: 0.9rem !important;\n padding-left: 1.25rem !important;\n transition: all 0.2s ease !important;\n}\n\n.form-floating > .form-control-modern:focus ~ label,\n.form-floating > .form-control-modern:not(:placeholder-shown) ~ label {\n color: #6c757d !important;\n font-weight: 600 !important;\n}\n\n/* Database Type Selector */\n.database-type-selector {\n margin-bottom: 1rem;\n}\n\n.form-label-modern {\n color: var(--text-primary);\n font-weight: 600;\n font-size: 1rem;\n margin-bottom: 1rem;\n display: block;\n}\n\n.database-type-options {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));\n gap: 1rem;\n}\n\n.database-type-card {\n border-radius: 12px !important;\n padding: 1.5rem 1rem;\n text-align: center;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n overflow: hidden;\n}\n\n[data-jp-theme-light='true'] .database-type-card {\n background: var(--bg-secondary);\n border: 0.8px solid var(--border-light) !important;\n}\n\n[data-jp-theme-light='false'] .database-type-card {\n background: var(--bg-secondary);\n border: 0.8px solid var(--border-light) !important;\n}\n\n.database-type-card::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(56, 56, 56, 0.3);\n opacity: 0;\n transition: opacity 0.3s ease;\n z-index: 1;\n}\n\n.database-type-card.selected::before {\n opacity: 0.1;\n}\n\n[data-jp-theme-light='true'] .database-type-card:hover:not(.disabled) {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n border-color: #595959;\n}\n\n[data-jp-theme-light='false'] .database-type-card:hover:not(.disabled) {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.24);\n border-color: #595959;\n}\n\n[data-jp-theme-light='true'] .database-type-card.selected {\n border-color: #383838 !important;\n background: rgba(56, 56, 56, 0.08);\n box-shadow: none;\n}\n\n[data-jp-theme-light='false'] .database-type-card.selected {\n border-color: #383838 !important;\n background: rgba(56, 56, 56, 0.3);\n box-shadow: none;\n}\n\n[data-jp-theme-light='true'] .database-type-card.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: rgba(255, 255, 255, 0.5);\n}\n\n[data-jp-theme-light='false'] .database-type-card.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: rgba(45, 55, 72, 0.3);\n}\n\n.database-type-card * {\n position: relative;\n z-index: 2;\n}\n\n.db-icon svg {\n width: 100%;\n height: 100%;\n}\n\n/* Make database SVG icons black in light mode */\n[data-jp-theme-light='true'] .db-icon svg path {\n fill: #000000 !important;\n}\n\n.db-name {\n font-weight: 600;\n color: var(--text-primary);\n margin-bottom: 0.25rem;\n}\n\n.db-status {\n font-size: 0.75rem;\n font-weight: 600;\n padding: 0.25rem 0.75rem;\n border-radius: 20px;\n display: inline-block;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.db-status.available {\n background: var(--success-gradient);\n color: white;\n}\n\n.db-status.coming-soon {\n background: var(--secondary-gradient);\n color: white;\n}\n\n/* Connection Method Selector */\n.connection-method-selector {\n margin-bottom: 1rem;\n}\n\n.connection-method-toggle {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1rem;\n margin-top: 1rem;\n}\n\n.method-option {\n border-radius: 12px !important;\n padding: 1.5rem;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 1rem;\n position: relative;\n overflow: hidden;\n}\n\n[data-jp-theme-light='true'] .method-option {\n background: var(--bg-primary);\n border: 0.8px solid var(--border-light) !important;\n}\n\n[data-jp-theme-light='false'] .method-option {\n background: var(--bg-secondary);\n border: 0.8px solid var(--border-light) !important;\n}\n\n.method-option::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(56, 56, 56, 0.3);\n opacity: 0;\n transition: opacity 0.3s ease;\n z-index: 1;\n}\n\n.method-option.selected::before {\n opacity: 0.08;\n}\n\n[data-jp-theme-light='true'] .method-option:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n border-color: #595959;\n}\n\n[data-jp-theme-light='false'] .method-option:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.24);\n border-color: #595959;\n}\n\n[data-jp-theme-light='true'] .method-option.selected {\n border-color: #383838 !important;\n background: rgba(56, 56, 56, 0.08);\n box-shadow: none;\n}\n\n[data-jp-theme-light='false'] .method-option.selected {\n border-color: #383838 !important;\n background: rgba(56, 56, 56, 0.3);\n box-shadow: none;\n}\n\n.method-option * {\n position: relative;\n z-index: 2;\n}\n\n.method-icon {\n font-size: 1.75rem;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n border-radius: 12px;\n flex-shrink: 0;\n}\n\n[data-jp-theme-light='true'] .method-icon {\n background: var(--bg-secondary);\n}\n\n[data-jp-theme-light='false'] .method-icon {\n background: rgba(74, 85, 104, 0.6);\n}\n\n.method-details {\n flex: 1;\n}\n\n.method-name {\n font-weight: 600;\n color: var(--text-primary);\n font-size: 1rem;\n margin-bottom: 0.25rem;\n}\n\n.method-description {\n font-size: 0.875rem;\n color: var(--text-secondary);\n line-height: 1.4;\n}\n\n/* URL Help Text */\n.url-help-text {\n margin-top: 0.75rem;\n padding: 1rem;\n border-radius: 8px !important;\n border-left: 4px solid #383838;\n}\n\n[data-jp-theme-light='true'] .url-help-text {\n background: var(--bg-secondary);\n}\n\n[data-jp-theme-light='false'] .url-help-text {\n background: var(--bg-tertiary);\n}\n\n.url-help-text small {\n color: var(--text-secondary);\n line-height: 1.5;\n}\n\n.url-help-text strong {\n color: var(--text-primary);\n font-weight: 600;\n}\n\n/* Security Notice */\n.security-notice {\n border-radius: 8px !important;\n padding: 1.5rem;\n display: flex;\n gap: 1rem;\n align-items: flex-start;\n margin-top: 1.5rem;\n position: relative;\n overflow: hidden;\n}\n\n[data-jp-theme-light='true'] .security-notice {\n background: rgba(56, 56, 56, 0.05);\n border: 0.8px solid rgba(56, 56, 56, 0.2) !important;\n}\n\n[data-jp-theme-light='false'] .security-notice {\n background: rgba(56, 56, 56, 0.3);\n border: 0.8px solid rgba(56, 56, 56, 0.5) !important;\n}\n\n.security-notice::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 4px;\n height: 100%;\n background: var(--bg-tertiary);\n}\n\n.notice-icon {\n font-size: 1.5rem;\n flex-shrink: 0;\n margin-top: 0.125rem;\n}\n\n.notice-content strong {\n color: var(--text-primary);\n font-weight: 700;\n display: block;\n margin-bottom: 0.25rem;\n}\n\n.notice-content p {\n color: var(--text-secondary);\n margin: 0;\n font-size: 0.9rem;\n line-height: 1.5;\n}\n\n/* Footer Styling */\n.modal-footer-modern {\n border-top: 0.5px solid var(--border-light) !important;\n padding: 1.5rem 2rem;\n display: flex;\n gap: 1rem;\n justify-content: flex-end;\n align-items: center;\n}\n\n[data-jp-theme-light='true'] .modal-footer-modern {\n background: var(--bg-secondary);\n}\n\n[data-jp-theme-light='false'] .modal-footer-modern {\n background: var(--bg-secondary);\n}\n\n.btn-cancel {\n padding: 0.75rem 1.5rem !important;\n border-radius: 6px !important;\n font-weight: 600 !important;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;\n}\n\n[data-jp-theme-light='true'] .btn-cancel {\n background: var(--bg-primary) !important;\n border: 0.5px solid var(--border-light) !important;\n color: var(--text-secondary) !important;\n}\n\n[data-jp-theme-light='false'] .btn-cancel {\n background: var(--bg-primary) !important;\n border: 0.5px solid var(--border-light) !important;\n color: var(--text-secondary) !important;\n}\n\n[data-jp-theme-light='true'] .btn-cancel:hover:not(:disabled) {\n background: var(--bg-tertiary) !important;\n border-color: var(--border-medium) !important;\n transform: translateY(-1px) !important;\n box-shadow: none !important;\n}\n\n[data-jp-theme-light='false'] .btn-cancel:hover:not(:disabled) {\n background: var(--bg-tertiary) !important;\n border-color: var(--border-medium) !important;\n transform: translateY(-1px) !important;\n box-shadow: none !important;\n}\n\n.sage-ai-database-create-btn {\n background: #383838 !important;\n border: none !important;\n color: #E7E7E7 !important;\n padding: 0.75rem 2rem !important;\n border-radius: 6px !important;\n font-weight: 600 !important;\n font-size: 1rem !important;\n display: flex !important;\n align-items: center !important;\n gap: 0.5rem !important;\n position: relative !important;\n overflow: hidden !important;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;\n box-shadow: none !important;\n}\n\n.sage-ai-database-create-btn:hover:not(:disabled) {\n transform: translateY(-1px) !important;\n box-shadow: none !important;\n background: #595959 !important;\n}\n\n.sage-ai-database-create-btn:active {\n transform: translateY(0px) !important;\n}\n\n.sage-ai-database-create-btn:disabled {\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n transform: none !important;\n box-shadow: none !important;\n}\n\n.btn-icon {\n font-size: 1.1rem;\n z-index: 2;\n position: relative;\n}\n\n/* Modern Spinner */\n.spinner-modern {\n width: 20px;\n height: 20px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top: 2px solid white;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n z-index: 2;\n position: relative;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n/* Error State Button Styles */\n.footer-buttons-group {\n display: flex;\n gap: 1rem;\n align-items: center;\n justify-content: flex-end;\n width: 100%;\n}\n\n.btn-edit {\n padding: 0.75rem 1.5rem !important;\n border-radius: 6px !important;\n font-weight: 600 !important;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;\n display: flex !important;\n align-items: center !important;\n gap: 0.5rem !important;\n}\n\n[data-jp-theme-light='true'] .btn-edit {\n background: var(--bg-secondary) !important;\n border: 0.5px solid var(--border-light) !important;\n color: var(--text-primary) !important;\n}\n\n[data-jp-theme-light='false'] .btn-edit {\n background: var(--bg-secondary) !important;\n border: 0.5px solid var(--border-light) !important;\n color: var(--text-primary) !important;\n}\n\n[data-jp-theme-light='true'] .btn-edit:hover:not(:disabled) {\n background: var(--bg-tertiary) !important;\n border-color: var(--border-medium) !important;\n transform: translateY(-1px) !important;\n box-shadow: none !important;\n}\n\n[data-jp-theme-light='false'] .btn-edit:hover:not(:disabled) {\n background: var(--bg-tertiary) !important;\n border-color: var(--border-medium) !important;\n transform: translateY(-1px) !important;\n box-shadow: none !important;\n}\n\n.btn-save-without-schema {\n padding: 0.75rem 1.5rem !important;\n border-radius: 6px !important;\n font-weight: 600 !important;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;\n display: flex !important;\n align-items: center !important;\n gap: 0.5rem !important;\n}\n\n[data-jp-theme-light='true'] .btn-save-without-schema {\n background: rgba(245, 158, 11, 0.1) !important;\n border: 0.5px solid rgba(245, 158, 11, 0.3) !important;\n color: #d97706 !important;\n}\n\n[data-jp-theme-light='false'] .btn-save-without-schema {\n background: rgba(245, 158, 11, 0.2) !important;\n border: 0.5px solid rgba(245, 158, 11, 0.4) !important;\n color: #fbbf24 !important;\n}\n\n[data-jp-theme-light='true'] .btn-save-without-schema:hover:not(:disabled) {\n background: rgba(245, 158, 11, 0.15) !important;\n border-color: rgba(245, 158, 11, 0.5) !important;\n transform: translateY(-1px) !important;\n box-shadow: none !important;\n}\n\n[data-jp-theme-light='false'] .btn-save-without-schema:hover:not(:disabled) {\n background: rgba(245, 158, 11, 0.3) !important;\n border-color: rgba(245, 158, 11, 0.6) !important;\n transform: translateY(-1px) !important;\n box-shadow: none !important;\n}\n\n.btn-retry {\n padding: 0.75rem 2rem !important;\n border-radius: 6px !important;\n font-weight: 600 !important;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;\n display: flex !important;\n align-items: center !important;\n gap: 0.5rem !important;\n position: relative;\n overflow: hidden;\n background: #383838 !important;\n border: none !important;\n color: #E7E7E7 !important;\n box-shadow: none !important;\n}\n\n.btn-retry:hover:not(:disabled) {\n transform: translateY(-1px) !important;\n box-shadow: none !important;\n background: #595959 !important;\n}\n\n.btn-retry:active {\n transform: translateY(0px) !important;\n}\n\n.btn-retry:disabled {\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n transform: none !important;\n box-shadow: none !important;\n}\n\n/* Error State Option Cards Styling */\n.action-options {\n margin-top: 1.5rem;\n\n h6 {\n color: var(--jp-ui-font-color0) !important;\n }\n}\n\n.option-cards {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n margin-top: 1rem;\n}\n\n.option-card {\n padding: 1.25rem;\n border-radius: 12px !important;\n border: 0.8px solid var(--border-light) !important;\n background: var(--bg-secondary);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n gap: 1rem;\n position: relative;\n cursor: pointer;\n}\n\n.option-card.recommended {\n background: var(--bg-secondary);\n border-color: var(--border-medium) !important;\n}\n\n.option-card.warning {\n background: rgba(245, 158, 11, 0.05);\n border-color: rgba(245, 158, 11, 0.3) !important;\n}\n\n.option-icon {\n font-size: 1.5rem;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px !important;\n background: var(--bg-tertiary);\n border: 0.5px solid var(--border-light);\n}\n\n.option-content {\n flex: 1;\n}\n\n.option-title {\n font-weight: 600;\n font-size: 1rem;\n color: var(--text-primary);\n margin-bottom: 0.25rem;\n}\n\n.option-description {\n font-size: 0.875rem;\n color: var(--text-secondary);\n line-height: 1.4;\n}\n\n.option-badge {\n padding: 0.25rem 0.75rem;\n border-radius: 6px !important;\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n position: absolute;\n top: 0.75rem;\n right: 0.75rem;\n}\n\n.option-badge:not(.warning) {\n background: #383838;\n color: #E7E7E7;\n}\n\n.option-badge.warning {\n background: #f59e0b;\n color: white;\n}\n\n[data-jp-theme-light='true'] .option-card:hover {\n border-color: var(--border-medium) !important;\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n}\n\n[data-jp-theme-light='false'] .option-card:hover {\n border-color: var(--border-medium) !important;\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.24);\n}\n\n@media (max-width: 768px) {\n .footer-buttons-group {\n flex-direction: column-reverse;\n gap: 0.75rem;\n }\n\n .footer-buttons-group button {\n width: 100%;\n justify-content: center;\n }\n\n .option-cards {\n gap: 0.75rem;\n }\n\n .option-card {\n padding: 1rem;\n gap: 0.75rem;\n }\n\n .option-icon {\n width: 32px;\n height: 32px;\n font-size: 1.25rem;\n }\n}\n\n/* Error States */\n.invalid-feedback {\n color: #f56565 !important;\n font-size: 0.875rem !important;\n font-weight: 500 !important;\n margin-top: 0.5rem !important;\n display: flex !important;\n align-items: center !important;\n gap: 0.5rem !important;\n}\n\n/* Loading States */\n.form-section.loading {\n opacity: 0.7;\n pointer-events: none;\n}\n\n.form-section.loading::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.1);\n backdrop-filter: blur(2px);\n border-radius: 16px;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .sage-ai-database-creation-modal .modal-dialog {\n margin: 0.5rem;\n max-width: none;\n }\n\n .modal-header-modern {\n padding: 1.5rem 1.5rem 1rem;\n }\n\n .sage-ai-database-modal-body {\n padding: 1rem 1.5rem 1.5rem;\n }\n\n .modal-footer-modern {\n padding: 1rem 1.5rem;\n flex-direction: column-reverse;\n gap: 0.75rem;\n }\n\n .modal-footer-modern button {\n width: 100%;\n justify-content: center;\n }\n\n .database-type-options {\n grid-template-columns: 1fr;\n }\n\n .form-section {\n padding: 1rem;\n }\n\n .modal-title-section {\n flex-direction: column;\n text-align: center;\n gap: 0.75rem;\n }\n\n .modal-icon {\n align-self: center;\n }\n}\n\n@media (max-width: 480px) {\n .sage-ai-database-creation-modal .modal-dialog {\n margin: 0.25rem;\n }\n\n .modal-header-modern {\n padding: 1rem;\n }\n\n .sage-ai-database-modal-body {\n padding: 0.75rem 1rem 1rem;\n }\n\n .modal-footer-modern {\n padding: 0.75rem 1rem;\n }\n}\n\n/* Accessibility Improvements */\n.form-control-modern:focus-visible {\n outline: 2px solid #595959 !important;\n outline-offset: 2px;\n}\n\n.database-type-card:focus-visible {\n outline: 2px solid #595959 !important;\n outline-offset: 2px;\n}\n\n/* Performance Optimizations */\n.sage-ai-database-creation-modal * {\n will-change: transform, opacity;\n}\n\n.sage-ai-database-creation-modal .modal-dialog {\n contain: layout style paint;\n}\n\n/* Database Connections Management Styles - Updated for Modern Design */\n.sage-ai-database-connections {\n margin-top: 1rem;\n border: 0.8px solid var(--border-light) !important;\n border-radius: 12px !important;\n overflow: hidden;\n background: var(--bg-secondary);\n}\n\n.sage-ai-connections-header {\n padding: 1rem 1.5rem;\n border-bottom: 0.5px solid var(--border-light) !important;\n font-weight: 600;\n color: var(--text-primary);\n font-size: 1rem;\n}\n\n[data-jp-theme-light='true'] .sage-ai-connections-header {\n background: var(--bg-secondary);\n}\n\n[data-jp-theme-light='false'] .sage-ai-connections-header {\n background: var(--bg-secondary);\n}\n\n.sage-ai-connection-item {\n padding: 1rem 1.5rem;\n border-bottom: 0.5px solid var(--border-light) !important;\n background: transparent;\n transition: all 0.3s ease;\n}\n\n.sage-ai-connection-item:last-child {\n border-bottom: none;\n}\n\n[data-jp-theme-light='true'] .sage-ai-connection-item:hover {\n background: rgba(0, 0, 0, 0.02);\n transform: translateX(4px);\n}\n\n[data-jp-theme-light='false'] .sage-ai-connection-item:hover {\n background: rgba(255, 255, 255, 0.05);\n transform: translateX(4px);\n}\n\n.sage-ai-connection-info {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.5rem;\n}\n\n.sage-ai-connection-name {\n font-weight: 600;\n color: var(--text-primary);\n font-size: 1.1rem;\n}\n\n.sage-ai-connection-type {\n background: #383838;\n color: #E7E7E7;\n padding: 0.3rem 0.8rem;\n border-radius: 6px !important;\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.sage-ai-connection-details {\n color: var(--text-secondary);\n font-size: 0.9rem;\n font-weight: 500;\n}\n\n.sage-ai-connection-host {\n font-family: 'Monaco', 'Consolas', monospace;\n padding: 0.2rem 0.5rem;\n border-radius: 4px;\n display: inline-block;\n}\n\n[data-jp-theme-light='true'] .sage-ai-connection-host {\n background: rgba(0, 0, 0, 0.05);\n}\n\n[data-jp-theme-light='false'] .sage-ai-connection-host {\n background: rgba(255, 255, 255, 0.1);\n}\n\n/* Modern Button Styling */\n.sage-ai-button {\n padding: 0.75rem 1.5rem;\n border-radius: 6px !important;\n border: none;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n font-size: 1rem;\n position: relative;\n overflow: hidden;\n}\n\n.sage-ai-button-primary {\n background: #383838;\n color: #E7E7E7;\n box-shadow: none;\n}\n\n.sage-ai-button-primary:hover {\n transform: translateY(-1px);\n box-shadow: none;\n background: #595959;\n}\n\n.sage-ai-button-secondary {\n color: var(--text-primary);\n}\n\n[data-jp-theme-light='true'] .sage-ai-button-secondary {\n background: var(--bg-secondary);\n border: 0.8px solid var(--border-light) !important;\n}\n\n[data-jp-theme-light='false'] .sage-ai-button-secondary {\n background: var(--bg-secondary);\n border: 0.8px solid var(--border-light) !important;\n}\n\n[data-jp-theme-light='true'] .sage-ai-button-secondary:hover {\n background: var(--bg-tertiary);\n transform: translateY(-1px);\n}\n\n[data-jp-theme-light='false'] .sage-ai-button-secondary:hover {\n background: var(--bg-tertiary);\n transform: translateY(-1px);\n}\n\n/* ========================================\n COMPACT FORM LAYOUT STYLES\n ======================================== */\n\n/* Compact Form Section */\n.form-section-compact {\n margin-bottom: 0;\n padding: 0;\n border: none;\n background: transparent;\n}\n\n/* Compact Form Row - Label and Input Side by Side */\n.form-row-compact {\n display: flex;\n align-items: flex-start;\n gap: 1rem;\n margin-bottom: 0.875rem;\n padding: 0.75rem 1rem;\n border-radius: 8px;\n transition: background 0.2s ease;\n}\n\n.form-row-compact:hover {\n background: var(--bg-secondary);\n}\n\n/* Inline Label */\n.form-label-inline {\n min-width: 140px;\n max-width: 140px;\n padding-top: 0.5rem;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--text-primary);\n line-height: 1.4;\n margin: 0;\n flex-shrink: 0;\n}\n\n/* Input Wrapper - Takes Remaining Space */\n.form-input-wrapper {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n\n/* Compact Form Controls */\n.form-control-compact {\n border: 0.8px solid var(--form-border) !important;\n border-radius: 6px !important;\n padding: 0.5rem 0.75rem;\n font-size: 0.875rem;\n background: var(--form-bg);\n color: var(--text-primary);\n transition: all 0.2s ease;\n width: 100%;\n}\n\n[data-jp-theme-light='true'] .form-control-compact:focus {\n border-color: #595959 !important;\n box-shadow: 0 0 0 3px rgba(56, 56, 56, 0.1) !important;\n outline: none;\n background: var(--form-bg);\n}\n\n[data-jp-theme-light='false'] .form-control-compact:focus {\n border-color: #595959 !important;\n box-shadow: 0 0 0 3px rgba(56, 56, 56, 0.3) !important;\n outline: none;\n background: var(--form-bg);\n}\n\n.form-control-compact:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.form-control-compact::placeholder {\n font-size: 0.85rem;\n}\n\n[data-jp-theme-light='true'] .form-control-compact::placeholder {\n color: #000000;\n}\n\n[data-jp-theme-light='false'] .form-control-compact::placeholder {\n color: #ffffff;\n}\n\n/* Textarea Compact */\n.form-control-compact[as='textarea'],\ntextarea.form-control-compact {\n resize: vertical;\n min-height: 60px;\n}\n\n/* Input Group Compact (for Host:Port) */\n.input-group-compact {\n display: flex;\n gap: 0.5rem;\n width: 100%;\n}\n\n.input-group-compact .form-control-compact {\n flex: 1;\n}\n\n.input-group-compact .port-input {\n max-width: 100px;\n flex-shrink: 0;\n}\n\n/* Inline Error Messages */\n.invalid-feedback-inline {\n color: #dc3545;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n display: block;\n}\n\n.form-control-compact.is-invalid {\n border-color: #dc3545;\n}\n\n/* Database Type Buttons - Compact */\n.database-type-buttons-compact {\n display: flex;\n gap: 0.5rem;\n flex-wrap: wrap;\n}\n\n.db-type-btn-compact {\n flex: 1;\n min-width: 110px;\n padding: 0.5rem 0.75rem;\n border: 0.8px solid var(--border-medium) !important;\n border-radius: 6px !important;\n background: var(--form-bg);\n color: var(--text-primary);\n font-size: 0.85rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n}\n\n.db-type-btn-compact:hover {\n border-color: #595959 !important;\n background: var(--bg-secondary);\n transform: translateY(-1px);\n}\n\n.db-type-btn-compact.selected {\n border-color: #383838 !important;\n background: #383838 !important;\n color: #E7E7E7 !important;\n box-shadow: none;\n}\n\n.db-type-btn-compact:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.db-icon-small {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 1.1rem;\n line-height: 1;\n}\n\n.documentation-link {\n color: var(--jp-ui-font-color2) !important;\n}\n\n.db-icon-small svg {\n width: 100%;\n height: 100%;\n}\n\n/* Make small database SVG icons black in light mode */\n[data-jp-theme-light='true'] .db-icon-small svg path {\n fill: #000000 !important;\n}\n\n/* Connection Method Buttons - Compact */\n.connection-method-buttons-compact {\n display: flex;\n gap: 0.5rem;\n}\n\n.method-btn-compact {\n flex: 1;\n padding: 0.5rem 0.75rem;\n border: 0.8px solid var(--border-medium) !important;\n border-radius: 6px !important;\n background: var(--form-bg);\n color: var(--text-primary);\n font-size: 0.85rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.375rem;\n white-space: nowrap;\n}\n\n.method-btn-compact:hover:not(:disabled) {\n border-color: #595959 !important;\n background: var(--bg-secondary);\n transform: translateY(-1px);\n}\n\n.method-btn-compact.selected {\n border-color: #383838 !important;\n background: #383838 !important;\n color: #E7E7E7 !important;\n box-shadow: none;\n}\n\n.method-btn-compact:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n background: var(--bg-tertiary);\n}\n\n/* Security Notice - Compact */\n.security-notice-compact {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n background: rgba(56, 56, 56, 0.08);\n border: 0.8px solid rgba(56, 56, 56, 0.2) !important;\n border-radius: 6px !important;\n margin-top: 1rem;\n font-size: 0.8rem;\n color: var(--text-secondary);\n}\n\n[data-jp-theme-light='false'] .security-notice-compact {\n background: rgba(56, 56, 56, 0.3);\n border-color: rgba(56, 56, 56, 0.5) !important;\n}\n\n.notice-icon-small {\n font-size: 1rem;\n flex-shrink: 0;\n}\n\n.notice-text-compact {\n line-height: 1.4;\n}\n\n/* Reduced gap for credential input rows */\n.form-row-compact-reduced {\n margin-bottom: 0.5rem;\n padding: 2px 1rem !important;\n}\n\n/* Responsive Adjustments */\n@media (max-width: 768px) {\n .form-row-compact {\n flex-direction: column;\n gap: 0.5rem;\n }\n\n .form-label-inline {\n min-width: unset;\n max-width: unset;\n padding-top: 0;\n }\n\n .database-type-buttons-compact {\n flex-direction: column;\n }\n\n .db-type-btn-compact {\n min-width: unset;\n }\n\n .connection-method-buttons-compact {\n flex-direction: column;\n }\n\n .input-group-compact .port-input {\n max-width: unset;\n }\n}\n\n/* Number Input Styling */\ninput[type='number'].form-control-compact {\n appearance: textfield;\n -moz-appearance: textfield;\n}\n\ninput[type='number'].form-control-compact::-webkit-outer-spin-button,\ninput[type='number'].form-control-compact::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n",""]);const s=i},61587:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* Data Connection CTA Interface Styles - Modern Design */\n\n/* Main Container */\n.sage-ai-data-cta-container {\n background: var(--jp-layout-color0);\n border: 1px solid var(--jp-border-color2);\n border-radius: 16px;\n padding: 32px;\n margin: 16px 16px 16px 88px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n font-family: var(--jp-ui-font-family);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-cta-container {\n background: linear-gradient(145deg, #1e1e1e 0%, #252525 100%);\n border-color: #404040;\n box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);\n}\n\n[data-jp-theme-light='true'] .sage-ai-data-cta-container {\n background: linear-gradient(145deg, #ffffff 0%, #fafbfc 100%);\n border-color: #e1e5e9;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);\n}\n\n.sage-ai-data-cta-container:hover {\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);\n border-color: var(--jp-brand-color1);\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-cta-container:hover {\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);\n border-color: #4fc3f7;\n}\n\n/* Collapsed State */\n.sage-ai-data-cta-container.collapsed {\n padding: 0;\n background: transparent;\n border: none;\n box-shadow: none;\n margin: 8px 76px;\n}\n\n.sage-ai-data-cta-container.collapsed:hover {\n box-shadow: none;\n border: none;\n}\n\n.sage-ai-data-cta-container.collapsed .sage-ai-data-cta-content {\n display: none;\n}\n\n.sage-ai-data-cta-container.collapsed .sage-ai-data-cta-toggle {\n /*position: static;*/\n width: 100%;\n max-width: 200px;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 24px;\n background: var(--jp-layout-color1);\n border: 2px solid var(--jp-border-color2);\n border-radius: 12px;\n opacity: 1;\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-cta-container.collapsed .sage-ai-data-cta-toggle {\n background: #2a2a2a;\n border-color: #404040;\n}\n\n.sage-ai-data-cta-container.collapsed .sage-ai-data-cta-toggle:hover {\n border-color: var(--jp-brand-color1);\n background: var(--jp-layout-color2);\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-cta-container.collapsed .sage-ai-data-cta-toggle:hover {\n border-color: #4fc3f7;\n background: #333333;\n}\n\n/* Toggle Button */\n.sage-ai-data-cta-toggle {\n position: absolute;\n bottom: -24px;\n left: 50%;\n transform: translateX(-50%);\n background: var(--jp-layout-color0);\n border: 1px solid var(--jp-border-color2);\n border-radius: 20px !important;\n padding: 6px 12px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n color: var(--jp-ui-font-color2);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n opacity: 0;\n pointer-events: none;\n z-index: 10;\n}\n\n.sage-ai-data-cta-container:hover .sage-ai-data-cta-toggle {\n opacity: 1;\n pointer-events: auto;\n}\n\n.sage-ai-data-cta-container.collapsed .sage-ai-data-cta-toggle {\n opacity: 1;\n pointer-events: auto;\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-cta-toggle {\n background: #2a2a2a;\n border-color: #404040;\n}\n\n.sage-ai-data-cta-toggle:hover {\n background: var(--jp-brand-color1);\n border-color: var(--jp-brand-color1);\n color: white;\n transform: translateX(-50%) scale(1.05);\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-cta-toggle:hover {\n background: #4fc3f7;\n border-color: #4fc3f7;\n}\n\n.sage-ai-data-cta-toggle:active {\n transform: translateX(-50%) scale(0.98);\n}\n\n.sage-ai-data-cta-container.collapsed .sage-ai-data-cta-toggle:active {\n transform: scale(0.98);\n}\n\n.sage-ai-data-cta-toggle:focus {\n outline: 2px solid var(--jp-brand-color1);\n outline-offset: 2px;\n}\n\n.toggle-icon {\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.sage-ai-data-cta-container.collapsed .toggle-icon {\n transform: rotate(180deg);\n}\n\n/* Header Section */\n.sage-ai-data-cta-header {\n margin-bottom: 32px;\n text-align: center;\n}\n\n.sage-ai-data-cta-title {\n font-size: 24px;\n font-weight: 700;\n color: var(--jp-ui-font-color1) !important;\n margin-bottom: 8px;\n}\n\n.sage-ai-data-cta-subtitle {\n font-size: 14px;\n color: var(--jp-ui-font-color2);\n line-height: 1.5;\n}\n\n/* Chat Section */\n.sage-ai-data-cta-chat-section {\n margin-bottom: 32px;\n}\n\n.sage-ai-data-cta-chat-label {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n font-size: 15px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n}\n\n.chat-icon {\n color: var(--jp-brand-color1);\n}\n\n[data-jp-theme-light='false'] .chat-icon {\n color: #4fc3f7;\n}\n\n.sage-ai-data-cta-chat-wrapper {\n display: flex;\n gap: 12px;\n align-items: flex-end;\n background: var(--jp-layout-color1);\n border: 2px solid var(--jp-border-color2);\n border-radius: 12px;\n padding: 8px;\n transition: all 0.2s ease;\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-cta-chat-wrapper {\n background: #2a2a2a;\n border-color: #404040;\n}\n\n[data-jp-theme-light='true'] .sage-ai-data-cta-chat-wrapper {\n background: #ffffff;\n border-color: #d1d5db;\n}\n\n.sage-ai-data-cta-chat-wrapper:focus-within {\n border-color: var(--jp-brand-color1);\n box-shadow: 0 0 0 3px rgba(3, 102, 214, 0.1);\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-cta-chat-wrapper:focus-within {\n border-color: #4fc3f7;\n box-shadow: 0 0 0 3px rgba(79, 195, 247, 0.15);\n}\n\n.sage-ai-data-cta-input {\n flex: 1;\n background: transparent;\n border: none;\n padding: 8px 12px;\n font-size: 14px;\n color: var(--jp-ui-font-color1);\n font-family: var(--jp-ui-font-family);\n resize: none;\n min-height: 40px;\n max-height: 120px;\n line-height: 1.5;\n}\n\n.sage-ai-data-cta-input:focus {\n outline: none;\n}\n\n.sage-ai-data-cta-input::placeholder {\n color: var(--jp-ui-font-color2);\n font-style: italic;\n opacity: 0.7;\n}\n\n.sage-ai-data-cta-send-btn {\n background: var(--jp-brand-color1);\n color: white;\n border: none;\n border-radius: 8px !important;\n padding: 10px;\n cursor: pointer;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 40px;\n min-height: 40px;\n flex-shrink: 0;\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-cta-send-btn {\n background: #4fc3f7;\n}\n\n.sage-ai-data-cta-send-btn:hover {\n background: var(--jp-brand-color0);\n transform: scale(1.05);\n box-shadow: 0 4px 12px rgba(3, 102, 214, 0.3);\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-cta-send-btn:hover {\n background: #29b6f6;\n box-shadow: 0 4px 12px rgba(79, 195, 247, 0.4);\n}\n\n.sage-ai-data-cta-send-btn:active {\n transform: scale(0.98);\n}\n\n.sage-ai-data-cta-send-btn svg {\n transition: transform 0.2s ease;\n}\n\n.sage-ai-data-cta-send-btn:hover svg {\n transform: translateX(2px);\n}\n\n/* Connect Section */\n.sage-ai-data-connect-section {\n border-top: 1px solid var(--jp-border-color2);\n padding-top: 32px;\n}\n\n.sage-ai-data-section-title {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n}\n\n.section-icon {\n color: var(--jp-brand-color1);\n}\n\n[data-jp-theme-light='false'] .section-icon {\n color: #4fc3f7;\n}\n\n/* Files Card */\n.sage-ai-data-files-card {\n display: flex;\n align-items: center;\n gap: 16px;\n background: var(--jp-layout-color1);\n border: 2px solid var(--jp-border-color2);\n border-radius: 12px;\n padding: 20px;\n margin-bottom: 24px;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-files-card {\n background: #2a2a2a;\n border-color: #404040;\n}\n\n[data-jp-theme-light='true'] .sage-ai-data-files-card {\n background: #f8f9fa;\n border-color: #e1e5e9;\n}\n\n.sage-ai-data-files-card:hover {\n border-color: var(--jp-brand-color1);\n transform: translateY(-2px);\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-files-card:hover {\n border-color: #4fc3f7;\n box-shadow: 0 4px 16px rgba(79, 195, 247, 0.2);\n}\n\n.sage-ai-data-files-card:active {\n transform: translateY(0);\n}\n\n.card-icon {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n background: var(--jp-brand-color1);\n border-radius: 10px;\n color: white;\n}\n\n[data-jp-theme-light='false'] .card-icon {\n background: #4fc3f7;\n}\n\n.card-content {\n flex: 1;\n}\n\n.card-title {\n font-size: 16px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n margin-bottom: 4px;\n}\n\n.card-description {\n font-size: 13px;\n color: var(--jp-ui-font-color2);\n line-height: 1.4;\n}\n\n.card-arrow {\n flex-shrink: 0;\n color: var(--jp-ui-font-color2);\n transition: transform 0.2s ease;\n}\n\n.sage-ai-data-files-card:hover .card-arrow {\n transform: translateX(4px);\n color: var(--jp-brand-color1);\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-files-card:hover .card-arrow {\n color: #4fc3f7;\n}\n\n/* Database Section */\n.sage-ai-data-db-section {\n margin-top: 24px;\n}\n\n.sage-ai-data-db-label {\n font-size: 14px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n margin-bottom: 12px;\n}\n\n.sage-ai-data-db-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n gap: 12px;\n}\n\n/* Database Cards */\n.sage-ai-data-db-card {\n background: var(--jp-layout-color1);\n border: 2px solid var(--jp-border-color2);\n border-radius: 12px;\n padding: 16px;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n overflow: hidden;\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-db-card {\n background: #2a2a2a;\n border-color: #404040;\n}\n\n[data-jp-theme-light='true'] .sage-ai-data-db-card {\n background: #ffffff;\n border-color: #e1e5e9;\n}\n\n.sage-ai-data-db-card::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 3px;\n background: linear-gradient(90deg, transparent, currentColor, transparent);\n opacity: 0;\n transition: opacity 0.3s ease;\n}\n\n.sage-ai-data-db-card:hover::before {\n opacity: 1;\n}\n\n.sage-ai-data-db-card:hover {\n transform: translateY(-4px);\n box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-db-card:hover {\n box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);\n}\n\n.sage-ai-data-db-card:active {\n transform: translateY(-2px);\n}\n\n.db-card-header {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n.db-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n line-height: 1;\n}\n\n.db-icon svg {\n width: 100%;\n height: 100%;\n}\n\n.db-icon-inline {\n width: 1em;\n height: 1em;\n display: inline-block;\n vertical-align: middle;\n}\n\n.db-name {\n font-size: 14px;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n line-height: 1;\n}\n\n.db-description {\n font-size: 12px;\n color: var(--jp-ui-font-color2);\n line-height: 1.4;\n}\n\n/* Database-specific styling */\n.sage-ai-data-db-card.postgresql {\n color: #336791;\n}\n\n.sage-ai-data-db-card.postgresql:hover {\n border-color: #336791;\n background: rgba(51, 103, 145, 0.05);\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-db-card.postgresql:hover {\n background: rgba(51, 103, 145, 0.15);\n}\n\n.sage-ai-data-db-card.mysql {\n color: #f29111;\n}\n\n.sage-ai-data-db-card.mysql:hover {\n border-color: #f29111;\n background: rgba(242, 145, 17, 0.05);\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-db-card.mysql:hover {\n background: rgba(242, 145, 17, 0.15);\n}\n\n.sage-ai-data-db-card.snowflake {\n color: #29b5e8;\n}\n\n.sage-ai-data-db-card.snowflake:hover {\n border-color: #29b5e8;\n background: rgba(41, 181, 232, 0.05);\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-db-card.snowflake:hover {\n background: rgba(41, 181, 232, 0.15);\n}\n\n/* Accessibility - Focus States */\n.sage-ai-data-files-card:focus,\n.sage-ai-data-db-card:focus {\n outline: 2px solid var(--jp-brand-color1);\n outline-offset: 2px;\n}\n\n[data-jp-theme-light='false'] .sage-ai-data-files-card:focus,\n[data-jp-theme-light='false'] .sage-ai-data-db-card:focus {\n outline-color: #4fc3f7;\n}\n\n/* Responsive Design */\n@media (max-width: 900px) {\n .sage-ai-data-cta-container {\n margin: 16px 40px;\n padding: 24px;\n }\n}\n\n@media (max-width: 768px) {\n .sage-ai-data-cta-container {\n margin: 16px 20px;\n padding: 20px;\n }\n\n .sage-ai-data-cta-title {\n font-size: 20px;\n }\n\n .sage-ai-data-db-grid {\n grid-template-columns: 1fr;\n }\n\n .sage-ai-data-files-card {\n flex-direction: column;\n text-align: center;\n }\n\n .card-arrow {\n display: none;\n }\n}\n\n/* Smooth Animations */\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.sage-ai-data-cta-container {\n animation: fadeIn 0.4s ease-out;\n}\n\n@keyframes pulse {\n 0%, 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.7;\n }\n}\n\n.sage-ai-data-cta-send-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n animation: none;\n}\n\n.sage-ai-data-cta-send-btn:disabled:hover {\n transform: none;\n box-shadow: none;\n}\n",""]);const s=i},65433:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,".sage-ai-mention-dropdown {\n position: absolute;\n background-color: var(--jp-layout-color1);\n border: 1px solid var(--jp-inverse-border-color);\n border-radius: 8px;\n box-shadow: 0 2px 8px rgb(0 0 0 / 15%);\n z-index: 150000 !important;\n max-height: 200px;\n overflow: hidden;\n width: auto;\n display: none;\n flex-direction: column;\n min-width: 65%;\n}\n\n[data-jp-theme-light='false'] .sage-ai-mention-dropdown {\n background-color: var(--jp-layout-color1);\n}\n\n.sage-ai-mention-dropdown.visible {\n display: flex;\n}\n\n/* Search container with icon and input */\n.sage-ai-mention-search-container {\n display: flex;\n padding: 4px 8px;\n border-radius: 8px;\n align-items: center;\n gap: 8px;\n align-self: stretch;\n border: 0.8px solid var(--jp-border-color3);\n background-color: var(--jp-layout-color0);\n}\n\n.sage-ai-mention-search-icon {\n width: 16px;\n height: 16px;\n color: var(--jp-ui-font-color2);\n flex-shrink: 0;\n}\n\n.sage-ai-mention-search-input {\n flex: 1;\n outline: none;\n background: transparent;\n color: var(--jp-ui-font-color1);\n font-size: 12px;\n padding: 4px 0;\n border: none;\n}\n\n.sage-ai-mention-search-input::placeholder {\n color: var(--jp-ui-font-color2);\n}\n\n/* Category header container */\n.sage-ai-mention-header-container {\n display: flex;\n padding: 8px 10px;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 8px;\n align-self: stretch;\n flex-shrink: 0;\n}\n\n/* Content container - scrollable area */\n.sage-ai-mention-content {\n overflow-y: auto;\n overflow-x: hidden;\n flex: 1;\n}\n\n/* Category header with back caret */\n.sage-ai-mention-category-header {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n padding: 0;\n width: 100%;\n}\n\n.sage-ai-mention-category-header:hover {\n opacity: 0.8;\n}\n\n.sage-ai-mention-back-icon {\n width: 14px;\n height: 15px;\n color: #e7e7e7;\n flex-shrink: 0;\n}\n\n.sage-ai-mention-category-title {\n overflow: hidden;\n color: var(--Text-text-primary, #e7e7e7);\n text-overflow: ellipsis;\n font-family: Geist;\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: 160%; /* 19.2px */\n flex: 1;\n}\n\n.sage-ai-mention-item {\n padding: 8px 10px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 8px;\n\n /* border-bottom: 1px solid var(--jp-border-color2); */\n}\n\n.sage-ai-mention-item:last-child {\n border-bottom: none;\n}\n\n.sage-ai-mention-item:hover,\n.sage-ai-mention-item.active {\n background-color: var(--jp-layout-color2);\n}\n\n[data-jp-theme-light='false'] {\n .sage-ai-mention-content,\n .sage-ai-mention-dropdown {\n background: #111;\n }\n}\n\n.sage-ai-mention-item-icon {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--jp-ui-font-color1);\n font-size: 14px;\n}\n\n.sage-ai-mention-item-text {\n font-size: 12px;\n color: var(--jp-ui-font-color1);\n flex: 1;\n}\n\n.sage-ai-mention-item-description {\n font-size: var(--jp-ui-font-size0);\n color: var(--jp-ui-font-color2);\n font-style: italic;\n}\n\n.sage-ai-mention-category-main {\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-mention-subcategory {\n padding: 6px 16px;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 6px;\n background-color: var(--jp-layout-color0);\n}\n\n.sage-ai-mention-subcategory:hover,\n.sage-ai-mention-subcategory.active {\n background-color: var(--jp-layout-color2);\n}\n\n.sage-ai-mention-empty {\n padding: 12px;\n font-style: italic;\n color: var(--jp-ui-font-color2);\n text-align: center;\n}\n\n/* Enhanced keyboard navigation styles */\n[data-jp-theme-light='false'] .sage-ai-mention-item.active,\n.sage-ai-mention-subcategory.active {\n background-color: rgb(56 56 56 / 30%) !important;\n\n /* color: var(--jp-ui-inverse-font-color1) !important; */\n\n /* border-left: 3px solid var(--jp-brand-color0); */\n}\n\n.sage-ai-mention-item.active .sage-ai-mention-item-icon,\n.sage-ai-mention-subcategory.active .sage-ai-mention-item-icon {\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-mention-item.active .sage-ai-mention-item-description,\n.sage-ai-mention-subcategory.active .sage-ai-mention-item-description {\n color: var(--jp-ui-font-color2) !important;\n}\n\n.sage-ai-mention-separator {\n padding: 4px 12px;\n font-size: 10px;\n font-weight: bold;\n color: var(--jp-ui-font-color2);\n background-color: var(--jp-layout-color2);\n border-top: 1px solid var(--jp-border-color1);\n border-bottom: 1px solid var(--jp-border-color1);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n/* Loading indicator styles */\n.sage-ai-mention-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px 12px;\n gap: 8px;\n color: var(--jp-ui-font-color2);\n font-size: 12px;\n}\n\n.sage-ai-mention-loading-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid var(--jp-border-color3);\n border-top: 2px solid var(--jp-brand-color1);\n border-radius: 50%;\n animation: sage-ai-mention-spinner-rotate 1s linear infinite;\n}\n\n@keyframes sage-ai-mention-spinner-rotate {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n.sage-ai-mention-loading-text {\n color: var(--jp-ui-font-color2);\n font-style: italic;\n}\n",""]);const s=i},65566:(n,o,e)=>{e.r(o),e.d(o,{default:()=>u});var a=e(85072),r=e.n(a),t=e(97825),i=e.n(t),s=e(77659),l=e.n(s),p=e(55056),d=e.n(p),c=e(10540),g=e.n(c),b=e(41113),m=e.n(b),f=e(92791),x={};x.styleTagTransform=m(),x.setAttributes=d(),x.insert=l().bind(null,"head"),x.domAPI=i(),x.insertStyleElement=g(),r()(f.A,x);const u=f.A&&f.A.locals?f.A.locals:void 0},67342:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,'/* More Options Popover Styles */\n.sage-ai-more-options-widget {\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n z-index: 9999;\n}\n\n.sage-ai-more-options-popover {\n pointer-events: auto;\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color1);\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 4px;\n min-width: 140px;\n /* animation: fadeInUp 0.2s ease-out; */\n}\n\n.sage-ai-more-options-popover:empty {\n display: none;\n}\n\n.sage-ai-more-options-content {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.sage-ai-more-options-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n border: none;\n background: transparent;\n color: var(--jp-ui-font-color1);\n border-radius: 4px;\n cursor: pointer;\n font-size: 13px;\n font-family: var(--jp-ui-font-family);\n text-align: left;\n width: 100%;\n transition: background-color 0.15s ease;\n}\n\n.sage-ai-more-options-item:hover {\n background: var(--jp-layout-color2);\n}\n\n.sage-ai-more-options-item:active {\n background: var(--jp-layout-color3);\n}\n\n.sage-ai-more-options-item svg {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n}\n\n.sage-ai-more-options-item span {\n flex: 1;\n}\n\n.sage-ai-more-options-item-danger {\n color: var(--jp-error-color1);\n}\n\n/* Dark theme adjustments */\n[data-jp-theme-light="false"] .sage-ai-more-options-popover {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);\n}\n',""]);const s=i},67826:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* Settings Widget Styles */\n\n/* Free Trial Banner Styles */\n.sage-ai-free-trial-banner {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n border-radius: 8px;\n margin-bottom: 20px;\n font-weight: 500;\n font-size: 14px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n animation: sage-ai-banner-slide-in 0.3s ease-out;\n border: 1px solid transparent;\n}\n\n@keyframes sage-ai-banner-slide-in {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.sage-ai-free-trial-active {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n border-color: rgba(255, 255, 255, 0.2);\n}\n\n.sage-ai-free-trial-expired {\n background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);\n color: white;\n border-color: rgba(255, 255, 255, 0.2);\n}\n\n.sage-ai-free-trial-icon {\n font-size: 20px;\n display: flex;\n align-items: center;\n animation: sage-ai-icon-pulse 2s ease-in-out infinite;\n}\n\n@keyframes sage-ai-icon-pulse {\n 0%, 100% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.1);\n }\n}\n\n.sage-ai-free-trial-text {\n flex: 1;\n font-weight: 600;\n letter-spacing: 0.5px;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n/* Main settings widget container */\n.sage-ai-settings {\n height: 100%;\n max-height: 100vh;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n.sage-ai-settings-container {\n height: 100%;\n max-height: 100vh;\n overflow-y: auto;\n overflow-x: hidden;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n padding: 8px !important;\n}\n\n/* Ensure codebase manager doesn't break the layout */\n.sage-ai-settings-container > div {\n flex-shrink: 0;\n}\n\n.sage-ai-settings-title {\n margin: 0 0 20px 0;\n color: var(--jp-ui-font-color0);\n flex-shrink: 0; /* Prevent shrinking */\n /*padding-left: 16px;*/\n padding-top: 40px;\n}\n\n/* Subscription Badge Styles */\n.sage-ai-subscription-badge-container {\n margin-bottom: 16px;\n flex-shrink: 0;\n}\n\n.sage-ai-subscription-badge {\n background-color: #8b5cf6;\n color: white;\n padding: 4px 8px;\n border-radius: 12px;\n font-weight: 500;\n font-size: 12px;\n display: inline-block;\n}\n\n/* Configuration sections */\n.sage-ai-config-section {\n margin-bottom: 20px;\n /*padding-left: 20px;*/\n flex-shrink: 0; /* Prevent shrinking */\n}\n\n.sage-ai-config-title {\n margin-bottom: 15px;\n color: var(--jp-ui-font-color0);\n flex-shrink: 0; /* Prevent shrinking */\n}\n\n/* Form fields */\n.sage-ai-field-container {\n margin-bottom: 15px;\n flex-shrink: 0; /* Prevent shrinking */\n}\n\n.sage-ai-field-label {\n display: block;\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n.sage-ai-field-input {\n width: 100%;\n max-width: 400px;\n padding: 8px;\n border: 1px solid var(--jp-border-color1);\n border-radius: 4px;\n font-size: 14px;\n background-color: var(--jp-layout-color0);\n color: var(--jp-ui-font-color0);\n box-sizing: border-box;\n}\n\n/* Database input with refresh button */\n.sage-ai-database-input-container {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.sage-ai-database-input {\n flex: 1;\n}\n\n.sage-ai-refresh-button {\n padding: 8px 12px;\n border: 1px solid var(--jp-border-color1);\n border-radius: 4px;\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color0);\n cursor: pointer;\n font-size: 16px;\n transition: all 0.2s ease;\n min-width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.sage-ai-refresh-button:hover:not(:disabled) {\n background-color: var(--jp-layout-color2);\n border-color: var(--jp-brand-color1);\n}\n\n.sage-ai-refresh-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.sage-ai-refresh-button:active:not(:disabled) {\n transform: rotate(180deg);\n}\n\n/* Cache status */\n.sage-ai-cache-status {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 5px;\n font-size: 12px;\n color: var(--jp-ui-font-color2);\n}\n\n.sage-ai-cache-indicator {\n font-size: 14px;\n}\n\n.sage-ai-cache-indicator.cached {\n color: var(--jp-success-color1);\n}\n\n.sage-ai-cache-indicator.expired {\n color: var(--jp-warn-color1);\n}\n\n.sage-ai-cache-indicator.not-cached {\n color: var(--jp-ui-font-color3);\n}\n\n.sage-ai-cache-text {\n font-family: var(--jp-ui-font-family);\n}\n\n/* Token mode container */\n.sage-token-mode-container {\n margin-bottom: 20px;\n /*padding-left: 20px;*/\n flex-shrink: 0; /* Prevent shrinking */\n}\n\n.sage-token-mode-label {\n display: flex;\n align-items: center;\n cursor: pointer;\n}\n\n.sage-token-mode-checkbox {\n margin-right: 8px;\n}\n\n/* Tab autocomplete container */\n.sage-tab-autocomplete-container {\n margin-bottom: 20px;\n /*padding-left: 20px;*/\n flex-shrink: 0; /* Prevent shrinking */\n}\n\n.sage-tab-autocomplete-label {\n display: flex;\n align-items: center;\n cursor: pointer;\n}\n\n.sage-tab-autocomplete-checkbox {\n margin-right: 8px;\n}\n\n/* Enhanced Database Metadata Spinner */\n.sage-ai-db-metadata-spinner {\n position: relative;\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.sage-ai-db-spinner-ring {\n position: absolute;\n width: 18px;\n height: 18px;\n border: 2px solid transparent;\n border-top: 2px solid var(--jp-brand-color1);\n border-right: 2px solid var(--jp-brand-color1);\n border-radius: 50%;\n animation: sage-ai-db-spinner-rotate 1.2s linear infinite;\n}\n\n.sage-ai-db-spinner-pulse {\n position: absolute;\n width: 8px;\n height: 8px;\n background: var(--jp-brand-color1);\n border-radius: 50%;\n animation: sage-ai-db-spinner-pulse 1.5s ease-in-out infinite;\n}\n\n@keyframes sage-ai-db-spinner-rotate {\n 0% {\n transform: rotate(0deg);\n border-top-color: var(--jp-brand-color1);\n border-right-color: transparent;\n }\n 25% {\n border-top-color: var(--jp-brand-color1);\n border-right-color: var(--jp-brand-color1);\n }\n 50% {\n transform: rotate(180deg);\n border-top-color: transparent;\n border-right-color: var(--jp-brand-color1);\n }\n 75% {\n border-top-color: var(--jp-brand-color1);\n border-right-color: var(--jp-brand-color1);\n }\n 100% {\n transform: rotate(360deg);\n border-top-color: var(--jp-brand-color1);\n border-right-color: transparent;\n }\n}\n\n@keyframes sage-ai-db-spinner-pulse {\n 0%, 100% {\n transform: scale(0.8);\n opacity: 0.5;\n }\n 50% {\n transform: scale(1.2);\n opacity: 1;\n }\n}\n\n/* Authentication Section Styles */\n.sage-ai-auth-status {\n display: flex;\n align-items: center;\n padding: 8px 0;\n}\n\n.sage-ai-auth-status-text {\n font-weight: bold;\n font-size: 14px;\n}\n\n.sage-ai-auth-authenticated {\n color: #4caf50; /* Green for authenticated */\n}\n\n.sage-ai-auth-not-authenticated {\n color: #f44336; /* Red for not authenticated */\n}\n\n.sage-ai-jwt-display {\n width: 100%;\n}\n\n.sage-ai-jwt-input {\n width: 100%;\n font-family: monospace !important;\n font-size: 12px !important;\n background-color: var(--jp-layout-color2) !important;\n border: 1px solid var(--jp-border-color1) !important;\n color: var(--jp-ui-font-color0) !important;\n}\n\n.sage-ai-no-token {\n color: var(--jp-ui-font-color2);\n font-style: italic;\n padding: 8px 12px;\n background-color: var(--jp-layout-color2);\n border: 1px solid var(--jp-border-color1);\n border-radius: 4px;\n display: block;\n width: 100%;\n box-sizing: border-box;\n}\n\n.sage-ai-auth-buttons {\n display: flex;\n gap: 10px;\n padding: 8px 0;\n}\n\n.sage-ai-user-info {\n display: flex;\n flex-direction: column;\n gap: 12px;\n width: 100%;\n}\n\n.sage-ai-logged-in-as {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 0;\n /*background-color: var(--jp-layout-color2);*/\n /*border: 1px solid var(--jp-border-color1);*/\n /*border-radius: 4px;*/\n}\n\n.sage-ai-logged-in-label {\n font-size: 12px;\n font-weight: 500;\n color: var(--jp-ui-font-color2);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n\n.sage-ai-logged-in-email {\n font-size: 14px;\n font-weight: 400;\n color: var(--jp-ui-font-color0);\n word-break: break-word;\n}\n\n.sage-ai-button {\n padding: 8px 16px;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n transition: background-color 0.2s ease, transform 0.1s ease;\n}\n\n.sage-ai-button:hover {\n transform: translateY(-1px);\n}\n\n.sage-ai-button:active {\n transform: translateY(0);\n}\n\n.sage-ai-button-primary {\n background-color: #2196f3;\n color: white;\n}\n\n.sage-ai-button-primary:hover {\n background-color: #1976d2;\n}\n\n.sage-ai-button-secondary {\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color0);\n border: 1px solid var(--jp-border-color1);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n position: relative;\n overflow: hidden;\n}\n\n.sage-ai-button-secondary::before {\n content: '';\n position: absolute;\n top: 0;\n left: -100%;\n width: 100%;\n height: 100%;\n background: linear-gradient(\n 90deg,\n transparent,\n rgba(255, 255, 255, 0.1),\n transparent\n );\n transition: left 0.5s ease;\n}\n\n.sage-ai-button-secondary:hover::before {\n left: 100%;\n}\n\n.sage-ai-button-secondary:hover {\n background-color: var(--jp-layout-color3);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n border-color: var(--jp-border-color2);\n}\n\n/* Database Connections Styles */\n.sage-ai-database-connections {\n margin-top: 12px;\n border: 1px solid var(--jp-border-color1);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.sage-ai-connections-header {\n background-color: var(--jp-layout-color2);\n padding: 8px 12px;\n border-bottom: 1px solid var(--jp-border-color1);\n font-weight: 500;\n font-size: 14px;\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-connection-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px;\n border-bottom: 1px solid var(--jp-border-color2);\n background-color: var(--jp-layout-color0);\n transition: background-color 0.2s ease;\n}\n\n.sage-ai-connection-item:last-child {\n border-bottom: none;\n}\n\n.sage-ai-connection-item:hover {\n background-color: var(--jp-layout-color1);\n}\n\n.sage-ai-connection-info {\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\n.sage-ai-connection-name {\n font-weight: 500;\n color: var(--jp-ui-font-color0);\n margin-bottom: 2px;\n}\n\n.sage-ai-connection-type {\n font-size: 12px;\n color: var(--jp-ui-font-color2);\n text-transform: uppercase;\n font-weight: 500;\n}\n\n.sage-ai-connection-details {\n color: var(--jp-ui-font-color2);\n font-size: 12px;\n margin-top: 4px;\n}\n\n.sage-ai-connection-host {\n font-family: var(--jp-code-font-family);\n}\n\n.sage-ai-connection-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Delete Button Styles */\n.sage-ai-button-danger {\n background-color: #f44336;\n color: white;\n padding: 6px 8px;\n font-size: 14px;\n}\n\n.sage-ai-button-danger:hover {\n background-color: #d32f2f;\n}\n\n.sage-ai-delete-button {\n min-width: auto;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n\n.sage-ai-delete-button:hover {\n transform: scale(1.05);\n}\n\n.sage-ai-delete-button:active {\n transform: scale(0.95);\n}\n",""]);const s=i},68384:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* Database Manager Widget Styles */\n.sage-ai-database-manager-widget {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-width: 400px !important;\n background: var(--jp-layout-color0);\n font-family: var(--jp-ui-font-family);\n font-size: var(--jp-ui-font-size1);\n}\n\n.database-manager-widget {\n display: flex;\n flex-direction: column;\n height: 100%;\n padding: 0;\n overflow: hidden;\n min-width: 400px !important;\n background: var(--jp-layout-color0) !important;\n}\n\n/* Header */\n.database-manager-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding: 16px 16px 12px;\n border-bottom: 1px solid var(--jp-border-color2);\n}\n\n.database-manager-title {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--jp-content-heading-color);\n}\n\n/* Add Database Button */\n.database-add-button {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n background: #7a7a7a;\n color: #E7E7E7;\n border: none;\n border-radius: 6px !important;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.database-add-button:hover {\n background: #949494;\n transform: translateY(-1px);\n box-shadow: none;\n}\n\n.database-add-button:active {\n transform: translateY(0);\n}\n\n.database-add-button .add-icon {\n font-size: 14px;\n font-weight: bold;\n}\n\n/* Content Area */\n.database-manager-content {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding-left: 16px;\n padding-right: 16px;\n}\n\n/* Loading State */\n.database-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n color: var(--jp-content-font-color2);\n}\n\n.loading-spinner {\n width: 24px;\n height: 24px;\n border: 2px solid var(--jp-border-color2);\n border-top: 2px solid var(--jp-brand-color1);\n border-radius: 50%;\n animation: spin 1s linear infinite;\n margin-bottom: 12px;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n/* Empty State */\n.database-empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 40px 20px;\n text-align: center;\n color: var(--jp-content-font-color2);\n}\n\n.database-empty-state .empty-icon {\n font-size: 48px;\n margin-bottom: 16px;\n opacity: 0.6;\n}\n\n.database-empty-state p {\n margin: 8px 0;\n font-size: 14px;\n}\n\n.database-empty-state .empty-description {\n font-size: 12px;\n opacity: 0.7;\n margin-bottom: 24px;\n}\n\n.database-add-button-primary {\n padding: 12px 24px;\n background: var(--jp-brand-color1);\n color: white;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.database-add-button-primary:hover {\n background: var(--jp-brand-color0);\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(var(--jp-brand-color1), 0.3);\n}\n\n/* Database List */\n.database-list {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding-right: 4px;\n}\n\n/* Database Item */\n.database-item {\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color2);\n border-radius: 8px;\n padding: 16px;\n transition: all 0.2s ease;\n position: relative;\n overflow: hidden;\n cursor: pointer;\n}\n\n.database-item:hover {\n border-color: var(--jp-brand-color2);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n transform: translateY(-1px);\n}\n\n.database-item.active {\n border-color: var(--jp-brand-color1);\n background: linear-gradient(\n 135deg,\n var(--jp-layout-color1) 0%,\n rgba(var(--jp-brand-color1), 0.05) 100%\n );\n}\n\n.database-item.active::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 3px;\n height: 100%;\n background: var(--jp-brand-color1);\n}\n\n.database-item.schema-warning {\n border-color: #ffc107;\n background: linear-gradient(\n 135deg,\n var(--jp-layout-color1) 0%,\n rgba(255, 193, 7, 0.05) 100%\n );\n}\n\n/* Database Item Header */\n.database-item-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 12px;\n}\n\n.database-info {\n flex: 1;\n min-width: 0;\n}\n\n.database-type-indicator {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 8px;\n}\n\n.database-type-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n /*width: 16px;*/\n /*height: 16px;*/\n}\n\n.database-type-icon svg {\n width: 100%;\n height: 100%;\n}\n\n.database-type-text {\n font-size: 10px;\n font-weight: 600;\n color: var(--jp-content-font-color2);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n background: var(--jp-layout-color2);\n padding: 2px 6px;\n border-radius: 3px;\n}\n\n.schema-warning-icon {\n font-size: 12px;\n cursor: help;\n margin-left: 4px;\n}\n\n.loading-schema-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 100%;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n background: rgba(var(--jp-layout-color1), 0.9);\n z-index: 10;\n padding-top: 12px;\n}\n\n.loading-schema-badge {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n background: var(--jp-brand-color1);\n color: white;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n border-radius: 12px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n}\n\n.loading-spinner-small {\n width: 12px;\n height: 12px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top: 2px solid white;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n.database-name {\n margin: 0 0 4px 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--jp-content-heading-color);\n word-break: break-word;\n}\n\n.database-description {\n margin: 0;\n font-size: 12px;\n color: var(--jp-content-font-color2);\n opacity: 0.8;\n word-break: break-word;\n}\n\n/* Database Actions - Icon Button Row */\n.database-actions {\n flex-shrink: 0;\n margin-left: 12px;\n}\n\n.database-action-buttons {\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n.database-action-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 6px !important;\n cursor: pointer;\n transition: all 0.2s ease;\n color: var(--jp-content-font-color2);\n padding: 0;\n}\n\n.database-action-btn:hover:not(:disabled) {\n background: var(--jp-layout-color2);\n border-color: var(--jp-border-color1);\n color: var(--jp-content-font-color1);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.database-action-btn:active:not(:disabled) {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.database-action-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n/* Specific button styling */\n.database-action-btn.add-context-btn:hover:not(:disabled) {\n background: rgba(106, 135, 89, 0.1);\n border-color: #6a8759;\n color: #6a8759;\n}\n\n.database-action-btn.view-schema-btn:hover:not(:disabled) {\n background: rgba(54, 124, 255, 0.1);\n border-color: var(--jp-brand-color1);\n color: var(--jp-brand-color1);\n}\n\n.database-action-btn.refresh-schema-btn:hover:not(:disabled) {\n background: rgba(76, 175, 80, 0.1);\n border-color: #4caf50;\n color: #4caf50;\n}\n\n.database-action-btn.edit-btn:hover:not(:disabled) {\n background: rgba(255, 152, 0, 0.1);\n border-color: #ff9800;\n color: #ff9800;\n}\n\n.database-action-btn.delete-btn:hover:not(:disabled) {\n background: rgba(244, 67, 54, 0.1);\n border-color: var(--jp-error-color1);\n color: var(--jp-error-color1);\n}\n\n.database-action-btn svg {\n width: 16px;\n height: 16px;\n}\n\n/* Old Database Actions - React Bootstrap Dropdown (DEPRECATED) */\n/*\n.database-actions .dropdown {\n position: relative;\n}\n\n.database-actions .database-menu-trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n background: transparent !important;\n border: none !important;\n border-radius: 4px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n color: var(--jp-content-font-color2);\n box-shadow: none !important;\n}\n\n.database-actions .database-menu-trigger:hover,\n.database-actions .database-menu-trigger:focus {\n background: var(--jp-layout-color2) !important;\n color: var(--jp-content-font-color1);\n box-shadow: none !important;\n}\n\n.database-actions .database-menu-trigger::after {\n display: none;\n}\n\n.database-actions .database-menu-trigger .menu-dots {\n font-size: 16px;\n font-weight: bold;\n line-height: 1;\n}\n\n.database-actions .dropdown-menu {\n background: var(--jp-layout-color0);\n border: 1px solid var(--jp-border-color1);\n border-radius: 6px;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);\n min-width: 140px;\n padding: 0;\n margin-top: 4px;\n}\n\n.database-actions .dropdown-item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 12px;\n font-size: 12px;\n color: var(--jp-content-font-color1);\n border-bottom: 1px solid var(--jp-border-color2);\n text-decoration: none;\n}\n\n.database-actions .dropdown-item:last-child {\n border-bottom: none;\n}\n\n.database-actions .dropdown-item:hover,\n.database-actions .dropdown-item:focus {\n background: var(--jp-layout-color2);\n color: var(--jp-content-font-color1);\n}\n\n.database-actions .dropdown-item.text-danger {\n color: var(--jp-error-color1);\n}\n\n.database-actions .dropdown-item.text-danger:hover,\n.database-actions .dropdown-item.text-danger:focus {\n background: rgba(var(--jp-error-color1), 0.1);\n color: var(--jp-error-color1);\n}\n\n.database-actions .dropdown-divider {\n border-top: 1px solid var(--jp-border-color2);\n margin: 0;\n}\n*/\n\n/* Database Item Details */\n.database-item-details {\n display: flex;\n flex-direction: column;\n gap: 6px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--jp-border-color2);\n}\n\n.database-detail {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 11px;\n}\n\n.database-detail .detail-label {\n color: var(--jp-content-font-color2);\n font-weight: 500;\n flex-shrink: 0;\n margin-right: 8px;\n}\n\n.database-detail .detail-value {\n color: var(--jp-content-font-color1);\n font-family: var(--jp-code-font-family);\n word-break: break-all;\n text-align: right;\n flex: 1;\n min-width: 0;\n}\n\n/* Active Database Indicator */\n.database-active-indicator {\n margin-top: 12px;\n display: flex;\n justify-content: flex-end;\n}\n\n.active-badge {\n display: inline-flex;\n align-items: center;\n padding: 4px 8px;\n background: var(--jp-brand-color1);\n color: white;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n border-radius: 12px;\n}\n\n/* Responsive adjustments */\n@media (max-width: 300px) {\n .database-manager-widget {\n padding: 12px;\n }\n\n .database-manager-header {\n flex-direction: column;\n gap: 8px;\n align-items: stretch;\n }\n\n .database-item {\n padding: 12px;\n }\n\n .database-item-header {\n flex-direction: column;\n gap: 8px;\n }\n\n .database-actions {\n align-self: flex-end;\n }\n}\n\n/* Scrollbar Styling */\n.database-manager-content::-webkit-scrollbar {\n width: 6px;\n}\n\n.database-manager-content::-webkit-scrollbar-track {\n background: var(--jp-layout-color2);\n border-radius: 3px;\n}\n\n.database-manager-content::-webkit-scrollbar-thumb {\n background: var(--jp-border-color2);\n border-radius: 3px;\n}\n\n.database-manager-content::-webkit-scrollbar-thumb:hover {\n background: var(--jp-border-color1);\n}\n\n/* Make database SVG icons black in light mode */\n[data-jp-theme-light='true'] .database-manager-widget .db-icon svg path {\n fill: #000000 !important;\n}\n\n",""]);const s=i},68475:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/*\n See the JupyterLab Developer Guide for useful CSS Patterns:\n\n https://jupyterlab.readthedocs.io/en/stable/developer/css.html\n*/\n\n:root {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-smooth: never;\n\n --jp-ui-font-size0: 0.75em !important;\n --jp-ui-font-size1: 11.7px !important;\n --jp-ui-font-size2: 1.08em !important;\n --jp-ui-font-size3: 1.296em !important;\n --jp-code-font-size: 11.7px !important;\n}\n\n/* Dark mode override for jp-layout-color2 */\n[data-jp-theme-light='false'] {\n --jp-layout-color2: #232323 !important;\n --jp-border-color3: #383838 !important;\n}\n\n/* Chat box widget styling */\n.sage-ai-chatbox {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n background-color: var(--jp-layout-color0);\n color: var(--jp-ui-font-color1);\n font-family: var(--jp-ui-font-family);\n border-radius: 12px;\n border: 0.5px solid var(--jp-border-color2);\n box-shadow: 0 0 20px 8px rgb(0 0 0 / 10%);\n}\n\n[data-jp-theme-light='false'] .sage-ai-chatbox {\n background-color: #1a1a1a;\n}\n\n[data-jp-theme-light='true'] .sage-ai-chatbox {\n background-color: #fff;\n}\n\n[data-jp-theme-light='false'] .sage-ai-chatbox {\n background-color: #1a1a1a;\n}\n\n[data-jp-theme-light='true'] .sage-ai-chatbox {\n background-color: #fff;\n}\n\n.sage-ai-chat-container {\n width: 100%;\n padding: 6px;\n}\n\n.sage-ai-toolbar {\n display: flex;\n align-items: center;\n padding: 8px;\n border-bottom: 1px solid var(--jp-border-color2);\n height: 53px;\n}\n\n.sage-ai-more-options-button {\n margin-left: 8px;\n}\n\n/* Autorun checkbox container styling */\n.sage-ai-checkbox-container {\n display: flex;\n align-items: center;\n margin-right: 4px;\n padding: 0 2px;\n font-size: var(--jp-ui-font-size0);\n}\n\n.sage-ai-checkbox {\n margin-right: 5px;\n cursor: pointer;\n width: 16px;\n height: 16px;\n}\n\n.sage-ai-checkbox-label {\n color: var(--jp-ui-font-color1);\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n line-height: 4px;\n}\n\n.sage-ai-checkbox-container:hover .sage-ai-checkbox-label {\n color: var(--jp-ui-font-color0);\n}\n\n/* Common styles for buttons and controls */\n.sage-ai-control-base {\n border: 0.5px solid #e7e7e7;\n border-radius: 6px !important;\n background: transparent;\n transition: all 0.2s ease;\n}\n\n[data-jp-theme-light='false'] .sage-ai-control-base {\n border-color: #383838;\n}\n\n.sage-ai-control-base:hover:not(:disabled) {\n border-color: #666;\n}\n\n/* Auto Run Toggle Switch Styles */\n.sage-ai-autorun-toggle {\n padding: 0 10px;\n margin-right: 8px;\n height: 30px;\n min-width: 89px;\n}\n\n.sage-ai-autorun-toggle .sage-ai-toggle-input {\n display: none; /* Hide the actual checkbox */\n}\n\n.sage-ai-toggle-label {\n display: flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n margin: 0;\n font-size: 13px;\n color: var(--jp-ui-font-color1);\n user-select: none;\n}\n\n.sage-ai-toggle-switch {\n position: relative;\n width: 28px;\n height: 16px;\n background: #494949;\n border-radius: 8px;\n transition: background-color 0.3s ease;\n flex-shrink: 0;\n}\n\n.sage-ai-toggle-switch::before {\n content: '';\n position: absolute;\n top: 1px;\n left: 1px;\n width: 14px;\n height: 14px;\n background: white;\n border-radius: 50%;\n transition: transform 0.3s ease;\n}\n\n/* Active state styles */\n.sage-ai-toggle-input:checked + .sage-ai-toggle-label .sage-ai-toggle-switch {\n background: #4caf50;\n}\n\n.sage-ai-toggle-input:checked\n + .sage-ai-toggle-label\n .sage-ai-toggle-switch::before {\n transform: translateX(12px);\n}\n\n/* Hover effects */\n.sage-ai-autorun-toggle:hover .sage-ai-toggle-label {\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-reset-button {\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 8px;\n gap: 6px;\n width: 32px;\n height: 32px;\n flex: none;\n flex-grow: 0;\n cursor: pointer;\n}\n\n.sage-ai-history-container {\n flex: 1;\n overflow: hidden;\n display: flex;\n position: relative; /* For positioning the loading overlay */\n}\n\n.sage-ai-history-container.floating-box-visible {\n padding-top: 0 !important;\n}\n\n.sage-ai-scroll-down-button {\n position: absolute;\n width: 100%;\n align-items: center;\n -webkit-animation: sage-ai-vert-move 1s infinite alternate;\n animation: sage-ai-vert-move 1s infinite alternate;\n padding: 0;\n margin: 0;\n outline: none;\n border: none;\n background: none;\n cursor: pointer;\n}\n\n.sage-ai-scroll-down-button.hidden {\n display: none;\n}\n\n@keyframes sage-ai-vert-move {\n 0% {\n transform: translateY(0);\n }\n\n 100% {\n transform: translateY(5px);\n }\n}\n\n@keyframes sage-ai-vert-move {\n 0% {\n transform: translateY(0);\n }\n\n 100% {\n transform: translateY(5px);\n }\n}\n\n.sage-ai-scroll-down-button svg {\n border-radius: 50%;\n padding: 2px;\n align-items: center;\n backdrop-filter: blur(10px);\n}\n\n.sage-ai-chat-history {\n flex: 1;\n height: 100%;\n overflow-y: auto;\n\n /* Ensure scrolling works properly with the increased bottom padding */\n scroll-behavior: smooth;\n padding: 0 12px;\n}\n\n/* Loading overlay for chat history */\n.sage-ai-chat-history-loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: var(--jp-layout-color0);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n z-index: 100;\n gap: 12px;\n}\n\n.sage-ai-chat-history-loading-overlay.hidden {\n display: none;\n}\n\n.sage-ai-loading-spinner {\n width: 32px;\n height: 32px;\n border: 3px solid var(--jp-border-color2);\n border-top-color: var(--jp-brand-color1);\n border-radius: 50%;\n animation: sage-ai-spinner-spin 0.8s linear infinite;\n}\n\n@keyframes sage-ai-spinner-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.sage-ai-loading-text {\n color: var(--jp-ui-font-color1);\n font-size: 14px;\n font-weight: 500;\n}\n\n.jp-Cell {\n margin-top: 28px !important;\n}\n\n.sage-ai-rich-chat-input {\n margin-bottom: 42px;\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n.sage-ai-rich-chat-input::-webkit-scrollbar {\n width: 0;\n height: 0;\n}\n\n.sage-ai-in-context-cell .jp-Editor {\n border: 1px solid #16bd16 !important;\n border-radius: 2px;\n box-shadow: 0 0 3px rgb(22 189 22 / 20%);\n}\n\n/* New chatbox wrapper for structured input layout */\n.sage-ai-chatbox-wrapper {\n flex: 1;\n border-radius: 8px;\n padding: 1px; /* This creates the border width */\n background: var(--jp-border-color1); /* Default border color */\n display: flex;\n flex-direction: column;\n}\n\n.sage-ai-chatbox-wrapper:focus-within {\n background: conic-gradient(\n from 24deg,\n #a7d8f0,\n #ff9270 14%,\n #fdf0b2 28%,\n #a5ddf4 42%,\n #8521ca 56%,\n #fbf4c8 70%,\n #b169e8 85%,\n #a7d8f0 100%\n );\n}\n\n.sage-ai-input-container {\n z-index: 2;\n display: flex;\n padding: 10px;\n padding-top: 0 !important;\n\n /* background-color: var(--jp-layout-color1); */\n background: transparent;\n position: relative;\n}\n\n/* Context row (first row) */\n.sage-ai-context-row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 12px 4px;\n background-color: var(--jp-layout-color0);\n border-radius: 7px 7px 0 0;\n min-height: 24px;\n flex-wrap: wrap;\n\n /* border-bottom: 1px solid var(--jp-border-color2); */\n}\n\n/* Hide context row when no contexts and hide border */\n.sage-ai-context-row:has(.sage-ai-context-display-inline.hidden) {\n display: none;\n}\n\n.sage-ai-context-row:has(.sage-ai-context-display-inline.hidden)\n + .sage-ai-input-row {\n border-radius: 7px;\n}\n\n.sage-ai-context-row:has(.sage-ai-context-display-inline.hidden)\n + .sage-ai-input-row\n .sage-ai-rich-chat-input-wrapper {\n border-radius: 7px;\n}\n\n.sage-ai-context-row:has(.sage-ai-context-display-inline.hidden)\n + .sage-ai-input-row\n .sage-ai-rich-chat-input {\n border-radius: 7px;\n}\n\n/* Alternative fallback for browsers that don't support :has() */\n.sage-ai-context-row.context-row-hidden {\n display: none;\n}\n\n.sage-ai-context-row.context-row-hidden + .sage-ai-input-row {\n border-radius: 7px;\n}\n\n.sage-ai-context-row.context-row-hidden\n + .sage-ai-input-row\n .sage-ai-rich-chat-input-wrapper {\n border-radius: 7px;\n}\n\n.sage-ai-context-row.context-row-hidden\n + .sage-ai-input-row\n .sage-ai-rich-chat-input {\n border-radius: 7px;\n}\n\n.sage-ai-context-text {\n margin: 0;\n font-size: 11px;\n font-weight: 500;\n line-height: 160%;\n}\n\n.sage-ai-at-icon {\n height: 13px;\n margin-right: 5px;\n transform: translateY(-3px);\n}\n\n/* Add Context button */\n.sage-ai-add-context-button {\n border: 1px solid var(--jp-border-color2);\n border-radius: 6px !important;\n color: var(--jp-ui-font-color2);\n cursor: pointer;\n padding: 3px 8px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n flex-shrink: 0;\n background: var(--jp-layout-color0);\n}\n\n.sage-ai-add-context-button:hover {\n border-color: var(--jp-ui-font-color1);\n color: var(--jp-ui-font-color1);\n\n /* background-color: var(--jp-brand-color3); */\n}\n\n.sage-ai-add-context-button:hover .sage-ai-at-icon svg path {\n stroke: var(--jp-ui-font-color1);\n}\n\n/* Inline context display */\n.sage-ai-context-display-inline {\n flex: 1;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 4px;\n min-height: 24px;\n}\n\n.sage-ai-context-display-inline.hidden {\n display: none;\n}\n\n.sage-ai-context-items-inline {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 4px;\n width: 100%;\n}\n\n/* Inline context cell boxes */\n.sage-ai-context-cell-box-inline {\n background: #e6f7ff;\n color: #1976d2;\n border: 1px solid #1976d2;\n border-radius: 4px;\n font-size: 11px;\n padding: 2px 6px;\n display: inline-flex;\n align-items: center;\n position: relative;\n gap: 4px;\n transition: all 0.2s;\n font-weight: 500;\n max-width: 120px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.sage-ai-context-cell-box-inline:hover {\n box-shadow: 0 1px 4px rgb(25 118 210 / 20%);\n}\n\n/* Input row (second row) */\n.sage-ai-input-row {\n display: flex;\n align-items: flex-end;\n position: relative;\n background-color: var(--jp-layout-color0);\n border-radius: 0 0 7px 7px;\n}\n\n/* Rich text input wrapper for gradient border - updated for new structure */\n.sage-ai-rich-chat-input-wrapper {\n flex: 1;\n border: none; /* Remove border since chatbox-wrapper provides it */\n border-radius: 0 0 7px 7px;\n padding: 0; /* Remove padding since wrapper handles it */\n background: transparent; /* Transparent since chatbox-wrapper handles background */\n}\n\n.sage-ai-rich-chat-input-wrapper:focus-within {\n background: transparent; /* Let the parent handle the gradient */\n}\n\n/* Rich text input styling - updated for new structure */\n.sage-ai-rich-chat-input {\n border: none; /* Remove border since wrapper provides it */\n border-radius: 0 0 7px 7px; /* Match the wrapper radius */\n padding: 12px;\n background-color: var(--jp-layout-color0);\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size1);\n font-family: var(--jp-ui-font-family);\n resize: none;\n overflow-y: hidden;\n min-height: 42px;\n max-height: 240px;\n line-height: 1.5;\n transition: height 0.1s ease;\n white-space: pre-wrap;\n word-wrap: break-word;\n word-break: break-word;\n}\n\n[data-jp-theme-light='true'] .sage-ai-rich-chat-input {\n background-color: #fcfcfc;\n}\n\n.sage-ai-rich-chat-input:focus {\n outline: none;\n\n /* Remove the old focus styles since wrapper handles the border */\n}\n\n.sage-ai-new-prompt-cta {\n display: flex;\n flex-flow: row wrap;\n width: 100%;\n align-items: center;\n justify-content: center;\n gap: 6px;\n margin-bottom: 12px;\n color: var(--jp-ui-font-color2);\n}\n\n.sage-ai-new-prompt-cta p {\n text-wrap: nowrap !important;\n margin: 0 !important;\n}\n\n.sage-ai-new-prompt-cta a {\n color: var(--jp-ui-font-color0);\n font-weight: 600;\n font-size: 13px;\n cursor: pointer;\n text-wrap: nowrap !important;\n}\n\n/* Placeholder styling for rich text input */\n.sage-ai-rich-chat-input.empty::before {\n content: attr(data-placeholder);\n color: var(--jp-ui-font-color2);\n pointer-events: none;\n position: absolute;\n transform: translateY(0);\n}\n\n/* Mention styling with different colors for different types */\n.sage-ai-mention {\n font-weight: 600;\n border-radius: 3px;\n padding: 1px 3px;\n margin: 0 1px;\n white-space: nowrap;\n}\n\n.sage-ai-mention-template {\n background-color: rgb(156 39 176 / 10%);\n color: #9c27b0;\n border: 1px solid rgb(156 39 176 / 30%);\n}\n\n.sage-ai-mention-data {\n background-color: rgb(33 150 243 / 10%);\n color: #2196f3;\n border: 1px solid rgb(33 150 243 / 30%);\n}\n\n.sage-ai-mention-variable {\n background-color: rgb(76 175 80 / 10%);\n color: #4caf50;\n border: 1px solid rgb(76 175 80 / 30%);\n}\n\n.sage-ai-mention-cell {\n background-color: rgb(255 152 0 / 10%);\n color: #ff9800;\n border: 1px solid rgb(255 152 0 / 30%);\n}\n\n.sage-ai-mention-table {\n background-color: rgb(121 85 72 / 10%);\n color: #795548;\n border: 1px solid rgb(121 85 72 / 30%);\n}\n\n.sage-ai-mention-default {\n background-color: rgb(96 125 139 / 10%);\n color: #607d8b;\n border: 1px solid rgb(96 125 139 / 30%);\n}\n\n.sage-ai-mention-broken {\n background-color: rgb(244 67 54 / 10%);\n color: #f44336;\n border: 1px solid rgb(244 67 54 / 30%);\n text-decoration: line-through;\n}\n\n/* Dark theme adjustments for mentions */\n[data-jp-theme-name='JupyterLab Dark'] .sage-ai-mention-template {\n background-color: rgb(156 39 176 / 20%);\n color: #ce93d8;\n}\n\n[data-jp-theme-name='JupyterLab Dark'] .sage-ai-mention-data {\n background-color: rgb(33 150 243 / 20%);\n color: #90caf9;\n}\n\n[data-jp-theme-name='JupyterLab Dark'] .sage-ai-mention-variable {\n background-color: rgb(76 175 80 / 20%);\n color: #a5d6a7;\n}\n\n[data-jp-theme-name='JupyterLab Dark'] .sage-ai-mention-cell {\n background-color: rgb(255 152 0 / 20%);\n color: #ffcc02;\n}\n\n[data-jp-theme-name='JupyterLab Dark'] .sage-ai-mention-table {\n background-color: rgb(121 85 72 / 20%);\n color: #bcaaa4;\n}\n\n[data-jp-theme-name='JupyterLab Dark'] .sage-ai-mention-default {\n background-color: rgb(96 125 139 / 20%);\n color: #b0bec5;\n}\n\n[data-jp-theme-name='JupyterLab Dark'] .sage-ai-mention-broken {\n background-color: rgb(244 67 54 / 20%);\n color: #ef5350;\n}\n\n.sage-ai-send-button,\n.sage-ai-cancel-button {\n background: var(--jp-inverse-layout-color1);\n color: var(--jp-ui-font-color1);\n border: none;\n padding: 6px;\n cursor: pointer;\n font-size: var(--jp-ui-font-size0);\n transition: background-color 0.2s;\n width: 28px;\n height: 28px;\n border-radius: 50% !important;\n}\n\n.sage-ai-cancel-button {\n background: var(--jp-inverse-layout-color0) !important;\n /* CRITICAL: Ensure cancel button is always clickable */\n pointer-events: auto !important;\n cursor: pointer !important;\n opacity: 1 !important;\n}\n\n.sage-ai-cancel-button svg rect {\n fill: var(--jp-ui-inverse-font-color1) !important;\n}\n\n.sage-ai-send-button.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.sage-ai-send-button.enabled {\n background-color: var(--jp-inverse-layout-color0);\n cursor: pointer;\n}\n\n.sage-ai-send-button svg {\n width: 16px;\n height: 16px;\n}\n\n.sage-ai-send-button.enabled svg path {\n stroke: var(--jp-ui-inverse-font-color0) !important;\n}\n\n.sage-ai-message {\n padding: 8px;\n border-radius: 14px;\n max-width: 100%;\n word-wrap: break-word;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.chat-history-item-opaque {\n opacity: 0.3;\n}\n\n.sage-ai-user-message {\n position: relative;\n margin: 8px 0;\n padding: 10px;\n justify-self: end;\n width: 100%;\n border: 1px solid var(--jp-border-color2);\n}\n\n.sage-ai-user-message:has(.sage-ai-user-message-content.collapsible) {\n transition: background-color 0.3s ease;\n cursor: pointer;\n}\n\n.sage-ai-user-message:has(.sage-ai-user-message-content.collapsible):hover {\n background-color: var(--jp-layout-color2);\n}\n\n.sage-ai-user-message-content.collapsed {\n max-height: 65px;\n mask-image: -webkit-gradient(linear, left 70%, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));\n -webkit-mask-image: -webkit-gradient(linear, left 70%, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));\n}\n\n.sage-ai-user-message-content {\n max-height: fit-content;\n}\n\n.sage-ai-system-message {\n color: var(--jp-ui-font-color2);\n font-style: italic;\n justify-content: center;\n align-items: center;\n padding: 4px;\n}\n\n.sage-ai-error-message {\n color: var(--jp-error-color1);\n font-style: italic;\n justify-content: center;\n padding: 4px;\n background-color: var(--jp-error-color3);\n border-left: 3px solid var(--jp-error-color1);\n}\n\n/* Revert and Send button style */\n.sage-ai-revert-send-button {\n background-color: var(--jp-warn-color1);\n color: white;\n border: none;\n border-radius: 4px;\n padding: 8px 16px;\n cursor: pointer;\n font-size: var(--jp-ui-font-size0);\n transition: background-color 0.2s;\n opacity: 1;\n}\n\n.sage-ai-revert-send-button:hover {\n background-color: var(--jp-warn-color0);\n}\n\n.sage-ai-revert-send-button:disabled {\n background-color: var(--jp-warn-color3);\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.sage-ai-revert-send-button.hidden {\n display: none;\n}\n\n.sage-ai-loading {\n color: var(--jp-ui-font-color3);\n font-style: italic;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: row;\n gap: 10px;\n}\n\n.sage-ai-loading-dots {\n display: inline-block;\n position: relative;\n width: 40px;\n height: 12px;\n}\n\n.sage-ai-loading-dots span {\n position: absolute;\n top: 0;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(--jp-info-color0);\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n\n.sage-ai-loading-dots span:nth-child(1) {\n left: 0;\n animation: sage-ai-loading-dots1 0.6s infinite;\n}\n\n.sage-ai-loading-dots span:nth-child(2) {\n left: 10px;\n animation: sage-ai-loading-dots2 0.6s infinite;\n}\n\n.sage-ai-loading-dots span:nth-child(3) {\n left: 20px;\n animation: sage-ai-loading-dots2 0.6s infinite;\n}\n\n.sage-ai-loading-dots span:nth-child(4) {\n left: 30px;\n animation: sage-ai-loading-dots3 0.6s infinite;\n}\n\n@keyframes sage-ai-loading-dots1 {\n 0% {\n transform: scale(0);\n }\n\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes sage-ai-loading-dots2 {\n 0% {\n transform: translate(0, 0);\n }\n\n 100% {\n transform: translate(10px, 0);\n }\n}\n\n@keyframes sage-ai-loading-dots3 {\n 0% {\n transform: scale(1);\n }\n\n 100% {\n transform: scale(0);\n }\n}\n\n.sage-ai-blob-loader {\n position: relative;\n width: 15px;\n height: 15px;\n border-radius: 50%;\n background: linear-gradient(135deg, #0057c8, #207fd7, #42d9ff);\n background-size: 300% 300%;\n animation:\n ellipseAnimation 2s linear infinite,\n gradientShift 2s ease-in-out infinite;\n}\n\n/* Blob morphing and rotating animation */\n@keyframes ellipseAnimation {\n 0% {\n border-radius: 50%;\n }\n\n 12.5% {\n border-radius: 25% 50% 50%;\n transform: rotate(45deg);\n }\n\n 25% {\n border-radius: 25% 25% 50% 50%;\n transform: rotate(90deg);\n }\n\n 37.5% {\n border-radius: 25% 25% 25% 50%;\n transform: rotate(135deg);\n }\n\n 50% {\n border-radius: 25%;\n transform: rotate(180deg);\n }\n\n 62.5% {\n border-radius: 50% 25% 25%;\n transform: rotate(225deg);\n }\n\n 75% {\n border-radius: 50% 50% 25% 25%;\n transform: rotate(270deg);\n }\n\n 87.5% {\n border-radius: 50% 50% 50% 25%;\n transform: rotate(315deg);\n }\n\n 100% {\n border-radius: 50%;\n transform: rotate(360deg);\n }\n}\n\n/* Smooth shifting gradient animation */\n@keyframes gradientShift {\n 0% {\n background-position: 0% 50%;\n }\n\n 50% {\n background-position: 100% 50%;\n }\n\n 100% {\n background-position: 0% 50%;\n }\n}\n\n.sage-ai-tool-calls {\n margin: 8px 0;\n padding: 8px;\n border-left: 3px solid var(--jp-brand-color1);\n background-color: var(--jp-layout-color2);\n border-radius: 4px;\n}\n\n.sage-ai-tool-calls-header {\n margin-bottom: 8px;\n font-weight: bold;\n color: var(--jp-ui-font-color1);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.sage-ai-tool-calls-header::after {\n content: '▼';\n font-size: 12px;\n transition: transform 0.2s ease;\n}\n\n.sage-ai-tool-calls-header.collapsed::after {\n transform: rotate(-90deg);\n}\n\n.sage-ai-tool-calls-content {\n overflow: hidden;\n transition: max-height 0.3s ease;\n}\n\n.sage-ai-tool-calls-content.collapsed {\n max-height: 0;\n}\n\n.sage-ai-tool-call {\n margin-bottom: 8px;\n padding: 4px 0;\n}\n\n.sage-ai-tool-call-badge {\n display: inline-block;\n\n /* color: white; */\n margin-right: 8px;\n font-size: 12px;\n}\n\n.sage-ai-tool-call-content {\n background-color: var(--jp-layout-color1);\n border-radius: 4px;\n padding: 8px;\n margin-top: 4px;\n font-family: monospace;\n font-size: 12px;\n overflow-x: auto;\n}\n\n.sage-ai-tool-result {\n margin: 8px 0;\n padding: 8px;\n border-left: 3px solid var(--jp-success-color0);\n background-color: var(--jp-layout-color2);\n border-radius: 4px;\n}\n\n.sage-ai-tool-result-header {\n margin-bottom: 8px;\n font-weight: bold;\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-tool-result-content {\n background-color: var(--jp-layout-color1);\n border-radius: 4px;\n padding: 8px;\n margin-top: 4px;\n font-family: monospace;\n font-size: 12px;\n overflow-x: auto;\n}\n\n.sage-ai-streaming-cursor {\n display: inline-block;\n height: 12px;\n width: 12px;\n border-radius: 50%;\n margin-left: 4px;\n vertical-align: middle;\n margin-bottom: 4px;\n background-color: var(--jp-ui-font-color1);\n animation: blink 1s infinite;\n}\n\n@keyframes blink {\n 0%,\n 50% {\n opacity: 1;\n }\n\n 51%,\n 100% {\n opacity: 0;\n }\n}\n\n/* Thinking indicator styles */\n.sage-ai-thinking-message {\n margin-bottom: 12px;\n}\n\n.sage-ai-thinking-content {\n padding: 12px 16px;\n display: flex;\n align-items: center;\n}\n\n.sage-ai-thinking-dots {\n display: flex;\n gap: 4px;\n font-size: 24px;\n line-height: 1;\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-thinking-dots span {\n animation: thinking-dot 1.4s infinite;\n opacity: 0.3;\n}\n\n.sage-ai-thinking-dots span:nth-child(1) {\n animation-delay: 0s;\n}\n\n.sage-ai-thinking-dots span:nth-child(2) {\n animation-delay: 0.2s;\n}\n\n.sage-ai-thinking-dots span:nth-child(3) {\n animation-delay: 0.4s;\n}\n\n@keyframes thinking-dot {\n 0%,\n 60%,\n 100% {\n opacity: 0.3;\n }\n 30% {\n opacity: 1;\n }\n}\n\n.sage-ai-streaming-tool-call {\n opacity: 0.9;\n transition: opacity 0.3s ease;\n}\n\n.sage-ai-streaming-tool-call-container {\n background-color: var(--jp-layout-color2);\n border-radius: 4px;\n padding: 8px;\n margin: 4px 0;\n border-left: 3px solid var(--jp-brand-color1);\n}\n\n.sage-ai-streaming-tool-call-placeholder {\n color: var(--jp-ui-font-color2);\n font-style: italic;\n padding: 8px;\n text-align: center;\n background-color: var(--jp-layout-color1);\n border-radius: 4px;\n border: 1px dashed var(--jp-border-color1);\n}\n\n.sage-ai-streaming-tool-call-container .sage-ai-tool-call-v1 {\n margin-bottom: 8px;\n animation: fadeInUp 0.3s ease;\n}\n\n.sage-ai-streaming-tool-call-container .sage-ai-tool-call-v1:last-child {\n margin-bottom: 0;\n}\n\n@keyframes fadeInUp {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.sage-ai-streaming-content {\n font-family: var(--jp-ui-font-family);\n line-height: 1.5;\n}\n\n/* Improve code block rendering during streaming */\n.sage-ai-streaming-content code {\n font-family: var(--jp-code-font-family);\n background-color: var(--jp-layout-color2);\n padding: 2px 4px;\n border-radius: 3px;\n}\n\n/* Ensure the streaming content expands properly */\n.sage-ai-message-content {\n width: 100%;\n margin-left: 0;\n}\n\n.sage-ai-tool-group {\n margin: 8px 0;\n padding: 8px;\n\n /* border-left: 3px solid var(--jp-brand-color1); */\n background-color: var(--jp-layout-color2);\n border-radius: 4px;\n}\n\n.sage-ai-tool-group-header {\n margin-bottom: 8px;\n font-weight: bold;\n color: var(--jp-ui-font-color1);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.sage-ai-tool-group-header::after {\n content: '▼';\n font-size: 12px;\n transition: transform 0.2s ease;\n}\n\n.sage-ai-tool-group-header.collapsed::after {\n transform: rotate(-90deg);\n}\n\n.sage-ai-tool-group-content {\n overflow: hidden;\n transition: max-height 0.3s ease;\n}\n\n.sage-ai-tool-group-content.collapsed {\n max-height: 0;\n}\n\n.sage-ai-tool-item {\n margin-bottom: 12px;\n border-bottom: 1px solid var(--jp-border-color1);\n padding-bottom: 12px;\n}\n\n.sage-ai-tool-item:last-child {\n margin-bottom: 0;\n border-bottom: none;\n padding-bottom: 0;\n}\n\n.sage-ai-tool-item-header {\n display: flex;\n align-items: center;\n margin-bottom: 4px;\n padding: 0;\n font-weight: bold;\n flex-flow: row wrap;\n place-content: center space-between;\n width: 100%;\n}\n\n.sage-ai-tool-timestamp {\n margin-left: 10px;\n font-size: 11px;\n color: var(--jp-ui-font-color2);\n font-style: italic;\n font-weight: normal;\n}\n\n.sage-ai-tool-call .sage-ai-tool-call-content,\n.sage-ai-tool-result .sage-ai-tool-result-content {\n background-color: var(--jp-layout-color1);\n border-radius: 4px;\n padding: 8px;\n margin-top: 4px;\n font-family: monospace;\n font-size: 12px;\n overflow-x: auto;\n}\n\n/* Add this to your existing CSS */\n\n.sage-ai-dropdown-indicator {\n margin-left: auto;\n font-size: 12px;\n transition: transform 0.2s ease;\n}\n\n.sage-ai-tool-item-header {\n display: flex;\n align-items: center;\n cursor: pointer;\n user-select: none;\n border-radius: 4px;\n}\n\n.sage-ai-tool-item-header:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.sage-ai-tool-item-header.collapsed .sage-ai-dropdown-indicator {\n transform: rotate(-90deg);\n}\n\n.sage-ai-tool-call-content,\n.sage-ai-tool-result-content {\n max-height: 500px;\n overflow: auto;\n transition:\n max-height 0.3s ease,\n opacity 0.3s ease;\n opacity: 1;\n}\n\n.sage-ai-tool-call-content.collapsed,\n.sage-ai-tool-result-content.collapsed {\n max-height: 0;\n overflow: hidden;\n opacity: 0;\n margin: 0;\n padding: 0;\n}\n\n/* Tool group styling */\n.sage-ai-tool-group-title {\n font-weight: bold;\n color: var(--jp-ui-font-color0);\n margin-bottom: 8px;\n padding: 4px 8px;\n background-color: var(--jp-layout-color2);\n border-radius: 4px 4px 0 0;\n border-bottom: 1px solid var(--jp-border-color1);\n}\n\n/* Make sure there's no lingering collapse functionality */\n.sage-ai-tool-group-content {\n display: block;\n overflow: visible;\n max-height: none;\n}\n\n.sage-ai-undo-button {\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 8px;\n gap: 6px;\n width: 32px;\n height: 32px;\n flex: none;\n flex-grow: 0;\n cursor: pointer;\n margin-right: 8px;\n}\n\n.sage-ai-undo-button:disabled {\n opacity: 0.4;\n background-color: rgb(0 0 0 / 10%);\n cursor: not-allowed;\n}\n\n.sage-ai-icon-close {\n font-size: 16px;\n}\n\n.sage-ai-icon-button-sm,\n.sage-ai-icon-button-md {\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: transparent;\n color: #949494;\n line-height: 0;\n border: none;\n cursor: pointer;\n padding: 0;\n border-radius: 50% !important;\n width: 24px;\n height: 24px;\n transition: background-color 0.2s ease;\n}\n\n.sage-ai-icon-button-sm {\n width: 20px;\n height: 20px;\n}\n\n.sage-ai-icon-button-md {\n width: 36px;\n height: 36px;\n}\n\n.sage-ai-icon-button-sm:hover,\n.sage-ai-icon-button-md:hover {\n background-color: var(--jp-layout-color2);\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: var(--jp-ui-font-size0);\n transition: background-color 0.2s;\n}\n\n.sage-ai-undo-button:disabled {\n background-color: var(--jp-layout-color3);\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.sage-ai-undo-button:hover:not(:disabled) {\n background-color: var(--jp-brand-color1);\n}\n\n/* Thread selector styling */\n.sage-ai-thread-selector {\n background-color: transparent;\n border: none;\n color: var(--jp-ui-font-color1);\n cursor: pointer;\n padding: 4px;\n font-size: 14px;\n display: flex;\n align-items: center;\n border-radius: 4px;\n margin-right: 8px;\n}\n\n.sage-ai-thread-selector:hover {\n background-color: var(--jp-layout-color3);\n}\n\n.sage-ai-thread-selector svg {\n width: 24px;\n height: 24px;\n}\n\n.sage-ai-thread-selector-button {\n margin-right: 4px;\n}\n\n.sage-ai-thread-name {\n flex: 1;\n align-content: center;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 600;\n font-size: var(--jp-ui-font-size1);\n}\n\n.d2h-file-header {\n display: none !important;\n}\n\n.d2h-file-wrapper {\n margin-bottom: 0 !important;\n}\n\n.d2h-info {\n display: none !important;\n}\n\n.jp-Notebook-footer {\n display: none !important;\n}\n\n/* Markdown Content Styling */\n.sage-ai-markdown-content {\n line-height: 1.6;\n margin-left: 0 !important;\n margin-top: 4px;\n}\n\n.sage-ai-markdown-content h1,\n.sage-ai-markdown-content h2,\n.sage-ai-markdown-content h3,\n.sage-ai-markdown-content h4,\n.sage-ai-markdown-content h5,\n.sage-ai-markdown-content h6 {\n margin-top: 1em;\n margin-bottom: 0.5em;\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-markdown-content h1 {\n font-size: 1.8em;\n}\n\n.sage-ai-markdown-content h2 {\n font-size: 1.6em;\n}\n\n.sage-ai-markdown-content h3 {\n font-size: 1.4em;\n}\n\n.sage-ai-markdown-content h4 {\n font-size: 1.2em;\n}\n\n.sage-ai-markdown-content h5 {\n font-size: 1.1em;\n}\n\n.sage-ai-markdown-content h6 {\n font-size: 1em;\n}\n\n.sage-ai-markdown-content p {\n margin: 0;\n}\n\n.sage-ai-markdown-content ul,\n.sage-ai-markdown-content ol {\n padding-left: 2em;\n margin: 4px;\n}\n\n.sage-ai-markdown-content ul {\n list-style-type: disc;\n}\n\n.sage-ai-markdown-content ol {\n list-style-type: decimal;\n}\n\n.sage-ai-markdown-content li {\n margin: 0.3em 0;\n}\n\n.sage-ai-markdown-content a {\n color: var(--jp-brand-color1);\n text-decoration: none;\n}\n\n.sage-ai-markdown-content a:hover {\n text-decoration: underline;\n}\n\n.sage-ai-markdown-content blockquote {\n border-left: 4px solid var(--jp-border-color2);\n padding-left: 1em;\n margin: 1em 0;\n color: var(--jp-ui-font-color2);\n}\n\n.sage-ai-markdown-content code {\n font-family: var(--jp-code-font-family);\n background-color: var(--jp-layout-color2);\n padding: 2px 4px;\n border-radius: 3px;\n}\n\n.sage-ai-markdown-content pre {\n background-color: var(--jp-layout-color2);\n border-radius: 8px;\n padding: 1em;\n overflow-x: auto;\n margin: 1em 0;\n position: relative;\n}\n\n.sage-ai-markdown-content pre code {\n background-color: transparent;\n padding: 0;\n font-size: 0.9em;\n white-space: pre;\n}\n\n.sage-ai-markdown-content table {\n border-collapse: collapse;\n width: 100%;\n margin: 1em 0;\n}\n\n.sage-ai-markdown-content th,\n.sage-ai-markdown-content td {\n border: 1px solid var(--jp-border-color2);\n padding: 8px;\n text-align: left;\n}\n\n.sage-ai-markdown-content th {\n background-color: var(--jp-layout-color2);\n font-weight: bold;\n}\n\n.sage-ai-markdown-content img {\n max-width: 100%;\n height: auto;\n}\n\n/* Code Block Container */\n.sage-ai-code-block-container {\n position: relative;\n margin: 1em 0;\n}\n\n/* Copy Code Button */\n.sage-ai-copy-code-button {\n position: absolute;\n top: 5px;\n right: 5px;\n background-color: transparent;\n color: var(--jp-ui-font-color1);\n border: none;\n border-radius: 4px;\n padding: 4px 8px;\n font-size: 12px;\n cursor: pointer;\n opacity: 0.7;\n transition: opacity 0.2s;\n}\n\n.sage-ai-copy-code-button:hover {\n opacity: 1;\n}\n\n/* Message structure */\n.sage-ai-message-header {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n\n.sage-ai-message-header-image {\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(\n 135deg,\n rgb(254 193 99 / 12%) 0%,\n rgb(222 67 19 / 12%) 100%\n );\n height: 27px;\n width: 27px;\n flex-shrink: 0;\n border-radius: 50%;\n}\n\n.sage-ai-message-header-title {\n color: var(--jp-ui-font-color2);\n font-size: var(--jp-ui-font-size1);\n font-weight: 500;\n}\n\n/* Context cells indicator */\n.context-cells-indicator {\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n font-size: 12px;\n margin: 8px;\n margin-bottom: 0;\n border-radius: 4px;\n color: #666;\n width: calc(100% - 32px);\n display: none !important;\n}\n\n/* Hide indicator when no cells are in context */\n.context-cells-indicator.hidden {\n display: none;\n}\n\n/* Context cell box (like .sage-ai-cell-id-label) */\n.sage-ai-context-cell-box {\n background: #e6f7ff;\n color: #1976d2;\n border: 2px solid #1976d2;\n border-radius: 4px;\n font-size: 12px;\n padding: 4px;\n z-index: 101;\n display: inline-flex;\n align-items: center;\n position: relative;\n gap: 4px;\n transition:\n box-shadow 0.2s,\n border 0.2s;\n margin-bottom: 2px;\n box-shadow: 0 2px 8px rgb(25 118 210 / 12%);\n font-weight: 500;\n flex-direction: row;\n}\n\n.sage-ai-context-cell-box:hover {\n box-shadow: 0 4px 16px rgb(25 118 210 / 18%);\n border-color: #1251a3;\n}\n\n.sage-ai-context-cell-delete {\n color: #e53935;\n font-size: 14px;\n cursor: pointer;\n line-height: 0;\n}\n\n.sage-ai-tool-call-v1 {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-top: 4px;\n margin-bottom: 4px;\n padding: 0 8px;\n font-family: var(--jp-ui-font-family);\n font-size: var(--jp-ui-font-size1);\n color: var(--jp-ui-font-color2);\n}\n\n.sage-ai-tool-call-v1.clickable {\n cursor: pointer;\n}\n\n.sage-ai-tool-call-v1.error-state svg {\n fill: var(--error-fill-active) !important;\n}\n\n.sage-ai-tool-call-v1.error-state span {\n color: var(--error-fill-active) !important;\n}\n\n.sage-ai-loading-text {\n background: linear-gradient(\n 135deg,\n transparent,\n var(--jp-ui-font-color1),\n transparent\n );\n background-clip: text;\n color: transparent !important;\n background-size: 200% 100%;\n animation: shimmer 2.5s linear infinite;\n}\n\n@keyframes shimmer {\n 0% {\n background-position: 200% 0;\n }\n\n 100% {\n background-position: -200% 0;\n }\n}\n\n.sage-ai-tool-call-cell {\n border-radius: 5px;\n background: rgb(59 130 246 / 13%);\n color: #60a5fa;\n padding: 1px 6px;\n font-family: var(--jp-code-font-family), serif;\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: 160%; /* 19.2px */\n border: none;\n}\n\n.sage-ai-tool-call-cell:hover {\n background: rgb(59 130 246 / 20%);\n color: #2563eb;\n cursor: pointer;\n}\n\n.sage-ai-tool-call-code {\n background: var(--d2h-dark-selected-color);\n color: var(--jp-ui-font-color1);\n border-radius: 4px;\n font-size: var(--jp-ui-font-size0);\n padding: 2px 4px;\n}\n\n/* Mode selector styles are now in mode-selector-dropdown.css */\n\n/* Floating current/next step box */\n.sage-ai-step-floating-box {\n position: fixed;\n justify-self: anchor-center;\n backdrop-filter: blur(10px);\n border: 0 solid var(--jp-border-color2);\n border-bottom-width: 1px;\n width: calc(100% - 25px);\n padding: 8px 12px;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n z-index: 100;\n display: none;\n font-size: var(--jp-ui-font-size0);\n line-height: 1.4;\n}\n\n.sage-ai-step-floating-box.visible {\n display: flex;\n gap: 8px;\n max-height: 80px;\n}\n\n.sage-ai-chat-history.floating-box-visible > :first-child {\n margin-top: 84px !important;\n}\n\n.sage-ai-step-floating-box .content {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.sage-ai-step-floating-box .current-task-text {\n color: var(--jp-ui-font-color0);\n font-size: 11px;\n margin: 0;\n margin-top: 3px;\n}\n\n.sage-ai-step-floating-box .next-task-text {\n color: var(--jp-ui-font-color2);\n font-size: var(--jp-ui-font-size0);\n margin: 0;\n}\n\n.sage-ai-step-floating-box .close-button {\n background: none;\n border: none;\n color: var(--jp-ui-font-color2);\n cursor: pointer;\n padding: 2px;\n font-size: 14px;\n line-height: 1;\n border-radius: 2px;\n transition: background-color 0.2s;\n}\n\n.sage-ai-step-floating-box .close-button:hover {\n background-color: var(--jp-layout-color3);\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-step-floating-box .loader {\n width: 20px;\n height: 20px;\n display: inline-block;\n position: relative;\n}\n\n.sage-ai-step-floating-box .loader::after,\n.sage-ai-step-floating-box .loader::before {\n content: '';\n box-sizing: border-box;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n border: 2px solid var(--jp-ui-font-color1);\n position: absolute;\n left: 0;\n top: 0;\n animation: sage-ai-step-floating-box-animloader 2s linear infinite;\n}\n\n.sage-ai-step-floating-box .loader::after {\n animation-delay: 1s;\n}\n\n@keyframes sage-ai-step-floating-box-animloader {\n 0% {\n transform: scale(0);\n opacity: 1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0;\n }\n}\n\n.sage-ai-step-floating-box .source-toggle {\n align-self: center;\n background: none;\n border: none;\n color: var(--jp-ui-font-color2);\n cursor: pointer;\n font-size: var(--jp-ui-font-size0);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border-radius: 4px;\n transition:\n background-color 0.2s,\n color 0.2s;\n width: 24px;\n height: 24px;\n}\n\n.sage-ai-step-floating-box .source-toggle:hover {\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-step-floating-box .toggle-icon {\n font-size: 12px;\n transition: transform 0.2s ease;\n line-height: 1;\n}\n\n.sage-ai-step-floating-box .source-content {\n padding: 8px;\n background-color: var(--jp-layout-color2);\n border-radius: 4px;\n border: 1px solid var(--jp-border-color2);\n overflow-y: auto;\n resize: vertical;\n min-height: 100px;\n max-height: 60vh;\n}\n\n.sage-ai-step-floating-box .source-markdown {\n font-family: var(--jp-code-font-family);\n font-size: 11px;\n line-height: 1.4;\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-step-floating-box .source-markdown h1,\n.sage-ai-step-floating-box .source-markdown h2,\n.sage-ai-step-floating-box .source-markdown h3,\n.sage-ai-step-floating-box .source-markdown h4,\n.sage-ai-step-floating-box .source-markdown h5,\n.sage-ai-step-floating-box .source-markdown h6 {\n margin: 8px 0 4px;\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-step-floating-box .source-markdown h1 {\n font-size: 14px;\n}\n\n.sage-ai-step-floating-box .source-markdown h2 {\n font-size: 13px;\n}\n\n.sage-ai-step-floating-box .source-markdown h3 {\n font-size: 12px;\n}\n\n.sage-ai-step-floating-box .source-markdown h4,\n.sage-ai-step-floating-box .source-markdown h5,\n.sage-ai-step-floating-box .source-markdown h6 {\n font-size: 11px;\n}\n\n.sage-ai-step-floating-box .source-markdown p {\n margin: 4px 0;\n}\n\n.sage-ai-step-floating-box .source-markdown ul,\n.sage-ai-step-floating-box .source-markdown ol {\n padding-left: 16px;\n margin: 4px 0;\n}\n\n.sage-ai-step-floating-box .source-markdown li {\n margin: 2px 0;\n}\n\n.sage-ai-step-floating-box .source-markdown code {\n background-color: var(--jp-layout-color1);\n padding: 1px 3px;\n border-radius: 2px;\n font-size: 10px;\n}\n\n.sage-ai-step-floating-box .source-markdown pre {\n background-color: var(--jp-layout-color1);\n border-radius: 4px;\n padding: 6px;\n margin: 4px 0;\n overflow-x: auto;\n}\n\n.sage-ai-step-floating-box .source-markdown pre code {\n background-color: transparent;\n padding: 0;\n font-size: 10px;\n}\n\n.sage-ai-step-floating-box .source-markdown blockquote {\n border-left: 3px solid var(--jp-border-color2);\n padding-left: 8px;\n margin: 4px 0;\n color: var(--jp-ui-font-color2);\n font-style: italic;\n}\n\n/* Adjust floating box height when source is expanded */\n.sage-ai-step-floating-box.visible {\n display: flex;\n gap: 8px;\n max-height: none;\n flex-wrap: wrap;\n}\n\n.sage-ai-step-floating-box.visible .content {\n flex: 1;\n min-width: 200px;\n}\n\n.sage-ai-step-floating-box.visible .source-section {\n flex-basis: 100%;\n}\n\n/* Diff2Html overrides */\n.d2h-code-line {\n padding: 0 5em !important;\n}\n\n.d2h-code-linenumber {\n width: 4.5em !important;\n backdrop-filter: blur(8px);\n}\n\n.line-num1,\n.line-num2 {\n width: 50% !important;\n text-align: center !important;\n padding: 0 !important;\n}\n\n.hljs-regexp,\n.hljs-string,\n.hljs-meta .hljs-string {\n color: var(--jp-brand-color0) !important;\n}\n\n.hljs {\n color: var(--jp-ui-font-color2) !important;\n}\n\n.sage-ai-waiting-reply-container {\n display: none;\n bottom: 0;\n margin: 8px 0 0;\n font-size: 12px;\n padding: 12px;\n /*color: rgb(238 196 70 / 100%);*/\n border-radius: 12px;\n /*border: 1px solid rgb(238 196 70 / 50%);*/\n text-align: center;\n /*box-shadow: 0 2px 8px rgb(0 0 0 / 10%);*/\n /*backdrop-filter: blur(8px);*/\n background: transparent;\n}\n\n[data-jp-theme-light='false'] .sage-ai-waiting-reply-container {\n /*background: var(--BG-main, #111);*/\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-waiting-reply-container.visible {\n display: block;\n}\n\n.sage-ai-waiting-reply-text {\n margin-bottom: 2px;\n font-weight: 500;\n}\n\n.sage-ai-continue-button {\n background-color: transparent;\n color: white;\n padding: 6px;\n border-radius: 4px !important;\n border: 1px solid #383838 !important;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n margin-top: 6px;\n transition: all 0.2s ease;\n}\n\n.sage-ai-continue-button.hidden {\n display: none;\n}\n\n.sage-ai-continue-button:hover {\n background-color: transparent;\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgb(0 0 0 / 15%);\n}\n\n.sage-ai-continue-button:active {\n transform: translateY(1px);\n}\n\n.sage-ai-prompt-buttons-container {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 12px;\n}\n\n[data-jp-theme-light='false'] .sage-ai-prompt-button {\n color: white !important;\n}\n\n.sage-ai-prompt-button {\n background-color: transparent;\n padding: 8px 12px;\n border-radius: 6px !important;\n border: 1px solid #383838 !important;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n text-align: left;\n min-height: 32px;\n white-space: normal;\n word-wrap: break-word;\n}\n\n.sage-ai-prompt-button:hover {\n background-color: transparent;\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgb(0 0 0 / 15%);\n}\n\n.sage-ai-prompt-button:active {\n transform: translateY(1px);\n}\n\n.cm-editor:has(+ .jp-DiffOverlay) {\n display: none !important;\n}\n\n.jp-InputArea:has(.jp-DiffOverlay.sage-ai-quick-gen-diff-overlay) {\n display: block !important;\n}\n\n.hljs-subst {\n color: #9bb8d4 !important;\n}\n\n.sage-ai-restore-redo-element {\n animation: fadeIn 0.2s ease;\n display: none;\n backdrop-filter: blur(2px);\n border-radius: 50%;\n padding: 0;\n position: absolute;\n bottom: -7px;\n right: 25px;\n cursor: pointer;\n z-index: 0;\n}\n\n.sage-ai-restore-redo-element {\n color: var(--jp-ui-font-color2);\n}\n\n.sage-ai-restore-redo-element:hover {\n color: var(--jp-ui-font-color3);\n}\n\n/* Rollback element styles */\n.sage-ai-rollback-element {\n animation: fadeIn 0.2s ease;\n display: inline-flex;\n backdrop-filter: blur(2px);\n border-radius: 50%;\n padding: 2px;\n position: absolute;\n bottom: -6px;\n right: 0;\n align-items: center;\n cursor: pointer;\n z-index: 5;\n}\n\n.sage-ai-rollback-icon {\n transition: transform 0.2s cubic-bezier(.4,2,.6,1), filter 0.2s;\n display: inline-flex;\n}\n\n.sage-ai-rollback-tooltip {\n position: absolute;\n left: -140px;\n top: 50%;\n transform: translateY(-50%) translateX(-10px);\n background: var(--jp-layout-color2, #f5f5f5);\n color: var(--jp-ui-font-color1, #222);\n padding: 4px 10px;\n border-radius: 6px;\n font-size: 13px;\n white-space: nowrap;\n box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n transition: opacity 0.2s cubic-bezier(.4,2,.6,1), transform 0.2s cubic-bezier(.4,2,.6,1);\n z-index: 10;\n opacity: 0;\n pointer-events: none;\n}\n\n.sage-ai-rollback-element:hover .sage-ai-rollback-tooltip {\n opacity: 1;\n transform: translateY(-50%) translateX(0);\n}\n\n.sage-ai-rollback-element:hover .sage-ai-rollback-icon {\n transform: scale(1.25);\n filter: drop-shadow(0 2px 6px rgba(0,0,0,0.10));\n}\n\n/* Authentication Card Styles */\n.sage-ai-auth-card {\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 300px;\n padding: 32px 16px;\n margin: 0 auto;\n max-width: 450px;\n}\n\n.sage-ai-auth-card-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n padding: 32px;\n border-radius: 16px;\n background: var(--jp-layout-color0);\n border: 1px solid var(--jp-border-color2);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n text-align: center;\n position: relative;\n overflow: hidden;\n}\n\n[data-jp-theme-light='false'] .sage-ai-auth-card-content {\n background: linear-gradient(135deg, #1e1e1e 0%, #252525 100%);\n border: 1px solid #3a3a3a;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);\n}\n\n[data-jp-theme-light='true'] .sage-ai-auth-card-content {\n background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);\n border: 1px solid #e1e5e9;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);\n}\n\n/* Add a subtle glow effect */\n.sage-ai-auth-card-content::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 1px;\n background: linear-gradient(90deg, transparent, rgba(74, 144, 226, 0.3), transparent);\n}\n\n.sage-ai-auth-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 64px;\n height: 64px;\n border-radius: 16px;\n background: linear-gradient(135deg, #4a90e2 0%, #357abd 100%);\n color: white;\n margin-bottom: 8px;\n box-shadow: 0 4px 12px rgba(74, 144, 226, 0.25);\n}\n\n[data-jp-theme-light='false'] .sage-ai-auth-icon {\n background: linear-gradient(135deg, #4a90e2 0%, #357abd 100%);\n box-shadow: 0 4px 16px rgba(74, 144, 226, 0.3);\n}\n\n.sage-ai-auth-header h3 {\n margin: 0 0 8px 0;\n font-size: 20px;\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n letter-spacing: -0.01em;\n}\n\n.sage-ai-auth-header p {\n margin: 0;\n font-size: 14px;\n color: var(--jp-ui-font-color2);\n line-height: 1.5;\n max-width: 320px;\n}\n\n.sage-ai-auth-login-button {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n min-width: 140px;\n height: 44px;\n padding: 0 24px;\n border: none;\n border-radius: 8px !important;\n background: linear-gradient(135deg, #4a90e2 0%, #357abd 100%);\n color: white;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n box-shadow: 0 2px 8px rgba(74, 144, 226, 0.25);\n position: relative;\n overflow: hidden;\n}\n\n.sage-ai-auth-login-button:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(74, 144, 226, 0.35);\n background: linear-gradient(135deg, #5ba0f2 0%, #4689cd 100%);\n}\n\n.sage-ai-auth-login-button:active {\n transform: translateY(0);\n box-shadow: 0 2px 6px rgba(74, 144, 226, 0.25);\n}\n\n.sage-ai-auth-login-button svg {\n flex-shrink: 0;\n transition: transform 0.15s ease;\n}\n\n.sage-ai-auth-login-button:hover svg {\n transform: translateX(2px);\n}\n\n/* Responsive design */\n@media (max-width: 480px) {\n .sage-ai-auth-card {\n padding: 16px 12px;\n min-height: 250px;\n }\n \n .sage-ai-auth-card-content {\n padding: 24px 20px;\n gap: 20px;\n }\n \n .sage-ai-auth-icon {\n width: 56px;\n height: 56px;\n }\n \n .sage-ai-auth-header h3 {\n font-size: 18px;\n }\n \n .sage-ai-auth-header p {\n font-size: 13px;\n }\n}\n\n/* Theme-aware styling for context menu icons (snippet, variable, data, database, cell, etc.) */\n/* Make icon strokes medium gray in light mode, adapting to theme */\n[data-jp-theme-light='true'] [data-icon^='signalpilot-ai-internal:context-'] path,\n[data-jp-theme-light='true'] [data-icon='signalpilot-ai-internal:back-caret-icon'] path {\n stroke: #616161 !important;\n}\n\n/* Ensure icons remain light in dark mode */\n[data-jp-theme-light='false'] [data-icon^='signalpilot-ai-internal:context-'] path,\n[data-jp-theme-light='false'] [data-icon='signalpilot-ai-internal:back-caret-icon'] path {\n stroke: #E7E7E7 !important;\n}\n",""]);const s=i},74246:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,".sage-ai-codebase-manager {\n padding: 16px;\n flex-shrink: 0; /* Prevent shrinking within settings container */\n}\n\n.sage-ai-section-title {\n margin-top: 0;\n margin-bottom: 8px;\n}\n\n.sage-ai-section-description {\n margin-top: 0;\n margin-bottom: 16px;\n color: var(--jp-ui-font-color2);\n}\n\n.sage-ai-add-repo-form {\n background-color: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color1);\n border-radius: 4px;\n padding: 16px;\n margin-bottom: 16px;\n}\n\n.sage-ai-form-group {\n margin-bottom: 12px;\n}\n\n.sage-ai-form-group label {\n display: block;\n margin-bottom: 4px;\n font-weight: 500;\n}\n\n.sage-ai-settings-title {\n margin-left: 16px;\n}\n\n.sage-ai-input, .sage-ai-textarea {\n width: 98%;\n padding: 8px;\n border: 1px solid var(--jp-border-color1);\n border-radius: 4px;\n background-color: var(--jp-layout-color0);\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-button {\n padding: 8px 16px;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n border: none;\n}\n\n.sage-ai-primary-button {\n background-color: var(--jp-brand-color1);\n color: white;\n}\n\n.sage-ai-primary-button:hover {\n background-color: var(--jp-brand-color0);\n}\n\n.sage-ai-codebase-list {\n margin-top: 20px;\n max-height: 400px; /* Set maximum height */\n overflow-y: auto; /* Enable vertical scrolling */\n scroll-behavior: smooth; /* Add smooth scrolling */\n padding-right: 4px; /* Add some padding for the scrollbar */\n}\n\n/* Styling for webkit-based browsers' scrollbars */\n.sage-ai-codebase-list::-webkit-scrollbar {\n width: 8px;\n}\n\n.sage-ai-codebase-list::-webkit-scrollbar-track {\n background: var(--jp-layout-color0);\n border-radius: 4px;\n}\n\n.sage-ai-codebase-list::-webkit-scrollbar-thumb {\n background: var(--jp-border-color2);\n border-radius: 4px;\n}\n\n.sage-ai-codebase-list::-webkit-scrollbar-thumb:hover {\n background: var(--jp-border-color1);\n}\n\n.sage-ai-empty-state {\n padding: 20px;\n text-align: center;\n border: 1px dashed var(--jp-border-color1);\n color: var(--jp-ui-font-color2);\n border-radius: 4px;\n}\n\n.sage-ai-codebase-item {\n border: 1px solid var(--jp-border-color1);\n border-radius: 4px;\n padding: 16px;\n margin-bottom: 12px;\n background-color: var(--jp-layout-color1);\n}\n\n.sage-ai-codebase-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 8px;\n}\n\n.sage-ai-codebase-title {\n font-weight: bold;\n margin: 0;\n}\n\n.sage-ai-codebase-path {\n margin: 4px 0;\n color: var(--jp-ui-font-color2);\n word-break: break-all;\n}\n\n.sage-ai-codebase-instructions {\n margin: 8px 0;\n padding: 8px;\n background-color: var(--jp-layout-color0);\n border-left: 3px solid var(--jp-brand-color1);\n border-radius: 2px;\n}\n\n.sage-ai-codebase-actions {\n display: flex;\n gap: 8px;\n}\n\n.sage-ai-action-button {\n padding: 4px 8px;\n border-radius: 4px;\n cursor: pointer;\n border: 1px solid var(--jp-border-color1);\n background-color: var(--jp-layout-color2);\n color: var(--jp-ui-font-color0);\n font-size: 0.9em;\n}\n\n.sage-ai-action-button:hover {\n background-color: var(--jp-layout-color3);\n}\n\n.sage-ai-danger-button {\n color: var(--jp-error-color1);\n border-color: var(--jp-error-color1);\n}\n\n.sage-ai-danger-button:hover {\n background-color: rgba(var(--jp-error-color-rgb), 0.1);\n}\n\n.sage-ai-index-status {\n font-size: 0.9em;\n margin: 8px 0;\n padding: 4px 8px;\n background-color: var(--jp-layout-color2);\n border-radius: 4px;\n display: inline-block;\n}\n",""]);const s=i},76314:n=>{n.exports=function(n){var o=[];return o.toString=function(){return this.map(function(o){var e="",a=void 0!==o[5];return o[4]&&(e+="@supports (".concat(o[4],") {")),o[2]&&(e+="@media ".concat(o[2]," {")),a&&(e+="@layer".concat(o[5].length>0?" ".concat(o[5]):""," {")),e+=n(o),a&&(e+="}"),o[2]&&(e+="}"),o[4]&&(e+="}"),e}).join("")},o.i=function(n,e,a,r,t){"string"==typeof n&&(n=[[null,n,void 0]]);var i={};if(a)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(i[l]=!0)}for(var p=0;p<n.length;p++){var d=[].concat(n[p]);a&&i[d[0]]||(void 0!==t&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=t),e&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=e):d[2]=e),r&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=r):d[4]="".concat(r)),o.push(d))}},o}},77659:n=>{var o={};n.exports=function(n,e){var a=function(n){if(void 0===o[n]){var e=document.querySelector(n);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(n){e=null}o[n]=e}return o[n]}(n);if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(e)}},81346:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* Styles for cell edit mode overlay */\n.sage-ai-diff-edit-mode-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.05);\n z-index: 10;\n cursor: not-allowed;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.sage-ai-diff-edit-mode-banner {\n position: absolute;\n top: 0;\n left: 20px;\n background-color: #fc5151;\n color: white;\n padding: 4px 8px;\n font-size: 12px;\n font-weight: bold;\n border-radius: 0 0 0 4px;\n z-index: 11;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n display: none !important;\n}\n\n.sage-ai-diff-edit-mode-instructions {\n position: absolute;\n top: 10px;\n left: 50%;\n transform: translateX(-50%);\n background-color: var(--jp-brand-color1);\n color: var(--jp-ui-font-color1);\n padding: 6px 12px;\n font-size: 11px;\n border-radius: 4px;\n z-index: 11;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n text-align: center;\n max-width: 80%;\n}\n\n/* Make sure the cell has relative positioning for absolute positioning to work */\n.jp-Cell.jp-mod-selected.sage-ai-diff-edit-mode {\n position: relative;\n}\n\n/* Make the diff content more readable */\n.diff-view {\n padding: 10px;\n border-radius: 4px;\n background-color: var(--jp-layout-color0);\n}\n",""]);const s=i},84651:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* Database Manager Widget Schema Container Styles */\n.database-schema-container {\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n\n.schema-not-loaded {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 20px;\n}\n\n.schema-error-content {\n text-align: center;\n max-width: 400px;\n}\n\n.schema-error-content h3 {\n color: var(--jp-warn-color1);\n margin-bottom: 12px;\n font-size: 18px;\n}\n\n.schema-error-content p {\n color: var(--jp-ui-font-color2);\n margin-bottom: 20px;\n line-height: 1.4;\n}\n\n.schema-error-actions {\n display: flex;\n gap: 12px;\n justify-content: center;\n}\n\n.refresh-schema-button {\n background: var(--jp-brand-color1);\n color: white;\n border: none;\n padding: 8px 16px;\n border-radius: 4px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n transition: background-color 0.2s;\n}\n\n.refresh-schema-button:hover {\n background: var(--jp-brand-color0);\n}\n\n/* Database Schema Explorer Styles */\n.database-schema-explorer {\n height: 100%;\n display: flex;\n padding: 16px;\n flex-direction: column;\n background: var(--jp-layout-color0);\n color: var(--jp-ui-font-color1);\n}\n\n/* Header Styles */\n.schema-explorer-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 16px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--jp-border-color1);\n}\n\n.back-button {\n background: transparent;\n color: var(--jp-ui-font-color1);\n border: 0.5px solid var(--jp-border-color1);\n padding: 6px 12px;\n border-radius: 6px !important;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n transition: all 0.2s ease;\n min-width: 76px;\n}\n\n.back-button:hover {\n background: var(--jp-layout-color2);\n border-color: var(--jp-border-color2);\n transform: translateY(-1px);\n}\n\n.database-title, .table-title {\n font-size: 18px;\n font-weight: 600;\n margin: 0;\n color: var(--jp-ui-font-color0);\n}\n\n.tables-count {\n color: var(--jp-ui-font-color2);\n font-size: 14px;\n}\n\n.table-full-name {\n color: var(--jp-ui-font-color2);\n font-size: 12px;\n font-family: monospace;\n}\n\n/* Search Styles */\n.tables-search {\n margin-bottom: 16px;\n}\n\n.search-input {\n width: 100%;\n padding: 8px 12px;\n border: 1px solid var(--jp-border-color1);\n border-radius: 4px;\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n font-size: 14px;\n}\n\n.search-input:focus {\n outline: none;\n border-color: var(--jp-brand-color1);\n box-shadow: 0 0 0 2px rgba(54, 124, 255, 0.2);\n}\n\n/* Tables List Styles */\n.tables-list {\n flex: 1;\n overflow-y: auto;\n padding-right: 4px;\n}\n\n.no-tables {\n text-align: center;\n color: var(--jp-ui-font-color2);\n padding: 40px 20px;\n font-style: italic;\n}\n\n.table-item {\n border: 1px solid var(--jp-border-color1);\n border-radius: 6px;\n margin-bottom: 8px;\n padding: 12px;\n transition: all 0.2s;\n background: var(--jp-layout-color1);\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.table-item:hover {\n border-color: var(--jp-brand-color1);\n background: var(--jp-layout-color2);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.table-item-content {\n flex: 1;\n cursor: pointer;\n}\n\n.table-item-content {\n flex: 1;\n cursor: pointer;\n}\n\n.table-item-header {\n margin-bottom: 8px;\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n\n.table-name-section {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-bottom: 4px;\n}\n\n.table-name {\n font-weight: 600;\n font-size: 14px;\n color: var(--jp-ui-font-color0);\n margin-bottom: 2px;\n}\n\n.table-item-stats {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.table-stat {\n font-size: 12px;\n color: var(--jp-ui-font-color2);\n background: var(--jp-layout-color0);\n padding: 2px 6px;\n border-radius: 3px;\n border: 1px solid var(--jp-border-color2);\n}\n\n/* Table Details Styles */\n.table-details {\n flex: 1;\n overflow-y: auto;\n}\n\n.schema-section {\n margin-bottom: 24px;\n border: 1px solid var(--jp-border-color1);\n border-radius: 6px;\n overflow: hidden;\n}\n\n.section-title {\n background: var(--jp-layout-color2);\n margin: 0;\n padding: 12px 16px;\n font-size: 14px;\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n border-bottom: 1px solid var(--jp-border-color1);\n}\n\n/* Columns Table Styles */\n.columns-table {\n background: var(--jp-layout-color1);\n}\n\n.columns-header {\n display: grid;\n grid-template-columns: 2fr 1.5fr 80px 1.5fr;\n gap: 12px;\n padding: 8px 16px;\n background: var(--jp-layout-color2);\n font-weight: 600;\n font-size: 12px;\n color: var(--jp-ui-font-color1);\n border-bottom: 1px solid var(--jp-border-color1);\n}\n\n.column-row {\n display: grid;\n grid-template-columns: 2fr 1.5fr 80px 1.5fr;\n gap: 12px;\n padding: 8px 16px;\n border-bottom: 1px solid var(--jp-border-color2);\n font-size: 13px;\n}\n\n.column-row:last-child {\n border-bottom: none;\n}\n\n.column-row:hover {\n background: var(--jp-layout-color2);\n}\n\n.column-name {\n display: flex;\n align-items: center;\n gap: 6px;\n font-family: monospace;\n}\n\n.column-name-text.primary-key {\n font-weight: 600;\n color: var(--jp-warn-color1);\n}\n\n.primary-key-indicator, .foreign-key-indicator {\n font-size: 11px;\n}\n\n.column-type {\n font-family: monospace;\n color: var(--jp-ui-font-color1);\n}\n\n.column-nullable {\n text-align: center;\n font-weight: 500;\n}\n\n.column-default {\n font-family: monospace;\n color: var(--jp-ui-font-color2);\n word-break: break-all;\n}\n\n/* Keys Styles */\n.keys-list {\n padding: 12px 16px;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.key-item {\n font-family: monospace;\n padding: 4px 8px;\n border-radius: 3px;\n font-size: 12px;\n font-weight: 500;\n}\n\n.primary-key-item {\n background: rgba(255, 193, 7, 0.1);\n border: 1px solid rgba(255, 193, 7, 0.3);\n color: var(--jp-warn-color1);\n}\n\n/* Foreign Keys Styles */\n.foreign-keys-list {\n padding: 12px 16px;\n}\n\n.foreign-key-item {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 8px;\n font-family: monospace;\n font-size: 12px;\n}\n\n.foreign-key-item:last-child {\n margin-bottom: 0;\n}\n\n.fk-column {\n font-weight: 600;\n color: var(--jp-info-color1);\n}\n\n.fk-arrow {\n color: var(--jp-ui-font-color2);\n}\n\n.fk-reference {\n color: var(--jp-ui-font-color1);\n}\n\n/* Indices Styles */\n.indices-list {\n padding: 12px 16px;\n}\n\n.index-item {\n margin-bottom: 12px;\n padding: 8px;\n background: var(--jp-layout-color0);\n border-radius: 4px;\n border: 1px solid var(--jp-border-color2);\n}\n\n.index-item:last-child {\n margin-bottom: 0;\n}\n\n.index-name {\n font-weight: 600;\n font-size: 12px;\n color: var(--jp-ui-font-color0);\n margin-bottom: 4px;\n}\n\n.index-definition {\n font-family: monospace;\n font-size: 11px;\n color: var(--jp-ui-font-color2);\n word-break: break-all;\n line-height: 1.4;\n}\n\n/* Add to Context Button Styles */\n.add-to-context-button {\n background: #7a7a7a;\n color: #E7E7E7;\n border: none;\n padding: 6px 12px;\n border-radius: 6px !important;\n cursor: pointer;\n font-size: 12px;\n font-weight: 500;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: fit-content;\n flex-shrink: 0;\n align-self: flex-start;\n margin-bottom: 6px;\n}\n\n.add-to-context-button:hover {\n background: #949494;\n transform: translateY(-1px);\n box-shadow: none;\n}\n\n.add-to-context-button:active {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.add-to-context-icon {\n font-size: 14px;\n font-weight: bold;\n line-height: 1;\n}\n\n/* Detail view button positioning */\n.detail-view-button {\n margin-bottom: 8px;\n align-self: flex-start;\n}\n\n/* Table title section layout for detail view */\n.table-title-section {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .columns-header,\n .column-row {\n grid-template-columns: 1fr;\n gap: 4px;\n }\n \n .column-row > div {\n padding: 2px 0;\n }\n \n .column-row > div:before {\n content: attr(data-label) ': ';\n font-weight: 600;\n color: var(--jp-ui-font-color2);\n }\n \n .columns-header {\n display: none;\n }\n \n .foreign-key-item {\n flex-direction: column;\n align-items: flex-start;\n gap: 4px;\n }\n}\n\n/* Dark Theme Adjustments */\nbody[data-jp-theme-name=\"JupyterLab Dark\"] .database-schema-explorer {\n .table-item {\n background: var(--jp-layout-color1);\n }\n \n .table-item:hover {\n background: var(--jp-layout-color2);\n }\n \n .search-input {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n }\n}\n\n/* ============================================\n Snowflake Schema Viewer Specific Styles\n ============================================ */\n\n/* Snowflake-specific list styles */\n.snowflake-schema-viewer .snowflake-databases-list,\n.snowflake-schema-viewer .snowflake-schemas-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n/* Database item styling */\n.snowflake-schema-viewer .database-item {\n background: linear-gradient(135deg, rgba(41, 181, 232, 0.05) 0%, rgba(41, 181, 232, 0.02) 100%);\n border-left: 3px solid #29B5E8;\n}\n\n.snowflake-schema-viewer .database-item:hover {\n background: linear-gradient(135deg, rgba(41, 181, 232, 0.1) 0%, rgba(41, 181, 232, 0.05) 100%);\n border-left-color: #1a9fd4;\n}\n\n/* Schema item styling */\n.snowflake-schema-viewer .schema-item {\n background: linear-gradient(135deg, rgba(147, 51, 234, 0.05) 0%, rgba(147, 51, 234, 0.02) 100%);\n border-left: 3px solid #9333ea;\n}\n\n.snowflake-schema-viewer .schema-item:hover {\n background: linear-gradient(135deg, rgba(147, 51, 234, 0.1) 0%, rgba(147, 51, 234, 0.05) 100%);\n border-left-color: #7c3aed;\n}\n\n/* Schema error state */\n.snowflake-schema-viewer .schema-item.schema-error {\n background: linear-gradient(135deg, rgba(239, 68, 68, 0.05) 0%, rgba(239, 68, 68, 0.02) 100%);\n border-left-color: #ef4444;\n cursor: not-allowed;\n opacity: 0.7;\n}\n\n.snowflake-schema-viewer .schema-item.schema-error:hover {\n background: linear-gradient(135deg, rgba(239, 68, 68, 0.08) 0%, rgba(239, 68, 68, 0.03) 100%);\n}\n\n.snowflake-schema-viewer .schema-error-message {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 16px;\n background: rgba(239, 68, 68, 0.1);\n border: 1px solid rgba(239, 68, 68, 0.3);\n border-radius: 6px;\n margin: 16px 0;\n color: var(--jp-error-color1);\n}\n\n.snowflake-schema-viewer .error-icon {\n font-size: 24px;\n flex-shrink: 0;\n}\n\n.snowflake-schema-viewer .error-stat {\n background: rgba(239, 68, 68, 0.1);\n border-color: rgba(239, 68, 68, 0.3);\n color: var(--jp-error-color1);\n}\n\n/* Snowflake-specific column styles */\n.snowflake-schema-viewer .columns-header {\n grid-template-columns: 2fr 1.5fr 80px 80px;\n}\n\n.snowflake-schema-viewer .column-row {\n grid-template-columns: 2fr 1.5fr 80px 80px;\n}\n\n.column-ordinal-header,\n.column-ordinal {\n text-align: center;\n}\n\n/* Column descriptions section */\n.column-descriptions {\n padding: 12px 16px;\n background: var(--jp-layout-color0);\n}\n\n.subsection-title {\n font-size: 13px;\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n margin: 0 0 8px 0;\n}\n\n.description-item {\n font-size: 12px;\n color: var(--jp-ui-font-color1);\n margin-bottom: 6px;\n padding: 4px 8px;\n background: var(--jp-layout-color1);\n border-radius: 3px;\n border-left: 2px solid var(--jp-brand-color1);\n}\n\n.description-item:last-child {\n margin-bottom: 0;\n}\n\n.description-item strong {\n color: var(--jp-ui-font-color0);\n font-family: monospace;\n}\n\n/* Snowflake icon in database name */\n.snowflake-schema-viewer .table-name {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Dark theme adjustments for Snowflake viewer */\nbody[data-jp-theme-name=\"JupyterLab Dark\"] .snowflake-schema-viewer {\n .database-item {\n background: linear-gradient(135deg, rgba(41, 181, 232, 0.08) 0%, rgba(41, 181, 232, 0.03) 100%);\n }\n \n .database-item:hover {\n background: linear-gradient(135deg, rgba(41, 181, 232, 0.15) 0%, rgba(41, 181, 232, 0.08) 100%);\n }\n \n .schema-item {\n background: linear-gradient(135deg, rgba(147, 51, 234, 0.08) 0%, rgba(147, 51, 234, 0.03) 100%);\n }\n \n .schema-item:hover {\n background: linear-gradient(135deg, rgba(147, 51, 234, 0.15) 0%, rgba(147, 51, 234, 0.08) 100%);\n }\n \n .schema-item.schema-error {\n background: linear-gradient(135deg, rgba(239, 68, 68, 0.08) 0%, rgba(239, 68, 68, 0.03) 100%);\n }\n \n .schema-item.schema-error:hover {\n background: linear-gradient(135deg, rgba(239, 68, 68, 0.12) 0%, rgba(239, 68, 68, 0.05) 100%);\n }\n}\n\n/* Make database SVG icons black in light mode */\n[data-jp-theme-light='true'] .database-schema-explorer .db-icon svg path,\n[data-jp-theme-light='true'] .snowflake-schema-viewer .db-icon svg path {\n fill: #000000 !important;\n}\n",""]);const s=i},85072:n=>{var o=[];function e(n){for(var e=-1,a=0;a<o.length;a++)if(o[a].identifier===n){e=a;break}return e}function a(n,a){for(var t={},i=[],s=0;s<n.length;s++){var l=n[s],p=a.base?l[0]+a.base:l[0],d=t[p]||0,c="".concat(p," ").concat(d);t[p]=d+1;var g=e(c),b={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==g)o[g].references++,o[g].updater(b);else{var m=r(b,a);a.byIndex=s,o.splice(s,0,{identifier:c,updater:m,references:1})}i.push(c)}return i}function r(n,o){var e=o.domAPI(o);return e.update(n),function(o){if(o){if(o.css===n.css&&o.media===n.media&&o.sourceMap===n.sourceMap&&o.supports===n.supports&&o.layer===n.layer)return;e.update(n=o)}else e.remove()}}n.exports=function(n,r){var t=a(n=n||[],r=r||{});return function(n){n=n||[];for(var i=0;i<t.length;i++){var s=e(t[i]);o[s].references--}for(var l=a(n,r),p=0;p<t.length;p++){var d=e(t[p]);0===o[d].references&&(o[d].updater(),o.splice(d,1))}t=l}}},92331:(n,o,e)=>{e.d(o,{A:()=>g});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t),s=e(4417),l=e.n(s),p=new URL(e(95655),e.b),d=i()(r()),c=l()(p);d.push([n.id,`/* Snippet Creation Widget Styles */\n.sage-ai-snippet-creation-widget {\n min-width: 280px !important;\n font-family: var(--jp-ui-font-family);\n font-size: var(--jp-ui-font-size1);\n color: var(--jp-ui-font-color1);\n background: var(--jp-layout-color1);\n height: 100%;\n width: 100% !important;\n display: flex;\n flex-direction: column;\n}\n\n/* Hide widget when menu is closed */\n.sage-ai-snippet-creation-widget.hidden {\n display: none !important;\n}\n\n.sage-ai-snippet-creation-panel {\n width: 100% !important;\n padding: 16px;\n height: 100%;\n background: var(--jp-layout-color0);\n display: flex;\n flex-direction: column;\n}\n\n/* Header Styles */\n.sage-ai-snippet-panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 12px;\n\n /* padding-bottom: 8px; */\n}\n\n.sage-ai-snippet-header-div {\n border-bottom: 1px solid var(--jp-border-color2);\n padding-bottom: 12px;\n margin-bottom: 12px;\n}\n\n.sage-ai-snippet-panel-header h3 {\n margin: 0;\n font-size: var(--jp-ui-font-size2);\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-snippet-create-btn {\n background: var(--jp-brand-color1);\n color: white;\n border: none;\n border-radius: 4px;\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: background-color 0.2s;\n}\n\n.sage-ai-snippet-create-btn:hover {\n background: var(--jp-brand-color0);\n}\n\n/* Form Styles */\n.sage-ai-snippet-form {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.sage-ai-snippet-form-group {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.sage-ai-snippet-form-group label {\n font-weight: 500;\n color: var(--jp-ui-font-color1);\n font-size: var(--jp-ui-font-size0);\n}\n\n.sage-ai-snippet-form-group input,\n.sage-ai-snippet-form-group textarea {\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n padding: 8px;\n font-family: var(--jp-ui-font-family);\n font-size: var(--jp-ui-font-size1);\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color0);\n transition: border-color 0.2s;\n}\n\n.sage-ai-snippet-form-group input:focus,\n.sage-ai-snippet-form-group textarea:focus {\n outline: none;\n border-color: var(--jp-brand-color1);\n}\n\n.sage-ai-snippet-form-group textarea {\n resize: vertical;\n min-height: 120px;\n font-family: var(--jp-code-font-family);\n}\n\n.sage-ai-snippet-form-actions {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n margin-top: 8px;\n}\n\n.sage-ai-snippet-save-btn,\n.sage-ai-snippet-cancel-btn {\n padding: 8px 16px;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: var(--jp-ui-font-size1);\n transition: background-color 0.2s;\n}\n\n.sage-ai-snippet-save-btn {\n background: var(--jp-brand-color1);\n color: white;\n}\n\n.sage-ai-snippet-save-btn:hover:not(:disabled) {\n background: var(--jp-brand-color0);\n}\n\n.sage-ai-snippet-save-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.sage-ai-snippet-cancel-btn {\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n border: 1px solid var(--jp-border-color2);\n}\n\n.sage-ai-snippet-cancel-btn:hover {\n background: var(--jp-layout-color3);\n}\n\n/* Viewer Styles */\n.sage-ai-snippet-viewer {\n display: flex;\n flex-direction: column;\n gap: 12px;\n flex: 1; /* Expand to fill available space */\n height: 100%; /* Take full height of parent */\n min-height: 0; /* Allow proper flex shrinking */\n}\n\n.sage-ai-snippet-viewer-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid var(--jp-border-color2);\n padding-bottom: 8px;\n}\n\n.sage-ai-snippet-viewer-header h4 {\n margin: 0;\n font-size: var(--jp-ui-font-size2);\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-snippet-close-btn {\n background: none;\n border: none;\n font-size: 18px;\n cursor: pointer;\n color: var(--jp-ui-font-color2);\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n}\n\n.sage-ai-snippet-close-btn:hover {\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-snippet-viewer-description {\n color: var(--jp-ui-font-color2);\n font-style: italic;\n line-height: 1.4;\n}\n\n.sage-ai-snippet-viewer-content {\n background: var(--jp-layout-color2);\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n padding: 12px;\n max-height: 300px;\n overflow-y: auto;\n}\n\n.sage-ai-snippet-viewer-content pre {\n margin: 0;\n font-family: var(--jp-code-font-family);\n font-size: var(--jp-code-font-size);\n color: var(--jp-content-font-color0);\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n\n.sage-ai-snippet-viewer-actions {\n display: flex;\n gap: 8px;\n justify-content: flex-start;\n flex-wrap: wrap;\n position: relative;\n}\n\n/* Full action buttons for wider screens */\n.sage-ai-snippet-actions-full {\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n/* Compact dropdown for smaller screens */\n.sage-ai-snippet-actions-compact {\n position: relative;\n display: none; /* Hidden by default */\n}\n\n/* Media query for responsive behavior */\n@media (width <= 400px) {\n .sage-ai-snippet-actions-full {\n display: none;\n }\n\n .sage-ai-snippet-actions-compact {\n display: block;\n }\n}\n\n/* Dropdown button styling */\n.sage-ai-snippet-actions-dropdown-btn {\n background: var(--jp-layout-color2);\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n padding: 6px 12px;\n cursor: pointer;\n font-size: 16px;\n color: var(--jp-ui-font-color1);\n transition: background-color 0.2s;\n}\n\n.sage-ai-snippet-actions-dropdown-btn:hover {\n background: var(--jp-layout-color3);\n}\n\n/* Dropdown menu */\n.sage-ai-snippet-actions-dropdown {\n position: absolute;\n top: 100%;\n right: 0;\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color1);\n border-radius: 4px;\n box-shadow: 0 2px 8px rgb(0 0 0 / 15%);\n z-index: 1000;\n min-width: 120px;\n margin-top: 4px;\n}\n\n/* Dropdown items */\n.sage-ai-snippet-dropdown-item {\n display: block;\n width: 100%;\n padding: 8px 12px;\n background: none;\n border: none;\n text-align: left;\n cursor: pointer;\n font-size: var(--jp-ui-font-size0);\n color: var(--jp-ui-font-color1);\n transition: background-color 0.2s;\n}\n\n.sage-ai-snippet-dropdown-item:hover {\n background: var(--jp-layout-color2);\n}\n\n.sage-ai-snippet-dropdown-item:first-child {\n border-radius: 4px 4px 0 0;\n}\n\n.sage-ai-snippet-dropdown-item:last-child {\n border-radius: 0 0 4px 4px;\n}\n\n/* Dark theme support for dropdown */\n[data-jp-theme-light='false'] .sage-ai-snippet-actions-dropdown {\n background: var(--jp-layout-color0);\n border-color: var(--jp-border-color0);\n box-shadow: 0 2px 8px rgb(0 0 0 / 40%);\n}\n\n[data-jp-theme-light='false'] .sage-ai-snippet-actions-dropdown-btn {\n background: var(--jp-layout-color1);\n border-color: var(--jp-border-color1);\n}\n\n[data-jp-theme-light='false'] .sage-ai-snippet-actions-dropdown-btn:hover {\n background: var(--jp-layout-color2);\n}\n\n.sage-ai-snippet-enable-btn,\n.sage-ai-snippet-edit-btn {\n padding: 2px;\n border: none;\n cursor: pointer;\n font-size: var(--jp-ui-font-size0);\n transition: background-color 0.2s;\n}\n\n.sage-ai-snippet-enable-btn {\n background: var(--jp-success-color1);\n color: white;\n}\n\n.sage-ai-snippet-enable-btn:hover {\n background: var(--jp-success-color0);\n}\n\n.sage-ai-snippet-edit-btn {\n background: none !important;\n color: white;\n}\n\n/* List Styles */\n.sage-ai-snippet-list {\n display: flex;\n flex-direction: column;\n height: 100%;\n flex: 1;\n min-height: 0; /* Important for flex shrinking */\n}\n\n.sage-ai-snippet-list-container {\n flex: 1;\n overflow-y: auto;\n min-height: 0; /* Important for flex shrinking */\n}\n\n.sage-ai-snippet-empty {\n text-align: center;\n color: var(--jp-ui-font-color2);\n padding: 32px 16px;\n}\n\n.sage-ai-snippet-empty p {\n margin: 8px 0;\n}\n\n.sage-ai-snippet-items {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding-bottom: 8px; /* Add some padding at the bottom */\n}\n\n.sage-ai-snippet-item-container {\n display: flex;\n flex-direction: column;\n}\n\n.sage-ai-snippet-item {\n /* border: 1px solid var(--jp-border-color2); */\n border-radius: 6px;\n padding: 6px;\n cursor: pointer;\n transition: all 0.2s;\n\n /* background: var(--jp-layout-color1); */\n}\n\n.sage-ai-snippet-item:hover {\n background: var(--jp-layout-color2);\n border-color: var(--jp-brand-color1);\n}\n\n[data-jp-theme-light='false'] .sage-ai-snippet-item:hover {\n background: rgb(56 56 56 / 30%) !important;\n}\n\n.sage-ai-snippet-item.selected {\n border-color: var(--jp-brand-color1);\n background: var(--jp-layout-color2);\n}\n\n.sage-ai-snippet-item-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 13px;\n font-style: normal;\n font-weight: 500;\n line-height: 155%;\n}\n\n[data-jp-theme-light='false'] .sage-ai-snippet-item-header {\n color: #e7e7e7;\n}\n\n.sage-ai-snippet-title-container {\n display: flex;\n align-items: center;\n gap: 8px;\n flex: 1;\n}\n\n.sage-ai-snippet-item-header h5 {\n margin: 0;\n font-size: 13px;\n font-weight: 500 !important;\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-snippet-checkmark {\n color: var(--jp-brand-color1);\n flex-shrink: 0;\n}\n\n.sage-ai-snippet-item-actions {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.sage-ai-snippet-menu-btn {\n background: none;\n border: none;\n font-size: 16px;\n cursor: pointer;\n color: var(--jp-ui-font-color2);\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n opacity: 0;\n transition: all 0.2s;\n}\n\n.sage-ai-snippet-item:hover .sage-ai-snippet-menu-btn {\n opacity: 1;\n}\n\n.sage-ai-snippet-menu-btn:hover {\n background: var(--jp-layout-color3);\n color: var(--jp-ui-font-color0);\n}\n\n.sage-ai-snippet-context-menu {\n position: absolute;\n top: 100%;\n right: 0;\n background: var(--jp-layout-color1);\n border: 1px solid var(--jp-border-color2);\n border-radius: 4px;\n box-shadow: 0 4px 12px rgb(0 0 0 / 15%);\n z-index: 1000;\n min-width: 120px;\n padding: 4px 0;\n}\n\n.sage-ai-snippet-menu-item {\n display: block;\n width: 100%;\n padding: 8px 12px;\n border: none;\n background: none;\n text-align: left;\n cursor: pointer;\n font-size: var(--jp-ui-font-size0);\n color: var(--jp-ui-font-color0);\n transition: background-color 0.2s;\n}\n\n.sage-ai-snippet-menu-item:hover {\n background: var(--jp-layout-color2);\n}\n\n.sage-ai-snippet-menu-item.delete:hover {\n background: var(--jp-error-color1);\n color: white;\n}\n\n.sage-ai-snippet-delete-btn {\n background: none;\n border: none;\n font-size: 16px;\n cursor: pointer;\n color: var(--jp-ui-font-color2);\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 3px;\n opacity: 0;\n transition: all 0.2s;\n}\n\n.sage-ai-snippet-item:hover .sage-ai-snippet-delete-btn {\n opacity: 1;\n}\n\n.sage-ai-snippet-delete-btn:hover {\n background: var(--jp-error-color1);\n color: white;\n}\n\n.sage-ai-snippet-item-description {\n margin: 0 0 8px;\n color: var(--jp-ui-font-color2);\n font-size: var(--jp-ui-font-size0);\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.sage-ai-snippet-item-meta {\n font-size: var(--jp-ui-font-size00);\n color: var(--jp-ui-font-color3);\n}\n\n/* Inline Viewer Styles */\n.sage-ai-snippet-viewer-inline {\n margin-top: 16px;\n /*padding: 16px;*/\n background: var(--jp-layout-color0);\n border-top: 1px solid var(--jp-border-color1);\n flex-shrink: 0; /* Don't shrink the viewer */\n max-height: 40vh; /* Limit maximum height */\n display: flex;\n flex-direction: column;\n overflow: hidden; /* Remove scrolling from the entire viewer */\n}\n\n.sage-ai-snippet-description {\n color: var(--jp-ui-font-color3);\n font-size: 13px;\n font-style: normal;\n font-weight: 500;\n line-height: 155%; /* 20.15px */\n}\n\n/* First Row: Toolbar with Preview label and action buttons */\n.sage-ai-snippet-viewer-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n padding-top: 16px;\n /*border-bottom: 1px solid var(--jp-border-color2);*/\n flex-shrink: 0; /* Don't shrink the toolbar */\n}\n\n.sage-ai-snippet-preview-label {\n font-weight: 600;\n color: var(--jp-ui-font-color0);\n font-size: 13px;\n}\n\n.sage-ai-snippet-viewer-actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.sage-ai-snippet-edit-btn {\n background: none;\n border: none;\n cursor: pointer;\n color: var(--jp-ui-font-color2);\n\n /* width: 28px; */\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.sage-ai-snippet-edit-btn:hover {\n background: var(--jp-layout-color2);\n color: var(--jp-brand-color1);\n}\n\n.sage-ai-snippet-close-btn {\n background: none;\n border: none;\n cursor: pointer;\n color: var(--jp-ui-font-color2);\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.sage-ai-snippet-close-btn:hover {\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color0);\n}\n\n/* Second Row: Title display */\n.sage-ai-snippet-viewer-title-row {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n flex-shrink: 0; /* Don't shrink the title row */\n}\n\n.sage-ai-snippet-title-label {\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n font-size: 13px;\n}\n\n.sage-ai-snippet-title-text {\n color: var(--jp-ui-font-color0);\n font-size: 13px;\n flex: 1;\n}\n\n/* Third Row: Code block (simplified) */\n.sage-ai-snippet-code-block {\n margin: 0;\n border: 1px solid var(--jp-border-color2);\n border-radius: 6px;\n overflow: hidden;\n background: var(--jp-layout-color2);\n flex: 1; /* Take up remaining space */\n display: flex;\n flex-direction: column;\n min-height: 0; /* Allow flexbox to shrink */\n}\n\n.sage-ai-snippet-insert-btn {\n background: none;\n display: flex;\n flex-direction: row;\n align-items: center;\n color: var(--jp-brand-color0);\n border-radius: 4px;\n gap: 8px;\n padding: 2px;\n border: none !important;\n cursor: pointer;\n transition: background-color 0.2s;\n text-align: center;\n font-size: 13px;\n font-style: normal;\n font-weight: 600;\n line-height: 155%; /* 20.15px */\n}\n\n.insert-icon-container {\n width: 20px;\n height: 20px;\n}\n\n.sage-ai-snippet-insert-btn:hover {\n background: none;\n}\n\n/* Remove state styling for insert button */\n.sage-ai-snippet-insert-btn.sage-ai-snippet-remove-state {\n color: var(--jp-error-color1) !important;\n background: none !important;\n}\n\n.sage-ai-snippet-insert-btn.sage-ai-snippet-remove-state\n .insert-icon-container {\n fill: var(--jp-error-color1) !important;\n transform: rotate(180deg);\n}\n\n.sage-ai-snippet-insert-btn.sage-ai-snippet-remove-state\n .insert-icon-container {\n div {\n svg {\n g {\n path {\n fill: var(--jp-error-color1) !important;\n }\n }\n }\n }\n}\n\n.sage-ai-snippet-insert-btn.sage-ai-snippet-remove-state:hover {\n background: var(--jp-error-color3);\n}\n\n.sage-ai-snippet-code-content {\n margin: 0;\n padding: 12px;\n font-family: var(--jp-code-font-family);\n font-size: var(--jp-code-font-size);\n color: var(--jp-content-font-color0);\n background: var(--jp-layout-color2);\n overflow: auto auto; /* Make only the content scrollable */\n white-space: pre;\n line-height: 1.4;\n flex: 1; /* Take up remaining space in the code block */\n min-height: 0; /* Allow flexbox to shrink */\n}\n\n.sage-ai-snippet-code-content code {\n background: none;\n padding: 0;\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n}\n\n.sage-ai-snippet-viewer-meta {\n display: flex;\n gap: 16px;\n margin-top: 12px;\n padding-top: 8px;\n border-top: 1px solid var(--jp-border-color2);\n font-size: var(--jp-ui-font-size00);\n color: var(--jp-ui-font-color3);\n flex-shrink: 0; /* Don't shrink the meta section */\n}\n\n/* Custom Icon Styles */\n.sage-ai-snippet-icon {\n background-image: url(${c});\n background-repeat: no-repeat;\n background-position: center;\n background-size: 16px 16px;\n}\n\n/* Dark theme adjustments */\n[data-jp-theme-light='false'] .sage-ai-snippet-creation-widget {\n color: var(--jp-ui-font-color1);\n}\n\n[data-jp-theme-light='false'] .sage-ai-snippet-viewer-content {\n background: var(--jp-layout-color0);\n}\n\n/* Dark mode styling for create button */\n[data-jp-theme-light='false'] .sage-ai-snippet-create-btn {\n border-radius: 8px;\n border: 0.5px solid var(--Border-Border, #383838);\n background: var(--Button-bg-default, #1a1a1a);\n color: white;\n}\n\n[data-jp-theme-light='false'] .sage-ai-snippet-create-btn:hover {\n background: var(--Button-bg-hover, #2a2a2a);\n border-color: var(--Border-Border-hover, #4a4a4a);\n}\n\n/* Make SVG icons white in dark mode */\n[data-jp-theme-light='true'] .sage-ai-snippet-create-btn svg {\n filter: invert(1);\n}\n\n/* Modal Styles */\n.sage-ai-custom-snippet-modal .modal-content {\n border-radius: 12px;\n border: 1px solid var(--Border-Border, #383838);\n background: var(--BG-main, #111);\n box-shadow: 0 8px 17.1px 0 rgb(208 208 208 / 9%);\n}\n\n/* Ensure modal header and body text are readable */\n.sage-ai-custom-snippet-modal .modal-header,\n.sage-ai-custom-snippet-modal .modal-body,\n.sage-ai-custom-snippet-modal .modal-footer {\n background: transparent;\n border-color: var(--Border-Border, #383838);\n color: var(--jp-ui-font-color0);\n}\n\n/* Style the close button to match the dark theme */\n.sage-ai-custom-snippet-modal .btn-close {\n filter: invert(1);\n}\n\n.sage-ai-snippet-form-modal {\n max-width: 600px;\n width: 90%;\n max-height: 80vh;\n overflow-y: auto;\n box-sizing: border-box;\n}\n\n.sage-ai-snippet-form-modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 20px;\n border-bottom: 1px solid var(--jp-border-color2);\n padding-bottom: 12px;\n}\n\n.sage-ai-snippet-form-modal-header .sage-ai-dialog-title {\n margin: 0;\n font-size: 1.2em;\n font-weight: 600;\n color: var(--jp-ui-font-color1);\n}\n\n.sage-ai-snippet-form-modal .sage-ai-snippet-close-btn {\n background: none;\n border: none;\n font-size: 20px;\n cursor: pointer;\n color: var(--jp-ui-font-color2);\n padding: 4px 8px;\n border-radius: 4px;\n line-height: 1;\n}\n\n.sage-ai-snippet-form-modal .sage-ai-snippet-close-btn:hover {\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color1);\n}\n\n/* Modal form inherits existing form styles */\n.sage-ai-snippet-form-modal .sage-ai-snippet-form {\n margin: 0;\n}\n\n.sage-ai-snippet-form-modal .sage-ai-snippet-form-group textarea {\n min-height: 200px;\n resize: vertical;\n}\n\n/* Modal overlay effect */\n.sage-ai-modal {\n backdrop-filter: blur(2px);\n}\n\n/* Responsive adjustments */\n@media (width <= 320px) {\n .sage-ai-snippet-creation-panel {\n padding: 12px;\n }\n\n .sage-ai-snippet-form-actions {\n flex-direction: column;\n }\n\n .sage-ai-snippet-viewer-actions {\n flex-direction: column;\n }\n\n .sage-ai-snippet-form-modal {\n width: 95%;\n max-height: 90vh;\n }\n}\n`,""]);const g=d},92791:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* ========================================\n MODERN WELCOME TOUR STYLES - DRIVER.JS\n Beautiful Dark/Light Mode Design\n ======================================== */\n\n/* CSS Variables for Light Mode */\n[data-jp-theme-light='true'] {\n --tour-popover-bg: #ffffff;\n --tour-popover-border: #e5e7eb;\n --tour-popover-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);\n --tour-text-primary: #000000;\n --tour-text-secondary: #595959;\n --tour-text-light: #949494;\n --tour-button-bg: #f3f4f6;\n --tour-button-hover-bg: #e5e7eb;\n --tour-button-text: #000000;\n --tour-primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n --tour-close-hover-bg: rgba(0, 0, 0, 0.05);\n --tour-overlay-bg: rgba(0, 0, 0, 0.5);\n}\n\n/* CSS Variables for Dark Mode */\n[data-jp-theme-light='false'] {\n --tour-popover-bg: #111111;\n --tour-popover-border: #383838;\n --tour-popover-shadow: 0 8px 24px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.05);\n --tour-text-primary: #E7E7E7;\n --tour-text-secondary: #949494;\n --tour-text-light: #7a7a7a;\n --tour-button-bg: #1a1a1a;\n --tour-button-hover-bg: #2a2a2a;\n --tour-button-text: #E7E7E7;\n --tour-primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n --tour-close-hover-bg: rgba(255, 255, 255, 0.08);\n --tour-overlay-bg: rgba(0, 0, 0, 0.75);\n}\n\n/* Overlay Styling - Dimmed Background with Highlighting */\n.driver-overlay {\n z-index: 99999 !important;\n pointer-events: auto !important;\n}\n\n/* Popover Container - Modern Card Design */\n.driver-popover {\n z-index: 100000 !important;\n background: var(--tour-popover-bg) !important;\n border: 1px solid var(--tour-popover-border) !important;\n border-radius: 16px !important;\n box-shadow: var(--tour-popover-shadow) !important;\n padding: 0 !important;\n max-width: 420px !important;\n overflow: hidden !important;\n pointer-events: auto !important;\n /* Start with low opacity, then fade in */\n animation: popoverFadeIn 0.3s ease-out forwards !important;\n}\n\n@keyframes popoverFadeIn {\n from {\n opacity: 0;\n visibility: hidden;\n }\n to {\n opacity: 1;\n visibility: visible;\n }\n}\n\n/* Close Button - Beautiful Modern Design */\n.driver-popover-close-btn {\n position: absolute !important;\n top: 16px !important;\n right: 16px !important;\n width: 32px !important;\n height: 32px !important;\n border: none !important;\n background: var(--tour-close-hover-bg) !important;\n border-radius: 8px !important;\n cursor: pointer !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n font-size: 20px !important;\n font-weight: 300 !important;\n color: var(--tour-text-secondary) !important;\n transition: all 0.2s ease !important;\n padding: 0 !important;\n line-height: 1 !important;\n z-index: 10 !important;\n}\n\n.driver-popover-close-btn:hover {\n background: var(--tour-button-hover-bg) !important;\n color: var(--tour-text-primary) !important;\n transform: rotate(90deg) scale(1.05) !important;\n}\n\n.driver-popover-close-btn:active {\n transform: rotate(90deg) scale(0.95) !important;\n}\n\n/* Title Styling - Bold and Modern */\n.driver-popover-title {\n font-size: 20px !important;\n font-weight: 700 !important;\n margin: 0 !important;\n padding: 24px 24px 12px 24px !important;\n color: var(--tour-text-primary) !important;\n line-height: 1.3 !important;\n letter-spacing: -0.02em !important;\n}\n\n/* Description Styling - Clean and Readable */\n.driver-popover-description {\n font-size: 14px !important;\n line-height: 1.6 !important;\n padding: 0 24px !important;\n color: var(--tour-text-secondary) !important;\n margin: 0 !important;\n}\n\n/* Arrow Styling - Modern and Subtle */\n.driver-popover-arrow {\n display: none !important;\n}\n\n.driver-popover-arrow-side-over {\n border-top-color: var(--tour-popover-bg) !important;\n filter: drop-shadow(0 -2px 4px rgba(0, 0, 0, 0.1)) !important;\n}\n\n.driver-popover-arrow-side-left,\n.driver-popover-arrow-side-right,\n.driver-popover-arrow-side-top,\n.driver-popover-arrow-side-bottom {\n filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1)) !important;\n}\n\n/* Footer Section - Modern Layout */\n.driver-popover-footer {\n display: flex !important;\n justify-content: space-between !important;\n align-items: center !important;\n padding: 20px 24px 24px 24px !important;\n margin: 0 !important;\n gap: 16px !important;\n text-shadow: none !important;\n}\n\n.driver-popover-footer button {\n text-shadow: none !important;\n}\n\n/* Progress Text - Subtle and Modern */\n.driver-popover-progress-text {\n font-size: 13px !important;\n font-weight: 500 !important;\n color: var(--tour-text-light) !important;\n letter-spacing: 0.01em !important;\n margin: 0 !important;\n}\n\n/* Navigation Buttons Container */\n.driver-popover-navigation-btns {\n display: flex !important;\n gap: 10px !important;\n align-items: center !important;\n}\n\n/* Button Base Styling - Simple and Clean */\n.driver-popover-prev-btn,\n.driver-popover-next-btn {\n cursor: pointer !important;\n padding: 10px 20px !important;\n border-radius: 8px !important;\n border: none !important;\n font-size: 14px !important;\n transition: background 0.15s ease !important;\n}\n\n/* Previous Button - Secondary Style */\n.driver-popover-prev-btn {\n background: var(--tour-button-bg) !important;\n color: var(--tour-button-text) !important;\n}\n\n.driver-popover-prev-btn:hover:not(.driver-popover-btn-disabled) {\n background: var(--tour-button-hover-bg) !important;\n}\n\n/* Next Button - Primary Style - Flat Color */\n.driver-popover-next-btn {\n background: #667eea !important;\n color: #ffffff !important;\n}\n\n.driver-popover-next-btn:hover:not(.driver-popover-btn-disabled) {\n background: #5568d3 !important;\n}\n\n/* Disabled Button State */\n.driver-popover-btn-disabled {\n opacity: 0.4 !important;\n cursor: not-allowed !important;\n}\n\n/* Highlighted Element Styling - Modern Glow Effect */\n.driver-highlighted-element {\n z-index: 99998 !important;\n position: relative !important;\n}\n\n/* Add subtle pulse animation to highlighted elements */\n@keyframes highlightPulse {\n 0%, 100% {\n box-shadow: 0 0 0 0 rgba(102, 126, 234, 0.4);\n }\n 50% {\n box-shadow: 0 0 0 8px rgba(102, 126, 234, 0);\n }\n}\n\n.driver-highlighted-element::after {\n content: '' !important;\n position: absolute !important;\n top: -4px !important;\n left: -4px !important;\n right: -4px !important;\n bottom: -4px !important;\n border: 2px solid rgba(102, 126, 234, 0.6) !important;\n border-radius: 12px !important;\n pointer-events: none !important;\n animation: highlightPulse 2s infinite !important;\n}\n\n/* Responsive Design */\n@media (max-width: 480px) {\n .driver-popover {\n max-width: calc(100vw - 32px) !important;\n margin: 16px !important;\n }\n \n .driver-popover-title {\n font-size: 18px !important;\n padding: 20px 20px 10px 20px !important;\n }\n \n .driver-popover-description {\n font-size: 13px !important;\n padding: 0 20px !important;\n }\n \n .driver-popover-footer {\n padding: 16px 20px 20px 20px !important;\n flex-direction: column !important;\n align-items: stretch !important;\n }\n \n .driver-popover-navigation-btns {\n width: 100% !important;\n flex-direction: row !important;\n }\n \n .driver-popover-prev-btn,\n .driver-popover-next-btn {\n flex: 1 !important;\n }\n \n .driver-popover-progress-text {\n width: 100% !important;\n text-align: center !important;\n margin-bottom: 8px !important;\n }\n}\n",""]);const s=i},95655:n=>{n.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNNS4xNzc3OCA4TDYuNDg4ODkgNi42ODg4OUM2LjY2NjY3IDYuNTExMTEgNi43NTU1NiA2LjMwMzcgNi43NTU1NiA2LjA2NjY3QzYuNzU1NTYgNS44Mjk2MyA2LjY2NjY3IDUuNjIyMjIgNi40ODg4OSA1LjQ0NDQ0QzYuMzExMTEgNS4yNjY2NyA2LjEgNS4xNzc3OCA1Ljg1NTU2IDUuMTc3NzhDNS42MTExMSA1LjE3Nzc4IDUuNCA1LjI2NjY3IDUuMjIyMjIgNS40NDQ0NEwzLjI4ODg5IDcuMzc3NzhDMy4yIDcuNDY2NjcgMy4xMzcwNCA3LjU2Mjk2IDMuMSA3LjY2NjY3QzMuMDYyOTYgNy43NzAzNyAzLjA0NDQ0IDcuODgxNDggMy4wNDQ0NCA4QzMuMDQ0NDQgOC4xMTg1MiAzLjA2Mjk2IDguMjI5NjMgMy4xIDguMzMzMzNDMy4xMzcwNCA4LjQzNzA0IDMuMiA4LjUzMzMzIDMuMjg4ODkgOC42MjIyMkw1LjIyMjIyIDEwLjU1NTZDNS40IDEwLjczMzMgNS42MTExMSAxMC44MjIyIDUuODU1NTYgMTAuODIyMkM2LjEgMTAuODIyMiA2LjMxMTExIDEwLjczMzMgNi40ODg4OSAxMC41NTU2QzYuNjY2NjcgMTAuMzc3OCA2Ljc1NTU2IDEwLjE3MDQgNi43NTU1NiA5LjkzMzMzQzYuNzU1NTYgOS42OTYzIDYuNjY2NjcgOS40ODg4OSA2LjQ4ODg5IDkuMzExMTFMNS4xNzc3OCA4Wk0xMC44MjIyIDhMOS41MTExMSA5LjMxMTExQzkuMzMzMzMgOS40ODg4OSA5LjI0NDQ0IDkuNjk2MyA5LjI0NDQ0IDkuOTMzMzNDOS4yNDQ0NCAxMC4xNzA0IDkuMzMzMzMgMTAuMzc3OCA5LjUxMTExIDEwLjU1NTZDOS42ODg4OSAxMC43MzMzIDkuOSAxMC44MjIyIDEwLjE0NDQgMTAuODIyMkMxMC4zODg5IDEwLjgyMjIgMTAuNiAxMC43MzMzIDEwLjc3NzggMTAuNTU1NkwxMi43MTExIDguNjIyMjJDMTIuOCA4LjUzMzMzIDEyLjg2MyA4LjQzNzA0IDEyLjkgOC4zMzMzM0MxMi45MzcgOC4yMjk2MyAxMi45NTU2IDguMTE4NTIgMTIuOTU1NiA4QzEyLjk1NTYgNy44ODE0OCAxMi45MzcgNy43NzAzNyAxMi45IDcuNjY2NjdDMTIuODYzIDcuNTYyOTYgMTIuOCA3LjQ2NjY3IDEyLjcxMTEgNy4zNzc3OEwxMC43Nzc4IDUuNDQ0NDRDMTI2ODg4OSA1LjM1NTU2IDEwLjU4ODkgNS4yODg4OSAxMC40Nzc4IDUuMjQ0NDRDMTAuMzY2NyA1LjIgMTAuMjU1NiA1LjE3Nzc4IDEwLjE0NDQgNS4xNzc3OEMxMC4wMzMzIDUuMTc3NzggOS45MjIyMiA1LjIgOS44MTExMSA1LjI0NDQ0QzkuNyA1LjI4ODg5IDkuNiA1LjM1NTU2IDkuNTExMTEgNS40NDQ0NEM5LjMzMzMzIDUuNjIyMjIgOS4yNDQ0NCA1LjgyOTYzIDkuMjQ0NDQgNi4wNjY2N0M5LjI0NDQ0IDYuMzAzNyA5LjMzMzMzIDYuNTExMTEgOS41MTExMSA2LjY4ODg5TDEwLjgyMjIgOFpNMS43Nzc3OCAxNkMxLjI4ODg5IDE2IDAuODcwMzcgMTUuODI1OSAwLjUyMjIyMiAxNS40Nzc4QzAuMTc0MDc0IDE1LjEyOTYgMCAxNC43MTExIDAgMTQuMjIyMlYxLjc3Nzc4QzAgMS4yODg4OSAwLjE3NDA3NCAwLjg3MDM3IDAuNTIyMjIyIDAuNTIyMjIyQzAuODcwMzcgMC4xNzQwNzQgMS4yODg4OSAwIDEuNzc3NzggMEgxNC4yMjIyQzE0LjcxMTEgMCAxNS4xMjk2IDAuMTc0MDc0IDE1LjQ3NzggMC41MjIyMjJDMTUuODI1OSAwLjg3MDM3IDE2IDEuMjg4ODkgMTYgMS43Nzc3OFYxNC4yMjIyQzE2IDE0LjcxMTEgMTUuODI1OSAxNS4xMjk2IDE1LjQ3NzggMTUuNDc3OEMxNS4xMjk2IDE1LjgyNTkgMTQuNzExMSAxNiAxNC4yMjIyIDE2SDEuNzc3NzhaIiBmaWxsPSIjN0E3QTdBIi8+Cjwvc3ZnPg=="},95943:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,"/* Left Side Banner Overlay */\n.sage-ai-banner-overlay {\n position: absolute;\n border-radius: 12px;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.3);\n backdrop-filter: blur(4px);\n -webkit-backdrop-filter: blur(4px);\n z-index: 9999;\n opacity: 0;\n transition: opacity 0.3s ease;\n display: none;\n}\n\n.sage-ai-banner-overlay.visible {\n opacity: 1;\n}\n\n/* Left Side Banner */\n.sage-ai-left-side-banner {\n position: absolute;\n border-radius: 12px;\n top: 0;\n left: -400px; /* Start off-screen */\n width: 65%;\n height: 100%;\n background-color: var(--jp-layout-color0);\n z-index: 10000;\n transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: none;\n overflow: hidden;\n}\n\n.sage-ai-left-side-banner.visible {\n left: 0;\n}\n\n/* Banner Header */\n.sage-ai-banner-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px;\n background-color: var(--jp-layout-color0);\n}\n\n.sage-ai-banner-header h3 {\n margin: 0;\n color: var(--jp-ui-font-color0);\n font-size: 16px;\n font-weight: 600;\n}\n\n.sage-ai-banner-close {\n background: none;\n border: none;\n color: #949494;\n font-size: 24px;\n cursor: pointer;\n border-radius: 4px;\n line-height: 1;\n}\n\n/* Banner Content */\n.sage-ai-banner-content {\n height: calc(100vh - 80px);\n overflow-y: auto;\n padding: 0;\n}\n\n.sage-ai-banner-threads {\n display: flex;\n flex-direction: column;\n gap: 4px;\n padding: 0 12px;\n margin-bottom: 70px;\n}\n\n/* Thread Items */\n.sage-ai-banner-thread-item {\n padding: 12px 16px;\n cursor: pointer;\n border-radius: 12px;\n transition: background-color 0.2s ease;\n position: relative;\n}\n\n.sage-ai-banner-thread-item:hover {\n background-color: var(--jp-layout-color2);\n}\n\n.sage-ai-banner-thread-item.active {\n background-color: var(--jp-inverse-layout-color2);\n color: var(--jp-ui-inverse-font-color0);\n}\n\n.sage-ai-banner-thread-item.active .sage-ai-banner-thread-name {\n color: var(--jp-ui-inverse-font-color0);\n}\n\n.sage-ai-banner-thread-item.active .sage-ai-banner-thread-date {\n color: var(--jp-ui-inverse-font-color2);\n}\n\n.sage-ai-banner-thread-name {\n font-weight: 500;\n color: var(--jp-ui-font-color0);\n font-size: 13px;\n margin-bottom: 4px;\n line-height: 1.4;\n}\n\n.sage-ai-banner-thread-date {\n font-size: 12px;\n color: var(--jp-ui-font-color2);\n line-height: 1.3;\n}\n\n/* Empty State */\n.sage-ai-banner-empty {\n padding: 40px 20px;\n text-align: center;\n color: var(--jp-ui-font-color2);\n font-style: italic;\n font-size: 14px;\n}\n\n/* Scrollbar Styling */\n.sage-ai-banner-content::-webkit-scrollbar {\n width: 6px;\n}\n\n.sage-ai-banner-content::-webkit-scrollbar-track {\n background: var(--jp-layout-color0);\n}\n\n.sage-ai-banner-content::-webkit-scrollbar-thumb {\n background: var(--jp-border-color2);\n border-radius: 3px;\n}\n\n.sage-ai-banner-content::-webkit-scrollbar-thumb:hover {\n background: var(--jp-border-color1);\n}\n\n/* Animation for thread items */\n.sage-ai-banner-thread-item {\n animation: slideInFromLeft 0.3s ease forwards;\n opacity: 0;\n transform: translateX(-20px);\n}\n\n.sage-ai-banner-thread-item:nth-child(1) {\n animation-delay: 0.1s;\n}\n.sage-ai-banner-thread-item:nth-child(2) {\n animation-delay: 0.15s;\n}\n.sage-ai-banner-thread-item:nth-child(3) {\n animation-delay: 0.2s;\n}\n.sage-ai-banner-thread-item:nth-child(4) {\n animation-delay: 0.25s;\n}\n.sage-ai-banner-thread-item:nth-child(5) {\n animation-delay: 0.3s;\n}\n.sage-ai-banner-thread-item:nth-child(6) {\n animation-delay: 0.35s;\n}\n.sage-ai-banner-thread-item:nth-child(7) {\n animation-delay: 0.4s;\n}\n.sage-ai-banner-thread-item:nth-child(8) {\n animation-delay: 0.45s;\n}\n.sage-ai-banner-thread-item:nth-child(9) {\n animation-delay: 0.5s;\n}\n.sage-ai-banner-thread-item:nth-child(10) {\n animation-delay: 0.55s;\n}\n.sage-ai-banner-thread-item {\n animation-delay: 0.55s;\n}\n\n@keyframes slideInFromLeft {\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .sage-ai-left-side-banner {\n width: 100vw;\n left: -100vw;\n }\n\n .sage-ai-banner-header {\n padding: 16px;\n }\n\n .sage-ai-banner-thread-item {\n padding: 12px 16px;\n }\n}\n",""]);const s=i},97825:n=>{n.exports=function(n){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var o=n.insertStyleElement(n);return{update:function(e){!function(n,o,e){var a="";e.supports&&(a+="@supports (".concat(e.supports,") {")),e.media&&(a+="@media ".concat(e.media," {"));var r=void 0!==e.layer;r&&(a+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),a+=e.css,r&&(a+="}"),e.media&&(a+="}"),e.supports&&(a+="}");var t=e.sourceMap;t&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(t))))," */")),o.styleTagTransform(a,n,o.options)}(o,n,e)},remove:function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(o)}}}},99508:(n,o,e)=>{e.d(o,{A:()=>s});var a=e(31601),r=e.n(a),t=e(76314),i=e.n(t)()(r());i.push([n.id,".sage-ai-update-banner-widget {\n position: fixed !important;\n top: 40px !important;\n left: 50% !important;\n transform: translateX(-50%) !important;\n width: auto;\n max-width: 500px;\n min-width: 300px;\n z-index: 999999 !important;\n flex-shrink: 0;\n margin: 0 !important;\n padding: 0 !important;\n border: none !important;\n box-sizing: border-box !important;\n pointer-events: auto !important;\n}\n\n.sage-ai-update-banner {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n padding: 12px 16px;\n border-radius: 8px;\n margin-bottom: 0;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);\n animation: slideDown 0.3s ease-out;\n}\n\n.sage-ai-update-banner-content {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.sage-ai-update-banner-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n color: #ffffff;\n opacity: 0.9;\n}\n\n.sage-ai-update-banner-text {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.sage-ai-update-banner-title {\n font-weight: 600;\n font-size: 14px;\n line-height: 1.2;\n}\n\n.sage-ai-update-banner-version {\n font-size: 12px;\n opacity: 0.9;\n line-height: 1.2;\n}\n\n.sage-ai-update-banner-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.sage-ai-update-banner-button {\n padding: 6px 12px;\n border: none;\n border-radius: 4px;\n font-size: 12px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n white-space: nowrap;\n}\n\n.sage-ai-update-banner-button:hover {\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n}\n\n.sage-ai-update-banner-button-update {\n background: #ffffff;\n color: #667eea;\n}\n\n.sage-ai-update-banner-button-update:hover {\n background: #f8f9fa;\n}\n\n.sage-ai-update-banner-button-later {\n background: rgba(255, 255, 255, 0.2);\n color: #ffffff;\n border: 1px solid rgba(255, 255, 255, 0.3);\n}\n\n.sage-ai-update-banner-button-later:hover {\n background: rgba(255, 255, 255, 0.3);\n}\n\n.sage-ai-update-banner-button-decline {\n background: transparent;\n color: #ffffff;\n border: 1px solid rgba(255, 255, 255, 0.3);\n}\n\n.sage-ai-update-banner-button-decline:hover {\n background: rgba(255, 255, 255, 0.1);\n}\n\n.sage-ai-update-banner-progress {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #ffffff;\n font-size: 13px;\n}\n\n.sage-ai-update-banner-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top: 2px solid #ffffff;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n.sage-ai-update-banner-description {\n font-size: 12px;\n opacity: 0.9;\n color: #ffffff;\n margin-top: 2px;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .sage-ai-update-banner-widget {\n left: 50% !important;\n right: auto !important;\n transform: translateX(-50%) !important;\n max-width: calc(100vw - 40px) !important;\n min-width: auto;\n margin: 0 20px !important;\n }\n\n .sage-ai-update-banner-content {\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n }\n\n .sage-ai-update-banner-actions {\n align-self: stretch;\n justify-content: space-between;\n }\n\n .sage-ai-update-banner-button {\n flex: 1;\n text-align: center;\n }\n}\n",""]);const s=i}}]);
|