nx/nx-dev/ui-community/src/lib/create-nx-plugin.tsx
2022-05-12 10:56:41 -04:00

131 lines
5.9 KiB
TypeScript

import {
BookOpenIcon,
DocumentAddIcon,
ShareIcon,
} from '@heroicons/react/solid';
import Link from 'next/link';
import { ReactComponentElement } from 'react';
export function CreateNxPlugin(): ReactComponentElement<any> {
return (
<article
id="create-nx-plugin"
className="items-center p-4 lg:mx-auto lg:grid lg:max-w-7xl lg:grid-flow-col-dense lg:grid-cols-2 lg:gap-24 lg:px-8"
>
<header className="mx-auto max-w-xl lg:col-start-1 lg:mx-0 lg:max-w-none">
<h1 className="mb-4 text-3xl font-extrabold tracking-tight text-gray-900">
<span className="sr-only">Nx </span>Community Plugins
</h1>
<p className="mb-4 text-lg text-gray-500">
Core Nx plugins are created and maintained by the Nx team at Nrwl and
you can see all the available plugins when you run the{' '}
<code className="break-normal rounded border border-gray-200 bg-gray-50 px-2 py-1 font-mono text-sm leading-6 text-gray-600">
nx list
</code>{' '}
command in your workspace.
</p>
<p className="mb-4 text-lg text-gray-500">
The community plugins are created and maintained by members of the Nx
community, will allow you to use the full power of the workspace while
using different technologies!
</p>
<ul className="mx-4 mb-4 list-disc">
<li className="mb-2">
<Link href="/packages/nx-plugin#generating-a-plugin">
<a className="text-lg font-normal text-gray-500 hover:underline">
Create your Nx Plugin
</a>
</Link>
</li>
<li className="mb-2">
<Link href="/packages/nx-plugin#testing-your-plugin">
<a className="text-lg font-normal text-gray-500 hover:underline">
Test your plugin
</a>
</Link>
</li>
<li className="mb-2">
<Link href="/packages/nx-plugin#generating-a-plugin">
<a className="text-lg font-normal text-gray-500 hover:underline">
Publish your Nx Plugin
</a>
</Link>
</li>
</ul>
</header>
<div className="lg:col-start-2">
<div className="relative flex flex-col items-center justify-center lg:h-full">
<iframe
loading="lazy"
className="max-w-screen-sm"
width="100%"
height="315"
src="https://www.youtube.com/embed/XYO689PAhow"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen"
/>
<div className="mt-6 grid w-full grid-cols-1 items-center gap-4 lg:grid-cols-2">
<div className="focus-within:ring-blue-nx-base relative flex flex flex-col items-center items-center overflow-hidden rounded-lg border border-gray-300 bg-white shadow-sm transition focus-within:ring-2 focus-within:ring-offset-2 hover:bg-gray-50">
<div className="flex w-full px-4 py-3">
<div className="min-w-0 flex-1">
<Link href="/packages/nx-plugin#generating-a-plugin">
<a className="focus:outline-none">
<span className="absolute inset-0" aria-hidden="true" />
<p className="text-md mb-0.5 font-bold text-gray-600">
Create an Nx Plugin
</p>
<p className="text-xs text-gray-500">
Follow this guide to generate an Nx plugin to fit your
needs
</p>
</a>
</Link>
</div>
<div className="flex-shrink-0">
<div className="rounded-full border border-gray-100 bg-white p-2 text-white">
<DocumentAddIcon className="text-blue-nx-base h-6 w-6" />
</div>
</div>
</div>
<div className="mt-2 flex w-full items-center space-x-2 border-t border-gray-200 bg-gray-50 px-4 py-3 text-gray-400">
<BookOpenIcon className="h-4 w-4" />
<p className="text-xs font-bold">packages/nx-plugin</p>
</div>
</div>
<div className="focus-within:ring-blue-nx-base relative flex flex flex-col items-center items-center overflow-hidden rounded-lg border border-gray-300 bg-white shadow-sm transition focus-within:ring-2 focus-within:ring-offset-2 hover:bg-gray-50">
<div className="flex w-full px-4 py-3">
<div className="min-w-0 flex-1">
<Link href="/packages/nx-plugin#publishing-your-nx-plugin">
<a className="focus:outline-none">
<span className="absolute inset-0" aria-hidden="true" />
<p className="text-md mb-0.5 font-bold text-gray-600">
Publish an Nx Plugin
</p>
<p className="text-xs text-gray-500">
Follow this guide to publish your new and shiny Nx
plugin
</p>
</a>
</Link>
</div>
<div className="flex-shrink-0">
<div className="rounded-full border border-gray-100 bg-white p-2 text-white">
<ShareIcon className="text-blue-nx-base h-6 w-6" />
</div>
</div>
</div>
<div className="mt-2 flex w-full items-center space-x-2 border-t border-gray-200 bg-gray-50 px-4 py-3 text-gray-400">
<BookOpenIcon className="h-4 w-4" />
<p className="text-xs font-bold">packages/nx-plugin</p>
</div>
</div>
</div>
</div>
</div>
</article>
);
}
export default CreateNxPlugin;