feature added 4 new components
|
@ -0,0 +1,119 @@
|
|||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Right Aligned Border Bottom FAQ
|
||||
|
||||

|
||||
|
||||
```jsx title="Frontend/sections/FAQ/RightAlignedBorderBottomFAQ.tsx"
|
||||
<div className="max-w-[85rem] px-4 py-10 sm:px-6 lg:px-8 lg:py-14 mx-auto">
|
||||
{/* Grid */}
|
||||
<div className="grid md:grid-cols-5 gap-10">
|
||||
<div className="md:col-span-2">
|
||||
<div className="max-w-xs">
|
||||
<h2 className="text-2xl font-bold md:text-4xl md:leading-tight text-base-content">
|
||||
Frequently
|
||||
<br />
|
||||
asked questions
|
||||
</h2>
|
||||
<p className="mt-1 hidden md:block text-base-content/80 ">
|
||||
Answers to the most frequently asked questions.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{/* End Col */}
|
||||
{/* Accordion */}
|
||||
<div className="md:col-span-3 space-y-6">
|
||||
{/* My tech stack is different can I still use it? */}
|
||||
<div className="collapse collapse-plus bg-base-200">
|
||||
<input
|
||||
type="radio"
|
||||
name="my-accordion-3"
|
||||
className="w-auto h-auto"
|
||||
defaultChecked
|
||||
/>
|
||||
<div className="collapse-title text-xl font-medium">
|
||||
My tech stack is different can I still use it?
|
||||
</div>
|
||||
<div className="collapse-content">
|
||||
<p>
|
||||
Yes, as long as you're comfortable with React & NextJS.
|
||||
Libraries are independent. You can use SendGrid instead of Mailer,
|
||||
LemonSqueezy instead of Stripe, or Supabase instead of Pocketbase,
|
||||
for instance.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{/* What do I get exactly? */}
|
||||
<div className="collapse collapse-plus bg-base-200">
|
||||
<input type="radio" name="my-accordion-3" className="w-auto h-auto" />
|
||||
<div className="collapse-title text-xl font-medium">
|
||||
What do I get exactly?
|
||||
</div>
|
||||
<div className="collapse-content">
|
||||
<p>
|
||||
1/ The NextJS starter with all the boilerplate code you need to run
|
||||
an online business: a payment system, a database, login, a blog, UI
|
||||
components, and much more. The repo is available in: - Typescript -
|
||||
/app router and /pages router. 2/ The documentation helps you set up
|
||||
your app from scratch, write copy that sells, and ship fast. 3/
|
||||
Access to deployment templates to self host your app for free
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{/* Is it a website template? */}
|
||||
<div className="collapse collapse-plus bg-base-200">
|
||||
<input type="radio" name="my-accordion-3" className="w-auto h-auto" />
|
||||
<div className="collapse-title text-xl font-medium">
|
||||
Is it a website template?
|
||||
</div>
|
||||
<div className="collapse-content">
|
||||
<p>
|
||||
It's more than just a template. You can copy/paste sections to
|
||||
build your site quickly, like a pricing section, an FAQ, and even an
|
||||
entire blog. You also get a bunch of UI components like buttons,
|
||||
modals, popovers, etc. The NextJS starter also comes with handy
|
||||
tools you need to run an online business—payment processing, emails,
|
||||
SEO, etc.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{/* How is FastPocket different from other boilerplates */}
|
||||
<div className="collapse collapse-plus bg-base-200">
|
||||
<input type="radio" name="my-accordion-3" className="w-auto h-auto" />
|
||||
<div className="collapse-title text-xl font-medium">
|
||||
Are there any other costs associated
|
||||
</div>
|
||||
<div className="collapse-content">
|
||||
<p>
|
||||
Many hosting platforms, like Vercel, let you host a project for free
|
||||
(front-end + back-end) and we give you Pocketbase templates to host
|
||||
your backend for free on Fly.io or PocketHost — so you can launch
|
||||
for first app for $0/month.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{/* How is FastPocket different from other boilerplates */}
|
||||
<div className="collapse collapse-plus bg-base-200">
|
||||
<input type="radio" name="my-accordion-3" className="w-auto h-auto" />
|
||||
<div className="collapse-title text-xl font-medium">
|
||||
How is FastPocket different from other boilerplates
|
||||
</div>
|
||||
<div className="collapse-content">
|
||||
<p>
|
||||
FastPocket is all about giving you control over how you host your
|
||||
app. You won't be locked into vendors when you scale and you get to
|
||||
choose how much or how little you spend. We give you deployment
|
||||
templates and hosting options (that you can migrate from when you
|
||||
grow)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* End Accordion */}
|
||||
{/* End Col */}
|
||||
</div>
|
||||
{/* End Grid */}
|
||||
</div>
|
||||
```
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"label": "Web App",
|
||||
"label": "FAQ",
|
||||
"position": 2,
|
||||
"link": {
|
||||
"type": "generated-index",
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"label": "Components",
|
||||
"position": 2,
|
||||
"link": {
|
||||
"type": "generated-index",
|
||||
"description": "5 minutes to learn the most important Docusaurus concepts."
|
||||
}
|
||||
}
|
|
@ -0,0 +1,215 @@
|
|||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Cards
|
||||
|
||||

|
||||
|
||||
```jsx title="Frontend/sections/Features/CardsFeature.tsx"
|
||||
<>
|
||||
{/* Icon Blocks */}
|
||||
<div className="max-w-[85rem] px-4 py-10 sm:px-6 lg:px-8 lg:py-14 mx-auto">
|
||||
<div className="grid sm:grid-cols-2 lg:grid-cols-3 items-center gap-6 md:gap-10">
|
||||
{/* Card */}
|
||||
<div className="size-full bg-neutral shadow-lg rounded-lg p-5">
|
||||
<div className="flex items-center gap-x-4 mb-3">
|
||||
<div className="inline-flex justify-center items-center size-[62px] rounded-full border-4 border-primary/10 bg-primary/10">
|
||||
<svg
|
||||
className="flex-shrink-0 size-6 text-primary dark:text-primary/80"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<circle cx="13.5" cy="6.5" r=".5" />
|
||||
<circle cx="17.5" cy="10.5" r=".5" />
|
||||
<circle cx="8.5" cy="7.5" r=".5" />
|
||||
<circle cx="6.5" cy="12.5" r=".5" />
|
||||
<path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z" />
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<h3 className="block text-lg font-semibold text-primary-content">
|
||||
Build your portfolio
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-primary-content/80">
|
||||
The simplest way to keep your portfolio always up-to-date.
|
||||
</p>
|
||||
</div>
|
||||
{/* End Card */}
|
||||
{/* Card */}
|
||||
<div className="size-full bg-neutral shadow-lg rounded-lg p-5">
|
||||
<div className="flex items-center gap-x-4 mb-3">
|
||||
<div className="inline-flex justify-center items-center size-[62px] rounded-full border-4 border-primary/10 bg-primary/10">
|
||||
<svg
|
||||
className="flex-shrink-0 size-6 text-primary dark:text-primary/80"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="M2 3h20" />
|
||||
<path d="M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3" />
|
||||
<path d="m7 21 5-5 5 5" />
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<h3 className="block text-lg font-semibold text-primary-content">
|
||||
Get freelance work
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-primary-content/80">
|
||||
New design projects delivered to your inbox each morning.
|
||||
</p>
|
||||
</div>
|
||||
{/* End Card */}
|
||||
{/* Card */}
|
||||
<div className="size-full bg-neutral shadow-lg rounded-lg p-5">
|
||||
<div className="flex items-center gap-x-4 mb-3">
|
||||
<div className="inline-flex justify-center items-center size-[62px] rounded-full border-4 border-primary/10 bg-primary/10">
|
||||
<svg
|
||||
className="flex-shrink-0 size-6 text-primary dark:text-primary/80"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7" />
|
||||
<path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8" />
|
||||
<path d="M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4" />
|
||||
<path d="M2 7h20" />
|
||||
<path d="M22 7v3a2 2 0 0 1-2 2v0a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12v0a2 2 0 0 1-2-2V7" />
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<h3 className="block text-lg font-semibold text-primary-content">
|
||||
Sell your goods
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-primary-content/80">
|
||||
Get your goods in front of millions of potential customers with ease.
|
||||
</p>
|
||||
</div>
|
||||
{/* End Card */}
|
||||
{/* Card */}
|
||||
<div className="size-full bg-neutral shadow-lg rounded-lg p-5">
|
||||
<div className="flex items-center gap-x-4 mb-3">
|
||||
<div className="inline-flex justify-center items-center size-[62px] rounded-full border-4 border-primary/10 bg-primary/10">
|
||||
<svg
|
||||
className="flex-shrink-0 size-6 text-primary dark:text-primary/80"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="M5.5 8.5 9 12l-3.5 3.5L2 12l3.5-3.5Z" />
|
||||
<path d="m12 2 3.5 3.5L12 9 8.5 5.5 12 2Z" />
|
||||
<path d="M18.5 8.5 22 12l-3.5 3.5L15 12l3.5-3.5Z" />
|
||||
<path d="m12 15 3.5 3.5L12 22l-3.5-3.5L12 15Z" />
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<h3 className="block text-lg font-semibold text-primary-content">
|
||||
Get freelance work
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-primary-content/80">
|
||||
New design projects delivered to your inbox each morning.
|
||||
</p>
|
||||
</div>
|
||||
{/* End Card */}
|
||||
{/* Card */}
|
||||
<div className="size-full bg-neutral shadow-lg rounded-lg p-5">
|
||||
<div className="flex items-center gap-x-4 mb-3">
|
||||
<div className="inline-flex justify-center items-center size-[62px] rounded-full border-4 border-primary/10 bg-primary/10">
|
||||
<svg
|
||||
className="flex-shrink-0 size-6 text-primary dark:text-primary/80"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2" />
|
||||
<path d="m15.194 13.707 3.814 1.86-1.86 3.814" />
|
||||
<path d="M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4" />
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<h3 className="block text-lg font-semibold text-primary-content">
|
||||
Sell your goods
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-primary-content/80">
|
||||
Get your goods in front of millions of potential customers with ease.
|
||||
</p>
|
||||
</div>
|
||||
{/* End Card */}
|
||||
{/* Card */}
|
||||
<div className="size-full bg-neutral shadow-lg rounded-lg p-5">
|
||||
<div className="flex items-center gap-x-4 mb-3">
|
||||
<div className="inline-flex justify-center items-center size-[62px] rounded-full border-4 border-primary/10 bg-primary/10">
|
||||
<svg
|
||||
className="flex-shrink-0 size-6 text-primary dark:text-primary/80"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z" />
|
||||
<rect x={3} y={14} width={7} height={7} rx={1} />
|
||||
<circle cx="17.5" cy="17.5" r="3.5" />
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<h3 className="block text-lg font-semibold text-primary-content">
|
||||
Build your portfolio
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-primary-content/80">
|
||||
The simplest way to keep your portfolio always up-to-date.
|
||||
</p>
|
||||
</div>
|
||||
{/* End Card */}
|
||||
</div>
|
||||
</div>
|
||||
{/* End Icon Blocks */}
|
||||
</>
|
||||
```
|
|
@ -0,0 +1,249 @@
|
|||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Vertical Tabs
|
||||
|
||||

|
||||
|
||||
```jsx title="Frontend/sections/Features/VerticalTabsFeature.tsx"
|
||||
const [tab, setTab] = useState("1");
|
||||
return (
|
||||
<>
|
||||
{/* Features */}
|
||||
<div className="max-w-[85rem] px-4 py-10 sm:px-6 lg:px-8 lg:py-14 mx-auto">
|
||||
<div className="relative p-6 md:p-16">
|
||||
{/* Grid */}
|
||||
<div className="relative z-10 lg:grid lg:grid-cols-12 lg:gap-16 lg:items-center">
|
||||
<div className="mb-10 lg:mb-0 lg:col-span-6 lg:col-start-8 lg:order-2">
|
||||
<h2 className="text-2xl text-base-content font-bold sm:text-3xl ">
|
||||
Save 20+ hours of app development with FastPocket
|
||||
</h2>
|
||||
{/* Tab Navs */}
|
||||
<nav
|
||||
className="grid gap-4 mt-5 md:mt-10"
|
||||
aria-label="Tabs"
|
||||
role="tablist"
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
className={`hover:bg-base-content/5 ${
|
||||
tab === "1" && "bg-base-300 shadow-lg hover:bg-base-300"
|
||||
} text-start p-4 md:p-5 rounded-xl`}
|
||||
id="tabs-with-card-item-1"
|
||||
aria-controls="tabs-with-card-1"
|
||||
role="tab"
|
||||
onClick={() => setTab("1")}
|
||||
>
|
||||
<span className="flex">
|
||||
<svg
|
||||
className="flex-shrink-0 mt-2 size-6 md:size-7 text-base-content "
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z" />
|
||||
<path d="M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z" />
|
||||
<path d="M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z" />
|
||||
<path d="M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z" />
|
||||
<path d="M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z" />
|
||||
</svg>
|
||||
<span className="grow ms-6">
|
||||
<span className="block text-lg font-semibold text-base-content ">
|
||||
Simple Setup
|
||||
</span>
|
||||
<span className="block mt-1 text-base-content ">
|
||||
FastPocket already has a codebase with all of the
|
||||
necessary integrations to start an online business out of
|
||||
the box AND excellent documentation
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className={`hover:bg-base-content/5 ${
|
||||
tab === "2" && "bg-base-300 shadow-lg hover:bg-base-300"
|
||||
} text-start p-4 md:p-5 rounded-xl `}
|
||||
id="tabs-with-card-item-2"
|
||||
aria-controls="tabs-with-card-2"
|
||||
role="tab"
|
||||
onClick={() => setTab("2")}
|
||||
>
|
||||
<span className="flex">
|
||||
<svg
|
||||
className="flex-shrink-0 mt-2 size-6 md:size-7 text-base-content "
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m12 14 4-4" />
|
||||
<path d="M3.34 19a10 10 0 1 1 17.32 0" />
|
||||
</svg>
|
||||
<span className="grow ms-6">
|
||||
<span className="block text-lg font-semibold text-base-content ">
|
||||
Copy Paste Components
|
||||
</span>
|
||||
<span className="block mt-1 text-base-content ">
|
||||
We give you cookie cutter copy paste setup for your SaaS
|
||||
with unopinionated SaaS styling that can be modified to
|
||||
suite whatever app you are building
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className={`hover:bg-base-content/5 ${
|
||||
tab === "3" && "bg-base-300 shadow-lg hover:bg-base-300"
|
||||
} text-start p-4 md:p-5 rounded-xl `}
|
||||
id="tabs-with-card-item-3"
|
||||
aria-controls="tabs-with-card-3"
|
||||
role="tab"
|
||||
onClick={() => setTab("3")}
|
||||
>
|
||||
<span className="flex">
|
||||
<svg
|
||||
className="flex-shrink-0 mt-2 size-6 md:size-7 text-base-content "
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z" />
|
||||
<path d="M5 3v4" />
|
||||
<path d="M19 17v4" />
|
||||
<path d="M3 5h4" />
|
||||
<path d="M17 19h4" />
|
||||
</svg>
|
||||
<span className="grow ms-6">
|
||||
<span className="block text-lg font-semibold text-base-content ">
|
||||
Simple Bring Your Own Backend
|
||||
</span>
|
||||
<span className="block mt-1 text-base-content ">
|
||||
We offer deployment templates that allow you to deploy to
|
||||
Digital Ocean, Fly.io, Pockethost or any other backend you
|
||||
want to use. You have the control over your hosting
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
</nav>
|
||||
{/* End Tab Navs */}
|
||||
</div>
|
||||
{/* End Col */}
|
||||
<div className="lg:col-span-6">
|
||||
<div className="relative">
|
||||
{/* Tab Content */}
|
||||
<div>
|
||||
{tab == "1" && (
|
||||
<div
|
||||
id="tabs-with-card-1"
|
||||
role="tabpanel"
|
||||
aria-labelledby="tabs-with-card-item-1"
|
||||
>
|
||||
<Image
|
||||
className="shadow-xl shadow-gray-200 rounded-xl dark:shadow-gray-900/[.2] bg-base-300"
|
||||
src="/images/vertical-tabs-feature-1.png"
|
||||
alt="Image Description"
|
||||
width="987"
|
||||
height="1220"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
{tab == "2" && (
|
||||
<div
|
||||
id="tabs-with-card-2"
|
||||
role="tabpanel"
|
||||
aria-labelledby="tabs-with-card-item-2"
|
||||
>
|
||||
<Image
|
||||
className="shadow-xl shadow-gray-200 rounded-xl dark:shadow-gray-900/[.2] bg-base-300"
|
||||
src="/images/vertical-tabs-feature-2.png"
|
||||
alt="Image Description"
|
||||
width="987"
|
||||
height="1220"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
{tab == "3" && (
|
||||
<div
|
||||
id="tabs-with-card-3"
|
||||
role="tabpanel"
|
||||
aria-labelledby="tabs-with-card-item-3"
|
||||
>
|
||||
<Image
|
||||
className="shadow-xl shadow-gray-200 rounded-xl dark:shadow-gray-900/[.2] bg-base-300"
|
||||
src="/images/vertical-tabs-feature-3.png"
|
||||
alt="Image Description"
|
||||
width="987"
|
||||
height="1220"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
{/* End Tab Content */}
|
||||
{/* SVG Element */}
|
||||
<div className="hidden absolute top-0 end-0 translate-x-20 md:block lg:translate-x-20">
|
||||
<svg
|
||||
className="w-16 h-auto text-secondary"
|
||||
width={121}
|
||||
height={135}
|
||||
viewBox="0 0 121 135"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M5 16.4754C11.7688 27.4499 21.2452 57.3224 5 89.0164"
|
||||
stroke="currentColor"
|
||||
strokeWidth={10}
|
||||
strokeLinecap="round"
|
||||
/>
|
||||
<path
|
||||
d="M33.6761 112.104C44.6984 98.1239 74.2618 57.6776 83.4821 5"
|
||||
stroke="currentColor"
|
||||
strokeWidth={10}
|
||||
strokeLinecap="round"
|
||||
/>
|
||||
<path
|
||||
d="M50.5525 130C68.2064 127.495 110.731 117.541 116 78.0874"
|
||||
stroke="currentColor"
|
||||
strokeWidth={10}
|
||||
strokeLinecap="round"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
{/* End SVG Element */}
|
||||
</div>
|
||||
</div>
|
||||
{/* End Col */}
|
||||
</div>
|
||||
{/* End Grid */}
|
||||
{/* Background Color */}
|
||||
<div className="absolute inset-0 grid grid-cols-12 size-full">
|
||||
<div className="col-span-full lg:col-span-7 lg:col-start-6 bg-gray-100 w-full h-5/6 rounded-xl sm:h-3/4 lg:h-full dark:bg-base-300/[.075]" />
|
||||
</div>
|
||||
{/* End Background Color */}
|
||||
</div>
|
||||
</div>
|
||||
{/* End Features */}
|
||||
</>
|
||||
);
|
||||
```
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"label": "Features",
|
||||
"position": 2,
|
||||
"link": {
|
||||
"type": "generated-index",
|
||||
"description": "5 minutes to learn the most important Docusaurus concepts."
|
||||
}
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Not Found (404)
|
||||
|
||||

|
||||
|
||||
```jsx title="Frontend/app/not-found.tsx"
|
||||
<div className="max-w-[50rem] flex flex-col mx-auto size-full">
|
||||
<div className="text-center py-10 px-4 sm:px-6 lg:px-8">
|
||||
<h1 className="block text-7xl font-bold text-base-content sm:text-9xl">
|
||||
404
|
||||
</h1>
|
||||
<h1 className="block text-2xl font-bold text-primary-content" />
|
||||
<p className="mt-3 text-base-content/80">Oops, something went wrong.</p>
|
||||
<p className="text-base-content/80">
|
||||
Sorry, we couldn't find your page.
|
||||
</p>
|
||||
<div className="mt-5 flex flex-col justify-center items-center gap-2 sm:flex-row sm:gap-3">
|
||||
<a
|
||||
className="w-full sm:w-auto py-3 px-4 inline-flex justify-center items-center gap-x-2 text-sm font-semibold rounded-lg border border-transparent bg-primary text-primary-content hover:br-primary/80 disabled:opacity-50 disabled:pointer-events-none"
|
||||
href="https://github.com/mrwyndham/pocketbase-stripe"
|
||||
target="_blank"
|
||||
>
|
||||
<svg
|
||||
className="flex-shrink-0 size-4"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={16}
|
||||
height={16}
|
||||
fill="currentColor"
|
||||
viewBox="0 0 16 16"
|
||||
>
|
||||
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z" />
|
||||
</svg>
|
||||
Get the source code
|
||||
</a>
|
||||
<Link
|
||||
className="w-full sm:w-auto py-3 px-4 inline-flex justify-center items-center gap-x-2 text-sm font-semibold rounded-lg border border-transparent text-base-content hover:text-secondary/80 disabled:opacity-50 disabled:pointer-events-none"
|
||||
href="/"
|
||||
>
|
||||
<svg
|
||||
className="flex-shrink-0 size-4"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m15 18-6-6 6-6" />
|
||||
</svg>
|
||||
Back to home
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
## Requirements
|
||||
|
||||
you will need the below import statement at the top of your file
|
||||
|
||||
```js
|
||||
import Link from "next/link";
|
||||
```
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"label": "Miscellaneous",
|
||||
"position": 2,
|
||||
"link": {
|
||||
"type": "generated-index",
|
||||
"description": "5 minutes to learn the most important Docusaurus concepts."
|
||||
}
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Create a Document
|
||||
|
||||
Documents are **groups of pages** connected through:
|
||||
|
||||
- a **sidebar**
|
||||
- **previous/next navigation**
|
||||
- **versioning**
|
||||
|
||||
## Create your first Doc
|
||||
|
||||
Create a Markdown file at `docs/hello.md`:
|
||||
|
||||
```md title="docs/hello.md"
|
||||
# Hello
|
||||
|
||||
This is my **first Docusaurus document**!
|
||||
```
|
||||
|
||||
A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello).
|
||||
|
||||
## Configure the Sidebar
|
||||
|
||||
Docusaurus automatically **creates a sidebar** from the `docs` folder.
|
||||
|
||||
Add metadata to customize the sidebar label and position:
|
||||
|
||||
```md title="docs/hello.md" {1-4}
|
||||
---
|
||||
sidebar_label: 'Hi!'
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# Hello
|
||||
|
||||
This is my **first Docusaurus document**!
|
||||
```
|
||||
|
||||
It is also possible to create your sidebar explicitly in `sidebars.js`:
|
||||
|
||||
```js title="sidebars.js"
|
||||
export default {
|
||||
tutorialSidebar: [
|
||||
'intro',
|
||||
// highlight-next-line
|
||||
'hello',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Tutorial',
|
||||
items: ['tutorial-basics/create-a-document'],
|
||||
},
|
||||
],
|
||||
};
|
||||
```
|
|
@ -1,34 +0,0 @@
|
|||
---
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# Create a Blog Post
|
||||
|
||||
Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed...
|
||||
|
||||
## Create your first Post
|
||||
|
||||
Create a file at `blog/2021-02-28-greetings.md`:
|
||||
|
||||
```md title="blog/2021-02-28-greetings.md"
|
||||
---
|
||||
slug: greetings
|
||||
title: Greetings!
|
||||
authors:
|
||||
- name: Joel Marcey
|
||||
title: Co-creator of Docusaurus 1
|
||||
url: https://github.com/JoelMarcey
|
||||
image_url: https://github.com/JoelMarcey.png
|
||||
- name: Sébastien Lorber
|
||||
title: Docusaurus maintainer
|
||||
url: https://sebastienlorber.com
|
||||
image_url: https://github.com/slorber.png
|
||||
tags: [greetings]
|
||||
---
|
||||
|
||||
Congratulations, you have made your first post!
|
||||
|
||||
Feel free to play around and edit this post as much as you like.
|
||||
```
|
||||
|
||||
A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings).
|
|
@ -1,31 +0,0 @@
|
|||
---
|
||||
sidebar_position: 5
|
||||
---
|
||||
|
||||
# Deploy your site
|
||||
|
||||
Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**).
|
||||
|
||||
It builds your site as simple **static HTML, JavaScript and CSS files**.
|
||||
|
||||
## Build your site
|
||||
|
||||
Build your site **for production**:
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
The static files are generated in the `build` folder.
|
||||
|
||||
## Deploy your site
|
||||
|
||||
Test your production build locally:
|
||||
|
||||
```bash
|
||||
npm run serve
|
||||
```
|
||||
|
||||
The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/).
|
||||
|
||||
You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**).
|
|
@ -1,43 +0,0 @@
|
|||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Create a Page
|
||||
|
||||
Add **Markdown or React** files to `src/pages` to create a **standalone page**:
|
||||
|
||||
- `src/pages/index.js` → `localhost:3000/`
|
||||
- `src/pages/foo.md` → `localhost:3000/foo`
|
||||
- `src/pages/foo/bar.js` → `localhost:3000/foo/bar`
|
||||
|
||||
## Create your first React Page
|
||||
|
||||
Create a file at `src/pages/my-react-page.js`:
|
||||
|
||||
```jsx title="src/pages/my-react-page.js"
|
||||
import React from 'react';
|
||||
import Layout from '@theme/Layout';
|
||||
|
||||
export default function MyReactPage() {
|
||||
return (
|
||||
<Layout>
|
||||
<h1>My React page</h1>
|
||||
<p>This is a React page</p>
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page).
|
||||
|
||||
## Create your first Markdown Page
|
||||
|
||||
Create a file at `src/pages/my-markdown-page.md`:
|
||||
|
||||
```mdx title="src/pages/my-markdown-page.md"
|
||||
# My Markdown page
|
||||
|
||||
This is a Markdown page
|
||||
```
|
||||
|
||||
A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page).
|
|
@ -1,152 +0,0 @@
|
|||
---
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
# Markdown Features
|
||||
|
||||
Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**.
|
||||
|
||||
## Front Matter
|
||||
|
||||
Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/):
|
||||
|
||||
```text title="my-doc.md"
|
||||
// highlight-start
|
||||
---
|
||||
id: my-doc-id
|
||||
title: My document title
|
||||
description: My document description
|
||||
slug: /my-custom-url
|
||||
---
|
||||
// highlight-end
|
||||
|
||||
## Markdown heading
|
||||
|
||||
Markdown text with [links](./hello.md)
|
||||
```
|
||||
|
||||
## Links
|
||||
|
||||
Regular Markdown links are supported, using url paths or relative file paths.
|
||||
|
||||
```md
|
||||
Let's see how to [Create a page](/create-a-page).
|
||||
```
|
||||
|
||||
```md
|
||||
Let's see how to [Create a page](./create-a-page.md).
|
||||
```
|
||||
|
||||
**Result:** Let's see how to [Create a page](./create-a-page.md).
|
||||
|
||||
## Images
|
||||
|
||||
Regular Markdown images are supported.
|
||||
|
||||
You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`):
|
||||
|
||||
```md
|
||||

|
||||
```
|
||||
|
||||

|
||||
|
||||
You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:
|
||||
|
||||
```md
|
||||

|
||||
```
|
||||
|
||||
## Code Blocks
|
||||
|
||||
Markdown code blocks are supported with Syntax highlighting.
|
||||
|
||||
````md
|
||||
```jsx title="src/components/HelloDocusaurus.js"
|
||||
function HelloDocusaurus() {
|
||||
return <h1>Hello, Docusaurus!</h1>;
|
||||
}
|
||||
```
|
||||
````
|
||||
|
||||
```jsx title="src/components/HelloDocusaurus.js"
|
||||
function HelloDocusaurus() {
|
||||
return <h1>Hello, Docusaurus!</h1>;
|
||||
}
|
||||
```
|
||||
|
||||
## Admonitions
|
||||
|
||||
Docusaurus has a special syntax to create admonitions and callouts:
|
||||
|
||||
```md
|
||||
:::tip My tip
|
||||
|
||||
Use this awesome feature option
|
||||
|
||||
:::
|
||||
|
||||
:::danger Take care
|
||||
|
||||
This action is dangerous
|
||||
|
||||
:::
|
||||
```
|
||||
|
||||
:::tip My tip
|
||||
|
||||
Use this awesome feature option
|
||||
|
||||
:::
|
||||
|
||||
:::danger Take care
|
||||
|
||||
This action is dangerous
|
||||
|
||||
:::
|
||||
|
||||
## MDX and React Components
|
||||
|
||||
[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**:
|
||||
|
||||
```jsx
|
||||
export const Highlight = ({children, color}) => (
|
||||
<span
|
||||
style={{
|
||||
backgroundColor: color,
|
||||
borderRadius: '20px',
|
||||
color: '#fff',
|
||||
padding: '10px',
|
||||
cursor: 'pointer',
|
||||
}}
|
||||
onClick={() => {
|
||||
alert(`You clicked the color ${color} with label ${children}`)
|
||||
}}>
|
||||
{children}
|
||||
</span>
|
||||
);
|
||||
|
||||
This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !
|
||||
|
||||
This is <Highlight color="#1877F2">Facebook blue</Highlight> !
|
||||
```
|
||||
|
||||
export const Highlight = ({children, color}) => (
|
||||
<span
|
||||
style={{
|
||||
backgroundColor: color,
|
||||
borderRadius: '20px',
|
||||
color: '#fff',
|
||||
padding: '10px',
|
||||
cursor: 'pointer',
|
||||
}}
|
||||
onClick={() => {
|
||||
alert(`You clicked the color ${color} with label ${children}`);
|
||||
}}>
|
||||
{children}
|
||||
</span>
|
||||
);
|
||||
|
||||
This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !
|
||||
|
||||
This is <Highlight color="#1877F2">Facebook blue</Highlight> !
|
|
@ -1,23 +0,0 @@
|
|||
---
|
||||
sidebar_position: 6
|
||||
---
|
||||
|
||||
# Congratulations!
|
||||
|
||||
You have just learned the **basics of Docusaurus** and made some changes to the **initial template**.
|
||||
|
||||
Docusaurus has **much more to offer**!
|
||||
|
||||
Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**.
|
||||
|
||||
Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610)
|
||||
|
||||
## What's next?
|
||||
|
||||
- Read the [official documentation](https://docusaurus.io/)
|
||||
- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config)
|
||||
- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration)
|
||||
- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout)
|
||||
- Add a [search bar](https://docusaurus.io/docs/search)
|
||||
- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase)
|
||||
- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support)
|
After Width: | Height: | Size: 652 KiB |
After Width: | Height: | Size: 204 KiB |
After Width: | Height: | Size: 227 KiB |
After Width: | Height: | Size: 520 KiB |
|
@ -5,7 +5,7 @@ import Background from "@/components/Utilities/Background";
|
|||
import Footer from "@/components/Footer";
|
||||
import Payment from "@/sections/Payment";
|
||||
import Spacer from "@/components/Utilities/Spacer";
|
||||
import SolidBackgrondIconFeature from "@/sections/Feature/SolidBackgrondIconFeature";
|
||||
import SolidBackgrondIconFeature from "@/sections/Features/SolidBackgrondIconFeature";
|
||||
|
||||
export default function PricingPage() {
|
||||
return (
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import Footer from "@/components/Footer";
|
||||
import Background from "@/components/Utilities/Background";
|
||||
import Spacer from "@/components/Utilities/Spacer";
|
||||
import SolidBackgrondIconFeature from "@/sections/Feature/SolidBackgrondIconFeature";
|
||||
import SolidBackgrondIconFeature from "@/sections/Features/SolidBackgrondIconFeature";
|
||||
import PageHeader from "@/sections/PageHeader";
|
||||
import React from "react";
|
||||
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
import Footer from "@/components/Footer";
|
||||
import Background from "@/components/Utilities/Background";
|
||||
import PageWrapper from "@/components/Utilities/PageWrapper";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function NotFound() {
|
||||
return (
|
||||
<>
|
||||
<main
|
||||
id="content"
|
||||
role="main"
|
||||
className="h-screen flex-grow flex flex-col bg-base-100 max-w-screen"
|
||||
>
|
||||
<Background>
|
||||
<div className="self-center justify-self-center my-auto">
|
||||
<div className="max-w-[50rem] flex flex-col mx-auto size-full">
|
||||
<div className="text-center py-10 px-4 sm:px-6 lg:px-8">
|
||||
<h1 className="block text-7xl font-bold text-base-content sm:text-9xl">
|
||||
404
|
||||
</h1>
|
||||
<h1 className="block text-2xl font-bold text-primary-content" />
|
||||
<p className="mt-3 text-base-content/80">
|
||||
Oops, something went wrong.
|
||||
</p>
|
||||
<p className="text-base-content/80">
|
||||
Sorry, we couldn't find your page.
|
||||
</p>
|
||||
<div className="mt-5 flex flex-col justify-center items-center gap-2 sm:flex-row sm:gap-3">
|
||||
<a
|
||||
className="w-full sm:w-auto py-3 px-4 inline-flex justify-center items-center gap-x-2 text-sm font-semibold rounded-lg border border-transparent bg-primary text-primary-content hover:br-primary/80 disabled:opacity-50 disabled:pointer-events-none"
|
||||
href="https://github.com/mrwyndham/pocketbase-stripe"
|
||||
target="_blank"
|
||||
>
|
||||
<svg
|
||||
className="flex-shrink-0 size-4"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={16}
|
||||
height={16}
|
||||
fill="currentColor"
|
||||
viewBox="0 0 16 16"
|
||||
>
|
||||
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z" />
|
||||
</svg>
|
||||
Get the source code
|
||||
</a>
|
||||
<Link
|
||||
className="w-full sm:w-auto py-3 px-4 inline-flex justify-center items-center gap-x-2 text-sm font-semibold rounded-lg border border-transparent text-base-content hover:text-secondary/80 disabled:opacity-50 disabled:pointer-events-none"
|
||||
href="/"
|
||||
>
|
||||
<svg
|
||||
className="flex-shrink-0 size-4"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m15 18-6-6 6-6" />
|
||||
</svg>
|
||||
Back to home
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Background>
|
||||
</main>
|
||||
</>
|
||||
);
|
||||
}
|
|
@ -4,24 +4,34 @@ import { WaitingListWithImageHero } from "@/sections/Hero";
|
|||
import PageWrapper from "@/components/Utilities/PageWrapper";
|
||||
import Footer from "@/components/Footer";
|
||||
import PageHeader from "@/sections/PageHeader";
|
||||
import ContainerImageIconBlocksFeature from "@/sections/Feature/ContainerImageIconBlocksFeature";
|
||||
import ContainerImageIconBlocksFeature from "@/sections/Features/ContainerImageIconBlocksFeature";
|
||||
import Background from "@/components/Utilities/Background";
|
||||
import CardTestemonial from "@/sections/Testemonial/CardTestemonial";
|
||||
import Payment from "@/sections/Payment";
|
||||
import CardsFeature from "@/sections/Features/CardsFeature";
|
||||
import FAQ from "@/sections/FAQ/RightAlignedBorderBottomFAQ";
|
||||
import VerticalTabsFeature from "@/sections/Features/VerticalTabsFeature";
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<>
|
||||
<PageWrapper>
|
||||
<WaitingListWithImageHero />
|
||||
<VerticalTabsFeature />
|
||||
<div className="bg-primary/2">
|
||||
<ContainerImageIconBlocksFeature />
|
||||
</div>
|
||||
<PageHeader
|
||||
title={"You Will Hate FastPocket If..."}
|
||||
className="!pt-16"
|
||||
subtitle={<></>}
|
||||
/>
|
||||
<CardsFeature />
|
||||
<Background>
|
||||
<CardTestemonial />
|
||||
</Background>
|
||||
<PageHeader
|
||||
title={"Want to start building your apps faster?"}
|
||||
title={"Want To Start Building Your Apps Faster?"}
|
||||
className="!pt-16"
|
||||
subtitle={
|
||||
<>
|
||||
|
@ -34,6 +44,7 @@ export default function Home() {
|
|||
}
|
||||
/>
|
||||
<Payment />
|
||||
<FAQ />
|
||||
<Footer />
|
||||
</PageWrapper>
|
||||
</>
|
||||
|
|
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 208 KiB |
After Width: | Height: | Size: 80 KiB |
|
@ -1,6 +1,6 @@
|
|||
import React from "react";
|
||||
|
||||
function RightAlignedBorderBottom() {
|
||||
function RightAlignedBorderBottomFAQ() {
|
||||
return (
|
||||
<>
|
||||
{/* FAQ */}
|
||||
|
@ -9,334 +9,130 @@ function RightAlignedBorderBottom() {
|
|||
<div className="grid md:grid-cols-5 gap-10">
|
||||
<div className="md:col-span-2">
|
||||
<div className="max-w-xs">
|
||||
<h2 className="text-2xl font-bold md:text-4xl md:leading-tight dark:text-white">
|
||||
<h2 className="text-2xl font-bold md:text-4xl md:leading-tight text-base-content">
|
||||
Frequently
|
||||
<br />
|
||||
asked questions
|
||||
</h2>
|
||||
<p className="mt-1 hidden md:block text-gray-600 dark:text-gray-400">
|
||||
<p className="mt-1 hidden md:block text-base-content/80 ">
|
||||
Answers to the most frequently asked questions.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{/* End Col */}
|
||||
<div className="md:col-span-3">
|
||||
{/* Accordion */}
|
||||
<div className="hs-accordion-group divide-y divide-gray-200 dark:divide-gray-700">
|
||||
<div
|
||||
className="hs-accordion pb-3 active"
|
||||
id="hs-basic-with-title-and-arrow-stretched-heading-one"
|
||||
>
|
||||
<button
|
||||
className="hs-accordion-toggle group pb-3 inline-flex items-center justify-between gap-x-3 w-full md:text-lg font-semibold text-start text-gray-800 rounded-lg transition hover:text-gray-500 dark:text-gray-200 dark:hover:text-gray-400 dark:focus:outline-none dark:focus:ring-1 dark:focus:ring-gray-600"
|
||||
aria-controls="hs-basic-with-title-and-arrow-stretched-collapse-one"
|
||||
>
|
||||
Can I cancel at anytime?
|
||||
<svg
|
||||
className="hs-accordion-active:hidden block flex-shrink-0 size-5 text-gray-600 group-hover:text-gray-500 dark:text-gray-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m6 9 6 6 6-6" />
|
||||
</svg>
|
||||
<svg
|
||||
className="hs-accordion-active:block hidden flex-shrink-0 size-5 text-gray-600 group-hover:text-gray-500 dark:text-gray-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m18 15-6-6-6 6" />
|
||||
</svg>
|
||||
</button>
|
||||
<div
|
||||
id="hs-basic-with-title-and-arrow-stretched-collapse-one"
|
||||
className="hs-accordion-content w-full overflow-hidden transition-[height] duration-300"
|
||||
aria-labelledby="hs-basic-with-title-and-arrow-stretched-heading-one"
|
||||
>
|
||||
<p className="text-gray-600 dark:text-gray-400">
|
||||
Yes, you can cancel anytime no questions are asked while you
|
||||
cancel but we would highly appreciate if you will give us
|
||||
some feedback.
|
||||
<div className="md:col-span-3 space-y-6">
|
||||
{/* My tech stack is different can I still use it? */}
|
||||
<div className="collapse collapse-plus bg-base-200">
|
||||
<input
|
||||
type="radio"
|
||||
name="my-accordion-3"
|
||||
className="w-auto h-auto"
|
||||
defaultChecked
|
||||
/>
|
||||
<div className="collapse-title text-xl font-medium">
|
||||
My tech stack is different can I still use it?
|
||||
</div>
|
||||
<div className="collapse-content">
|
||||
<p>
|
||||
Yes, as long as you're comfortable with React & NextJS.
|
||||
Libraries are independent. You can use SendGrid instead of
|
||||
Mailer, LemonSqueezy instead of Stripe, or Supabase instead of
|
||||
Pocketbase, for instance.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="hs-accordion pt-6 pb-3"
|
||||
id="hs-basic-with-title-and-arrow-stretched-heading-two"
|
||||
>
|
||||
<button
|
||||
className="hs-accordion-toggle group pb-3 inline-flex items-center justify-between gap-x-3 w-full md:text-lg font-semibold text-start text-gray-800 rounded-lg transition hover:text-gray-500 dark:text-gray-200 dark:hover:text-gray-400 dark:focus:outline-none dark:focus:ring-1 dark:focus:ring-gray-600"
|
||||
aria-controls="hs-basic-with-title-and-arrow-stretched-collapse-two"
|
||||
>
|
||||
My team has credits. How do we use them?
|
||||
<svg
|
||||
className="hs-accordion-active:hidden block flex-shrink-0 size-5 text-gray-600 group-hover:text-gray-500 dark:text-gray-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m6 9 6 6 6-6" />
|
||||
</svg>
|
||||
<svg
|
||||
className="hs-accordion-active:block hidden flex-shrink-0 size-5 text-gray-600 group-hover:text-gray-500 dark:text-gray-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m18 15-6-6-6 6" />
|
||||
</svg>
|
||||
</button>
|
||||
<div
|
||||
id="hs-basic-with-title-and-arrow-stretched-collapse-two"
|
||||
className="hs-accordion-content hidden w-full overflow-hidden transition-[height] duration-300"
|
||||
aria-labelledby="hs-basic-with-title-and-arrow-stretched-heading-two"
|
||||
>
|
||||
<p className="text-gray-600 dark:text-gray-400">
|
||||
Once your team signs up for a subscription plan. This is
|
||||
where we sit down, grab a cup of coffee and dial in the
|
||||
details.
|
||||
{/* What do I get exactly? */}
|
||||
<div className="collapse collapse-plus bg-base-200">
|
||||
<input
|
||||
type="radio"
|
||||
name="my-accordion-3"
|
||||
className="w-auto h-auto"
|
||||
/>
|
||||
<div className="collapse-title text-xl font-medium">
|
||||
What do I get exactly?
|
||||
</div>
|
||||
<div className="collapse-content">
|
||||
<p>
|
||||
1/ The NextJS starter with all the boilerplate code you need
|
||||
to run an online business: a payment system, a database,
|
||||
login, a blog, UI components, and much more. The repo is
|
||||
available in: - Typescript - /app router and /pages router. 2/
|
||||
The documentation helps you set up your app from scratch,
|
||||
write copy that sells, and ship fast. 3/ Access to deployment
|
||||
templates to self host your app for free
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="hs-accordion pt-6 pb-3"
|
||||
id="hs-basic-with-title-and-arrow-stretched-heading-three"
|
||||
>
|
||||
<button
|
||||
className="hs-accordion-toggle group pb-3 inline-flex items-center justify-between gap-x-3 w-full md:text-lg font-semibold text-start text-gray-800 rounded-lg transition hover:text-gray-500 dark:text-gray-200 dark:hover:text-gray-400 dark:focus:outline-none dark:focus:ring-1 dark:focus:ring-gray-600"
|
||||
aria-controls="hs-basic-with-title-and-arrow-stretched-collapse-three"
|
||||
>
|
||||
How does Preline's pricing work?
|
||||
<svg
|
||||
className="hs-accordion-active:hidden block flex-shrink-0 size-5 text-gray-600 group-hover:text-gray-500 dark:text-gray-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m6 9 6 6 6-6" />
|
||||
</svg>
|
||||
<svg
|
||||
className="hs-accordion-active:block hidden flex-shrink-0 size-5 text-gray-600 group-hover:text-gray-500 dark:text-gray-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m18 15-6-6-6 6" />
|
||||
</svg>
|
||||
</button>
|
||||
<div
|
||||
id="hs-basic-with-title-and-arrow-stretched-collapse-three"
|
||||
className="hs-accordion-content hidden w-full overflow-hidden transition-[height] duration-300"
|
||||
aria-labelledby="hs-basic-with-title-and-arrow-stretched-heading-three"
|
||||
>
|
||||
<p className="text-gray-600 dark:text-gray-400">
|
||||
Our subscriptions are tiered. Understanding the task at hand
|
||||
and ironing out the wrinkles is key.
|
||||
{/* Is it a website template? */}
|
||||
<div className="collapse collapse-plus bg-base-200">
|
||||
<input
|
||||
type="radio"
|
||||
name="my-accordion-3"
|
||||
className="w-auto h-auto"
|
||||
/>
|
||||
<div className="collapse-title text-xl font-medium">
|
||||
Is it a website template?
|
||||
</div>
|
||||
<div className="collapse-content">
|
||||
<p>
|
||||
It's more than just a template. You can copy/paste
|
||||
sections to build your site quickly, like a pricing section,
|
||||
an FAQ, and even an entire blog. You also get a bunch of UI
|
||||
components like buttons, modals, popovers, etc. The NextJS
|
||||
starter also comes with handy tools you need to run an online
|
||||
business—payment processing, emails, SEO, etc.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="hs-accordion pt-6 pb-3"
|
||||
id="hs-basic-with-title-and-arrow-stretched-heading-four"
|
||||
>
|
||||
<button
|
||||
className="hs-accordion-toggle group pb-3 inline-flex items-center justify-between gap-x-3 w-full md:text-lg font-semibold text-start text-gray-800 rounded-lg transition hover:text-gray-500 dark:text-gray-200 dark:hover:text-gray-400 dark:focus:outline-none dark:focus:ring-1 dark:focus:ring-gray-600"
|
||||
aria-controls="hs-basic-with-title-and-arrow-stretched-collapse-four"
|
||||
>
|
||||
How secure is Preline?
|
||||
<svg
|
||||
className="hs-accordion-active:hidden block flex-shrink-0 size-5 text-gray-600 group-hover:text-gray-500 dark:text-gray-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m6 9 6 6 6-6" />
|
||||
</svg>
|
||||
<svg
|
||||
className="hs-accordion-active:block hidden flex-shrink-0 size-5 text-gray-600 group-hover:text-gray-500 dark:text-gray-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m18 15-6-6-6 6" />
|
||||
</svg>
|
||||
</button>
|
||||
<div
|
||||
id="hs-basic-with-title-and-arrow-stretched-collapse-four"
|
||||
className="hs-accordion-content hidden w-full overflow-hidden transition-[height] duration-300"
|
||||
aria-labelledby="hs-basic-with-title-and-arrow-stretched-heading-four"
|
||||
>
|
||||
<p className="text-gray-600 dark:text-gray-400">
|
||||
Protecting the data you trust to Preline is our first
|
||||
priority. This part is really crucial in keeping the project
|
||||
in line to completion.
|
||||
{/* How is FastPocket different from other boilerplates */}
|
||||
<div className="collapse collapse-plus bg-base-200">
|
||||
<input
|
||||
type="radio"
|
||||
name="my-accordion-3"
|
||||
className="w-auto h-auto"
|
||||
/>
|
||||
<div className="collapse-title text-xl font-medium">
|
||||
Are there any other costs associated
|
||||
</div>
|
||||
<div className="collapse-content">
|
||||
<p>
|
||||
Many hosting platforms, like Vercel, let you host a project
|
||||
for free (front-end + back-end) and we give you Pocketbase
|
||||
templates to host your backend for free on Fly.io or
|
||||
PocketHost — so you can launch for first app for $0/month.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="hs-accordion pt-6 pb-3"
|
||||
id="hs-basic-with-title-and-arrow-stretched-heading-five"
|
||||
>
|
||||
<button
|
||||
className="hs-accordion-toggle group pb-3 inline-flex items-center justify-between gap-x-3 w-full md:text-lg font-semibold text-start text-gray-800 rounded-lg transition hover:text-gray-500 dark:text-gray-200 dark:hover:text-gray-400 dark:focus:outline-none dark:focus:ring-1 dark:focus:ring-gray-600"
|
||||
aria-controls="hs-basic-with-title-and-arrow-stretched-collapse-five"
|
||||
>
|
||||
How do I get access to a theme I purchased?
|
||||
<svg
|
||||
className="hs-accordion-active:hidden block flex-shrink-0 size-5 text-gray-600 group-hover:text-gray-500 dark:text-gray-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m6 9 6 6 6-6" />
|
||||
</svg>
|
||||
<svg
|
||||
className="hs-accordion-active:block hidden flex-shrink-0 size-5 text-gray-600 group-hover:text-gray-500 dark:text-gray-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m18 15-6-6-6 6" />
|
||||
</svg>
|
||||
</button>
|
||||
<div
|
||||
id="hs-basic-with-title-and-arrow-stretched-collapse-five"
|
||||
className="hs-accordion-content hidden w-full overflow-hidden transition-[height] duration-300"
|
||||
aria-labelledby="hs-basic-with-title-and-arrow-stretched-heading-five"
|
||||
>
|
||||
<p className="text-gray-600 dark:text-gray-400">
|
||||
If you lose the link for a theme you purchased, don't
|
||||
panic! We've got you covered. You can login to your
|
||||
account, tap your avatar in the upper right corner, and tap
|
||||
Purchases. If you didn't create a login or can't
|
||||
remember the information, you can use our handy Redownload
|
||||
page, just remember to use the same email you originally
|
||||
made your purchases with.
|
||||
</p>
|
||||
{/* How is FastPocket different from other boilerplates */}
|
||||
<div className="collapse collapse-plus bg-base-200">
|
||||
<input
|
||||
type="radio"
|
||||
name="my-accordion-3"
|
||||
className="w-auto h-auto"
|
||||
/>
|
||||
<div className="collapse-title text-xl font-medium">
|
||||
How is FastPocket different from other boilerplates
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="hs-accordion pt-6 pb-3"
|
||||
id="hs-basic-with-title-and-arrow-stretched-heading-six"
|
||||
>
|
||||
<button
|
||||
className="hs-accordion-toggle group pb-3 inline-flex items-center justify-between gap-x-3 w-full md:text-lg font-semibold text-start text-gray-800 rounded-lg transition hover:text-gray-500 dark:text-gray-200 dark:hover:text-gray-400 dark:focus:outline-none dark:focus:ring-1 dark:focus:ring-gray-600"
|
||||
aria-controls="hs-basic-with-title-and-arrow-stretched-collapse-six"
|
||||
>
|
||||
Upgrade License Type
|
||||
<svg
|
||||
className="hs-accordion-active:hidden block flex-shrink-0 size-5 text-gray-600 group-hover:text-gray-500 dark:text-gray-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m6 9 6 6 6-6" />
|
||||
</svg>
|
||||
<svg
|
||||
className="hs-accordion-active:block hidden flex-shrink-0 size-5 text-gray-600 group-hover:text-gray-500 dark:text-gray-400"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m18 15-6-6-6 6" />
|
||||
</svg>
|
||||
</button>
|
||||
<div
|
||||
id="hs-basic-with-title-and-arrow-stretched-collapse-six"
|
||||
className="hs-accordion-content hidden w-full overflow-hidden transition-[height] duration-300"
|
||||
aria-labelledby="hs-basic-with-title-and-arrow-stretched-heading-six"
|
||||
>
|
||||
<p className="text-gray-600 dark:text-gray-400">
|
||||
There may be times when you need to upgrade your license
|
||||
from the original type you purchased and we have a solution
|
||||
that ensures you can apply your original purchase cost to
|
||||
the new license purchase.
|
||||
<div className="collapse-content">
|
||||
<p>
|
||||
FastPocket is all about giving you control over how you host
|
||||
your app. You won't be locked into vendors when you scale
|
||||
and you get to choose how much or how little you spend. We
|
||||
give you deployment templates and hosting options (that you
|
||||
can migrate from when you grow)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/* End Accordion */}
|
||||
</div>
|
||||
{/* End Col */}
|
||||
</div>
|
||||
{/* End Grid */}
|
||||
</div>
|
||||
{/* End FAQ */}
|
||||
\{/* End FAQ */}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export default RightAlignedBorderBottom;
|
||||
export default RightAlignedBorderBottomFAQ;
|
||||
|
|
|
@ -0,0 +1,218 @@
|
|||
import React from "react";
|
||||
|
||||
function CardsFeature() {
|
||||
return (
|
||||
<>
|
||||
{/* Icon Blocks */}
|
||||
<div className="max-w-[85rem] px-4 py-10 sm:px-6 lg:px-8 lg:py-14 mx-auto">
|
||||
<div className="grid sm:grid-cols-2 lg:grid-cols-3 items-center gap-6 md:gap-10">
|
||||
{/* Card */}
|
||||
<div className="size-full bg-neutral shadow-lg rounded-lg p-5">
|
||||
<div className="flex items-center gap-x-4 mb-3">
|
||||
<div className="inline-flex justify-center items-center size-[62px] rounded-full border-4 border-primary/10 bg-primary/10">
|
||||
<svg
|
||||
className="flex-shrink-0 size-6 text-primary dark:text-primary/80"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<circle cx="13.5" cy="6.5" r=".5" />
|
||||
<circle cx="17.5" cy="10.5" r=".5" />
|
||||
<circle cx="8.5" cy="7.5" r=".5" />
|
||||
<circle cx="6.5" cy="12.5" r=".5" />
|
||||
<path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z" />
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<h3 className="block text-lg font-semibold capitalize text-primary-content">
|
||||
You Like Useless Features
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-primary-content/80">
|
||||
When every feature is a treasure, even the ones that don't
|
||||
seem to do much.
|
||||
</p>
|
||||
</div>
|
||||
{/* End Card */}
|
||||
{/* Card */}
|
||||
<div className="size-full bg-neutral shadow-lg rounded-lg p-5">
|
||||
<div className="flex items-center gap-x-4 mb-3">
|
||||
<div className="inline-flex justify-center items-center size-[62px] rounded-full border-4 border-primary/10 bg-primary/10">
|
||||
<svg
|
||||
className="flex-shrink-0 size-6 text-primary dark:text-primary/80"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="M2 3h20" />
|
||||
<path d="M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3" />
|
||||
<path d="m7 21 5-5 5 5" />
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<h3 className="block text-lg font-semibold capitalize text-primary-content">
|
||||
You Like Debugging
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-primary-content/80">
|
||||
In the realm of code, where only the time rich heroes are the ones
|
||||
who can fix the bugs.
|
||||
</p>
|
||||
</div>
|
||||
{/* End Card */}
|
||||
{/* Card */}
|
||||
<div className="size-full bg-neutral shadow-lg rounded-lg p-5">
|
||||
<div className="flex items-center gap-x-4 mb-3">
|
||||
<div className="inline-flex justify-center items-center size-[62px] rounded-full border-4 border-primary/10 bg-primary/10">
|
||||
<svg
|
||||
className="flex-shrink-0 size-6 text-primary dark:text-primary/80"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m2 7 4.41-4.41A2 2 0 0 1 7.83 2h8.34a2 2 0 0 1 1.42.59L22 7" />
|
||||
<path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8" />
|
||||
<path d="M15 22v-4a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v4" />
|
||||
<path d="M2 7h20" />
|
||||
<path d="M22 7v3a2 2 0 0 1-2 2v0a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 16 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 12 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 8 12a2.7 2.7 0 0 1-1.59-.63.7.7 0 0 0-.82 0A2.7 2.7 0 0 1 4 12v0a2 2 0 0 1-2-2V7" />
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<h3 className="block text-lg font-semibold capitalize text-primary-content">
|
||||
You love solving solved problems
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-primary-content/80">
|
||||
Where every challenge is a puzzle, and the key is already in your
|
||||
hand.
|
||||
</p>
|
||||
</div>
|
||||
{/* End Card */}
|
||||
{/* Card */}
|
||||
<div className="size-full bg-neutral shadow-lg rounded-lg p-5">
|
||||
<div className="flex items-center gap-x-4 mb-3">
|
||||
<div className="inline-flex justify-center items-center size-[62px] rounded-full border-4 border-primary/10 bg-primary/10">
|
||||
<svg
|
||||
className="flex-shrink-0 size-6 text-primary dark:text-primary/80"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="M5.5 8.5 9 12l-3.5 3.5L2 12l3.5-3.5Z" />
|
||||
<path d="m12 2 3.5 3.5L12 9 8.5 5.5 12 2Z" />
|
||||
<path d="M18.5 8.5 22 12l-3.5 3.5L15 12l3.5-3.5Z" />
|
||||
<path d="m12 15 3.5 3.5L12 22l-3.5-3.5L12 15Z" />
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<h3 className="block text-lg font-semibold capitalize text-primary-content">
|
||||
You hate shipping fast
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-primary-content/80">
|
||||
In the race of development, where the finish line is not the
|
||||
destination.
|
||||
</p>
|
||||
</div>
|
||||
{/* End Card */}
|
||||
{/* Card */}
|
||||
<div className="size-full bg-neutral shadow-lg rounded-lg p-5">
|
||||
<div className="flex items-center gap-x-4 mb-3">
|
||||
<div className="inline-flex justify-center items-center size-[62px] rounded-full border-4 border-primary/10 bg-primary/10">
|
||||
<svg
|
||||
className="flex-shrink-0 size-6 text-primary dark:text-primary/80"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="M16.466 7.5C15.643 4.237 13.952 2 12 2 9.239 2 7 6.477 7 12s2.239 10 5 10c.342 0 .677-.069 1-.2" />
|
||||
<path d="m15.194 13.707 3.814 1.86-1.86 3.814" />
|
||||
<path d="M19 15.57c-1.804.885-4.274 1.43-7 1.43-5.523 0-10-2.239-10-5s4.477-5 10-5c4.838 0 8.873 1.718 9.8 4" />
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<h3 className="block text-lg font-semibold capitalize text-primary-content">
|
||||
You love process more than dev
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-primary-content/80">
|
||||
Where the journey is more important than the destination.
|
||||
</p>
|
||||
</div>
|
||||
{/* End Card */}
|
||||
{/* Card */}
|
||||
<div className="size-full bg-neutral shadow-lg rounded-lg p-5">
|
||||
<div className="flex items-center gap-x-4 mb-3">
|
||||
<div className="inline-flex justify-center items-center size-[62px] rounded-full border-4 border-primary/10 bg-primary/10">
|
||||
<svg
|
||||
className="flex-shrink-0 size-6 text-primary dark:text-primary/80"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z" />
|
||||
<rect x={3} y={14} width={7} height={7} rx={1} />
|
||||
<circle cx="17.5" cy="17.5" r="3.5" />
|
||||
</svg>
|
||||
</div>
|
||||
<div className="flex-shrink-0">
|
||||
<h3 className="block text-lg font-semibold capitalize text-primary-content">
|
||||
You hate fast profits
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<p className="text-primary-content/80">
|
||||
In the world of finance, where the race to the bottom is not the
|
||||
goal.
|
||||
</p>
|
||||
</div>
|
||||
{/* End Card */}
|
||||
</div>
|
||||
</div>
|
||||
{/* End Icon Blocks */}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export default CardsFeature;
|
|
@ -0,0 +1,248 @@
|
|||
"use client";
|
||||
import Image from "next/image";
|
||||
import React, { useState } from "react";
|
||||
|
||||
function VerticalTabsFeature() {
|
||||
const [tab, setTab] = useState("1");
|
||||
return (
|
||||
<>
|
||||
{/* Features */}
|
||||
<div className="max-w-[85rem] px-4 py-10 sm:px-6 lg:px-8 lg:py-14 mx-auto">
|
||||
<div className="relative p-6 md:p-16">
|
||||
{/* Grid */}
|
||||
<div className="relative z-10 lg:grid lg:grid-cols-12 lg:gap-16 lg:items-center">
|
||||
<div className="mb-10 lg:mb-0 lg:col-span-6 lg:col-start-8 lg:order-2">
|
||||
<h2 className="text-2xl text-base-content font-bold sm:text-3xl ">
|
||||
Save 20+ hours of app development with FastPocket
|
||||
</h2>
|
||||
{/* Tab Navs */}
|
||||
<nav
|
||||
className="grid gap-4 mt-5 md:mt-10"
|
||||
aria-label="Tabs"
|
||||
role="tablist"
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
className={`hover:bg-base-content/5 ${
|
||||
tab === "1" && "bg-base-300 shadow-lg hover:bg-base-300"
|
||||
} text-start p-4 md:p-5 rounded-xl`}
|
||||
id="tabs-with-card-item-1"
|
||||
aria-controls="tabs-with-card-1"
|
||||
role="tab"
|
||||
onClick={() => setTab("1")}
|
||||
>
|
||||
<span className="flex">
|
||||
<svg
|
||||
className="flex-shrink-0 mt-2 size-6 md:size-7 text-base-content "
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z" />
|
||||
<path d="M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z" />
|
||||
<path d="M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z" />
|
||||
<path d="M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z" />
|
||||
<path d="M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z" />
|
||||
</svg>
|
||||
<span className="grow ms-6">
|
||||
<span className="block text-lg font-semibold text-base-content ">
|
||||
Simple Setup
|
||||
</span>
|
||||
<span className="block mt-1 text-base-content ">
|
||||
FastPocket already has a codebase with all of the
|
||||
necessary integrations to start an online business out
|
||||
of the box AND excellent documentation
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className={`hover:bg-base-content/5 ${
|
||||
tab === "2" && "bg-base-300 shadow-lg hover:bg-base-300"
|
||||
} text-start p-4 md:p-5 rounded-xl `}
|
||||
id="tabs-with-card-item-2"
|
||||
aria-controls="tabs-with-card-2"
|
||||
role="tab"
|
||||
onClick={() => setTab("2")}
|
||||
>
|
||||
<span className="flex">
|
||||
<svg
|
||||
className="flex-shrink-0 mt-2 size-6 md:size-7 text-base-content "
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m12 14 4-4" />
|
||||
<path d="M3.34 19a10 10 0 1 1 17.32 0" />
|
||||
</svg>
|
||||
<span className="grow ms-6">
|
||||
<span className="block text-lg font-semibold text-base-content ">
|
||||
Copy Paste Components
|
||||
</span>
|
||||
<span className="block mt-1 text-base-content ">
|
||||
We give you cookie cutter copy paste setup for your SaaS
|
||||
with unopinionated SaaS styling that can be modified to
|
||||
suite whatever app you are building
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
className={`hover:bg-base-content/5 ${
|
||||
tab === "3" && "bg-base-300 shadow-lg hover:bg-base-300"
|
||||
} text-start p-4 md:p-5 rounded-xl `}
|
||||
id="tabs-with-card-item-3"
|
||||
aria-controls="tabs-with-card-3"
|
||||
role="tab"
|
||||
onClick={() => setTab("3")}
|
||||
>
|
||||
<span className="flex">
|
||||
<svg
|
||||
className="flex-shrink-0 mt-2 size-6 md:size-7 text-base-content "
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={24}
|
||||
height={24}
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth={2}
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z" />
|
||||
<path d="M5 3v4" />
|
||||
<path d="M19 17v4" />
|
||||
<path d="M3 5h4" />
|
||||
<path d="M17 19h4" />
|
||||
</svg>
|
||||
<span className="grow ms-6">
|
||||
<span className="block text-lg font-semibold text-base-content ">
|
||||
Simple Bring Your Own Backend
|
||||
</span>
|
||||
<span className="block mt-1 text-base-content ">
|
||||
We offer deployment templates that allow you to deploy
|
||||
to Digital Ocean, Fly.io, Pockethost or any other
|
||||
backend you want to use. You have the control over your
|
||||
hosting
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</button>
|
||||
</nav>
|
||||
{/* End Tab Navs */}
|
||||
</div>
|
||||
{/* End Col */}
|
||||
<div className="lg:col-span-6">
|
||||
<div className="relative">
|
||||
{/* Tab Content */}
|
||||
<div>
|
||||
{tab == "1" && (
|
||||
<div
|
||||
id="tabs-with-card-1"
|
||||
role="tabpanel"
|
||||
aria-labelledby="tabs-with-card-item-1"
|
||||
>
|
||||
<Image
|
||||
className="shadow-xl shadow-gray-200 rounded-xl dark:shadow-gray-900/[.2] bg-base-300"
|
||||
src="/images/vertical-tabs-feature-1.png"
|
||||
alt="Image Description"
|
||||
width="987"
|
||||
height="1220"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
{tab == "2" && (
|
||||
<div
|
||||
id="tabs-with-card-2"
|
||||
role="tabpanel"
|
||||
aria-labelledby="tabs-with-card-item-2"
|
||||
>
|
||||
<Image
|
||||
className="shadow-xl shadow-gray-200 rounded-xl dark:shadow-gray-900/[.2] bg-base-300"
|
||||
src="/images/vertical-tabs-feature-2.png"
|
||||
alt="Image Description"
|
||||
width="987"
|
||||
height="1220"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
{tab == "3" && (
|
||||
<div
|
||||
id="tabs-with-card-3"
|
||||
role="tabpanel"
|
||||
aria-labelledby="tabs-with-card-item-3"
|
||||
>
|
||||
<Image
|
||||
className="shadow-xl shadow-gray-200 rounded-xl dark:shadow-gray-900/[.2] bg-base-300"
|
||||
src="/images/vertical-tabs-feature-3.png"
|
||||
alt="Image Description"
|
||||
width="987"
|
||||
height="1220"
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
{/* End Tab Content */}
|
||||
{/* SVG Element */}
|
||||
<div className="hidden absolute top-0 end-0 translate-x-20 md:block lg:translate-x-20">
|
||||
<svg
|
||||
className="w-16 h-auto text-secondary"
|
||||
width={121}
|
||||
height={135}
|
||||
viewBox="0 0 121 135"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M5 16.4754C11.7688 27.4499 21.2452 57.3224 5 89.0164"
|
||||
stroke="currentColor"
|
||||
strokeWidth={10}
|
||||
strokeLinecap="round"
|
||||
/>
|
||||
<path
|
||||
d="M33.6761 112.104C44.6984 98.1239 74.2618 57.6776 83.4821 5"
|
||||
stroke="currentColor"
|
||||
strokeWidth={10}
|
||||
strokeLinecap="round"
|
||||
/>
|
||||
<path
|
||||
d="M50.5525 130C68.2064 127.495 110.731 117.541 116 78.0874"
|
||||
stroke="currentColor"
|
||||
strokeWidth={10}
|
||||
strokeLinecap="round"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
{/* End SVG Element */}
|
||||
</div>
|
||||
</div>
|
||||
{/* End Col */}
|
||||
</div>
|
||||
{/* End Grid */}
|
||||
{/* Background Color */}
|
||||
<div className="absolute inset-0 grid grid-cols-12 size-full">
|
||||
<div className="col-span-full lg:col-span-7 lg:col-start-6 bg-gray-100 w-full h-5/6 rounded-xl sm:h-3/4 lg:h-full dark:bg-base-300/[.075]" />
|
||||
</div>
|
||||
{/* End Background Color */}
|
||||
</div>
|
||||
</div>
|
||||
{/* End Features */}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export default VerticalTabsFeature;
|
|
@ -1,66 +0,0 @@
|
|||
import FAQQuestion from "@/components/FAQQuestion";
|
||||
import Link from "next/link";
|
||||
import React from "react";
|
||||
|
||||
export const FrequentlyAsked = () => {
|
||||
return (
|
||||
<div className="max-w-[85rem] px-4 py-10 sm:px-6 lg:px-8 lg:py-14 mx-auto">
|
||||
<div className="max-w-2xl mx-auto text-center mb-10 lg:mb-14">
|
||||
<h2 className="text-2xl font-bold md:text-4xl md:leading-tight text-black ">
|
||||
Your questions, answered
|
||||
</h2>
|
||||
<p className="mt-1 text-gray-600 dark:text-gray-200">
|
||||
Answers to the most frequently asked questions.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="max-w-2xl mx-auto">
|
||||
<div className="hs-accordion-group">
|
||||
<FAQQuestion title="Why Is Sign365 Better Than Competitors?">
|
||||
<p className="text-gray-800 dark:text-gray-200">
|
||||
While we have articles that break down the exact{" "}
|
||||
<Link href="/blogs">differences</Link>, the easiest way to put it
|
||||
is that we aren't but we have 2 killer features that makes us
|
||||
standout. 1. Your forms are able to talk with your systems and get
|
||||
them to perform business tasks. 2. We are an offline first
|
||||
platform
|
||||
</p>
|
||||
</FAQQuestion>
|
||||
<FAQQuestion title="What guarentees can you make?">
|
||||
<p className="text-gray-800 dark:text-gray-200">
|
||||
We believe so strongly in our offering that we are prepared to bet
|
||||
a 50% reduction in your forms processing work or your money back
|
||||
</p>
|
||||
</FAQQuestion>
|
||||
<FAQQuestion title="How does Sign365 work with my systems?">
|
||||
<p className="text-gray-800 dark:text-gray-200">
|
||||
We take information written on the forms and turn it into
|
||||
information your business systems can understand. Signups,
|
||||
contracts, surveys and notes can be taken and turned into events,
|
||||
tickets and purchases using APIs like Zapier as well as native
|
||||
API's like in the case of Workforce One. We upgrade your
|
||||
workflow based on your specifications and then give you the tools
|
||||
to manage it
|
||||
</p>
|
||||
</FAQQuestion>
|
||||
<FAQQuestion title="Is Sign365 easy to use?">
|
||||
<p className="text-gray-800 dark:text-gray-200">
|
||||
We were born as a company because SignNow had too many options for
|
||||
the people using it. Everyday people filling out their
|
||||
survey's were struggling to use it and so we simplified our
|
||||
application to only offer core functionalities
|
||||
</p>
|
||||
</FAQQuestion>
|
||||
<FAQQuestion title="What about support?">
|
||||
<p className="text-gray-800 dark:text-gray-200">
|
||||
We believe that support should be face to face and quick.
|
||||
Therefore we don't have any pricing tiers offering better
|
||||
support for more money. We want to get your issue fixed as soon as
|
||||
possible.
|
||||
</p>
|
||||
</FAQQuestion>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|