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 (
{children}
); }; const PackageItem = (props: { icon: ReactNode; label: string; tooltip: string | null; }) => { const { tooltip, icon, label } = props; return (
{icon}
{label}
{tooltip && (
{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;