import React, { DetailedHTMLProps, ReactNode, SVGProps, useRef } from "react";
import clsx from "clsx";
import {
Atlassian,
AuthJs,
Auth0,
AwsCognito,
AzureActiveDirectory,
Clerk,
Expo,
Google,
Okta,
} from "../assets/integration-icons";
import { useInView } from "framer-motion";
export const EnterpriseIAMServices = ({
className,
}: {
className?: string;
}) => {
return (
Support for 50+ CMS platforms and technologies
Official packages tailored for your organization's
chosen{" "}
identity and access management providers
. These modules eliminate the need for days of manual work
in developing custom authentication providers, allowing you
to seamlessly integrate your application while following all
security best practices.
{[...list, ...list].map(
({ icon: Icon, label, tooltip }, index) => (
}
/>
),
)}
);
};
const PackagesContainer = ({
children,
className,
animDirection,
...props
}: DetailedHTMLProps, HTMLDivElement> & {
animDirection: "left" | "right";
}) => {
const ref = useRef(null);
const inView = useInView(ref);
return (
);
};
const PackageItem = (props: {
icon: ReactNode;
label: string;
tooltip: string | null;
}) => {
const { tooltip, icon, label } = props;
return (
{icon}
{label}
{tooltip && (
)}
);
};
const list = [
{
icon: (props: SVGProps) => ,
label: "AWS Cognito",
tooltip: null,
},
{
icon: (props: SVGProps) => ,
label: "Auth0",
tooltip: null,
},
{
icon: (props: SVGProps) => (
),
label: "Azure Active Directory",
tooltip: null,
},
{
icon: (props: SVGProps) => ,
label: "Okta",
tooltip: null,
},
{
icon: (props: SVGProps) => ,
label: "Clerk",
tooltip: null,
},
{
icon: (props: SVGProps) => ,
label: "Atlassian",
tooltip: null,
},
{
icon: (props: SVGProps) => ,
label: "Google Auth",
tooltip: null,
},
{
icon: (props: SVGProps) => ,
label: "Auth.js",
tooltip: null,
},
{
icon: (props: SVGProps) => ,
label: "Expo",
tooltip: null,
},
] as const;