Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Created a pricing page #124

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
209 changes: 209 additions & 0 deletions app/(default)/pricing/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
import Footer from "@/components/ui/footer";
import Header from "@/components/ui/header";
import {
Bullets,
bulletsType,
} from "@/components/webstories/components/Bullets";
import { FAQ } from "@/components/webstories/components/FAQ";
import { Heading } from "@/components/webstories/components/Heading";
import Link from "next/link";

export const lists: bulletsType = [
"A growing library of awesome components",
"Lorem ipsum dolor, sit amet cupiditate. Hic, nostrum consequuntur.",
"A contact library of lorem components",
];

const faqData = [
{
question: "What is this component?",
answer: "It's a FAQ component built with Tailwind CSS.",
},
{
question: "How does it work?",
answer: "Click on a question to reveal the answer.",
},
{
question: "Is Tailwind CSS necessary?",
answer: "Not necessary, but it simplifies styling.",
},
{
question: "Is Tailwind CSS necessary?",
answer: "Not necessary, but it simplifies styling.",
},
{
question: "Is Tailwind CSS necessary?",
answer: "Not necessary, but it simplifies styling.",
},
];
export default function () {
return (
<div>
<Header />

<section>
<div className="max-w-6xl mx-auto px-4 sm:px-6">
{/* Hero content */}
<div className="pt-32 pb-12 md:pt-40 md:pb-20 gap-16">
{/* Section header */}
<div className="text-center pb-12 md:pb-16">
<Heading
content={"We've got you covered"}
className="text-3xl sm:text-4xl md:text-5xl lg:text-6xl text-secondary-300 font-extrabold leading-tight sm:leading-tight md:leading-tighter tracking-tighter mb-4 md:mt-4 lg:mt-5"
/>
<div className="max-w-3xl mx-auto">
<p
className="text-lg sm:text-xl text-center text-accent-200 mb-8 leading-snug sm:leading-normal lg:text-center"
data-aos="zoom-y-out"
data-aos-delay="150"
>
<b>Open Source</b> Lorem ipsum dolor sit amet consectetur
adipisicing elit. Cumque accusantium id quas ullam reiciendis
quia?
</p>
</div>
</div>
<div
className="max-w-xs mx-auto sm:max-w-none sm:flex sm:justify-center space-x-4"
data-aos="zoom-y-out"
data-aos-delay="300"
>
<div className="mb-4">
{/* Wrapping Link with NeonButton */}
<Link
className="btn text-slate-100 rounded-[12px] bg-green-700 hover:text-white w-full sm:w-auto sm:mb-0"
href="https://app.keploy.io/"
>
Full Features List
</Link>
</div>
</div>
</div>
</div>
</section>
<section>
<div
className="mx-auto max-sm:px-2 grid max-w-[83rem] grid-cols-1 gap-4 items-center md:grid-cols-2
xl:grid-cols-4"
>
<div className=" bg-white/60 rounded-3xl px-6 py-8 ring-1 ring-gray-900/10 sm:mx-8 lg:mx-0 border border-transparent h-full flex flex-col justify-between">
<div>
<h3 className="text-emerald-600 text-base font-semibold leading-7">
Existing
</h3>
<p className="mt-4 gap-x-2">
<span className="text-gray-900 text-4xl font-bold tracking-tight dark:text-white">
Free
</span>
</p>
<p className="text-gray-600 mt-6 text-sm leading-7 dark:text-neutral-200 h-24 md:h-32 xl:h-24">
Lorem ipsum dolor, si Lorem ipsum dolor sit amet consectetur
adipisicing elit.
</p>
</div>
<ul className="text-gray-600 mt-8 space-y-3 text-sm leading-6 sm:mt-10 dark:text-neutral-100">
<Bullets lists={lists} />
<button className="text-emerald-600 ring-1 ring-inset ring-emerald-500 hover:ring-emerald-600 focus-visible:outline-emerald-600 mt-8 rounded-md py-2.5 px-3.5 text-center text-sm font-semibold focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 sm:mt-10 block w-full">
Button
</button>
<span>Questions?</span>
</ul>
</div>

<div className="dark:bg-black dark:border-white/[0.2] bg-white/60 rounded-3xl px-6 py-8 ring-1 ring-gray-900/10 sm:mx-8 lg:mx-0 border border-transparent h-full flex flex-col justify-between">
<div>
<h3 className="text-emerald-600 text-base font-semibold leading-7">
Custom
</h3>
<p className="mt-4 gap-x-2">
<span className="text-gray-900 text-4xl font-bold tracking-tight dark:text-white">
$5
</span>
</p>
<p className="text-gray-600 mt-6 text-sm leading-7 dark:text-neutral-200 h-24 md:h-32 xl:h-24">
Lorem ipsum dolor, sit amet consectetur adipisicing elit.
Similique, nihil. Totam, quas! Lorem ipsum dolor sit amet
consectetur adipisicing elit.
</p>
</div>
<ul className="text-gray-600 mt-8 space-y-3 text-sm leading-6 sm:mt-10 dark:text-neutral-100">
<Bullets lists={lists} />
<button className="text-emerald-600 ring-1 ring-inset ring-emerald-500 hover:ring-emerald-600 focus-visible:outline-emerald-600 mt-8 rounded-md py-2.5 px-3.5 text-center text-sm font-semibold focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 sm:mt-10 block w-full">
Buy Now
</button>
<span>Questions?</span>
</ul>
</div>
<div className="dark:bg-black dark:border-white/[0.2] bg-[radial-gradient(164.75%_100%_at_50%_0%,#334155_0%,#0F172A_48.73%)] rounded-3xl px-6 py-8 ring-1 ring-gray-900/10 sm:mx-8 lg:mx-0 border border-transparent h-full flex flex-col justify-between">
<div>
<h3 className="text-emerald-600 text-base font-semibold leading-7">
lorem
</h3>
<p className="mt-4 gap-x-2">
<span className="text-white text-4xl font-bold tracking-tight dark:text-white">
$13
</span>
</p>
<p className="text-white mt-6 text-sm leading-7 dark:text-neutral-200 h-24 md:h-32 xl:h-24">
Lorem ipsum dolor, sit amet consectetur adipisicing elit.
Similique, nihil. Totam, quas!
</p>
</div>

<ul className=" text-white mt-8 space-y-3 text-sm leading-6 sm:mt-10 dark:text-neutral-100">
<Bullets lists={lists} />
<button className="text-white ring-1 ring-inset bg-green-600 mt-8 rounded-md py-2.5 px-3.5 text-center text-sm font-semibold focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 sm:mt-10 block w-full">
loreml
</button>
<span>Questions?</span>
</ul>
</div>
<div className="dark:bg-black dark:border-white/[0.2] bg-white/60 rounded-3xl px-6 py-8 ring-1 ring-gray-900/10 sm:mx-8 lg:mx-0 border border-transparent h-full flex flex-col justify-between">
<div>
<h3 className="text-emerald-600 text-base font-semibold leading-7">
Pages
</h3>
<p className="mt-4 gap-x-2">
<span className=" text-gray-400 text-sm pb-0 block h-6 dark:text-white">
Lorem, ipsum dolor.
</span>
<span className="text-gray-900 text-4xl font-bold tracking-tight dark:text-white">
$1,222
</span>
</p>
<p className="text-gray-600 mt-6 text-sm leading-7 dark:text-neutral-200 h-24 md:h-32 xl:h-24">
Lorem ipsum dolor, sit amet consectetur adipisicing elit.
Similique, nihil. Totam, quas!
</p>
</div>

<ul className="text-gray-600 mt-8 space-y-3 text-sm leading-6 sm:mt-10 dark:text-neutral-100">
<Bullets lists={lists} />
<button className="text-emerald-600 ring-1 ring-inset ring-emerald-500 hover:ring-emerald-600 focus-visible:outline-emerald-600 mt-8 rounded-md py-2.5 px-3.5 text-center text-sm font-semibold focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 sm:mt-10 block w-full">
Buy
</button>
<span>Questions?</span>
</ul>
</div>
</div>
</section>
{/* FAQ section */}
<section>
<div className="max-w-7xl mx-auto py-20 sm:py-40">
<Heading
content={"Frequently Asked Questions"}
className={
"mt-2 text-4xl font-bold tracking-tight text-center text-gray-900 dark:text-white sm:text-5xl"
}
/>
<div className=" grid grid-cols-1 gap-2 mt-2 md:grid-cols-1 xl:grid-cols-2 ">
{faqData.map((item) => {
return <FAQ question={item.question} answer={item.answer} />;
})}
</div>
</div>
</section>
<Footer />
</div>
);
}
4 changes: 2 additions & 2 deletions app/api/automatic-test-generator/Mutation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ export const submitCodeSnippet = async ({
}
};

export type CommandResponse = {
export interface CommandResponse {
success: boolean;
data?: any;
error?: string;
};
}

export async function postRequest(
endpoint: string,
Expand Down
2 changes: 1 addition & 1 deletion app/api/createFileStructure/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ interface ErrorResponse {
message: string;
}

const pathsMap: { [key: string]: string } = {
const pathsMap: Record<string, string> = {
Golang: 'components/atg/demo-projects/projects/goapp',
Javascript: 'components/atg/demo-projects/projects/javaScript',
Python: 'components/atg/demo-projects/projects/python',
Expand Down
6 changes: 3 additions & 3 deletions components/FeatureMoblieView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ export default function FeaturesMobileView() {
leave="transition ease-in-out duration-300 transform absolute"
leaveFrom="opacity-100 translate-y-0"
leaveTo="opacity-0 -translate-y-16"
beforeEnter={() => heightFix()}
beforeEnter={() => { heightFix(); }}
unmount={false}
>
<div className="relative inline-flex flex-col ">
Expand All @@ -229,7 +229,7 @@ export default function FeaturesMobileView() {
leave="transition ease-in-out duration-300 transform absolute"
leaveFrom="opacity-100 translate-y-0"
leaveTo="opacity-0 -translate-y-16"
beforeEnter={() => heightFix()}
beforeEnter={() => { heightFix(); }}
unmount={false}
>
<div className="flex flex-col justify-between">
Expand All @@ -250,7 +250,7 @@ export default function FeaturesMobileView() {
leave="transition ease-in-out duration-300 transform absolute"
leaveFrom="opacity-100 translate-y-0"
leaveTo="opacity-0 -translate-y-16"
beforeEnter={() => heightFix()}
beforeEnter={() => { heightFix(); }}
unmount={false}
>
<div className="relative inline-flex flex-col">
Expand Down
2 changes: 1 addition & 1 deletion components/Particles.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ const Particles: React.FC<ParticlesProps> = ({
dx: number;
dy: number;
magnetism: number;
};
}

const resizeCanvas = () => {
if (canvasContainerRef.current && canvasRef.current && context.current) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ export const DirDiv = ({
style={{ paddingLeft: `${depth * 13}px` }}
>
{open ? (
<MdOutlineKeyboardArrowDown className={`${themeDir?"text-black":"text-white"}`} />
<MdOutlineKeyboardArrowDown className={themeDir?"text-black":"text-white"} />
) : (
<MdOutlineKeyboardArrowRight className={`${themeDir?"text-black":"text-white"}`} />
<MdOutlineKeyboardArrowRight className={themeDir?"text-black":"text-white"} />
)}
<FileIcon
name={open ? "openDirectory" : "closedDirectory"}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ export const FileDiv = ({
<MdOutlineKeyboardArrowRight />
))}
<FileIcon
name={file.name?.split(".").pop() || ""}
extension={file?.name?.split(".").pop() || ""}
name={file.name.split(".").pop() || ""}
extension={file.name.split(".").pop() || ""}
themeIcons={themeFileDiv}
/>
<span className="ml-1 truncate max-w-full">{file.name}</span>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export const SubTree: React.FC<SubTreeProps> = (props) => {
key={file.id}
file={file}
selectedFile={props.selectedFile}
onClick={() => props.onSelect(file)}
onClick={() => { props.onSelect(file); }}
themeFileDiv={props.themeSub}
/>
));
Expand Down
4 changes: 2 additions & 2 deletions components/atg/Editor/components/sidebar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ export const Sidebar = ({
onClick={ClickExpanded}
style={{ minWidth: "250px" }} // Ensure content has a minimum width
>
<ExpandMoreIcon className={`${expanded ? "" : "rotate-[-90deg]"}`} />
<span className={`${theme?"text-black":" text-gray-300"}`}>Website</span>
<ExpandMoreIcon className={expanded ? "" : "rotate-[-90deg]"} />
<span className={theme?"text-black":" text-gray-300"}>Website</span>
</div>
{expanded && (
<div className="w-full overflow-x-scroll no-scrollbar">
Expand Down
18 changes: 9 additions & 9 deletions components/atg/Editor/editor/code.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export const Code = ({
selectedFileName,
}: {
selectedFile: File | undefined;
showSideBannerBool: Boolean;
showSideBannerBool: boolean;
RemoveSideBanner: () => void;
settingCodeTheme: boolean;
isFullScreen: boolean;
Expand Down Expand Up @@ -83,23 +83,23 @@ export const Code = ({

// Add event listener to window resize to handle screen transition
window.addEventListener("resize", layoutEditor);
return () => window.removeEventListener("resize", layoutEditor);
return () => { window.removeEventListener("resize", layoutEditor); };
}
}, [isFullScreen, monacoInstance]);

const validateCode = (code: string) => {
const diagnostics: monaco.editor.IMarkerData[] = [];
let stack: { char: string; position: number }[] = [];
const stack: { char: string; position: number }[] = [];
const openBrackets = "{[(";
const closeBrackets = "}])";
const matchingBracket: { [key: string]: string } = {
const matchingBracket: Record<string, string> = {
"}": "{",
"]": "[",
")": "(",
};

const stringDelimiters = ['"', "'", "`"];
let stringStack: { char: string; position: number }[] = [];
const stringStack: { char: string; position: number }[] = [];

for (let i = 0; i < code.length; i++) {
const char = code[i];
Expand Down Expand Up @@ -181,8 +181,8 @@ export const Code = ({
};

validate(); // Initial validation
const subscription = model.onDidChangeContent(() => validate());
return () => subscription.dispose();
const subscription = model.onDidChangeContent(() => { validate(); });
return () => { subscription.dispose(); };
}
}
}, [monacoInstance]);
Expand Down Expand Up @@ -237,8 +237,8 @@ export const Code = ({
/>
{!showSideBannerBool && (
<div
onMouseEnter={() => setShowText(true)}
onMouseLeave={() => setShowText(false)}
onMouseEnter={() => { setShowText(true); }}
onMouseLeave={() => { setShowText(false); }}
className={`p-2 absolute z-10 hover:cursor-pointer border border-gray-500 border-b-0 right-0 top-1/2 bg-secondary-300 flex items-center justify-center shadow-lg transition-all duration-500`}
style={{
transform: "translateY(-50%)",
Expand Down
2 changes: 1 addition & 1 deletion components/atg/Editor/utils/File-Structure.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Directory, generateUniqueId, Type, File } from "./file-manager";

export function createFileStructure(
rootPath: string,
depth: number = 0,
depth = 0,
parentId: string | undefined = undefined
): Directory {
// Get the base name of the root path
Expand Down
4 changes: 2 additions & 2 deletions components/atg/Editor/utils/api-functions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,7 @@ export const makeKeployTestDir = async ({
if (testing) {
console.log("Starting testing process...");

let reportDirs = keployDir.dirs.find((dir) => dir.name === "Reports");
const reportDirs = keployDir.dirs.find((dir) => dir.name === "Reports");
let newReportDir: Directory;

if (!reportDirs) {
Expand Down Expand Up @@ -516,7 +516,7 @@ export const removeKeployTestDir = async (rootDir: Directory): Promise<Directory

try {
// Find the existing Keploy directory
let keployDir = rootDir.dirs.find((dir) => dir.name === "Keploy");
const keployDir = rootDir.dirs.find((dir) => dir.name === "Keploy");

if (keployDir) {
// Remove the Keploy directory
Expand Down
Loading