import React, { useState } from "react";
import clsx from "clsx";
import { CheckCircle } from "@site/src/refine-theme/icons/check-circle";
import { CrossCircle } from "@site/src/refine-theme/icons/cross-circle";
import { EnterpriseGetInTouchButton } from "./enterprise-get-in-touch-button";
import { ArrowLeftLongIcon } from "./icons/arrow-left-long";
import { AnimatePresence, motion } from "framer-motion";
export const EnterpriseTable = ({ className }: { className?: string }) => {
const [activeTab, setActiveTab] = useState<"community" | "enterprise">(
"enterprise",
);
return (
Compare editions
{
setActiveTab(tab);
}}
/>
{tableData.map((section) => {
const isLast =
section.title === tableData.at(-1).title;
return (
);
})}
);
};
const TableItemHeading = ({ children }) => {
return (
{children}
);
};
const TableItemContent = ({ children, valueType, activeTab, className }) => {
const isIcon = valueType[activeTab] === "icon";
return (
{children}
);
};
const TableItemDescription = ({ children, isLast }) => {
return (
{children}
);
};
const TableItemContentGroup = ({
community,
enterprise,
activeTab,
isLast,
valueType,
}) => {
const isIcon = valueType[activeTab] === "icon";
return (
);
};
const TableItem = ({
description,
community,
enterprise,
activeTab,
isLast,
valueType,
}) => {
return (
);
};
const TableSection = ({ title, items, activeTab, isLast = false }) => {
return (
<>
{title}
{items.map((item, index) => (
))}
>
);
};
const TableTabs = ({ activeTab, setActiveTab }) => {
return (
);
};
const TableStickyHeader = ({ activeTab, setActiveTab }) => {
return (
);
};
const TableSectionWrapper = ({ children }) => {
return (
{children}
);
};
const CheckIcon = () => {
return (
);
};
const CrossIcon = () => {
return (
);
};
const TableText = ({ children }) => {
return (
{children}
);
};
const tableData = [
{
title: "Support",
items: [
{
description: "Support Level",
community: Community Support,
enterprise: Priority Support,
valueType: {
community: "text",
enterprise: "text",
},
},
{
description: "Support Channels",
community: Community Channels,
enterprise: Private Support Channel,
valueType: {
community: "text",
enterprise: "text",
},
},
{
description: "SLA",
community: ,
enterprise: (
Response time within one business day
),
valueType: {
community: "icon",
enterprise: "text",
},
},
],
},
{
title: "Additional Features",
items: [
{
description: "Cluster",
community: ,
enterprise: (
Manage accounts from multiple servers
),
valueType: {
community: "icon",
enterprise: "text",
},
},
{
description: "LiteSpeed",
community: ,
enterprise: ,
valueType: {
community: "icon",
enterprise: "icon",
},
},
{
description: "Varnish Cache",
community: ,
enterprise: ,
valueType: {
community: "icon",
enterprise: "icon",
},
},
],
},
{
title: "Number of Accounts",
items: [
{
description: "Admin Accounts",
community: 1,
enterprise: Unlimited,
valueType: {
community: "text",
enterprise: "text",
},
},
{
description: "User Accounts",
community: 3,
enterprise: (
Unlimited
),
valueType: {
community: "text",
enterprise: "text",
},
},
],
},
{
title: "Updates",
items: [
{
description: "Release Frequency",
community: Monthly,
enterprise: Continuous,
valueType: {
community: "text",
enterprise: "text",
},
},
{
description: "Container Updates",
community: ,
enterprise: ,
valueType: {
community: "icon",
enterprise: "icon",
},
},
],
},
{
title: "Professional Services",
items: [
{
description: "Trainings",
community: ,
enterprise: ,
valueType: {
community: "icon",
enterprise: "icon",
},
},
{
description: "Branding & Integration",
community: ,
enterprise: ,
valueType: {
community: "icon",
enterprise: "icon",
},
},
],
},
{
title: "Licensing",
items: [
{
description: "License",
community: (
),
enterprise: (
OpenPanel commercial license
),
valueType: {
community: "text",
enterprise: "text",
},
},
],
},
];