@@ -9,26 +9,34 @@ import { PublicationNavbarItem } from '../generated/graphql';
9
9
import { Button } from './button' ;
10
10
import { useAppContext } from './contexts/appContext' ;
11
11
import {
12
+ AIAgentsSVG ,
12
13
AboutUsNavSVG ,
13
14
BlogNavSGV ,
14
15
CareersSVG ,
15
16
CaseStudiesSVG ,
16
17
CommunitySVG ,
17
18
ContactSVG ,
19
+ CustomChatbotsSVG ,
18
20
DocsNavSVG ,
19
21
EnterpriseSVG ,
20
22
EventsSVG ,
23
+ FeaturesSVG ,
24
+ FineTuningSVG ,
25
+ ForecastingSVG ,
21
26
GithubSVG ,
22
- HashnodeBlueSVG ,
27
+ IntegrationsSVG ,
23
28
MindsdbLogoSVG ,
24
29
NewsroomSVG ,
25
30
ProductUpdatesSVG ,
31
+ SemanticSearchSVG ,
26
32
SlackNavSGV ,
27
33
SlackWhiteNavSGV ,
28
34
SupportSVG ,
35
+ TextProcessingSVG ,
29
36
UpTimeNavSVG ,
30
37
UseCasesSVG ,
31
38
} from './icons' ;
39
+ import ContributeSVG from './icons/svgs/NavbarIcons/ContributeSVG' ;
32
40
function hasUrl (
33
41
navbarItem : PublicationNavbarItem ,
34
42
) : navbarItem is PublicationNavbarItem & { url : string } {
@@ -43,14 +51,26 @@ const product1 = [
43
51
// Icon: <CloudNavBarSVG />,
44
52
// },
45
53
{
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 /> ,
50
64
} ,
51
65
{
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' ,
54
74
href : 'https://mindsdb.com/book-a-demo' ,
55
75
Icon : < EnterpriseSVG /> ,
56
76
} ,
@@ -69,6 +89,46 @@ const product2 = [
69
89
Icon : < CommunitySVG /> ,
70
90
} ,
71
91
] ;
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
+ ] ;
72
132
const res1 = [
73
133
{
74
134
name : 'Support' ,
@@ -94,6 +154,12 @@ const res1 = [
94
154
href : 'https://mindsdb.com/blog' ,
95
155
Icon : < BlogNavSGV /> ,
96
156
} ,
157
+ {
158
+ name : 'Slack' ,
159
+ description : 'Join our channels for helpful discussions' ,
160
+ href : 'https://mindsdb.com/joincommunity' ,
161
+ Icon : < SlackNavSGV /> ,
162
+ } ,
97
163
] ;
98
164
const res2 = [
99
165
{
@@ -108,12 +174,7 @@ const res2 = [
108
174
href : 'https://mindsdb.com/blog-categories/product-updates' ,
109
175
Icon : < ProductUpdatesSVG /> ,
110
176
} ,
111
- {
112
- name : 'Slack' ,
113
- description : 'Join our channels for helpful discussions' ,
114
- href : 'https://mindsdb.com/joincommunity' ,
115
- Icon : < SlackNavSGV /> ,
116
- } ,
177
+
117
178
{
118
179
name : 'Uptime Status' ,
119
180
description : 'All systems operational' ,
@@ -156,10 +217,10 @@ const company2 = [
156
217
Icon : < ContactSVG /> ,
157
218
} ,
158
219
{
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 /> ,
163
224
} ,
164
225
] ;
165
226
@@ -217,11 +278,33 @@ const ProductPopover = () => {
217
278
/>
218
279
) ) }
219
280
</ 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 >
220
294
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 ) => (
225
308
< NavItem
226
309
key = { item . name }
227
310
title = { item . name }
@@ -230,7 +313,18 @@ const ProductPopover = () => {
230
313
url = { item . href }
231
314
/>
232
315
) ) }
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 >
234
328
</ div >
235
329
</ Popover . Panel >
236
330
</ Transition >
@@ -254,7 +348,7 @@ const ResourcesPopover = () => {
254
348
leaveFrom = "opacity-100 translate-y-0"
255
349
leaveTo = "opacity-0 translate-y-1"
256
350
>
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" >
258
352
< div className = "flex flex-row p-4 text-black " >
259
353
< div className = "w-full" >
260
354
{ res1 . map ( ( item ) => (
@@ -267,7 +361,7 @@ const ResourcesPopover = () => {
267
361
/>
268
362
) ) }
269
363
</ div >
270
- < div className = "w-full" >
364
+ { /* <div className="w-full">
271
365
{res2.map((item) => (
272
366
<NavItem
273
367
key={item.name}
@@ -277,7 +371,7 @@ const ResourcesPopover = () => {
277
371
url={item.href}
278
372
/>
279
373
))}
280
- </ div >
374
+ </div> */ }
281
375
</ div >
282
376
</ Popover . Panel >
283
377
</ Transition >
@@ -386,6 +480,7 @@ export const Header = () => {
386
480
</ div >
387
481
< Popover . Group className = "hidden lg:flex lg:gap-x-7" >
388
482
< ProductPopover />
483
+ < SolutionsPopover />
389
484
< ResourcesPopover />
390
485
< CompanyPopover />
391
486
</ Popover . Group >
0 commit comments