From db65edfcd91b911d2c8c97325335124f9544bad6 Mon Sep 17 00:00:00 2001 From: Aftab Raja Date: Sun, 12 Apr 2026 22:15:23 +0530 Subject: [PATCH 1/6] max width increase for responsiveness and blog side bar spacing --- src/css/custom.css | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index 4062563..0f8c588 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -8,8 +8,8 @@ @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap'); :root { - --ifm-container-width-xl: 1440px; - + --ifm-container-width-xl: 2000px; + --ifm-container-width:1600px; --ifm-color-primary: rgba(23, 148, 239, 1); --ifm-color-primary-hover: var(--ifm-color-secondary); --ifm-color-dark: rgba(24, 24, 27, 1); @@ -222,7 +222,8 @@ body { outline: none; } } -.DocSearch-Hit-action-button:focus, .DocSearch-Hit-action-button:hover{ +.DocSearch-Hit-action-button:focus, +.DocSearch-Hit-action-button:hover { background-color: rgba(255, 255, 255, 0.5) !important; } .line-clamp-1 { @@ -337,6 +338,10 @@ span.DocSearch-Button-Keys { padding-right: 16px; } +.top_nav + .container .thin-scrollbar { + top: calc(var(--ifm-navbar-height) + 2rem + var(--ifm-top-nav-height)); +} + /* Navbar inner: relative so the center wrapper can be absolutely positioned */ .navbar__inner { position: relative; @@ -877,7 +882,7 @@ button.clean-btn.menu__caret::before { white-space: nowrap; flex-shrink: 0; transition: - background 0.2s ease, + background 0.2s ease, border-color 0.2s ease; } From 9ee0862f8bcec95f904b051b47e5d0071d82e6e7 Mon Sep 17 00:00:00 2001 From: DocsFlow Bot Date: Mon, 13 Apr 2026 13:09:21 +0530 Subject: [PATCH 2/6] docs(tech-stack): resolve conflicts and update definitions Priority given to DocsFlow content over GitHub changes. Published via DocsFlow by rajkumar.abbadi@wavemaker.com --- data/tech-stack-data/1-0-0-beta.json | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/data/tech-stack-data/1-0-0-beta.json b/data/tech-stack-data/1-0-0-beta.json index 2e6ae5a..9799221 100644 --- a/data/tech-stack-data/1-0-0-beta.json +++ b/data/tech-stack-data/1-0-0-beta.json @@ -61,56 +61,48 @@ { "name": "React", "version": "v19.2.3", - "description": "Platform for building desktop web applications", "link": "https://react.dev/" }, { "name": "Next Js", "version": "v16.1.1", - "description": "React framework that helps to build fast web apps", "link": "https://nextjs.org/" }, { "name": "Material UI", "version": "v6.3.1", - "description": "Ready to use Material Design components", "link": "https://mui.com/material-ui/" }, { "name": "D3", "version": "v7.8.5", - "description": "JavaScript library for manipulating documents based on data.", "link": "https://d3js.org/" }, { "name": "NVD3", "version": "v1.8.16", - "description": "Re-usable charts for D3.js.", "link": "https://nvd3.org/" }, { "name": "Fullcalendar", "version": "v6.1.15", - "description": "Full-sized drag & drop event calendar.", "link": "https://fullcalendar.io/" }, { "name": "Lodash (lodash-es)", "version": "v4.17.21", - "description": "A modern JavaScript utility library delivering modularity, performance, & extras.", "link": "https://lodash.com/" }, { "name": "Moment", "version": "v2.30.1", - "description": "Parse, validate, manipulate, and display dates and times in JavaScript", "link": "https://momentjs.com/" } @@ -127,6 +119,12 @@ "description": "Platform for universal React applications.", "link": "https://expo.dev/", "version": "54.0.12" + }, + { + "name": "UI Kitten", + "description": "React Native UI library based on Eva Design System for building rich cross-platform mobile applicationss.", + "link": "https://akveo.github.io/react-native-ui-kitten/", + "version": "1.0.0" } ] }, @@ -452,4 +450,4 @@ "Java": [] } } -} +} \ No newline at end of file From e9487cafed2dfc315e4c6ef19c28c8198970b297 Mon Sep 17 00:00:00 2001 From: Tiwariji-07 Date: Tue, 14 Apr 2026 11:31:24 +0530 Subject: [PATCH 3/6] image handling --- src/theme/SearchBar/AIConversation.jsx | 9 ++++++--- src/theme/SearchBar/AIConverstion.module.css | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/theme/SearchBar/AIConversation.jsx b/src/theme/SearchBar/AIConversation.jsx index a5f40ba..c3babb0 100644 --- a/src/theme/SearchBar/AIConversation.jsx +++ b/src/theme/SearchBar/AIConversation.jsx @@ -57,9 +57,12 @@ function resolveImageSrc(src) { ) { return src; } - // Strip leading ./ or ../ - const cleaned = src.replace(/^(\.\.?\/)+/, ''); - return `${GITHUB_RAW_BASE}${cleaned}`; + // Only prepend the repo base for already-resolved repo-relative asset paths. + // Raw doc-relative paths like ./assets/... lose their document context if we trim them. + if (src.startsWith('docs/') || src.startsWith('static/')) { + return `${GITHUB_RAW_BASE}${src}`; + } + return src; } function buildMarkdownComponents(navigate) { diff --git a/src/theme/SearchBar/AIConverstion.module.css b/src/theme/SearchBar/AIConverstion.module.css index 4fa923b..605f578 100644 --- a/src/theme/SearchBar/AIConverstion.module.css +++ b/src/theme/SearchBar/AIConverstion.module.css @@ -1642,6 +1642,7 @@ background: var(--bg-panel); outline: none; transition: border-color 0.15s; + white-space: nowrap; } .chatInputField:focus { From 646d213f1e4667e1effd88079e7eb171e60b7d9d Mon Sep 17 00:00:00 2001 From: Tiwariji-07 Date: Tue, 14 Apr 2026 11:33:07 +0530 Subject: [PATCH 4/6] style change --- src/theme/SearchBar/AIConverstion.module.css | 1 - 1 file changed, 1 deletion(-) diff --git a/src/theme/SearchBar/AIConverstion.module.css b/src/theme/SearchBar/AIConverstion.module.css index 605f578..4fa923b 100644 --- a/src/theme/SearchBar/AIConverstion.module.css +++ b/src/theme/SearchBar/AIConverstion.module.css @@ -1642,7 +1642,6 @@ background: var(--bg-panel); outline: none; transition: border-color 0.15s; - white-space: nowrap; } .chatInputField:focus { From 5a1be4dcfdaf8fca688dc7d2679492679f07d729 Mon Sep 17 00:00:00 2001 From: Aftab Raja Date: Tue, 14 Apr 2026 12:51:49 +0530 Subject: [PATCH 5/6] dark theme support for chat interface added --- .../MDXComponents/VideoCard/VideoCard.css | 11 ++ src/css/custom.css | 84 +++++++++- src/theme/Navbar/Content/index.js | 5 +- src/theme/SearchBar/AIConversation.jsx | 34 +++- src/theme/SearchBar/AIConverstion.module.css | 15 +- src/theme/SearchBar/AskAIDialog.module.css | 146 +++++++++++++----- src/theme/SearchBar/styles.css | 4 +- static/img/dropdown-white.svg | 4 + static/img/dropdown.svg | 3 +- 9 files changed, 248 insertions(+), 58 deletions(-) create mode 100644 static/img/dropdown-white.svg diff --git a/src/components/MDXComponents/VideoCard/VideoCard.css b/src/components/MDXComponents/VideoCard/VideoCard.css index 397af3e..632f9f3 100644 --- a/src/components/MDXComponents/VideoCard/VideoCard.css +++ b/src/components/MDXComponents/VideoCard/VideoCard.css @@ -156,6 +156,17 @@ transform: scale(1.05); } +/* ── Dark mode ──────────────────────────────────────────────── */ +[data-theme='dark'] .thumbnail-text { + color: #ffffff; + text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6); +} + +[data-theme='dark'] .thumbnail-subtext { + color: rgba(255, 255, 255, 0.8); + text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); +} + @media (max-width: 640px) { .video-card-container { flex-direction: column-reverse; diff --git a/src/css/custom.css b/src/css/custom.css index 0f8c588..bac5621 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -204,6 +204,85 @@ background-image: none; } +/* ── Dropdown popover ──────────────────────────────────────── */ +[data-theme='dark'] .dropdown-popover { + background: #1e3050; + box-shadow: + 0px 4px 8px 0px rgba(0, 0, 0, 0.3), + 0px 0px 4px 0px rgba(0, 0, 0, 0.2); +} + +[data-theme='dark'] .dropdown-popover .popover-content { + box-shadow: + 0px 4px 8px 0px rgba(0, 0, 0, 0.3), + 0px 0px 4px 0px rgba(0, 0, 0, 0.2); +} + +[data-theme='dark'] .menu-item:hover { + background-color: rgba(76, 141, 255, 0.1); +} + +[data-theme='dark'] .menu-label { + color: rgba(255, 255, 255, 0.85); +} +[data-theme='dark'] .launcher-ecosystem>div>button>div div { + background:rgba(255, 255, 255, 0.85) !important; +} +[data-theme='dark'] .launcher-ecosystem>div>button:hover,[data-theme='dark'] .launcher-ecosystem>div>button:focus{ + background:rgba(255, 255, 255, 0.2) !important; +} + +/* ── Sidebar ───────────────────────────────────────────────── */ +[data-theme='dark'] .theme-doc-sidebar-container { + border-right-color: rgba(255, 255, 255, 0.08); +} + +/* ── Icon buttons ──────────────────────────────────────────── */ +[data-theme='dark'] button.btn.btn-icon:hover { + background-color: rgba(255, 255, 255, 0.08); +} + +/* ── Homepage search bar ───────────────────────────────────── */ +[data-theme='dark'] .top-banner-section .search-bar-with-ai { + background: + linear-gradient(#1a2d4a, #1a2d4a) padding-box, + conic-gradient( + from 187.27deg at 50% 50%, + #eead92 0deg, + #ff44ec 192.12deg, + #fe4ce5 221.27deg, + #6018dc 360deg + ) + border-box; +} + +[data-theme='dark'] .top-banner-section .search-bar-with-ai:hover { + background: + linear-gradient(#1a2d4a, #1a2d4a) padding-box, + conic-gradient( + from 220deg at 50% 50%, + #f2b29b 0deg, + #ff63f1 190deg, + #1694ef 225deg, + #1694ef 360deg + ) + border-box; +} + +[data-theme='dark'] .top-banner-section .text-greeting-desc { + color: rgba(255, 255, 255, 0.65); +} + +/* ── Navbar search hover ───────────────────────────────────── */ +[data-theme='dark'] .navbar .navbar__items .search-bar-with-ai .DocSearch-Button:hover { + background: rgba(255, 255, 255, 0.08); +} + +/* ── Footer ────────────────────────────────────────────────── */ +[data-theme='dark'] .footer .send-message-section { + border-bottom-color: rgba(255, 255, 255, 0.1); +} + .markdown h1:first-child, .markdown h1 { --ifm-h1-font-size: 2.5rem; @@ -338,7 +417,7 @@ span.DocSearch-Button-Keys { padding-right: 16px; } -.top_nav + .container .thin-scrollbar { +.top_nav + .container .thin-scrollbar ,.thin-scrollbar.theme-doc-toc-desktop{ top: calc(var(--ifm-navbar-height) + 2rem + var(--ifm-top-nav-height)); } @@ -388,6 +467,9 @@ span.DocSearch-Button-Keys { vertical-align: bottom; margin-left: 6px; } +[data-theme='dark'] .dropdown > .navbar__link:after { + background-image: url('/img/dropdown-white.svg'); +} .menu-wrapper { position: relative; diff --git a/src/theme/Navbar/Content/index.js b/src/theme/Navbar/Content/index.js index eeccb81..f2d1615 100644 --- a/src/theme/Navbar/Content/index.js +++ b/src/theme/Navbar/Content/index.js @@ -95,7 +95,10 @@ export default function NavbarContent() { <> - +
+ +
+ {/* */} { + const el = scrollRef.current; + if (!el) return; + const onScroll = () => { + const distFromBottom = el.scrollHeight - el.scrollTop - el.clientHeight; + isUserScrolled.current = distFromBottom > SCROLL_THRESHOLD; + }; + el.addEventListener('scroll', onScroll, { passive: true }); + return () => el.removeEventListener('scroll', onScroll); + }, []); + + // New message added (user query or completed AI response) → always scroll to + // bottom and reset the user-scrolled lock so streaming continues to follow. useEffect(() => { + isUserScrolled.current = false; if (scrollRef.current) { scrollRef.current.scrollTop = scrollRef.current.scrollHeight; } - }, [messages, currentFragments, currentTraceSteps]); + }, [messages.length]); + + // Streaming updates (fragments / trace steps) → only scroll if the user + // hasn't manually scrolled away to read earlier content. + useEffect(() => { + if (!isUserScrolled.current && scrollRef.current) { + scrollRef.current.scrollTop = scrollRef.current.scrollHeight; + } + }, [currentFragments, currentTraceSteps]); const toggleMobileSources = (msgId) => { setExpandedMobileId((prev) => (prev === msgId ? null : msgId)); @@ -283,7 +310,6 @@ export default function AIConversation({ feedbackPromptId === msg.id && msg.feedbackStatus !== 'submitted'; const canRateMessage = msg.traceId && - !isStreaming && msg.feedbackStatus !== 'submitted' && msg.feedbackStatus !== 'submitting'; @@ -538,7 +564,7 @@ export default function AIConversation({
AI + + \ No newline at end of file diff --git a/static/img/dropdown.svg b/static/img/dropdown.svg index f34aabc..8c0fe89 100644 --- a/static/img/dropdown.svg +++ b/static/img/dropdown.svg @@ -1,3 +1,4 @@ - + From d40411b9ec202965090eb42abe4180cedb1e8390 Mon Sep 17 00:00:00 2001 From: Tiwariji-07 Date: Tue, 14 Apr 2026 15:41:47 +0530 Subject: [PATCH 6/6] fixed: session clearing bug --- src/theme/SearchBar/AskAIDialog.jsx | 10 ++-------- src/theme/SearchBar/useAIChat.js | 20 +++++++++++++++++++- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/theme/SearchBar/AskAIDialog.jsx b/src/theme/SearchBar/AskAIDialog.jsx index 9f7e9a8..1b74a70 100644 --- a/src/theme/SearchBar/AskAIDialog.jsx +++ b/src/theme/SearchBar/AskAIDialog.jsx @@ -118,11 +118,8 @@ export default function AskAIDialog({ apiUrl, onClose, initialQuery = '' }) { // Trigger fade-out then call onClose const handleClose = useCallback(() => { - if (chat.messages.length === 0) { - localStorage.removeItem('wm-search-session-messages'); - } setIsClosing(true); - }, [chat.messages.length]); + }, []); const handleAnimationEnd = useCallback(() => { if (isClosing) onClose(); @@ -316,10 +313,7 @@ export default function AskAIDialog({ apiUrl, onClose, initialQuery = '' }) {