Skip to content

Commit 35aec15

Browse files
authored
New Nav items (#12)
1 parent 5ab4314 commit 35aec15

13 files changed

+1239
-71
lines changed

packages/blog-starter-kit/themes/enterprise/components/header.tsx

+120-25
Original file line numberDiff line numberDiff line change
@@ -9,26 +9,34 @@ import { PublicationNavbarItem } from '../generated/graphql';
99
import { Button } from './button';
1010
import { useAppContext } from './contexts/appContext';
1111
import {
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';
3240
function 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+
];
72132
const 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
];
98164
const 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>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import React from 'react';
2+
3+
export default class AIAgentsSVG extends React.Component {
4+
render() {
5+
return (
6+
<svg
7+
xmlns="http://www.w3.org/2000/svg"
8+
width="24"
9+
height="24"
10+
viewBox="0 0 24 24"
11+
fill="none"
12+
>
13+
<path
14+
d="M4 13.6724V14.1724H4.5V13.6724H4ZM4 16.3621H4.5V15.8621H4V16.3621ZM20 16.3621V15.8621H19.5V16.3621H20ZM20 13.6724H19.5V14.1724H20V13.6724ZM7 22.5H6.5C6.5 22.6894 6.607 22.8625 6.77639 22.9472C6.94579 23.0319 7.14849 23.0136 7.3 22.9L7 22.5ZM10.7333 19.7L11.0333 20.1L10.7333 19.7ZM3.5 9.5V13.6724H4.5V9.5H3.5ZM4 13.1724H3V14.1724H4V13.1724ZM1.5 14.6724V15.3621H2.5V14.6724H1.5ZM3 16.8621H4V15.8621H3V16.8621ZM3.5 16.3621V17.5H4.5V16.3621H3.5ZM20.5 17.5V16.3621H19.5V17.5H20.5ZM20 16.8621H21V15.8621H20V16.8621ZM22.5 15.3621V14.6724H21.5V15.3621H22.5ZM21 13.1724H20V14.1724H21V13.1724ZM20.5 13.6724V9.5H19.5V13.6724H20.5ZM17 6H7V7H17V6ZM11.3333 20H18V19H11.3333V20ZM6.5 20.5V22.5H7.5V20.5H6.5ZM7.3 22.9L11.0333 20.1L10.4333 19.3L6.7 22.1L7.3 22.9ZM6 20C6.27614 20 6.5 20.2239 6.5 20.5H7.5C7.5 19.6716 6.82843 19 6 19V20ZM22.5 14.6724C22.5 13.844 21.8284 13.1724 21 13.1724V14.1724C21.2761 14.1724 21.5 14.3963 21.5 14.6724H22.5ZM21 16.8621C21.8284 16.8621 22.5 16.1905 22.5 15.3621H21.5C21.5 15.6382 21.2761 15.8621 21 15.8621V16.8621ZM19.5 17.5C19.5 18.3284 18.8284 19 18 19V20C19.3807 20 20.5 18.8807 20.5 17.5H19.5ZM1.5 15.3621C1.5 16.1905 2.17157 16.8621 3 16.8621V15.8621C2.72386 15.8621 2.5 15.6382 2.5 15.3621H1.5ZM11.3333 19C11.0088 19 10.693 19.1053 10.4333 19.3L11.0333 20.1C11.1199 20.0351 11.2251 20 11.3333 20V19ZM3 13.1724C2.17157 13.1724 1.5 13.844 1.5 14.6724H2.5C2.5 14.3963 2.72386 14.1724 3 14.1724V13.1724ZM3.5 17.5C3.5 18.8807 4.61929 20 6 20V19C5.17157 19 4.5 18.3284 4.5 17.5H3.5ZM20.5 9.5C20.5 7.56701 18.933 6 17 6V7C18.3807 7 19.5 8.11929 19.5 9.5H20.5ZM4.5 9.5C4.5 8.11929 5.61929 7 7 7V6C5.067 6 3.5 7.567 3.5 9.5H4.5Z"
15+
fill="#F97316"
16+
/>
17+
<path d="M4 11.5V16.5" stroke="#F97316" stroke-linecap="round" stroke-linejoin="round" />
18+
<path d="M20 11.5V16.5" stroke="#F97316" stroke-linecap="round" stroke-linejoin="round" />
19+
<path d="M12 4.5L12 6.5" stroke="#F97316" />
20+
<circle cx="12" cy="3.5" r="1.5" stroke="#F97316" />
21+
<circle cx="8.5" cy="11" r="1.5" stroke="#F97316" />
22+
<circle cx="15.5" cy="11" r="1.5" stroke="#F97316" />
23+
<path
24+
d="M10 15C10.2851 15.5818 11.0729 16 12 16C12.9271 16 13.7149 15.5818 14 15"
25+
stroke="#F97316"
26+
stroke-linecap="round"
27+
stroke-linejoin="round"
28+
/>
29+
</svg>
30+
);
31+
}
32+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import React from 'react';
2+
3+
export default class ContributeSVG extends React.Component {
4+
render() {
5+
return (
6+
<svg
7+
xmlns="http://www.w3.org/2000/svg"
8+
width="24"
9+
height="24"
10+
viewBox="0 0 24 24"
11+
fill="none"
12+
>
13+
<path
14+
fill-rule="evenodd"
15+
clip-rule="evenodd"
16+
d="M4.75 3C3.7835 3 3 3.7835 3 4.75C3 5.7165 3.7835 6.5 4.75 6.5C5.7165 6.5 6.5 5.7165 6.5 4.75C6.5 3.7835 5.7165 3 4.75 3ZM1.5 4.75C1.5 2.95507 2.95507 1.5 4.75 1.5C6.54493 1.5 8 2.95507 8 4.75C8 6.54493 6.54493 8 4.75 8C2.95507 8 1.5 6.54493 1.5 4.75Z"
17+
fill="#FAB12D"
18+
/>
19+
<path
20+
fill-rule="evenodd"
21+
clip-rule="evenodd"
22+
d="M4.75 17.5C3.7835 17.5 3 18.2835 3 19.25C3 20.2165 3.7835 21 4.75 21C5.7165 21 6.5 20.2165 6.5 19.25C6.5 18.2835 5.7165 17.5 4.75 17.5ZM1.5 19.25C1.5 17.4551 2.95507 16 4.75 16C6.54493 16 8 17.4551 8 19.25C8 21.0449 6.54493 22.5 4.75 22.5C2.95507 22.5 1.5 21.0449 1.5 19.25Z"
23+
fill="#FAB12D"
24+
/>
25+
<path
26+
fill-rule="evenodd"
27+
clip-rule="evenodd"
28+
d="M19.25 17.5C18.2835 17.5 17.5 18.2835 17.5 19.25C17.5 20.2165 18.2835 21 19.25 21C20.2165 21 21 20.2165 21 19.25C21 18.2835 20.2165 17.5 19.25 17.5ZM16 19.25C16 17.4551 17.4551 16 19.25 16C21.0449 16 22.5 17.4551 22.5 19.25C22.5 21.0449 21.0449 22.5 19.25 22.5C17.4551 22.5 16 21.0449 16 19.25Z"
29+
fill="#FAB12D"
30+
/>
31+
<path
32+
fill-rule="evenodd"
33+
clip-rule="evenodd"
34+
d="M4.75 7.25C5.16421 7.25 5.5 7.58579 5.5 8V16C5.5 16.4142 5.16421 16.75 4.75 16.75C4.33579 16.75 4 16.4142 4 16V8C4 7.58579 4.33579 7.25 4.75 7.25Z"
35+
fill="#FAB12D"
36+
/>
37+
<path
38+
fill-rule="evenodd"
39+
clip-rule="evenodd"
40+
d="M13.4053 1.71967C13.6982 2.01256 13.6982 2.48744 13.4053 2.78033L12.1857 4H16.25C18.3211 4 20 5.67893 20 7.75V16.5C20 16.9142 19.6642 17.25 19.25 17.25C18.8358 17.25 18.5 16.9142 18.5 16.5V7.75C18.5 6.50736 17.4926 5.5 16.25 5.5H12.1857L13.4053 6.71967C13.6982 7.01256 13.6982 7.48744 13.4053 7.78033C13.1124 8.07322 12.6376 8.07322 12.3447 7.78033L9.84467 5.28033C9.55178 4.98744 9.55178 4.51256 9.84467 4.21967L12.3447 1.71967C12.6376 1.42678 13.1124 1.42678 13.4053 1.71967Z"
41+
fill="#FAB12D"
42+
/>
43+
</svg>
44+
);
45+
}
46+
}

packages/blog-starter-kit/themes/enterprise/components/icons/svgs/NavbarIcons/CustomChatbotsSVG.JS

+40
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import React from 'react';
2+
3+
export default class FeaturesSVG extends React.Component {
4+
render() {
5+
return (
6+
<svg
7+
width="24"
8+
height="24"
9+
viewBox="0 0 24 24"
10+
fill="none"
11+
xmlns="http://www.w3.org/2000/svg"
12+
className={this.props.className}
13+
>
14+
<path
15+
fill-rule="evenodd"
16+
clip-rule="evenodd"
17+
d="M11.5775 1.09382C11.8456 0.968728 12.1552 0.968728 12.4233 1.09382L22.0233 5.57382C22.3754 5.73812 22.6004 6.09148 22.6004 6.48V17.52C22.6004 17.9085 22.3754 18.2619 22.0233 18.4262L12.4233 22.9062C12.1552 23.0313 11.8456 23.0313 11.5775 22.9062L1.97751 18.4262C1.62543 18.2619 1.40039 17.9085 1.40039 17.52V6.48C1.40039 6.09148 1.62543 5.73812 1.97751 5.57382L11.5775 1.09382ZM3.40039 7.99157L11.0004 11.2216V20.4298L3.40039 16.8831V7.99157ZM13.0004 20.4298L20.6004 16.8831V7.99157L13.0004 11.2216V20.4298ZM12.0004 9.47344L19.1442 6.43731L12.0004 3.10353L4.85657 6.43731L12.0004 9.47344Z"
18+
fill="#00A587"
19+
/>
20+
</svg>
21+
);
22+
}
23+
}

0 commit comments

Comments
 (0)