feat(nx-dev): add contact pages (#22815)
This commit adds a new 'Contact' section to the website. It includes various subpages designed to assist and guide users looking to get in touch. Users can now seek help through a convenient form, connect with the team in multiple ways, or reach out to the sales team directly.
This commit is contained in:
parent
839e4b25fc
commit
50dff717df
@ -112,6 +112,13 @@ export default function CustomApp({
|
|||||||
strategy="afterInteractive"
|
strategy="afterInteractive"
|
||||||
src="https://js.hs-scripts.com/2757427.js"
|
src="https://js.hs-scripts.com/2757427.js"
|
||||||
/>
|
/>
|
||||||
|
{/* HubSpot FORMS Embed Code */}
|
||||||
|
<Script
|
||||||
|
type="text/javascript"
|
||||||
|
id="hs-forms-script-loader"
|
||||||
|
strategy="afterInteractive"
|
||||||
|
src="//js.hsforms.net/forms/v2.js"
|
||||||
|
/>
|
||||||
{/* Hotjar Analytics */}
|
{/* Hotjar Analytics */}
|
||||||
<Script
|
<Script
|
||||||
id="hotjar-script-loader"
|
id="hotjar-script-loader"
|
||||||
|
|||||||
46
nx-dev/nx-dev/pages/contact/index.tsx
Normal file
46
nx-dev/nx-dev/pages/contact/index.tsx
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import { useRouter } from 'next/router';
|
||||||
|
import { NextSeo } from 'next-seo';
|
||||||
|
import { Footer, Header } from '@nx/nx-dev/ui-common';
|
||||||
|
import { ContactLinks, HowCanWeHelp } from '@nx/nx-dev/ui-contact';
|
||||||
|
|
||||||
|
export function Contact(): JSX.Element {
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<NextSeo
|
||||||
|
title="Contact us"
|
||||||
|
description="There are many ways you can connect with the open-source Nx community. Let's connect together!"
|
||||||
|
openGraph={{
|
||||||
|
url: 'https://nx.dev' + router.asPath,
|
||||||
|
title: 'Contact us',
|
||||||
|
description:
|
||||||
|
"There are many ways you can connect with the open-source Nx community. Let's connect together!",
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
url: 'https://nx.dev/socials/nx-media.png',
|
||||||
|
width: 800,
|
||||||
|
height: 421,
|
||||||
|
alt: 'Nx: Smart Monorepos · Fast CI',
|
||||||
|
type: 'image/jpeg',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
siteName: 'NxDev',
|
||||||
|
type: 'website',
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Header />
|
||||||
|
<main id="main" role="main" className="py-24 lg:py-32">
|
||||||
|
<div>
|
||||||
|
<HowCanWeHelp />
|
||||||
|
</div>
|
||||||
|
<div className="mt-32">
|
||||||
|
<ContactLinks />
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<Footer />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Contact;
|
||||||
43
nx-dev/nx-dev/pages/contact/sales.tsx
Normal file
43
nx-dev/nx-dev/pages/contact/sales.tsx
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import { useRouter } from 'next/router';
|
||||||
|
import { NextSeo } from 'next-seo';
|
||||||
|
import { Footer, Header } from '@nx/nx-dev/ui-common';
|
||||||
|
import { TalkToOurSalesTeam } from '@nx/nx-dev/ui-contact';
|
||||||
|
|
||||||
|
export function ContactSales(): JSX.Element {
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<NextSeo
|
||||||
|
title="Talk to our Sales team"
|
||||||
|
description="We’re here to help you find the right plan and pricing for your company constraints and requirements. We will talk about how Nx Cloud Enterprise works for your organization."
|
||||||
|
openGraph={{
|
||||||
|
url: 'https://nx.dev' + router.asPath,
|
||||||
|
title: 'Talk to our Sales team',
|
||||||
|
description:
|
||||||
|
'We’re here to help you find the right plan and pricing for your company constraints and requirements. We will talk about how Nx Cloud Enterprise works for your organization.',
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
url: 'https://nx.dev/socials/nx-media.png',
|
||||||
|
width: 800,
|
||||||
|
height: 421,
|
||||||
|
alt: 'Nx: Smart Monorepos · Fast CI',
|
||||||
|
type: 'image/jpeg',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
siteName: 'NxDev',
|
||||||
|
type: 'website',
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<Header />
|
||||||
|
<main id="main" role="main" className="py-24 lg:py-32">
|
||||||
|
<div>
|
||||||
|
<TalkToOurSalesTeam />
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<Footer />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ContactSales;
|
||||||
@ -10,7 +10,6 @@ export * from './lib/nx-cloud-icon';
|
|||||||
export * from './lib/footer';
|
export * from './lib/footer';
|
||||||
export * from './lib/sidebar-container';
|
export * from './lib/sidebar-container';
|
||||||
export * from './lib/sidebar';
|
export * from './lib/sidebar';
|
||||||
export * from './lib/nx-users-showcase';
|
|
||||||
export * from './lib/plugin-card';
|
export * from './lib/plugin-card';
|
||||||
export * from './lib/testimonial-card';
|
export * from './lib/testimonial-card';
|
||||||
export * from './lib/typography';
|
export * from './lib/typography';
|
||||||
|
|||||||
@ -252,8 +252,7 @@ export function DocumentationHeader({
|
|||||||
{/*</span>*/}Launch Nx
|
{/*</span>*/}Launch Nx
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
href="https://nx.app/enterprise?utm_source=nx.dev&utm_medium=header-menu"
|
href="/contact"
|
||||||
target="_blank"
|
|
||||||
title="Contact us"
|
title="Contact us"
|
||||||
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 dark:text-slate-200 dark:hover:text-sky-500 md:inline-flex"
|
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 dark:text-slate-200 dark:hover:text-sky-500 md:inline-flex"
|
||||||
>
|
>
|
||||||
|
|||||||
@ -20,11 +20,6 @@ export function Header(): JSX.Element {
|
|||||||
description: 'Learn how to efficiently use Nx on CI',
|
description: 'Learn how to efficiently use Nx on CI',
|
||||||
href: '/ci/intro/ci-with-nx',
|
href: '/ci/intro/ci-with-nx',
|
||||||
},
|
},
|
||||||
// {
|
|
||||||
// name: 'Concepts',
|
|
||||||
// description: 'What to know more about how Nx is working?',
|
|
||||||
// href: '/concepts',
|
|
||||||
// },
|
|
||||||
{
|
{
|
||||||
name: 'Features',
|
name: 'Features',
|
||||||
description:
|
description:
|
||||||
@ -84,7 +79,7 @@ export function Header(): JSX.Element {
|
|||||||
{
|
{
|
||||||
name: 'Contact us',
|
name: 'Contact us',
|
||||||
description: 'Give us a call!',
|
description: 'Give us a call!',
|
||||||
href: 'https://nx.app/enterprise?utm_source=nx.dev&utm_medium=header-menu',
|
href: '/contact',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -197,14 +192,13 @@ export function Header(): JSX.Element {
|
|||||||
{/* <span className="relative inline-flex h-3 w-3 rounded-full bg-blue-500 dark:bg-sky-500" />*/}
|
{/* <span className="relative inline-flex h-3 w-3 rounded-full bg-blue-500 dark:bg-sky-500" />*/}
|
||||||
{/*</span>*/}Launch Nx
|
{/*</span>*/}Launch Nx
|
||||||
</Link>
|
</Link>
|
||||||
<a
|
<Link
|
||||||
href="https://nx.app/enterprise?utm_source=nx.dev&utm_medium=header-menu"
|
href="/contact"
|
||||||
target="_blank"
|
|
||||||
title="Contact us"
|
title="Contact us"
|
||||||
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 dark:text-slate-200 dark:hover:text-sky-500 md:inline-flex"
|
className="hidden px-3 py-2 font-medium leading-tight hover:text-blue-500 dark:text-slate-200 dark:hover:text-sky-500 md:inline-flex"
|
||||||
>
|
>
|
||||||
Contact us
|
Contact us
|
||||||
</a>
|
</Link>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex-shrink-0 text-sm">
|
<div className="flex-shrink-0 text-sm">
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
12
nx-dev/ui-contact/.babelrc
Normal file
12
nx-dev/ui-contact/.babelrc
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"presets": [
|
||||||
|
[
|
||||||
|
"@nx/react/babel",
|
||||||
|
{
|
||||||
|
"runtime": "automatic",
|
||||||
|
"useBuiltIns": "usage"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"plugins": []
|
||||||
|
}
|
||||||
18
nx-dev/ui-contact/.eslintrc.json
Normal file
18
nx-dev/ui-contact/.eslintrc.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"extends": ["plugin:@nx/react", "../../.eslintrc.json"],
|
||||||
|
"ignorePatterns": ["!**/*"],
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
|
||||||
|
"rules": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": ["*.ts", "*.tsx"],
|
||||||
|
"rules": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"files": ["*.js", "*.jsx"],
|
||||||
|
"rules": {}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
7
nx-dev/ui-contact/README.md
Normal file
7
nx-dev/ui-contact/README.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# nx-dev-ui-contact
|
||||||
|
|
||||||
|
This library was generated with [Nx](https://nx.dev).
|
||||||
|
|
||||||
|
## Running unit tests
|
||||||
|
|
||||||
|
Run `nx test nx-dev-ui-contact` to execute the unit tests via [Jest](https://jestjs.io).
|
||||||
10
nx-dev/ui-contact/jest.config.ts
Normal file
10
nx-dev/ui-contact/jest.config.ts
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/* eslint-disable */
|
||||||
|
export default {
|
||||||
|
displayName: 'nx-dev-ui-contact',
|
||||||
|
transform: {
|
||||||
|
'^.+\\.[tj]sx?$': 'babel-jest',
|
||||||
|
},
|
||||||
|
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
|
||||||
|
coverageDirectory: '../../coverage/nx-dev/ui-contact',
|
||||||
|
preset: '../../jest.preset.js',
|
||||||
|
};
|
||||||
11
nx-dev/ui-contact/project.json
Normal file
11
nx-dev/ui-contact/project.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"name": "nx-dev-ui-contact",
|
||||||
|
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
||||||
|
"sourceRoot": "nx-dev/ui-contact/src",
|
||||||
|
"projectType": "library",
|
||||||
|
"tags": ["scope:nx-dev", "type:ui"],
|
||||||
|
"targets": {
|
||||||
|
"lint": {},
|
||||||
|
"test": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
3
nx-dev/ui-contact/src/index.ts
Normal file
3
nx-dev/ui-contact/src/index.ts
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export * from './lib/contact-links';
|
||||||
|
export * from './lib/how-can-we-help';
|
||||||
|
export * from './lib/talk-to-our-sales-team';
|
||||||
178
nx-dev/ui-contact/src/lib/contact-links.tsx
Normal file
178
nx-dev/ui-contact/src/lib/contact-links.tsx
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
import {
|
||||||
|
AcademicCapIcon,
|
||||||
|
BuildingOffice2Icon,
|
||||||
|
EnvelopeIcon,
|
||||||
|
} from '@heroicons/react/24/solid';
|
||||||
|
import {
|
||||||
|
ArrowUpRightIcon,
|
||||||
|
ChevronRightIcon,
|
||||||
|
} from '@heroicons/react/24/outline';
|
||||||
|
import Link from 'next/link';
|
||||||
|
|
||||||
|
export function ContactLinks(): JSX.Element {
|
||||||
|
return (
|
||||||
|
<article id="contact-links" className="mx-auto max-w-7xl px-6 lg:px-8">
|
||||||
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-12 lg:gap-8">
|
||||||
|
<div>
|
||||||
|
<div className="flex items-center gap-2">
|
||||||
|
<svg
|
||||||
|
aria-hidden="true"
|
||||||
|
fill="currentColor"
|
||||||
|
className="h-4 w-4"
|
||||||
|
role="img"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<title>GitHub</title>
|
||||||
|
<path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" />
|
||||||
|
</svg>
|
||||||
|
<h4 className="text-lg text-slate-700 dark:text-slate-300 font-medium">
|
||||||
|
Contribute on GitHub
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<p className="mt-2">
|
||||||
|
File a bug report, check releases or contribute to the OSS products.
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://github.com/nrwl/nx"
|
||||||
|
rel="noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
title="Nx GitHub"
|
||||||
|
className="mt-2 text-sm text-slate-500 hover:text-slate-800 dark:hover:text-slate-400 transition flex items-center gap-2"
|
||||||
|
>
|
||||||
|
<span>Contribute on GitHub</span>
|
||||||
|
<ArrowUpRightIcon aria-hidden="true" className="w-3 h-3" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div className="flex items-center gap-2">
|
||||||
|
<svg
|
||||||
|
aria-hidden="true"
|
||||||
|
fill="currentColor"
|
||||||
|
className="h-4 w-4"
|
||||||
|
role="img"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<title>YouTube</title>
|
||||||
|
<path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z" />
|
||||||
|
</svg>
|
||||||
|
<h4 className="text-lg text-slate-700 dark:text-slate-300 font-medium">
|
||||||
|
Livestreams on Youtube
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<p className="mt-2">
|
||||||
|
Get access to live Q&A sessions, podcasts and tutorials.
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://www.youtube.com/@NxDevtools/videos?utm_source=nx.dev"
|
||||||
|
rel="noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
title="Nx Youtube channel"
|
||||||
|
className="mt-2 text-sm text-slate-500 hover:text-slate-800 transition dark:hover:text-slate-400 flex items-center gap-2"
|
||||||
|
>
|
||||||
|
<span>Join the Nx Youtube channel</span>
|
||||||
|
<ArrowUpRightIcon aria-hidden="true" className="w-3 h-3" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div className="flex items-center gap-2">
|
||||||
|
<svg
|
||||||
|
aria-hidden="true"
|
||||||
|
fill="currentColor"
|
||||||
|
className="h-4 w-4"
|
||||||
|
role="img"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<title>X</title>
|
||||||
|
<path d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z" />
|
||||||
|
</svg>
|
||||||
|
<h4 className="text-lg text-slate-700 dark:text-slate-300 font-medium">
|
||||||
|
Follow us on X
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<p className="mt-2">
|
||||||
|
Stay up to date on everything about Nx like news, conferences,
|
||||||
|
features, releases and more.
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://x.com/NxDevTools?utm_source=nx.dev"
|
||||||
|
rel="noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
title="Nx Official X account"
|
||||||
|
className="mt-2 text-sm text-slate-500 hover:text-slate-800 transition dark:hover:text-slate-400 flex items-center gap-2"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Follow <span className="font-medium">@nxdevtools</span>
|
||||||
|
</span>
|
||||||
|
<ArrowUpRightIcon aria-hidden="true" className="w-3 h-3" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div className="flex items-center gap-2">
|
||||||
|
<EnvelopeIcon aria-hidden="true" className="w-4 h-4" />
|
||||||
|
<h4 className="text-lg text-slate-700 dark:text-slate-300 font-medium">
|
||||||
|
Nx monthly newsletter
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<p className="mt-2">
|
||||||
|
News about Nx releases, features, new plugins, resources straight to
|
||||||
|
your inbox.
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://go.nx.dev/nx-newsletter?utm_source=nx.dev"
|
||||||
|
rel="noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
title="Nx monthly newsletter"
|
||||||
|
className="mt-2 text-sm text-slate-500 hover:text-slate-800 transition dark:hover:text-slate-400 flex items-center gap-2"
|
||||||
|
>
|
||||||
|
<span>Subscribe to Nx newsletter</span>
|
||||||
|
<ArrowUpRightIcon aria-hidden="true" className="w-3 h-3" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div className="flex items-center gap-2">
|
||||||
|
<AcademicCapIcon aria-hidden="true" className="h-4 w-4" />
|
||||||
|
<h4 className="text-lg text-slate-700 dark:text-slate-300 font-medium">
|
||||||
|
Documentation
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<p className="mt-2">
|
||||||
|
Get an overview of Nx's features, integrations, and how to use them.
|
||||||
|
</p>
|
||||||
|
<Link
|
||||||
|
href="/getting-started/intro"
|
||||||
|
title="Nx documentation"
|
||||||
|
className="mt-2 text-sm text-slate-500 hover:text-slate-800 transition dark:hover:text-slate-400 flex items-center gap-2"
|
||||||
|
>
|
||||||
|
<span>Nx docs</span>
|
||||||
|
<ChevronRightIcon aria-hidden="true" className="w-3 h-3" />
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div className="flex items-center gap-2">
|
||||||
|
<BuildingOffice2Icon aria-hidden="true" className="h-4 w-4" />
|
||||||
|
<h4 className="text-lg text-slate-700 dark:text-slate-300 font-medium">
|
||||||
|
Company
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<p className="mt-2">
|
||||||
|
Get to know the team behind Nx, Nx Cloud, Lerna and many other open
|
||||||
|
source projects.
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="https://nx.app/company?utm_source=nx.dev"
|
||||||
|
rel="noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
title="Nx the company"
|
||||||
|
className="mt-2 text-sm text-slate-500 hover:text-slate-800 transition dark:hover:text-slate-400 flex items-center gap-2"
|
||||||
|
>
|
||||||
|
<span>Nx the company</span>
|
||||||
|
<ArrowUpRightIcon aria-hidden="true" className="w-3 h-3" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
);
|
||||||
|
}
|
||||||
70
nx-dev/ui-contact/src/lib/how-can-we-help.tsx
Normal file
70
nx-dev/ui-contact/src/lib/how-can-we-help.tsx
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
import { ButtonLink, SectionHeading } from '@nx/nx-dev/ui-common';
|
||||||
|
import {
|
||||||
|
ArrowUpRightIcon,
|
||||||
|
ChatBubbleLeftRightIcon,
|
||||||
|
UsersIcon,
|
||||||
|
} from '@heroicons/react/24/outline';
|
||||||
|
|
||||||
|
export function HowCanWeHelp(): JSX.Element {
|
||||||
|
return (
|
||||||
|
<section id="contact-us">
|
||||||
|
<div className="mx-auto max-w-7xl px-6 lg:px-8">
|
||||||
|
<div className="mx-auto max-w-3xl text-center">
|
||||||
|
<SectionHeading as="h1" variant="display" id="how-can-we-help">
|
||||||
|
How can we help?
|
||||||
|
</SectionHeading>
|
||||||
|
</div>
|
||||||
|
<div className="mx-auto mt-16 grid max-w-5xl grid-cols-1 gap-6 md:grid-cols-2 lg:gap-8">
|
||||||
|
<section className="rounded-xl border border-slate-200 bg-slate-50/20 p-8 dark:border-slate-800/40 dark:bg-slate-800/60">
|
||||||
|
<div className="flex gap-2 items-center">
|
||||||
|
<ChatBubbleLeftRightIcon
|
||||||
|
aria-hidden="true"
|
||||||
|
className="shrink-0 w-5 h-5"
|
||||||
|
/>
|
||||||
|
<h3 className="text-lg font-medium text-slate-700 dark:text-slate-300">
|
||||||
|
Question about Nx
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<p className="mt-4">
|
||||||
|
Ask a question, receive guidance, share ideas or simply leave
|
||||||
|
feedback about our products on the Discord channel.
|
||||||
|
</p>
|
||||||
|
<ButtonLink
|
||||||
|
href="https://go.nx.dev/community"
|
||||||
|
variant="secondary"
|
||||||
|
size="default"
|
||||||
|
title="Join the community"
|
||||||
|
target="_blank"
|
||||||
|
rel="nofollow"
|
||||||
|
className="mt-6"
|
||||||
|
>
|
||||||
|
<span>Ask questions on Discord</span>
|
||||||
|
<ArrowUpRightIcon aria-hidden="true" className="w-3 h-3" />
|
||||||
|
</ButtonLink>
|
||||||
|
</section>
|
||||||
|
<section className="rounded-xl border border-slate-200 bg-slate-50/20 p-8 dark:border-slate-800/40 dark:bg-slate-800/60">
|
||||||
|
<div className="flex gap-2 items-center">
|
||||||
|
<UsersIcon aria-hidden="true" className="shrink-0 w-5 h-5" />
|
||||||
|
<h3 className="text-xl font-medium text-slate-700 dark:text-slate-300">
|
||||||
|
Get in touch with our sales team
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<p className="mt-4">
|
||||||
|
Contact our sales and support teams for demos, onboarding
|
||||||
|
assistance, pricing or product questions.
|
||||||
|
</p>
|
||||||
|
<ButtonLink
|
||||||
|
href="/contact/sales"
|
||||||
|
variant="primary"
|
||||||
|
size="default"
|
||||||
|
title="Talk to our sales team"
|
||||||
|
className="mt-6"
|
||||||
|
>
|
||||||
|
Contact sales
|
||||||
|
</ButtonLink>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
122
nx-dev/ui-contact/src/lib/hubspot-form.tsx
Normal file
122
nx-dev/ui-contact/src/lib/hubspot-form.tsx
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
import { Component } from 'react';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* From https://www.npmjs.com/package/react-hubspot-form
|
||||||
|
*/
|
||||||
|
|
||||||
|
let globalId = 0;
|
||||||
|
|
||||||
|
declare const window: {
|
||||||
|
hbspt: any;
|
||||||
|
};
|
||||||
|
|
||||||
|
interface HubspotFormProps {
|
||||||
|
region?: string;
|
||||||
|
portalId?: string;
|
||||||
|
formId?: string;
|
||||||
|
noScript?: boolean;
|
||||||
|
loading?: any;
|
||||||
|
onSubmit?: (formData) => void;
|
||||||
|
onReady?: (form) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class HubspotForm extends Component<
|
||||||
|
HubspotFormProps,
|
||||||
|
{ loaded: boolean }
|
||||||
|
> {
|
||||||
|
id: number;
|
||||||
|
el?: HTMLDivElement | null = null;
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
loaded: false,
|
||||||
|
};
|
||||||
|
this.id = globalId++;
|
||||||
|
this.createForm = this.createForm.bind(this);
|
||||||
|
this.findFormElement = this.findFormElement.bind(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
createForm(): void {
|
||||||
|
if (typeof window === 'undefined') return;
|
||||||
|
|
||||||
|
if (window.hbspt) {
|
||||||
|
// protect against component unmounting before window.hbspt is available
|
||||||
|
if (this.el === null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const props: HubspotFormProps = {
|
||||||
|
...this.props,
|
||||||
|
};
|
||||||
|
delete props.loading;
|
||||||
|
delete props.noScript;
|
||||||
|
delete props.onSubmit;
|
||||||
|
delete props.onReady;
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
...props,
|
||||||
|
target: `#${this.el?.getAttribute(`id`)}`,
|
||||||
|
onFormSubmit: ($form) => {
|
||||||
|
// ref: https://developers.hubspot.com/docs/methods/forms/advanced_form_options
|
||||||
|
const formData = $form.serializeArray();
|
||||||
|
if (this.props.onSubmit) {
|
||||||
|
this.props.onSubmit(formData);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
window.hbspt.forms.create(options);
|
||||||
|
} else {
|
||||||
|
setTimeout(this.createForm, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
loadScript() {
|
||||||
|
const script = document.createElement(`script`);
|
||||||
|
script.defer = true;
|
||||||
|
script.onload = () => {
|
||||||
|
this.createForm();
|
||||||
|
this.findFormElement();
|
||||||
|
};
|
||||||
|
script.src = `//js.hsforms.net/forms/v2.js`;
|
||||||
|
document.head.appendChild(script);
|
||||||
|
}
|
||||||
|
|
||||||
|
findFormElement() {
|
||||||
|
// protect against component unmounting before form is added
|
||||||
|
if (this.el === null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const form = this.el?.querySelector(`iframe`);
|
||||||
|
if (form) {
|
||||||
|
this.setState({ loaded: true });
|
||||||
|
if (this.props.onReady) {
|
||||||
|
this.props.onReady(form);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setTimeout(this.findFormElement, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override componentDidMount() {
|
||||||
|
if (!window.hbspt && !this.props.noScript) {
|
||||||
|
this.loadScript();
|
||||||
|
} else {
|
||||||
|
this.createForm();
|
||||||
|
this.findFormElement();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override render() {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div
|
||||||
|
ref={(el) => (this.el = el)}
|
||||||
|
id={`reactHubspotForm${this.id}`}
|
||||||
|
style={{ display: this.state.loaded ? 'block' : 'none' }}
|
||||||
|
/>
|
||||||
|
{!this.state.loaded && this.props.loading}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
141
nx-dev/ui-contact/src/lib/talk-to-our-sales-team.tsx
Normal file
141
nx-dev/ui-contact/src/lib/talk-to-our-sales-team.tsx
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
import { SectionHeading } from '@nx/nx-dev/ui-common';
|
||||||
|
import { HubspotForm } from './hubspot-form';
|
||||||
|
|
||||||
|
export function TalkToOurSalesTeam(): JSX.Element {
|
||||||
|
return (
|
||||||
|
<section id="contact-sales">
|
||||||
|
<div className="mx-auto max-w-7xl px-6 lg:px-8">
|
||||||
|
<div className="mx-auto max-w-3xl text-center">
|
||||||
|
<SectionHeading as="h1" variant="display" id="how-can-we-help">
|
||||||
|
Talk to our Sales team
|
||||||
|
</SectionHeading>
|
||||||
|
</div>
|
||||||
|
<div className="mx-auto mt-16 grid max-w-5xl grid-cols-1 gap-12 md:grid-cols-2 lg:gap-8">
|
||||||
|
<section className="mt-4">
|
||||||
|
<p className="text-lg leading-relaxed">
|
||||||
|
We’re here to help you find the right plan and pricing for your
|
||||||
|
company constraints and requirements. We will talk about{' '}
|
||||||
|
<span className="font-medium">
|
||||||
|
how Nx Cloud Enterprise works for your organization
|
||||||
|
</span>
|
||||||
|
.
|
||||||
|
</p>
|
||||||
|
<div className="mt-6 lg:mt-12 mx-auto grid w-full grid-cols-4 md:grid-cols-2 gap-2">
|
||||||
|
<div className="col-span-1 flex items-center justify-center h-14 lg:h-28">
|
||||||
|
<svg
|
||||||
|
role="img"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
fill="currentColor"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
className="h-14 w-14 text-black dark:text-white"
|
||||||
|
>
|
||||||
|
<title>Royal Bank of Canada</title>
|
||||||
|
<path d="M3 0v21.047c0 .805.318 1.235.953 1.504C6.388 23.517 9.247 24 12 24c2.753 0 5.612-.483 8.047-1.45.635-.268.953-.698.953-1.503V0H3zm3.793 1.092h1.361v.914h5.233v1.4c0 .216 0 .537-.053.752 0 .162-.053.379-.314.594-.157.108-.417.16-.784.16-.314 0-.629.001-.943-.053-.576-.053-.785.215-.785.43v.162c.261-.215.68-.376 1.1-.215.784.27.993.269 1.412-.054l.052.107a.622.622 0 0 0-.047.057c-.043.057-.102.135-.214.213h.367V7.71l1.203-.752h3.35l1.62.861c.21.108.263.269.315.43 0 .161 0 .377-.105.484-.053.108-.418.754-.627 1.077.627.7.941 1.561.941 2.476s-.315 2.045-1.361 2.906c.418.108.732.377.994.754l-.26 1.184h-.158c0-.969-.837-1.184-1.727-1.184H14.59c.105.485.105 1.024.053 1.508h-.157c-.261-2.1-1.413-3.176-3.035-4.307v.97h-.158c-.419-1.024-1.359-1.939-2.3-2.585l-.735-.537v1.022h-.156c-.367-1.023-1.1-1.83-2.041-2.745-1.047-.968-1.518-1.562-1.727-2.261a3.143 3.143 0 0 1-.209-1.184c0-.807.365-1.56.889-1.83v.377c-.262.323-.366.753-.366 1.184 0 .376.105.861.262 1.238.628 1.184 2.616 2.637 3.924 3.498l.531.361c3.57 2.43 4.314 2.939 4.963 4.377.016.05.036.102.059.16.052.136.114.297.15.485.576-.108 2.67-.43 3.088-.485a.618.618 0 0 0 .107-.02c.066-.014.146-.032.207-.032.367-.216.628-.54.89-.916l-1.518-.108c-.037.113-.099.226-.15.32-.023.041-.044.077-.06.11h-.103c.026-.08.038-.162.05-.242.014-.081.027-.162.054-.242l-.418-.053v-.108l.418-.054c.104-.43.105-.862.105-1.239l-1.937-.107v.592h-.104c-.026-.108-.04-.201-.053-.295a2.869 2.869 0 0 0-.052-.297h-.418v-.107h.418a13.494 13.494 0 0 1-.053-1.454l-1.15-.054.156.324c.261.7.21 1.506.105 1.883h-.156c0-.43-.158-.968-.315-1.291-.314-.754-.993-1.454-2.197-2.207v.968h-.158c-.366-1.291-1.36-1.99-2.824-2.744-1.204-.646-1.57-1.4-1.518-2.584l.418.268c.105 1.076.942 1.723 1.78 1.723a6.44 6.44 0 0 0 1.464-.16c.68-.162 1.256-.27 1.78-.055v-.647h-.418c-.157.108-.42.27-.838.27-.471 0-1.362-.269-1.362-1.291 0-.915.733-1.024 1.309-1.024h1.047a.437.437 0 0 0 .254-.074l.06-.033a.41.41 0 0 0 .104-.215v-1.13H9.775v1.13L8.73 3.566v-.27h.522v-.429h-1.83v-.914h-.629c-.366 0-.733.215-.785.7 0 .484.158.86.629.86h.105v.538h-.105c-.785 0-1.412-.592-1.412-1.453 0-.862.678-1.506 1.568-1.506zm4.584 4.521-.012.002c-.214.013-.38.098-.543.266.157.054.314.107.471.107.262-.054.419-.214.523-.322a1.685 1.685 0 0 0-.427-.053h-.012zm.545 2.098c-.312 0-.739.094-1.098.174-.183.04-.349.077-.472.095.05.035.15.098.275.176.26.164.627.396.875.578l1.309-.806c-.262-.162-.575-.217-.89-.217zm2.826 0L12.34 9.166c.47.323.838.645 1.152 1.021.628-.968 1.778-1.56 2.877-1.56.262 0 .68.054 1.047.162l.209-.27-.262-.376.053-.108.785.43-.158.539c.105.054.263.162.42.27l.523-.862-1.308-.701h-2.93zM4.439 8.789l.21.16a4.281 4.281 0 0 0-.106.809c.052 1.076.89 1.775 3.35 3.336 2.616 1.668 3.347 2.692 3.609 3.984h-.156c-.576-1.292-1.727-1.992-3.035-2.746v1.023h-.157c-.366-.915-1.046-1.775-1.988-2.529-.89-.646-1.257-1.024-1.623-1.562a2.585 2.585 0 0 1-.418-1.399c0-.377.105-.753.314-1.076zm11.512.537c-.157.377-.262.808-.367 1.238l1.361-.052a5.594 5.594 0 0 0-.47-1.186h-.524zm1.412.215c.105.323.21.647.262.916l.941-.055c-.314-.376-.732-.646-1.203-.861zm-2.25.11c-.523.269-.89.591-1.256 1.076l1.1-.055c.052-.538.104-.86.156-1.022zm.367 1.29c-.093.432-.146.863-.193 1.256l-.017.145 1.937-.11c0-.43-.053-.805-.158-1.236l-1.569-.055zm2.25.108c.053.43.051.807.051 1.183l1.57-.107a3.306 3.306 0 0 0-.314-1.021l-1.307-.055zm-.052 1.668c-.053.43-.158.809-.315 1.185l1.727-.214c.105-.27.209-.593.209-.862l-1.621-.11zM5.25 17.455h2.4c1.1 0 1.55.351 1.55 1.104 0 .652-.5 1.001-1.1 1.152l1.55 2.008h-1.2l-1.4-1.907H6.7v1.907h-1v-3.31c0-.352-.05-.604-.2-.755-.05-.05-.15-.1-.25-.15v-.049zm4.85 0h2.25c1.35 0 1.55.502 1.55.953 0 .502-.4.852-.85.903.6.05 1.15.35 1.1 1.103 0 .903-.7 1.305-1.75 1.305h-1.85v-3.412c0-.301-.05-.502-.2-.653-.05-.05-.2-.15-.25-.15v-.049zm7.35 0c.9 0 1.3.25 1.3.25l-.2.703h-.05s-.1-.2-.35-.351c-.15-.1-.35-.2-.75-.1-.75 0-1.3.401-1.3 1.705 0 1.405.9 1.705 1.55 1.705.75 0 1.1-.351 1.1-.351v.502s-.4.3-1.4.3c-1.05 0-2.3-.45-2.3-2.156 0-1.505 1-2.207 2.4-2.207zm-10.7.4v1.606h.5c.6 0 .95-.352.95-.854 0-.601-.3-.752-.85-.752h-.6zm4.75 0v1.305h.45c.5 0 .95-.151.95-.703 0-.502-.3-.602-.8-.602h-.6zm.05 1.706v1.755h.6c.65 0 1.05-.3 1.1-.902 0-.602-.3-.853-1.1-.853h-.6z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="col-span-1 flex items-center justify-center h-14 lg:h-28">
|
||||||
|
<svg
|
||||||
|
role="img"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
fill="currentColor"
|
||||||
|
className="h-14 w-14 text-[#FF9900]"
|
||||||
|
>
|
||||||
|
<title>AWS Amplify</title>
|
||||||
|
<path d="M5.223 17.905h6.76l1.731 3.047H0l4.815-8.344 2.018-3.494 1.733 3.002zm2.52-10.371L9.408 4.65l9.415 16.301h-3.334zm2.59-4.486h3.33L24 20.952h-3.334z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-1 flex items-center justify-center h-14 lg:h-28">
|
||||||
|
<svg
|
||||||
|
role="img"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
fill="currentColor"
|
||||||
|
className="h-12 w-12 text-[#7AB55C]"
|
||||||
|
>
|
||||||
|
<title>Shopify</title>
|
||||||
|
<path d="M15.337 23.979l7.216-1.561s-2.604-17.613-2.625-17.73c-.018-.116-.114-.192-.211-.192s-1.929-.136-1.929-.136-1.275-1.274-1.439-1.411c-.045-.037-.075-.057-.121-.074l-.914 21.104h.023zM11.71 11.305s-.81-.424-1.774-.424c-1.447 0-1.504.906-1.504 1.141 0 1.232 3.24 1.715 3.24 4.629 0 2.295-1.44 3.76-3.406 3.76-2.354 0-3.54-1.465-3.54-1.465l.646-2.086s1.245 1.066 2.28 1.066c.675 0 .975-.545.975-.932 0-1.619-2.654-1.694-2.654-4.359-.034-2.237 1.571-4.416 4.827-4.416 1.257 0 1.875.361 1.875.361l-.945 2.715-.02.01zM11.17.83c.136 0 .271.038.405.135-.984.465-2.064 1.639-2.508 3.992-.656.213-1.293.405-1.889.578C7.697 3.75 8.951.84 11.17.84V.83zm1.235 2.949v.135c-.754.232-1.583.484-2.394.736.466-1.777 1.333-2.645 2.085-2.971.193.501.309 1.176.309 2.1zm.539-2.234c.694.074 1.141.867 1.429 1.755-.349.114-.735.231-1.158.366v-.252c0-.752-.096-1.371-.271-1.871v.002zm2.992 1.289c-.02 0-.06.021-.078.021s-.289.075-.714.21c-.423-1.233-1.176-2.37-2.508-2.37h-.115C12.135.209 11.669 0 11.265 0 8.159 0 6.675 3.877 6.21 5.846c-1.194.365-2.063.636-2.16.674-.675.213-.694.232-.772.87-.075.462-1.83 14.063-1.83 14.063L15.009 24l.927-21.166z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-1 flex items-center justify-center h-14 lg:h-28">
|
||||||
|
<svg
|
||||||
|
role="img"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
fill="currentColor"
|
||||||
|
className="h-28 w-28 text-black dark:text-white"
|
||||||
|
>
|
||||||
|
<title>Capital One</title>
|
||||||
|
<path
|
||||||
|
fillRule="evenodd"
|
||||||
|
d="M15.037 14.072c-.798.567-1.741 1.16-2.755 1.777l-.04.025a.027.027 0 0 0-.005.04c.01.016.03.016.04.006l.035-.02c.858-.447 1.847-.984 2.84-1.531l.016-.01a1.414 1.414 0 0 1-.13-.287Zm5.225-4.23c-1.255-1.386-9.325-.142-12.758.611l-.08.016a.038.038 0 0 0-.026.035c.006.015.02.025.036.025l.08-.015c2.845-.507 8.758-1.21 10.033.055.386.387.296.883-.156 1.466.24.155.417.402.492.707 1.757-1.17 2.941-2.283 2.379-2.9Z"
|
||||||
|
clipRule="evenodd"
|
||||||
|
/>
|
||||||
|
<path d="M15.55 13.706c.015.487.326.883.728.883.778 0 1.109-.954 1.089-1.596-.015-.487-.331-.888-.733-.888-.678.01-1.11.958-1.084 1.6Zm-.411-.025c-.03-.834.622-1.682 1.566-1.682.632 0 1.044.422 1.069 1.07.03.877-.578 1.68-1.566 1.68-.633 0-1.05-.42-1.07-1.069Zm-8.96-.221a.6.6 0 0 1-.13.035c-.055.01-.15.03-.296.05a.47.47 0 0 0-.206.065c-.035.03-.06.06-.065.1-.01.045.005.076.045.106.04.025.1.04.19.04.066 0 .131-.01.197-.03.065-.02.12-.05.16-.085.03-.025.05-.06.07-.1.005-.026.02-.086.035-.181Zm.824-.507a2.388 2.388 0 0 1-.035.26l-.141.784c-.01.07.015.125.08.16l-.005.03h-.798l-.005-.2a1.59 1.59 0 0 1-.382.165 1.47 1.47 0 0 1-.381.045c-.256 0-.407-.025-.507-.115-.105-.09-.156-.15-.15-.281a.44.44 0 0 1 .095-.231.567.567 0 0 1 .211-.146c.08-.04.18-.065.321-.09a6.58 6.58 0 0 1 .598-.065c.135-.01.22-.045.26-.06.056-.02.076-.046.086-.091.015-.08-.01-.126-.115-.146-.286-.055-.823.035-1.104.106l.15-.407a7.014 7.014 0 0 1 1.07-.085c.57-.01.757.156.752.367Zm2.308 1.23.276-1.562h.763l-.276 1.561h-.763Zm.317-1.923c.025-.13.226-.23.451-.23.226 0 .392.105.372.23-.025.13-.226.231-.452.231-.23.005-.391-.1-.371-.23Zm3.427 1.205c-.035.01-.08.025-.13.035-.055.015-.15.03-.296.05a.47.47 0 0 0-.206.065.149.149 0 0 0-.065.1c-.01.046.01.08.045.106.04.025.1.04.19.04.066 0 .131-.01.197-.03.065-.02.12-.05.16-.085.03-.025.05-.06.07-.1.005-.026.02-.086.035-.181Zm.824-.512a1.652 1.652 0 0 1-.04.26l-.141.784c-.01.07.015.125.075.16l-.005.026h-.798l-.005-.2c-.115.07-.256.13-.381.165a1.307 1.307 0 0 1-.382.045c-.256 0-.401-.026-.507-.116-.105-.09-.155-.15-.15-.28a.425.425 0 0 1 .095-.232.635.635 0 0 1 .211-.15c.08-.04.181-.065.316-.09.141-.02.337-.046.603-.066a.9.9 0 0 0 .26-.055c.056-.02.076-.045.086-.09.015-.08-.01-.126-.115-.146-.287-.056-.824.035-1.104.105l.15-.407c.366-.055.708-.09 1.069-.09.582.006.768.166.763.377Zm-9.305.668a2.73 2.73 0 0 1-.633.07c-.366 0-.652-.181-.637-.512.01-.221.27-.688.938-.688.211 0 .372.035.593.161l.095-.542a1.763 1.763 0 0 0-.753-.126c-.873.01-1.706.407-1.812 1.21-.105.818.894 1.023 1.335 1.023.256 0 .522-.01.773-.035l.1-.562Zm6.193-1.004.055-.317.798-.175-.085.492h.391l-.075.316h-.377l-.23 1.255s-.769-.005-.773 0l.23-1.25h-.29l.06-.316h.296v-.005Zm3.885 1.565h-.778l.391-2.173.758.02-.371 2.153Zm-6.35-1.194c-.1 0-.19.03-.27.09-.08.06-.13.15-.15.267-.026.135-.01.235.044.296.056.06.13.09.236.09.07 0 .14-.01.196-.04a.38.38 0 0 0 .15-.13.54.54 0 0 0 .086-.206c.02-.126.005-.216-.056-.276a.322.322 0 0 0-.235-.091Zm-1.39 1.731.372-2.088h.668l-.05.267c.06-.08.15-.146.28-.201.13-.055.277-.09.432-.09.176 0 .281.01.412.075.13.07.22.165.27.296a.8.8 0 0 1 .036.427.934.934 0 0 1-.377.612c-.205.15-.386.19-.652.19-.096 0-.17-.01-.236-.025a.421.421 0 0 1-.15-.06.823.823 0 0 1-.126-.115l-.125.718h-.753v-.006Zm13.843-1.54c-.005-.126-.065-.211-.196-.211-.311 0-.648.612-.703.858.512.005.909-.301.899-.647Zm.065.963.06.04c-.15.312-.461.563-.828.563-.296 0-.542-.2-.557-.572-.025-.668.602-1.29 1.114-1.29.221 0 .422.096.432.331.02.532-.728.693-1.22.703a.714.714 0 0 0-.02.196c.01.22.14.407.417.407.246-.001.481-.192.602-.377Zm-3.057-.978c.056-.005.14-.015.176-.015.055 0 .11.01.11.065 0 .035-.06.27-.07.326l-.12.522c-.05.216-.1.442-.146.617h.306l.17-.833c.523-.547.728-.723.849-.723.055 0 .095.03.095.096.006.096-.055.316-.075.376l-.176.607c-.04.136-.07.261-.065.347.005.135.085.19.206.19.22 0 .386-.23.527-.461l-.04-.075c-.056.09-.191.29-.296.29-.036 0-.066-.02-.066-.075-.005-.07.026-.176.045-.246l.196-.708c.05-.195.076-.32.076-.386-.005-.13-.08-.196-.2-.196-.201 0-.468.146-1.035.798h-.01l.07-.316c.041-.176.076-.356.116-.482-.196.07-.477.15-.647.181l.004.1Zm3.328-.567a.27.27 0 0 1 .276-.271c.146 0 .276.115.276.27a.27.27 0 0 1-.276.271.265.265 0 0 1-.276-.27Zm.276.23a.22.22 0 0 0 .22-.226.218.218 0 0 0-.22-.226.218.218 0 0 0-.22.226c0 .131.095.226.22.226Zm-.055-.07h-.05v-.311h.12c.076 0 .11.025.11.09 0 .056-.034.08-.08.085l.091.136h-.055l-.08-.136h-.056v.136Zm.055-.175c.04 0 .076-.006.076-.05 0-.04-.036-.046-.07-.046h-.066v.096h.06Z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-1 flex items-center justify-center h-14 lg:h-28">
|
||||||
|
<svg
|
||||||
|
role="img"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
fill="currentColor"
|
||||||
|
className="h-28 w-28 text-black dark:text-white"
|
||||||
|
>
|
||||||
|
<title>VMware</title>
|
||||||
|
<path d="M.5 10.1a.505.505 0 00-.197.048.497.497 0 00-.25.68l1.138 2.475c.179.38.38.592.721.592.342 0 .542-.22.72-.592l1.003-2.186a.144.144 0 01.144-.092.16.16 0 01.157.16v2.118a.535.535 0 101.066 0v-1.73a.531.531 0 01.566-.552.52.52 0 01.541.551v1.73a.531.531 0 00.53.593.539.539 0 00.535-.592v-1.73a.531.531 0 01.564-.552.52.52 0 01.543.551v1.73a.531.531 0 00.528.593.535.535 0 00.535-.592v-1.969a1.234 1.234 0 00-1.283-1.23 1.647 1.647 0 00-1.14.486 1.26 1.26 0 00-1.095-.483 1.807 1.807 0 00-1.074.483 1.287 1.287 0 00-.961-.483 1.177 1.177 0 00-1.158.786l-.729 1.716-.933-2.203.011-.004A.505.505 0 00.5 10.1zm18.43.06a.27.27 0 00-.266.274h.002v3.142a.27.27 0 10.535 0v-1.222c0-1.037.571-1.56 1.27-1.643a.266.266 0 00.238-.274.258.258 0 00-.266-.269 1.465 1.465 0 00-1.242.88v-.614a.266.266 0 00-.271-.274zm-6.735.008a.273.273 0 00-.25.217l-.912 2.627-.902-2.62a.28.28 0 00-.274-.22.266.266 0 00-.27.258.493.493 0 00.034.144l1.09 3.037.02-.007a.319.319 0 00.298.242.3.3 0 00.293-.242l.903-2.583.896 2.583a.3.3 0 00.293.242h.018a.319.319 0 00.293-.242l1.097-3.038a.512.512 0 00.033-.144.258.258 0 00-.265-.25.262.262 0 00-.258.209l-.918 2.63-.904-2.626a.285.285 0 00-.278-.217h-.025a.273.273 0 00-.012 0zm10.168.008a1.75 1.75 0 00-1.691 1.851 1.765 1.765 0 001.76 1.858l-.008.013a1.784 1.784 0 001.33-.539.228.228 0 00.082-.17.228.228 0 00-.379-.168 1.435 1.435 0 01-1.018.415 1.237 1.237 0 01-1.24-1.207h2.555a.247.247 0 00.246-.247c0-.945-.593-1.806-1.637-1.806zm-5.744.002a1.571 1.571 0 00-.158.006 2.384 2.384 0 00-1.078.205.22.22 0 00-.143.222.24.24 0 00.235.229.266.266 0 00.095-.024 1.822 1.822 0 01.834-.162c.691 0 1.07.334 1.07.979v.125a3.796 3.796 0 00-1.103-.15c-.892 0-1.52.4-1.52 1.16l-.003-.004c0 .736.671 1.117 1.34 1.117a1.575 1.575 0 001.298-.62v.343a.247.247 0 00.254.25.254.254 0 00.258-.262v-1.983a1.416 1.416 0 00-.379-1.046 1.571 1.571 0 00-1-.385zm5.719.43c.714 0 1.085.565 1.139 1.214h-2.278a1.222 1.222 0 011.139-1.215zm-5.885 1.382a3.75 3.75 0 011.057.153V12.49c0 .57-.539.973-1.2.973-.485 0-.904-.261-.904-.713 0-.467.375-.76 1.047-.76Z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-1 flex items-center justify-center h-14 lg:h-28">
|
||||||
|
<svg
|
||||||
|
role="img"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
fill="currentColor"
|
||||||
|
className="h-12 w-12 text-[#FF4785]"
|
||||||
|
>
|
||||||
|
<title>Storybook</title>
|
||||||
|
<path d="M16.71.243l-.12 2.71a.18.18 0 00.29.15l1.06-.8.9.7a.18.18 0 00.28-.14l-.1-2.76 1.33-.1a1.2 1.2 0 011.279 1.2v21.596a1.2 1.2 0 01-1.26 1.2l-16.096-.72a1.2 1.2 0 01-1.15-1.16l-.75-19.797a1.2 1.2 0 011.13-1.27L16.7.222zM13.64 9.3c0 .47 3.16.24 3.59-.08 0-3.2-1.72-4.89-4.859-4.89-3.15 0-4.899 1.72-4.899 4.29 0 4.45 5.999 4.53 5.999 6.959 0 .7-.32 1.1-1.05 1.1-.96 0-1.35-.49-1.3-2.16 0-.36-3.649-.48-3.769 0-.27 4.03 2.23 5.2 5.099 5.2 2.79 0 4.969-1.49 4.969-4.18 0-4.77-6.099-4.64-6.099-6.999 0-.97.72-1.1 1.13-1.1.45 0 1.25.07 1.19 1.87z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-1 flex items-center justify-center h-14 lg:h-28">
|
||||||
|
<svg
|
||||||
|
role="img"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
fill="currentColor"
|
||||||
|
className="h-12 w-12 text-[#BF4722]"
|
||||||
|
>
|
||||||
|
<title>RedwoodJS</title>
|
||||||
|
<path d="M6.989 3.47l4.66 3.181c.105.07.228.108.354.111a.634.634 0 0 0 .354-.111l4.664-3.192a.637.637 0 0 0-.089-1.087L12.272.065a.64.64 0 0 0-.56 0L7.067 2.372a.636.636 0 0 0-.078 1.098zm6.597 4.179c0 .211.104.408.276.528l3.736 2.553a.628.628 0 0 0 .776-.05l3.134-2.803a.637.637 0 0 0-.028-.973l-2.992-2.393a.635.635 0 0 0-.751-.029l-3.874 2.65a.644.644 0 0 0-.277.517zm-9.291 3.474a.64.64 0 0 1 .209.538.625.625 0 0 1-.315.485l-2.231 1.337a.63.63 0 0 1-.718-.049.64.64 0 0 1-.21-.693l.825-2.596a.63.63 0 0 1 1.023-.281l1.417 1.259zm12.1.271l-4.033-2.76a.634.634 0 0 0-.708 0l-4.033 2.76a.646.646 0 0 0-.276.485.664.664 0 0 0 .212.521l4.03 3.605a.635.635 0 0 0 .842 0l4.03-3.605a.647.647 0 0 0-.064-1.006zm-10.758-.713l-3.13-2.803a.648.648 0 0 1-.213-.503.626.626 0 0 1 .237-.481l2.992-2.407a.641.641 0 0 1 .754-.029l3.87 2.65a.639.639 0 0 1 0 1.07l-3.732 2.553a.633.633 0 0 1-.778-.05zm16.073 4.026l-3.187-1.908a.627.627 0 0 0-.744.071l-3.895 3.477a.644.644 0 0 0-.204.587.636.636 0 0 0 .388.483l5.404 2.19a.634.634 0 0 0 .815-.332l1.675-3.752a.64.64 0 0 0-.252-.816zm.442-4.561l.825 2.596h-.007a.635.635 0 0 1-.927.742l-2.234-1.337a.623.623 0 0 1-.305-.485.631.631 0 0 1 .209-.538l1.416-1.262a.63.63 0 0 1 1.023.284zm-11.82 6.786a.637.637 0 0 0-.202-.585L6.235 12.87a.627.627 0 0 0-.744-.071l-3.187 1.908a.648.648 0 0 0-.255.813l1.678 3.752a.632.632 0 0 0 .814.332l5.4-2.19a.637.637 0 0 0 .391-.482zm1.912 1.07l4.334 1.755c.212.091.358.29.382.521a.635.635 0 0 1-.269.596l-4.338 3.013A.625.625 0 0 1 12 24a.64.64 0 0 1-.354-.114l-4.334-3.013a.635.635 0 0 1 .124-1.117l4.334-1.755a.642.642 0 0 1 .474.001z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div className="col-span-1 flex items-center justify-center h-14 lg:h-28">
|
||||||
|
<svg
|
||||||
|
role="img"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
fill="currentColor"
|
||||||
|
className="h-20 w-20 text-[#1BA0D7]"
|
||||||
|
>
|
||||||
|
<title>Cisco</title>
|
||||||
|
<path d="M16.331 18.171V17.06l-.022.01c-.25.121-.522.19-.801.203a1.186 1.186 0 01-.806-.237 1.038 1.038 0 01-.352-.498 1.21 1.21 0 01-.023-.667c.052-.225.178-.426.357-.569.16-.134.355-.218.562-.242a1.85 1.85 0 011.061.198l.024.013v-1.117l-.051-.014a2.862 2.862 0 00-1.011-.132 2.34 2.34 0 00-.903.206c-.287.132-.54.327-.739.571a2.221 2.221 0 00-.04 2.705c.295.378.709.645 1.175.756.491.12 1.006.102 1.487-.052l.082-.023M5.336 18.171V17.06l-.022.01c-.25.121-.522.19-.801.203a1.183 1.183 0 01-.806-.237 1.03 1.03 0 01-.351-.498 1.202 1.202 0 01-.024-.667c.052-.225.177-.426.357-.569.16-.134.355-.218.562-.242a1.85 1.85 0 011.061.198l.024.013v-1.117l-.051-.014a2.862 2.862 0 00-1.011-.132 2.344 2.344 0 00-.903.206 2.08 2.08 0 00-.74.571 2.224 2.224 0 00-.041 2.705 2.11 2.11 0 001.176.756c.491.12 1.005.102 1.487-.052l.083-.023M9.26 17.249l-.004.957.07.012c.22.041.441.069.664.085.195.019.391.022.587.012.187-.014.372-.049.551-.104.21-.06.405-.163.571-.305a1.16 1.16 0 00.333-.478 1.31 1.31 0 00-.007-.96 1.068 1.068 0 00-.298-.414 1.261 1.261 0 00-.438-.255l-.722-.268a.388.388 0 01-.197-.188.245.245 0 01.008-.219.382.382 0 01.154-.142.798.798 0 01.257-.074c.153-.022.308-.021.46.005.18.02.358.051.533.096l.038.008v-.883l-.069-.015a4.749 4.749 0 00-.543-.097 2.844 2.844 0 00-.714-.003c-.3.027-.585.143-.821.33-.16.126-.281.293-.351.484-.104.29-.105.608 0 .899.054.145.14.274.252.381.097.093.207.173.327.236.157.084.324.149.497.195.057.017.114.035.17.054l.085.031.024.01c.084.03.162.078.226.14.045.042.08.094.101.151a.325.325 0 01.001.161.339.339 0 01-.166.198.856.856 0 01-.275.086 2.032 2.032 0 01-.427.021 5.208 5.208 0 01-.557-.074 9.195 9.195 0 01-.287-.067l-.033-.006zm-2.475.995h1.05v-4.167h-1.05v4.167zm12.162-2.936a1.095 1.095 0 011.541.158 1.094 1.094 0 01-.157 1.541l-.017.014a1.096 1.096 0 01-1.367-1.713m-1.525.854a2.193 2.193 0 002.666 2.107 2.139 2.139 0 00.701-3.937 2.207 2.207 0 00-3.367 1.83M22.961 10.728a.52.52 0 001.039 0V9.573a.52.52 0 00-1.039 0v1.155M20.117 10.728a.522.522 0 001.041 0V8.139a.521.521 0 00-1.04 0v2.589M17.231 11.771a.521.521 0 001.039 0V6.17a.52.52 0 00-1.039 0v5.601M14.393 10.728a.521.521 0 001.04 0V8.139a.52.52 0 00-1.039 0v2.589M11.494 10.728a.522.522 0 001.039 0V9.573a.52.52 0 00-1.039 0v1.155M8.624 10.728a.52.52 0 001.039 0V8.139a.52.52 0 00-1.039 0v2.589M5.737 11.771a.52.52 0 001.039 0V6.17a.52.52 0 00-1.039 0v5.601M2.876 10.728a.522.522 0 001.04 0V8.139a.52.52 0 00-1.039 0v2.589M0 10.728a.521.521 0 001.039 0V9.573a.52.52 0 00-1.039 0v1.155" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section className="rounded-xl border border-slate-200 bg-white p-8 dark:border-slate-800/40">
|
||||||
|
<HubspotForm
|
||||||
|
region="na1"
|
||||||
|
portalId="2757427"
|
||||||
|
formId="2e492124-843c-4a6d-87fe-93db27ab4323"
|
||||||
|
noScript={true}
|
||||||
|
loading={<div>Loading...</div>}
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
25
nx-dev/ui-contact/tsconfig.json
Normal file
25
nx-dev/ui-contact/tsconfig.json
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"extends": "../../tsconfig.base.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"jsx": "react-jsx",
|
||||||
|
"allowJs": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"allowSyntheticDefaultImports": true,
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
|
"strict": true,
|
||||||
|
"noImplicitOverride": true,
|
||||||
|
"noPropertyAccessFromIndexSignature": true,
|
||||||
|
"noImplicitReturns": true,
|
||||||
|
"noFallthroughCasesInSwitch": true
|
||||||
|
},
|
||||||
|
"files": [],
|
||||||
|
"include": [],
|
||||||
|
"references": [
|
||||||
|
{
|
||||||
|
"path": "./tsconfig.lib.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "./tsconfig.spec.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
24
nx-dev/ui-contact/tsconfig.lib.json
Normal file
24
nx-dev/ui-contact/tsconfig.lib.json
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"extends": "./tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"outDir": "../../dist/out-tsc",
|
||||||
|
"types": ["node"],
|
||||||
|
"lib": ["dom"]
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"../../node_modules/@nx/react/typings/cssmodule.d.ts",
|
||||||
|
"../../node_modules/@nx/react/typings/image.d.ts"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"**/*.spec.ts",
|
||||||
|
"**/*.test.ts",
|
||||||
|
"**/*.spec.tsx",
|
||||||
|
"**/*.test.tsx",
|
||||||
|
"**/*.spec.js",
|
||||||
|
"**/*.test.js",
|
||||||
|
"**/*.spec.jsx",
|
||||||
|
"**/*.test.jsx",
|
||||||
|
"jest.config.ts"
|
||||||
|
],
|
||||||
|
"include": ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"]
|
||||||
|
}
|
||||||
20
nx-dev/ui-contact/tsconfig.spec.json
Normal file
20
nx-dev/ui-contact/tsconfig.spec.json
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"extends": "./tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"outDir": "../../dist/out-tsc",
|
||||||
|
"module": "commonjs",
|
||||||
|
"types": ["jest", "node"]
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"**/*.test.ts",
|
||||||
|
"**/*.spec.ts",
|
||||||
|
"**/*.test.tsx",
|
||||||
|
"**/*.spec.tsx",
|
||||||
|
"**/*.test.js",
|
||||||
|
"**/*.spec.js",
|
||||||
|
"**/*.test.jsx",
|
||||||
|
"**/*.spec.jsx",
|
||||||
|
"**/*.d.ts",
|
||||||
|
"jest.config.ts"
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -88,6 +88,7 @@
|
|||||||
"@nx/nx-dev/ui-commands": ["nx-dev/ui-commands/src/index.ts"],
|
"@nx/nx-dev/ui-commands": ["nx-dev/ui-commands/src/index.ts"],
|
||||||
"@nx/nx-dev/ui-common": ["nx-dev/ui-common/src/index.ts"],
|
"@nx/nx-dev/ui-common": ["nx-dev/ui-common/src/index.ts"],
|
||||||
"@nx/nx-dev/ui-community": ["nx-dev/ui-community/src/index.ts"],
|
"@nx/nx-dev/ui-community": ["nx-dev/ui-community/src/index.ts"],
|
||||||
|
"@nx/nx-dev/ui-contact": ["nx-dev/ui-contact/src/index.ts"],
|
||||||
"@nx/nx-dev/ui-conference": ["nx-dev/ui-conference/src/index.ts"],
|
"@nx/nx-dev/ui-conference": ["nx-dev/ui-conference/src/index.ts"],
|
||||||
"@nx/nx-dev/ui-fence": ["nx-dev/ui-fence/src/index.ts"],
|
"@nx/nx-dev/ui-fence": ["nx-dev/ui-fence/src/index.ts"],
|
||||||
"@nx/nx-dev/ui-home": ["nx-dev/ui-home/src/index.ts"],
|
"@nx/nx-dev/ui-home": ["nx-dev/ui-home/src/index.ts"],
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user