@@ -9,26 +9,34 @@ import { PublicationNavbarItem } from '../generated/graphql';
99import { Button } from './button' ;
1010import { useAppContext } from './contexts/appContext' ;
1111import {
12+ AIAgentsSVG ,
1213 AboutUsNavSVG ,
1314 BlogNavSGV ,
1415 CareersSVG ,
1516 CaseStudiesSVG ,
1617 CommunitySVG ,
1718 ContactSVG ,
19+ CustomChatbotsSVG ,
1820 DocsNavSVG ,
1921 EnterpriseSVG ,
2022 EventsSVG ,
23+ FeaturesSVG ,
24+ FineTuningSVG ,
25+ ForecastingSVG ,
2126 GithubSVG ,
22- HashnodeBlueSVG ,
27+ IntegrationsSVG ,
2328 MindsdbLogoSVG ,
2429 NewsroomSVG ,
2530 ProductUpdatesSVG ,
31+ SemanticSearchSVG ,
2632 SlackNavSGV ,
2733 SlackWhiteNavSGV ,
2834 SupportSVG ,
35+ TextProcessingSVG ,
2936 UpTimeNavSVG ,
3037 UseCasesSVG ,
3138} from './icons' ;
39+ import ContributeSVG from './icons/svgs/NavbarIcons/ContributeSVG' ;
3240function hasUrl (
3341 navbarItem : PublicationNavbarItem ,
3442) : navbarItem is PublicationNavbarItem & { url : string } {
@@ -43,14 +51,26 @@ const product1 = [
4351 // Icon: <CloudNavBarSVG />,
4452 // },
4553 {
46- name : 'Github' ,
47- description : 'Visit our Repo' ,
48- href : 'https://github.com/mindsdb/mindsdb/' ,
49- Icon : < GithubSVG /> ,
54+ name : 'Features' ,
55+ description : 'Building blocks & concepts' ,
56+ href : 'https://docs.mindsdb.com/what-is-mindsdb' ,
57+ Icon : < FeaturesSVG /> ,
58+ } ,
59+ {
60+ name : 'Integrations' ,
61+ description : 'AI engines, data sources, and apps' ,
62+ href : 'https://docs.mindsdb.com/integrations/integrations' ,
63+ Icon : < IntegrationsSVG /> ,
5064 } ,
5165 {
52- name : 'MindsDB Enterprise' ,
53- description : 'Contact sales' ,
66+ name : 'Product Updates' ,
67+ description : 'New features and improvements' ,
68+ href : 'https://github.com/mindsdb/mindsdb/releases' ,
69+ Icon : < ProductUpdatesSVG /> ,
70+ } ,
71+ {
72+ name : 'Enterprise' ,
73+ description : 'Get it on your terms' ,
5474 href : 'https://mindsdb.com/book-a-demo' ,
5575 Icon : < EnterpriseSVG /> ,
5676 } ,
@@ -69,6 +89,46 @@ const product2 = [
6989 Icon : < CommunitySVG /> ,
7090 } ,
7191] ;
92+ const sol1 = [
93+ {
94+ name : 'Continuous Fine-Tuning' ,
95+ description : 'Improve AI models in real time' ,
96+ href : 'https://docs.mindsdb.com/finetune/openai' ,
97+ Icon : < FineTuningSVG /> ,
98+ } ,
99+ {
100+ name : 'AI Agents' ,
101+ description : 'Enhance versatility with customizable “skills”' ,
102+ href : 'https://docs.mindsdb.com/mindsdb_sql/agents/agent' ,
103+ Icon : < AIAgentsSVG /> ,
104+ } ,
105+ {
106+ name : 'Semantic Search' ,
107+ description : 'RAG and embeddings sync' ,
108+ href : 'https://docs.mindsdb.com/sql/tutorials/rag' ,
109+ Icon : < SemanticSearchSVG /> ,
110+ } ,
111+ ] ;
112+ const sol2 = [
113+ {
114+ name : 'Custom Chatbots' ,
115+ description : 'Connect agents with chat interfaces' ,
116+ href : 'https://docs.mindsdb.com/mindsdb_sql/agents/chatbot' ,
117+ Icon : < CustomChatbotsSVG /> ,
118+ } ,
119+ {
120+ name : 'Forecasting' ,
121+ description : 'Forecast trends in your data with enhanced SQL' ,
122+ href : 'https://docs.mindsdb.com/sql/tutorials/house-sales-forecasting' ,
123+ Icon : < ForecastingSVG /> ,
124+ } ,
125+ {
126+ name : 'In-database Text Processing' ,
127+ description : 'Sentiment analysis, summarization, and more' ,
128+ href : 'https://docs.mindsdb.com/nlp/sentiment-analysis-inside-mysql-with-openai' ,
129+ Icon : < TextProcessingSVG /> ,
130+ } ,
131+ ] ;
72132const res1 = [
73133 {
74134 name : 'Support' ,
@@ -94,6 +154,12 @@ const res1 = [
94154 href : 'https://mindsdb.com/blog' ,
95155 Icon : < BlogNavSGV /> ,
96156 } ,
157+ {
158+ name : 'Slack' ,
159+ description : 'Join our channels for helpful discussions' ,
160+ href : 'https://mindsdb.com/joincommunity' ,
161+ Icon : < SlackNavSGV /> ,
162+ } ,
97163] ;
98164const res2 = [
99165 {
@@ -108,12 +174,7 @@ const res2 = [
108174 href : 'https://mindsdb.com/blog-categories/product-updates' ,
109175 Icon : < ProductUpdatesSVG /> ,
110176 } ,
111- {
112- name : 'Slack' ,
113- description : 'Join our channels for helpful discussions' ,
114- href : 'https://mindsdb.com/joincommunity' ,
115- Icon : < SlackNavSGV /> ,
116- } ,
177+
117178 {
118179 name : 'Uptime Status' ,
119180 description : 'All systems operational' ,
@@ -156,10 +217,10 @@ const company2 = [
156217 Icon : < ContactSVG /> ,
157218 } ,
158219 {
159- name : 'Contests ' ,
160- description : 'Build Your Own AI Agent Online Hackathon ' ,
161- href : 'https://hashnode. com/hackathons/mindsdb ' ,
162- Icon : < HashnodeBlueSVG /> ,
220+ name : 'Contribute ' ,
221+ description : 'Check guidelines and first-time issues ' ,
222+ href : 'https://docs.mindsdb. com/contribute/contribute ' ,
223+ Icon : < ContributeSVG /> ,
163224 } ,
164225] ;
165226
@@ -217,11 +278,33 @@ const ProductPopover = () => {
217278 />
218279 ) ) }
219280 </ div >
281+ </ div >
282+ </ Popover . Panel >
283+ </ Transition >
284+ </ Popover >
285+ ) ;
286+ } ;
287+ const SolutionsPopover = ( ) => {
288+ return (
289+ < Popover className = "relative" >
290+ < Popover . Button className = "flex items-center gap-x-1 text-sm font-semibold leading-6 text-white" >
291+ Solutions
292+ < ChevronDownIcon className = "h-5 w-5 flex-none text-gray-400" aria-hidden = "true" />
293+ </ Popover . Button >
220294
221- { /* <div className="w-full">
222- <p className="mb-4 border-b px-4 pb-3 text-black">OPEN-SOURCE</p>
223-
224- {product2.map((item) => (
295+ < Transition
296+ as = { Fragment }
297+ enter = "transition ease-out duration-200"
298+ enterFrom = "opacity-0 translate-y-1"
299+ enterTo = "opacity-100 translate-y-0"
300+ leave = "transition ease-in duration-150"
301+ leaveFrom = "opacity-100 translate-y-0"
302+ leaveTo = "opacity-0 translate-y-1"
303+ >
304+ < Popover . Panel className = "absolute -left-8 top-full z-10 mt-3 w-screen max-w-2xl overflow-hidden rounded-3xl bg-white shadow-lg ring-1 ring-gray-900/5" >
305+ < div className = "flex flex-row p-4 text-black " >
306+ < div className = "w-full" >
307+ { sol1 . map ( ( item ) => (
225308 < NavItem
226309 key = { item . name }
227310 title = { item . name }
@@ -230,7 +313,18 @@ const ProductPopover = () => {
230313 url = { item . href }
231314 />
232315 ) ) }
233- </div> */ }
316+ </ div >
317+ < div className = "w-full" >
318+ { sol2 . map ( ( item ) => (
319+ < NavItem
320+ key = { item . name }
321+ title = { item . name }
322+ description = { item . description }
323+ icon = { item . Icon }
324+ url = { item . href }
325+ />
326+ ) ) }
327+ </ div >
234328 </ div >
235329 </ Popover . Panel >
236330 </ Transition >
@@ -254,7 +348,7 @@ const ResourcesPopover = () => {
254348 leaveFrom = "opacity-100 translate-y-0"
255349 leaveTo = "opacity-0 translate-y-1"
256350 >
257- < Popover . Panel className = "absolute -left-8 top-full z-10 mt-3 w-screen max-w-2xl overflow-hidden rounded-3xl bg-white shadow-lg ring-1 ring-gray-900/5" >
351+ < Popover . Panel className = "absolute -left-8 top-full z-10 mt-3 w-96 max-w-2xl overflow-hidden rounded-3xl bg-white shadow-lg ring-1 ring-gray-900/5" >
258352 < div className = "flex flex-row p-4 text-black " >
259353 < div className = "w-full" >
260354 { res1 . map ( ( item ) => (
@@ -267,7 +361,7 @@ const ResourcesPopover = () => {
267361 />
268362 ) ) }
269363 </ div >
270- < div className = "w-full" >
364+ { /* <div className="w-full">
271365 {res2.map((item) => (
272366 <NavItem
273367 key={item.name}
@@ -277,7 +371,7 @@ const ResourcesPopover = () => {
277371 url={item.href}
278372 />
279373 ))}
280- </ div >
374+ </div> */ }
281375 </ div >
282376 </ Popover . Panel >
283377 </ Transition >
@@ -386,6 +480,7 @@ export const Header = () => {
386480 </ div >
387481 < Popover . Group className = "hidden lg:flex lg:gap-x-7" >
388482 < ProductPopover />
483+ < SolutionsPopover />
389484 < ResourcesPopover />
390485 < CompanyPopover />
391486 </ Popover . Group >
0 commit comments