diff --git a/.eslintrc.js b/.eslintrc.js index 7162f468..22a4e4f5 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -82,6 +82,7 @@ module.exports = { 'postcss.config.js', 'codegen.ts', 'index-pages.mjs', + 'next-sitemap.config.js', ], parserOptions: { project: null, diff --git a/.gitignore b/.gitignore index 815c235a..3c011011 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,7 @@ yarn-error.log* /build /dist .env.local + +# Sitemap +public/sitemap*.xml + diff --git a/next-sitemap.config.js b/next-sitemap.config.js new file mode 100644 index 00000000..fa238bb6 --- /dev/null +++ b/next-sitemap.config.js @@ -0,0 +1,10 @@ +/** @type {import('next-sitemap').IConfig} */ +module.exports = { + siteUrl: 'https://plural.sh', + transform: async (_config, path) => ({ + loc: path, + changefreq: 'weekly', + priority: 0.5, + lastmod: new Date().toISOString(), + }), +} diff --git a/package.json b/package.json index 55d93bee..0b84f334 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,9 @@ "scripts": { "dev": "run-s generate:pageindex dev:watch", "dev:watch": "concurrently \"next dev\" \"yarn graphql:codegen:watch\"", - "build": "run-s generate:pageindex build:next", + "build": "run-s generate:pageindex build:next postbuild", "build:next": "next build", + "postbuild": "next-sitemap", "start": "next start", "lint": "run-p lint:format lint:js lint:css", "lint:format": "prettier --check --no-error-on-unmatched-pattern ./{src,pages}/**/*.{js,jsx,ts,tsx,graphql,md,mdpart}", @@ -61,6 +62,7 @@ "moment-timezone": "0.5.43", "next": "13.4.12", "next-compose-plugins": "2.2.1", + "next-sitemap": "4.2.3", "next-transpile-modules": "10.0.0", "octokit": "3.1.0", "query-string": "8.1.0", diff --git a/pages/index.tsx b/pages/index.tsx index 962f81d7..47b50632 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -4,7 +4,6 @@ import { Button, CloseIcon } from '@pluralsh/design-system' import { type InferGetStaticPropsType } from 'next' import Link from 'next/link' -import { until } from '@open-draft/until' import { type Variants, motion } from 'framer-motion' import styled from 'styled-components' // @ts-expect-error @@ -21,9 +20,6 @@ import { ImpactCardSection } from '@src/components/page-sections/ImpactCardSecti import { QuoteSection } from '@src/components/page-sections/QuoteSection' import { HomePageHero } from '@src/components/PageHeros' import { CenteredSectionHead } from '@src/components/SectionHeads' -import { getTinyRepos } from '@src/data/getRepos' -import { getStacks } from '@src/data/getStacks' -import { getStackTabData } from '@src/data/getStackTabData' import { PageHomepageDocument, type PageHomepageQuery, @@ -349,11 +345,6 @@ export const getStaticProps = async () => { >({ query: PageHomepageDocument, }) - const { data: repos, error: reposError } = await until(() => getTinyRepos()) - const { data: stacks, error: stacksError } = await until(() => getStacks()) - - const buildStackTabs = getStackTabData({ repos, stacks }) - const page = data.page_homepage return propsWithGlobalSettings({ @@ -362,10 +353,8 @@ export const getStaticProps = async () => { 'Open-source application deployment, faster than ever without sacrificing compliance.', articleCards: data.page_homepage?.article_cards || null, quotes: normalizeQuotes(page?.quotes), - featuredQuote: page?.featured_quote || null, - buildStackTabs, footerVariant: FooterVariant.kitchenSink, - errors: combineErrors([error, stacksError, reposError]), + errors: combineErrors([error]), }) } diff --git a/pages/kubecon.tsx b/pages/kubecon.tsx index fd9e4992..3a7958d4 100644 --- a/pages/kubecon.tsx +++ b/pages/kubecon.tsx @@ -87,10 +87,10 @@ export default function KubeCon() { rel="noopener noreferrer" target="_blank" as={Link} - href="/contact-sales" + href="https://calendly.com/sam-plural/30min" className="mt-medium w-fit" > - Book a demo + Let's meet in person @@ -149,9 +149,9 @@ export default function KubeCon() { rel="noopener noreferrer" target="_blank" as={Link} - href="/contact-sales" + href="https://calendly.com/sam-plural/30min" > - Book a demo + Let's meet in person
@@ -248,7 +248,7 @@ export default function KubeCon() {
-
+
Learn more About Plural diff --git a/pages/about/[keyword].tsx b/pages/kubernetes/[keyword].tsx similarity index 96% rename from pages/about/[keyword].tsx rename to pages/kubernetes/[keyword].tsx index 04753084..1f95c3bd 100644 --- a/pages/about/[keyword].tsx +++ b/pages/kubernetes/[keyword].tsx @@ -85,12 +85,11 @@ export const getStaticProps = async (context) => { { metaTitle: 'Plural', metaDescription: page.slug, - footerVariant: FooterVariant.none, - hideHeader: true, + footerVariant: FooterVariant.kitchenSink, components: page.components ?? [], }, { - revalidate: 20, + revalidate: 60, } ) } diff --git a/pages/marketplace.tsx b/pages/marketplace.tsx deleted file mode 100644 index 4560f231..00000000 --- a/pages/marketplace.tsx +++ /dev/null @@ -1,618 +0,0 @@ -import { - type ComponentProps, - useCallback, - useMemo, - useRef, - useState, -} from 'react' - -import { - Button, - Card, - type CardProps, - Chip, - TabPanel, -} from '@pluralsh/design-system' -import { type GetStaticProps, type InferGetStaticPropsType } from 'next' - -import { until } from '@open-draft/until' -import Fuse from 'fuse.js' -import { isEmpty, orderBy, upperFirst } from 'lodash-es' -import styled, { useTheme } from 'styled-components' - -import { directusClient } from '@src/apollo-client' -import { mqs } from '@src/breakpoints' -import { CardCta } from '@src/components/CardCta' -import { - type SetSearchParams, - useSearchParams, -} from '@src/components/hooks/useSearchParams' -import { HeaderPad } from '@src/components/layout/HeaderPad' -import { FullPageWidth } from '@src/components/layout/LayoutHelpers' -import { TextLimiter } from '@src/components/layout/TextLimiter' -import { FAQList } from '@src/components/page-sections/FAQList' -import { MarketplaceCarousel } from '@src/components/page-sections/MarketplaceCarousel' -import MarketplaceFilters from '@src/components/page-sections/MarketplaceFilters' -import { - MarketSearchTabKey, - SearchBar, - useSearchTabKey, -} from '@src/components/page-sections/MarketplaceSearchBar' -import StackHero from '@src/components/page-sections/MarketplaceStackHero' -import { RepoCard, RepoCardList, StackCard } from '@src/components/RepoCardList' -import { Body1, Heading1, Subtitle } from '@src/components/Typography' -import { type BasicRepo, getRepos, reposCache } from '@src/data/getRepos' -import { - type Categories, - type Tags, - getSearchMetadata, -} from '@src/data/getSearchMetadata' -import { type MinStack, getStacks, stacksCache } from '@src/data/getStacks' -import { - type FaqItemFragment, - FaqListDocument, - type FaqListQuery, - type FaqListQueryVariables, -} from '@src/generated/graphqlDirectus' -import { type BasicRepoFragment } from '@src/generated/graphqlPlural' -import { combineErrors } from '@src/utils/combineErrors' -import { - type GlobalProps, - propsWithGlobalSettings, -} from '@src/utils/getGlobalProps' -import { normalizeM2mItems } from '@src/utils/normalizeQuotes' - -type PageProps = { - repositories: BasicRepo[] - stacks: MinStack[] - categories: Categories - tags: Tags - globalProps: GlobalProps - faqs: (FaqItemFragment | null)[] -} -const reposSearchOptions = { - keys: ['name', 'description', 'tags.tag'], - threshold: 0.25, -} -const stacksSearchOptions = { - keys: ['name', 'description', 'collections.bundles.recipe.repository.tag'], - threshold: 0.25, -} - -export const mqMarketTwoCol = mqs.xl - -export function getStackRepos(stack: MinStack) { - return stack.collections?.[0]?.bundles - ?.map((bundle) => bundle?.recipe?.repository) - .filter( - (repo: BasicRepoFragment | null | undefined): repo is BasicRepoFragment => - !!repo - ) -} - -export const MarketplacePage = styled.div((_) => ({ - width: '100%', - position: 'relative', - marginBottom: 200, -})) - -export const SearchBarArea = styled.div(({ theme }) => { - const mB = theme.spacing.medium - - return { - backgroundColor: theme.colors['fill-zero'], - marginBottom: mB, - zIndex: theme.zIndexes.base + 10, - flexShrink: 0, - '&::after': { - content: '""', - position: 'absolute', - top: '100%', - height: mB, - width: '100%', - background: `linear-gradient(0deg, transparent 0%, ${theme.colors['fill-zero']} 90%)`, - }, - } -}) - -function FilterChip(props: ComponentProps) { - return ( - - ) -} - -const ContentContainer = styled.div<{ $reverse?: boolean }>( - ({ theme, $reverse }) => ({ - display: 'flex', - flexDirection: 'column', - [mqMarketTwoCol]: { - flexDirection: $reverse ? 'row-reverse' : 'row', - columnGap: theme.spacing.xlarge, - }, - [mqs.xxl]: { - columnGap: theme.spacing.xxlarge, - }, - }) -) - -const MainContent = styled.div(({ theme: _ }) => ({ - flexGrow: '1', - // minWidth must be set to prevent expanding beyond available width - minWidth: 200, -})) - -const Sidecar = styled.div(({ theme }) => ({ - display: 'none', - [mqMarketTwoCol]: { - display: 'block', - width: 248, - flexShrink: 0, - flexDirection: 'row', - columnGap: theme.spacing.xlarge, - }, -})) - -const SidecarFilters = styled(MarketplaceFilters)(({ theme }) => ({ - [mqMarketTwoCol]: { - maxHeight: `calc(100vh - var(--top-nav-height) - ${theme.spacing.medium}px)`, - 'maxHeight ': `calc(100dvh - var(--top-nav-height) - ${theme.spacing.medium}px)`, - position: 'sticky', - top: 'var(--top-nav-height)', - }, -})) - -function FilterChips({ - categories, - handleClearToken, - tags, - handleClearTokens, - ...props -}: { - categories: string[] - handleClearToken: (key: any, value: any) => void - tags: string[] - handleClearTokens: () => void -} & ComponentProps<'div'>) { - return ( -
- {categories.map((category) => ( - handleClearToken('category', category)} - onKeyDown={(event) => - (event.key === 'Enter' || event.key === ' ') && - handleClearToken('category', category) - } - > - {upperFirst(category)} - - ))} - {tags.map((tag) => ( - handleClearToken('tag', tag)} - onKeyDown={(event) => - (event.key === 'Enter' || event.key === ' ') && - handleClearToken('tag', tag) - } - > - {tag} - - ))} - -
- ) -} - -export function clearToken({ - key, - value, - setSearchParams, -}: { - key: string - value: string - setSearchParams: SetSearchParams -}) { - setSearchParams((params) => { - const newParams = params - .getAll(key) - .filter((v) => v.toLowerCase() !== value.toLowerCase()) - - params.delete(key) - newParams.forEach((p) => params.append(key, p)) - - return params - }) -} - -const SidecarCardTitle = styled.h5(({ theme }) => ({ - ...theme.partials.marketingText.body2Bold, -})) - -export default function Marketplace({ - ...props -}: InferGetStaticPropsType) { - const [searchParams, setSearchParams] = useSearchParams() - const categories = searchParams.getAll('category') - const tags = searchParams.getAll('tag') - const [search, setSearch] = useState('') - const isFiltered = !isEmpty(categories) || !isEmpty(tags) - const searchTabStateRef = useRef() - const [searchTabKey] = useSearchTabKey() - const searchTopRef = useRef() - const isFilteredOrSearched = isFiltered || search - - const handleClearToken = useCallback( - (key, value) => { - clearToken({ key, value, setSearchParams }) - }, - [setSearchParams] - ) - - const handleClearTokens = useCallback(() => { - setSearchParams({}) - }, [setSearchParams]) - - const { repositories, stacks } = props - const filteredStacks = useMemo( - () => - stacks - .filter((stack) => - !isEmpty(categories) - ? categories.some( - (category) => - stack.name.toLowerCase() === category.toLowerCase() || - getStackRepos(stack)?.some( - (repo) => - repo.category?.toLowerCase() === category.toLowerCase() - ) - ) - : true - ) - .filter((stack) => - !isEmpty(tags) - ? tags.some( - (tag) => - stack.name.toLowerCase() === tag.toLowerCase() || - getStackRepos(stack)?.some( - (repo) => - repo.name.toLowerCase() === tag.toLowerCase() || - repo?.tags?.some( - (t) => t?.tag?.toLowerCase() === tag.toLowerCase() - ) - ) - ) - : true - ), - [categories, stacks, tags] - ) - const stacksFuse = useMemo( - () => new Fuse(filteredStacks, stacksSearchOptions), - [filteredStacks] - ) - - const resultStacks = useMemo( - () => - search - ? (orderBy( - stacksFuse.search(search).map(({ item }) => item), - [ - 'trending', - (r) => (r as (typeof stacks)[number])?.name.toLowerCase(), - ], - ['desc', 'asc'] - ) as typeof stacks) - : filteredStacks, - [filteredStacks, search, stacksFuse] - ) - - const sortedRepositories = useMemo( - () => - orderBy( - repositories, - [ - 'trending', - (r) => (r as (typeof repositories)[number])?.name?.toLowerCase(), - ], - ['desc', 'asc'] - ) as typeof repositories, - [repositories] - ) - const filteredRepositories = useMemo( - () => - sortedRepositories - .filter((repository) => - categories.length - ? categories.some( - (category) => - category === repository?.category?.toLowerCase() || - (category === 'trending' && repository.trending) - ) - : true - ) - .filter((repository) => { - if (!tags.length) return true - - const repositoryTags = repository?.tags?.map((t) => - t?.tag.toLowerCase() - ) - - return tags.some((tag) => repositoryTags?.includes(tag)) - }), - [categories, sortedRepositories, tags] - ) - - const reposFuse = useMemo( - () => new Fuse(filteredRepositories, reposSearchOptions), - [filteredRepositories] - ) - - const resultRepositories = useMemo( - () => - search - ? (orderBy( - reposFuse.search(search).map(({ item }) => item), - [ - 'trending', - (r) => (r as (typeof repositories)[number])?.name.toLowerCase(), - ], - ['desc', 'asc'] - ) as typeof repositories) - : filteredRepositories, - [reposFuse, search, filteredRepositories] - ) - - const filterProps = { - categories: props.categories, - tags: props.tags, - } - - return ( - - -
- -

Explore the open-source marketplace

-
- - - Discover over 90 incredible applications ready to deploy in your - cloud in minutes using our guided deployment flow. With security, - observability, and scale out of the box, we elevate you from the - work of building and maintaining your open-source infrastructure - and let teams focus on delivering value. - - -
- - - - - {isFiltered && ( - - )} - - - {!isFilteredOrSearched && - searchTabKey === MarketSearchTabKey.all && ( -
- - Plural curated stacks - - - {stacks.map((stack) => - stack ? ( - - ) : null - )} - -
- )} - {(searchTabKey === MarketSearchTabKey.all || - searchTabKey === MarketSearchTabKey.apps) && ( - <> - - {!isFiltered && !search ? <>All apps : <>Results} - - - {isFilteredOrSearched && - resultStacks.map((stack) => ( - - ))} - {resultRepositories.map((repository) => ( - - ))} - - - )} - {searchTabKey === MarketSearchTabKey.stacks && ( - <> - - Plural curated stacks - - - {stacks.map((stack) => ( - - ))} - - - )} -
-
- - - -
- - - - - - -
-

- Don’t see what you’re looking for? -

- -
-
-
-
-
- ) -} - -function AddAppCard() { - return ( - - - Add an application - -

- Is something missing from the Plural marketplace? Are you a vendor who - wants to add your solution? We'd love for you to onboard your - application. -

- - Read the guide - -
- ) -} - -function ContributorCard() { - return ( - - - Join our contributor program - - - Add a new application to the Plural catalog or take a deep dive into the - Plural internals. - - - Learn more - - - ) -} - -function SidecarCard({ - variant, - ...props -}: CardProps & { variant?: 'fill-one' | 'feature' }) { - const theme = useTheme() - - return ( - - ) -} - -const PBody2 = styled.p(({ theme }) => ({ - ...theme.partials.text.body2, - color: theme.colors['text-light'], -})) - -export const getStaticProps: GetStaticProps = async () => { - const { data: repos, error: reposError } = await until(() => getRepos()) - const { data: stacks, error: stacksError } = await until(() => getStacks()) - const { data: faqData, error: faqError } = await directusClient.query< - FaqListQuery, - FaqListQueryVariables - >({ - query: FaqListDocument, - variables: { slug: 'marketplace' }, - }) - - const { categories, tags } = await getSearchMetadata() - - return propsWithGlobalSettings({ - metaTitle: 'Explore the open-source marketplace', - metaDescription: - 'Discover over 90 open-source applications ready to deploy in your cloud in minutes.', - repositories: repos || reposCache.filtered, - stacks: stacks || stacksCache.filtered, - tags: tags || [], - categories: categories || [], - faqs: normalizeM2mItems(faqData.collapsible_lists?.[0]) || [], - errors: combineErrors([reposError, stacksError, faqError]), - }) -} diff --git a/pages/pricing.tsx b/pages/pricing.tsx index 98a76546..25e32ea3 100644 --- a/pages/pricing.tsx +++ b/pages/pricing.tsx @@ -82,10 +82,7 @@ export default function Pricing({ } />
-
+
diff --git a/pages/sitemap.xml.ts b/pages/sitemap.xml.ts deleted file mode 100644 index 7635de1e..00000000 --- a/pages/sitemap.xml.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { until } from '@open-draft/until' - -import { appUrl, stackUrl } from '@src/consts/routes' -import { getRepos } from '@src/data/getRepos' -import { getStacks } from '@src/data/getStacks' - -import pages from '../src/generated/pages.json' - -const S_MAXAGE = 1 * 60 * 60 // 1s * 60s/m * 60m/h = 1 hour -const STALE_WHILE_REVALIDATE = S_MAXAGE * 2 - -function urlTag({ - location, - lastMod, - priority = '0.5', -}: { - location: string - lastMod: string - priority?: string | number -}) { - return ` - ${process.env.NEXT_PUBLIC_ROOT_URL}${location} - ${lastMod} - weekly - ${priority || '0.5'} - ` -} - -function wrapSiteMap(content: string) { - return ` - -${content} - -` -} - -export default function SiteMap() { - // getServerSideProps will do the heavy lifting -} - -function generateSiteMap({ - repos, - stacks, -}: { - repos?: Awaited> - stacks?: Awaited> -} = {}) { - const lastMod = new Date().toISOString() - - // We generate the XML sitemap with the posts data - const sitemap = wrapSiteMap( - `${pages - ?.map((page) => urlTag({ location: `${page.path}`, lastMod })) - .join('\n')} -${stacks - ?.map((stack) => urlTag({ location: stackUrl(stack.name), lastMod })) - .join('\n')} -${repos - ?.map((repo) => urlTag({ location: appUrl(repo.name), lastMod })) - .join('\n')}` - ) - - return sitemap -} - -let cachedSiteMap = generateSiteMap() - -export async function getServerSideProps({ res }) { - // We make an API call to gather the URLs for our site - const { data: repos, error: reposError } = await until(() => getRepos()) - const { data: stacks, error: stacksError } = await until(() => getStacks()) - - let sitemap: string = cachedSiteMap - - if (!reposError && !stacksError) { - sitemap = await generateSiteMap({ repos, stacks }) - cachedSiteMap = sitemap - } - - res.setHeader('Content-Type', 'text/xml') - res.setHeader( - 'Cache-Control', - `public, s-maxage=${S_MAXAGE}, stale-while-revalidate=${STALE_WHILE_REVALIDATE}` - ) - // we send the XML to the browser - res.write(sitemap) - res.end() - - return { - props: {}, - } -} diff --git a/pages/solutions/[solution].tsx b/pages/solutions/[solution].tsx index b49e27f0..48ae8abe 100644 --- a/pages/solutions/[solution].tsx +++ b/pages/solutions/[solution].tsx @@ -1,13 +1,11 @@ import { Button, ColorModeProvider } from '@pluralsh/design-system' import { type GetStaticPaths, - type GetStaticProps, + type GetStaticPropsContext, type InferGetStaticPropsType, } from 'next' import Link from 'next/link' -import { until } from '@open-draft/until' - import { directusClient } from '@src/apollo-client' import { FooterVariant } from '@src/components/FooterFull' import { StandardPageSection } from '@src/components/layout/LayoutHelpers' @@ -15,11 +13,7 @@ import SolutionDownloadSection from '@src/components/page-sections/SolutionDownl import SolutionFeatureSection from '@src/components/page-sections/SolutionFeatureSection' import { BasicPageHero } from '@src/components/PageHeros' import SolutionProblem from '@src/components/SolutionProblem' -import { getTinyRepos } from '@src/data/getRepos' -import { getStacks } from '@src/data/getStacks' -import { getStackTabData } from '@src/data/getStackTabData' import { - type SolutionFragment, SolutionsDocument, type SolutionsQuery, type SolutionsQueryVariables, @@ -28,10 +22,7 @@ import { type SolutionsSlugsQueryVariables, } from '@src/generated/graphqlDirectus' import { combineErrors } from '@src/utils/combineErrors' -import { - type GlobalProps, - propsWithGlobalSettings, -} from '@src/utils/getGlobalProps' +import { propsWithGlobalSettings } from '@src/utils/getGlobalProps' import { GradientBG } from '../../src/components/layout/GradientBG' import { HeaderPad } from '../../src/components/layout/HeaderPad' @@ -67,16 +58,18 @@ export default function Solution({ > Book a demo - + {solution.ebook_url && ( + + )}
} /> @@ -102,7 +95,6 @@ export default function Solution({
- { } } -export type AppPageProps = { - solution: SolutionFragment - globalProps: GlobalProps - buildStackTabs?: ReturnType -} - -export const getStaticProps: GetStaticProps = async (context) => { +export const getStaticProps = async (context: GetStaticPropsContext) => { const slug = typeof context?.params?.solution === 'string' ? context?.params?.solution @@ -176,17 +162,11 @@ export const getStaticProps: GetStaticProps = async (context) => { return { notFound: true } } - const { data: repos, error: reposError } = await until(() => getTinyRepos()) - const { data: stacks, error: stacksError } = await until(() => getStacks()) - - const buildStackTabs = getStackTabData({ repos, stacks }) - return propsWithGlobalSettings({ solution, - metaTitle: `Solution${solution.title ? ` – ${solution.title}` : ''}`, + metaTitle: `Solution${solution.title ? ` - ${solution.title}` : ''}`, metaDescription: solution.description || null, - buildStackTabs, footerVariant: FooterVariant.kitchenSink, - errors: combineErrors([solutionError, reposError, stacksError]), + errors: combineErrors([solutionError]), }) } diff --git a/src/components/PageHeader.tsx b/src/components/PageHeader.tsx index 1e9f5c53..b7df1738 100644 --- a/src/components/PageHeader.tsx +++ b/src/components/PageHeader.tsx @@ -24,7 +24,6 @@ import { FullPageWidth } from './layout/LayoutHelpers' import { NavigationDesktop } from './NavigationDesktop' import { NavigationMobile } from './NavigationMobile' import { HamburgerButton } from './PageHeaderButtons' -import { PromoBanner, type PromoBannerProps } from './PromoBanner' const DARKEN_FILTER_ID = 'svg-darken-filter' @@ -36,11 +35,10 @@ export const PAGE_HEADER_ID = 'plural-page-header' export function PageHeader({ showHeaderBG, - promoBanner, + ...props }: { showHeaderBG?: boolean - promoBanner?: PromoBannerProps }) { const theme = useTheme() const [menuIsOpen, setMenuIsOpen] = useState(false) @@ -71,7 +69,6 @@ export function PageHeader({ alwaysShowBG={showHeaderBG} id={PAGE_HEADER_ID} > - - path.startsWith(p) - ) - ) { - return 'og_image_marketplace.png' - } - if (['/community'].some((p) => path.startsWith(p))) { - return 'og_image_community.png' - } - - return 'og_image.png' -} - export const GlobalPropsContext = createContext( undefined ) @@ -46,8 +27,7 @@ export default function PrimaryPage({ }) { const { metaTitle, metaTitleFull, metaDescription } = pageProps || {} const { siteSettings } = globalProps || {} - const router = useRouter() - const ogImage = selectOgImage(router) + const headProps = { title: metaTitleFull || @@ -55,7 +35,7 @@ export default function PrimaryPage({ ? `${PAGE_TITLE_PREFIX}${metaTitle}${PAGE_TITLE_SUFFIX}` : ROOT_TITLE), description: metaDescription || siteSettings?.og_description || '', - ...(ogImage ? { ogImage } : {}), + ogImage: siteSettings.og_image, } const navData = Object.values(siteSettings?.main_nav ?? []) as NavList[] @@ -66,13 +46,7 @@ export default function PrimaryPage({ {!pageProps.hideHeader && ( - + )} {children} diff --git a/src/components/PromoBanner.tsx b/src/components/PromoBanner.tsx deleted file mode 100644 index aa873c12..00000000 --- a/src/components/PromoBanner.tsx +++ /dev/null @@ -1,160 +0,0 @@ -import { type ComponentProps, useEffect, useState } from 'react' - -import { ArrowRightIcon, isExternalUrl } from '@pluralsh/design-system' -import Link from 'next/link' - -import { type Maybe } from 'graphql/jsutils/Maybe' -import styled, { createGlobalStyle } from 'styled-components' -import { type Merge } from 'type-fest' - -import { mqs } from '@src/breakpoints' - -import BasicMarkdown from './BasicMarkdown' - -export type PromoBannerProps = { content?: Maybe; url?: Maybe } - -const PromoBannerSC = styled.div(({ theme }) => ({ - ...theme.partials.marketingText.body2, - backgroundColor: theme.colors.blue[500], - display: 'flex', - position: 'relative', - gap: theme.spacing.large, - height: 'var(--top-nav-banner-height)', - overflow: 'hidden', - transition: 'height 0.2s ease', -})) - -const PromoBannerLink = styled.div(({ theme }) => ({ - position: 'absolute', - top: 0, - left: 0, - right: 0, - bottom: 0, - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - textAlign: 'center', - color: 'white', - paddingLeft: theme.spacing.xxlarge, - paddingRight: theme.spacing.xxlarge, - [`&:hover ${ArrowSC}`]: { - transform: 'translateX(50%)', - }, -})) - -const ArrowSC = styled.div(({ theme }) => ({ - position: 'relative', - top: 1, - display: 'inline-block', - color: 'white', - marginLeft: theme.spacing.medium, - transition: 'transform 0.2s ease', -})) - -// const CloseButtonSC = styled.div(({ theme }) => ({ -// ...theme.partials.marketingText.body2, -// zIndex: 1, -// position: 'absolute', -// top: 0, -// right: 0, -// width: theme.spacing.xlarge, -// height: theme.spacing.xlarge, -// display: 'flex', -// alignItems: 'center', -// justifyContent: 'center', -// cursor: 'pointer', -// color: 'white', -// })) - -const GlobalStyle = createGlobalStyle<{ $isOpen: boolean }>( - ({ $isOpen, theme }) => { - if (!$isOpen) { - return {} - } - - return { - ':root': { - '--top-nav-banner-height': `${theme.spacing.medium + 25.6 * 4}px`, - }, - [mqs.xs]: { - ':root': { - '--top-nav-banner-height': `${theme.spacing.medium + 25.6 * 3}px`, - }, - }, - [mqs.sm]: { - ':root': { - '--top-nav-banner-height': `${theme.spacing.medium + 25.6 * 2}px`, - }, - }, - [mqs.lg]: { - ':root': { - '--top-nav-banner-height': `${theme.spacing.medium + 25.6 * 1}px`, - }, - }, - } - } -) - -export function PromoBanner({ - content, - url, - ...props -}: Merge, PromoBannerProps>) { - const [isOpen, setIsOpen] = useState(true) - - useEffect(() => { - const listener = (e) => { - const scrolled = window.scrollY !== 0 - - if (e.currentTarget.scroll) { - setIsOpen(!scrolled) - } - } - const scrolled = window.scrollY !== 0 - - setIsOpen(!scrolled) - - window.addEventListener('scroll', listener, { passive: true }) - - return () => { - window.removeEventListener('scroll', listener) - } - }, []) - - if (!content) { - return null - } - const linkProps = { - ...(url - ? { - as: Link, - href: url, - ...(isExternalUrl(url) ? { target: '_blank' } : {}), - } - : { as: 'div' }), - } - - return ( - <> - - - {/* @ts-expect-error */} - - - - - - - {/* setIsOpen(false)}> - - */} - - - ) -} diff --git a/src/components/RepoCardList.tsx b/src/components/RepoCardList.tsx deleted file mode 100644 index 28506418..00000000 --- a/src/components/RepoCardList.tsx +++ /dev/null @@ -1,171 +0,0 @@ -import { - Children, - type ReactNode, - useEffect, - useMemo, - useRef, - useState, -} from 'react' - -import { - EmptyState, - StackCard as PluralStackCard, - RepositoryCard, - usePrevious, -} from '@pluralsh/design-system' -import Link from 'next/link' - -import { drop, isEmpty } from 'lodash-es' - -import { getStackRepos } from '@pages/marketplace' -import { breakpointIsGreaterOrEqual } from '@src/breakpoints' -import { appUrl, stackUrl } from '@src/consts/routes' -import { type BasicRepo, fakeDisplayName } from '@src/data/getRepos' -import { type MinStack } from '@src/data/getStacks' - -import { useBreakpoint } from './contexts/BreakpointProvider' -import { ResponsivePageNavigation } from './ResponsivePageNavigation' - -function getPaginatedItems(items: T[], pageIndex = 0, pageSize = 24) { - const offset = pageIndex * pageSize - const pageItems = drop(items, offset).slice(0, pageSize) - - return { - pageIndex, - pageSize, - total: items.length, - totalPages: Math.ceil(items.length / pageSize), - pageItems, - } -} - -export function RepoCardList({ - children, - pageSize = 24, -}: { - children: ReactNode - pageSize?: number -}) { - const [cPI, setCurPageIndex] = useState(0) - const curPageIndex = cPI ?? 0 - const lastPageIndex = usePrevious(curPageIndex) ?? 0 - const childArray = useMemo(() => Children.toArray(children), [children]) - const { pageItems, totalPages } = useMemo( - () => getPaginatedItems(childArray, curPageIndex, pageSize), - [curPageIndex, pageSize, childArray] - ) - const searchTopRef = useRef(null) - const breakpoint = useBreakpoint() - - const scrollOffset = breakpointIsGreaterOrEqual(breakpoint, 'md') ? 130 : 200 - - useEffect(() => { - if (curPageIndex === lastPageIndex) { - return - } - const top = searchTopRef.current?.getBoundingClientRect()?.top - - if (top) { - window.scrollTo({ - top: top + window.scrollY - scrollOffset, - behavior: 'smooth', - }) - } - }, [curPageIndex, lastPageIndex, scrollOffset]) - - useEffect(() => { - setCurPageIndex(0) - }, [childArray]) - - return ( -
- {isEmpty(pageItems) ? ( - - ) : ( -
- {pageItems} -
- )} - -
- ) -} - -export function RepoCard({ - repository: repo, - urlParams, - wideFeatures = true, - ...props -}: { - repository: BasicRepo - urlParams?: string - wideFeatures: boolean -}) { - const featuredLabel = repo.trending ? 'Trending' : undefined - - return ( - t?.tag || [])} - priv={repo.private ?? undefined} - verified={repo.verified ?? undefined} - featuredLabel={featuredLabel} - releaseStatus={repo.releaseStatus ?? undefined} - size="small" - {...props} - /> - ) -} - -export function StackCard({ - stack, - urlParams, - ...props -}: { - stack: MinStack - urlParams?: string - wideFeatures: boolean -}) { - const apps = getStackRepos(stack)?.map((repo) => ({ - name: fakeDisplayName(repo.name), - imageUrl: repo.darkIcon || repo.icon || '', - })) - - return ( - - ) -} diff --git a/src/components/custom-page/CallToAction.tsx b/src/components/custom-page/CallToAction.tsx index 23597193..25908771 100644 --- a/src/components/custom-page/CallToAction.tsx +++ b/src/components/custom-page/CallToAction.tsx @@ -19,7 +19,7 @@ export function CallToAction({
{heading} diff --git a/src/components/custom-page/Cards.tsx b/src/components/custom-page/Cards.tsx index 47ef4995..f80211ff 100644 --- a/src/components/custom-page/Cards.tsx +++ b/src/components/custom-page/Cards.tsx @@ -22,7 +22,15 @@ export function Cards({ spacing, cards }: CardsComponentFragment) { 'flex gap-xxlarge px-xxxlarge' )} > - {cards?.map((c) => c?.card_id && )} + {cards?.map( + (c, i) => + c?.card_id && ( + + ) + )}
) } diff --git a/src/components/custom-page/CustomerQuote.tsx b/src/components/custom-page/CustomerQuote.tsx index 643fdf4b..c4374b90 100644 --- a/src/components/custom-page/CustomerQuote.tsx +++ b/src/components/custom-page/CustomerQuote.tsx @@ -1,6 +1,7 @@ import { Flex } from '@pluralsh/design-system' import { type CustomerQuoteComponentFragment } from '@src/generated/graphqlDirectus' +import { cn } from '@src/utils/cn' import { Body1, Subtitle2 } from '../Typography' @@ -11,7 +12,7 @@ export function CustomerQuote({ quote, }: CustomerQuoteComponentFragment) { return ( -
+
(({ $size, $reverse = false, theme }) => ({ @@ -57,7 +57,7 @@ const ArticleCardSC = styled(ShadowedCard)<{ export function QuickstartDemoCard() { return ( - , + ComponentProps, Pick< - ArticleCardFragment, + MediaCardComponentFragment, 'heading' | 'url' | 'ctas' | 'videoUrl' | 'author' | 'date' > & { - thumbnail?: ArticleCardFragment['thumbnail'] | string - description?: ArticleCardFragment['description'] | ReactNode + thumbnail?: MediaCardComponentFragment['thumbnail'] | string + description?: MediaCardComponentFragment['description'] | ReactNode size?: 'medium' | 'small' reverse?: boolean preHeading?: string @@ -115,7 +115,7 @@ export function ArticleCard({ }) return ( - ))}
- + ) } -export const ArticleCardNoBorder = styled(ArticleCard)(() => ({ +export const MediaCardNoBorder = styled(MediaCard)(() => ({ border: 'none', })) diff --git a/src/components/custom-page/MultiColumnText.tsx b/src/components/custom-page/MultiColumnText.tsx index e9229388..ee275740 100644 --- a/src/components/custom-page/MultiColumnText.tsx +++ b/src/components/custom-page/MultiColumnText.tsx @@ -51,7 +51,7 @@ export function MultiColumnText({
{columns?.map((c, index) => { diff --git a/src/components/custom-page/SectionHeader.tsx b/src/components/custom-page/SectionHeader.tsx index a85a0b77..4de1faf8 100644 --- a/src/components/custom-page/SectionHeader.tsx +++ b/src/components/custom-page/SectionHeader.tsx @@ -15,7 +15,7 @@ export function SectionHeader({
{overline && {overline}} diff --git a/src/components/page-sections/CaseStudySection.tsx b/src/components/page-sections/CaseStudySection.tsx deleted file mode 100644 index 550e2fcd..00000000 --- a/src/components/page-sections/CaseStudySection.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import Link from 'next/link' - -import { isEmpty } from 'lodash-es' - -import { Columns, EqualColumn } from '@src/components/layout/Columns' -import { Body2, Cta, ResponsiveText } from '@src/components/Typography' -import { appUrl, getImageUrl } from '@src/consts/routes' -import { type TinyRepo } from '@src/data/getRepos' -import { type CaseStudyFragment } from '@src/generated/graphqlDirectus' - -import { AppCard } from '../AppOrStackCard' -import BasicMarkdown from '../BasicMarkdown' -import { SubsectionHead } from '../SectionHeads' - -export function CaseStudySection({ - apps, - featuredArticle, -}: { - apps: TinyRepo[] - featuredArticle?: CaseStudyFragment | null | undefined -}) { - if (!featuredArticle) { - return null - } - const heroUrl = getImageUrl(featuredArticle.hero_image) - - return ( - - - - - - - {!isEmpty(featuredArticle.ctas) && ( -
- {featuredArticle.ctas?.map( - (cta, i) => - cta?.url && ( - - {cta.label || 'Read full study'} - - ) - )} -
- )} -
- -
- {heroUrl && } -
- {!isEmpty(apps) && ( -
- {featuredArticle.stack_label && ( - - {featuredArticle.stack_label} - - )} -
- {apps.map((app) => ( - - ))} -
-
- )} -
-
- ) -} - -export const getCaseStudyApps = ( - repos: TinyRepo[] | null | undefined, - appList: string[] -) => repos?.filter((repo) => appList.includes(repo.name)) || [] diff --git a/src/components/page-sections/CommunityCalloutsSection.tsx b/src/components/page-sections/CommunityCalloutsSection.tsx deleted file mode 100644 index 503b9a6e..00000000 --- a/src/components/page-sections/CommunityCalloutsSection.tsx +++ /dev/null @@ -1,122 +0,0 @@ -import { type ComponentProps } from 'react' - -import { Chip, FillLevelProvider } from '@pluralsh/design-system' - -import { isEmpty } from 'lodash-es' -import styled from 'styled-components' - -import { mqs } from '@src/breakpoints' -import { type Callouts } from '@src/data/getCommunityPageData' -import { type CalloutFragment } from '@src/generated/graphqlDirectus' - -import { TextLimiter } from '../layout/TextLimiter' -import { Cta } from '../Typography' - -const CalloutCardSC = styled.div(({ theme }) => ({ - background: theme.colors['fill-two'], - border: theme.borders['fill-one'], - borderRadius: theme.borderRadiuses.large, - padding: theme.spacing.xlarge, - display: 'flex', - flexDirection: 'column', - gap: theme.spacing.large, - '.columns': { - display: 'flex', - alignItems: 'flex-start', - flexDirection: 'column', - rowGap: theme.spacing.medium, - columnGap: theme.spacing.large, - [mqs.md]: { - flexDirection: 'row-reverse', - }, - }, - '.mainColumn': { - display: 'flex', - flexDirection: 'column', - rowGap: theme.spacing.xlarge, - flexGrow: 1, - }, - '.mainContent': { - display: 'flex', - flexDirection: 'column', - rowGap: theme.spacing.small, - }, - '.title': { - ...theme.partials.marketingText.title1, - }, - '.content': { - ...theme.partials.marketingText.body2, - color: theme.colors['text-xlight'], - }, - '.ctas': { - display: 'flex', - flexDirection: 'column', - gap: 0, - }, -})) - -function CalloutCard({ - callout, - ...props -}: { callout: CalloutFragment } & ComponentProps) { - return ( - - -
- {callout.category && ( -
- {callout.category} -
- )} -
-
- {callout.title && ( - {callout.title} - )} - {callout.content && ( - {callout.content} - )} -
- - {!isEmpty(callout?.ctas) && ( -
- {callout?.ctas?.map( - (cta, i) => - !!cta?.url && ( - - {cta.label || cta.url} - - ) - )} -
- )} -
-
-
-
- ) -} - -export default function CalloutsSection({ callouts }: { callouts: Callouts }) { - if (isEmpty(callouts)) { - return null - } - - return ( -
- {(callouts || []).map( - (c) => - c && ( - - ) - )} -
- ) -} diff --git a/src/components/page-sections/EventsSection.tsx b/src/components/page-sections/EventsSection.tsx index dd852653..5898b409 100644 --- a/src/components/page-sections/EventsSection.tsx +++ b/src/components/page-sections/EventsSection.tsx @@ -144,17 +144,6 @@ function formatDates( return dateString } -const FieldContent = styled.span(({ theme }) => ({ - '&:any-link': { - ...theme.partials.text.inlineLink, - textDecoration: 'none', - // color: theme.colors['action-link-inline'], - '&:hover': { - textDecoration: 'underline', - }, - }, -})) - const EventCardSC = styled.div(({ theme }) => ({ background: theme.colors['fill-one'], border: theme.borders['fill-one'], @@ -208,23 +197,7 @@ function EventCard({
{event.name}
-
    - {dateString &&
  • {dateString}
  • } - {event?.fields?.map( - (field: { url?: string; label?: string; content?: string }) => ( -
  • - {field.label && <>{field.label}: } - - {field.content && field.content} - -
  • - ) - )} -
+
    {dateString &&
  • {dateString}
  • }
{event.description && (
{event.description}
)} diff --git a/src/components/page-sections/FeaturedContributorsSection.tsx b/src/components/page-sections/FeaturedContributorsSection.tsx deleted file mode 100644 index eed6f623..00000000 --- a/src/components/page-sections/FeaturedContributorsSection.tsx +++ /dev/null @@ -1,181 +0,0 @@ -import { type ComponentProps, cloneElement } from 'react' - -import { GitHubLogoIcon, TwitterIcon } from '@pluralsh/design-system' - -import { isEmpty } from 'lodash-es' -import styled from 'styled-components' - -import { getImageUrl } from '@src/consts/routes' -import { type FeaturedContributorFragment } from '@src/generated/graphqlDirectus' - -import LinkedInIcon from '../icons/LinkedInIcon' -import { Cta, ResponsiveText } from '../Typography' - -const SocialLinkSC = styled.a(({ theme }) => ({ - padding: theme.spacing.xxsmall, - borderRadius: theme.borderRadiuses.medium, -})) - -function SocialLink({ icon, ...props }: any) { - const iconClone = cloneElement(icon, { size: 16 }) - - return ( - - {iconClone} - - ) -} - -const FeaturedContributorCardSC = styled.div(({ theme }) => ({ - background: theme.colors['fill-one'], - border: theme.borders['fill-one'], - borderRadius: theme.borderRadiuses.large, - padding: theme.spacing.large, - display: 'flex', - flexDirection: 'column', - gap: theme.spacing.large, - '.headerSection': { - display: 'flex', - alignItems: 'flex-start', - gap: theme.spacing.large, - }, - '.portrait': { - width: theme.spacing.xxxxlarge, - height: theme.spacing.xxxxlarge, - borderRadius: '50%', - overflow: 'hidden', - backgroundSize: 'cover', - backgroundPosition: '50% 50%', - }, - '.name': { - ...theme.partials.marketingText.title1, - }, - '.title': { - ...theme.partials.marketingText.label, - marginTop: theme.spacing.xsmall, - }, - '.socials': { - ...theme.partials.marketingText.label, - color: theme.colors['text-light'], - display: 'flex', - flexWrap: 'wrap', - gap: theme.spacing.xxsmall, - marginTop: theme.spacing.small, - }, - '.content': { - ...theme.partials.marketingText.body2, - color: theme.colors['text-xlight'], - }, - '.ctas': { - display: 'flex', - flexDirection: 'column', - gap: 0, - }, -})) - -function FeaturedContributorCard({ - contributor, - ...props -}: { contributor: FeaturedContributorFragment } & ComponentProps< - typeof FeaturedContributorCardSC ->) { - return ( - -
-
- -
-
{contributor.name}
-
{contributor.title}
-
    - {contributor?.social_github_url && ( -
  • - } - href={contributor.social_github_url} - /> -
  • - )} - {contributor?.social_twitter_url && ( -
  • - } - href={contributor.social_twitter_url} - /> -
  • - )} - {contributor?.social_linkedin_url && ( -
  • - } - href={contributor.social_linkedin_url} - /> -
  • - )} -
-
-
- {contributor.content && ( -
{contributor.content}
- )} - {!isEmpty(contributor?.ctas) && ( -
- {contributor?.ctas?.map( - (cta, i) => - !!cta?.url && ( - - {cta.label || cta.url} - - ) - )} -
- )} - - ) -} - -export default function FeaturedContributorsSection({ - featuredContributors, -}: { - featuredContributors: FeaturedContributorFragment[] -}) { - if (!isEmpty(featuredContributors)) { - return null - } - - return ( -
- - Featured Contributor{(featuredContributors || []).length > 1 && 's'} - -
- {featuredContributors.map((c) => ( - - ))} -
-
- ) -} diff --git a/src/components/page-sections/MarketplaceCarousel.tsx b/src/components/page-sections/MarketplaceCarousel.tsx deleted file mode 100644 index c0a30ad8..00000000 --- a/src/components/page-sections/MarketplaceCarousel.tsx +++ /dev/null @@ -1,141 +0,0 @@ -import { Children, type ComponentProps, useState } from 'react' - -import { Button, CaretRightIcon } from '@pluralsh/design-system' -import { type ButtonProps } from 'honorable' - -import { useVisuallyHidden } from 'react-aria' -import styled, { useTheme } from 'styled-components' -import { Autoplay } from 'swiper' -import { Swiper, SwiperSlide } from 'swiper/react' -import { type Swiper as SwiperT } from 'swiper/types' - -import { mqs } from '@src/breakpoints' - -import { CarouselDot, CarouselDotsWrapperSC } from '../CarouselDots' - -const switchPointMQ = mqs.sm - -const NavButton = styled( - ({ direction, ...props }: { direction: 'left' | 'right' } & ButtonProps) => { - const { visuallyHiddenProps } = useVisuallyHidden() - - return ( - - ) - } -)(({ direction }) => ({ - pointerEvents: 'auto', - '&&': { - width: 38, - }, - '.icon': { - display: 'flex', - alignItems: 'center', - transform: `scaleX(${direction === 'left' ? '-100%' : '100%'})`, - }, -})) - -const InterfaceOverlay = styled.div(({ theme }) => ({ - position: 'absolute', - top: theme.spacing.large, - left: theme.spacing.large, - bottom: theme.spacing.large, - right: theme.spacing.large, - pointerEvents: 'none', - zIndex: 1, -})) - -const Buttons = styled.div(({ theme }) => ({ - display: 'flex', - width: '100%', - height: '100%', - alignItems: 'start', - paddingTop: '208px', - justifyContent: 'space-between', - [switchPointMQ]: { - paddingTop: 'unset', - gap: theme.spacing.medium, - justifyContent: 'end', - alignItems: 'end', - }, -})) - -const Dots = styled(CarouselDotsWrapperSC)((_) => ({ - display: 'flex', - width: '100%', - height: '100%', - alignItems: 'end', - justifyContent: 'center', - [switchPointMQ]: { - justifyContent: 'start', - }, -})) - -export const MarketplaceCarousel = styled( - ({ children, ...props }: ComponentProps<'div'>) => { - const [activeIndex, setActiveIndex] = useState(0) - const theme = useTheme() - const [swiper, setSwiper] = useState(null) - - const dots = Children.map(children, (child, i) => ( - { - swiper?.slideToLoop(i) - }} - $selected={i === activeIndex} - /> - )) - - return ( -
-
- { - setActiveIndex(s.realIndex) - }} - onSwiper={setSwiper} - > - {Children.map(children, (child, i) => ( - {child} - ))} - -
- - {dots} - - { - swiper?.slidePrev() - }} - /> - { - swiper?.slideNext() - }} - /> - - -
- ) - } -)(({ theme: _ }) => ({ - position: 'relative', -})) diff --git a/src/components/page-sections/MarketplaceFilters.tsx b/src/components/page-sections/MarketplaceFilters.tsx deleted file mode 100644 index be6dcbb8..00000000 --- a/src/components/page-sections/MarketplaceFilters.tsx +++ /dev/null @@ -1,259 +0,0 @@ -import { useCallback, useMemo, useState } from 'react' - -import { Card, Checkbox, CloseIcon, Input } from '@pluralsh/design-system' -import { A } from 'honorable' - -import Fuse from 'fuse.js' -import { capitalize } from 'lodash-es' -import styled from 'styled-components' - -import { clearToken } from '@pages/marketplace' -import { useSearchParams } from '@src/components/hooks/useSearchParams' -import { Categories } from '@src/data/getSearchMetadata' -import { type CategoryFragment } from '@src/generated/graphqlPlural' - -import { type AccordionProps, SingleAccordion } from '../SingleAccordion' - -function useParamToggle(key: string) { - const [searchParams, setSearchParams] = useSearchParams() - - const isToggled = useCallback( - (value: string) => searchParams.getAll(key).includes(value?.toLowerCase()), - [key, searchParams] - ) - const handleToggle = useCallback( - (value) => { - const existing = searchParams.getAll(key) - const formattedValue = value.toLowerCase() - - if (existing.includes(formattedValue)) { - clearToken({ key, value, setSearchParams }) - } else { - setSearchParams((params) => { - params.append(key, formattedValue) - - return params - }) - } - }, - [key, searchParams, setSearchParams] - ) - - return useMemo( - () => ({ - isToggled, - handleToggle, - }), - [handleToggle, isToggled] - ) -} - -const FilterSection = styled.div(({ theme }) => ({ - paddingLeft: theme.spacing.xsmall, - paddingRight: theme.spacing.xsmall, - paddingBottom: theme.spacing.small, - overflow: 'hidden', -})) - -const CheckboxList = styled.div(({ theme }) => ({ - display: 'flex', - flexDirection: 'column', - rowGap: theme.spacing.xxsmall, - '*': { - tabIndex: -1, - }, -})) - -const MarketplaceSidebarCheckbox = styled( - ({ toggled, onClick, label, trapFocus, className }: any) => ( - - {label} - - ) -)(({ theme }) => ({ - paddingBottom: theme.spacing.xsmall, - paddingTop: theme.spacing.xsmall, - paddingLeft: theme.spacing.xsmall, - paddingRight: 0, - // Temporary hack to prevent scrollbars when accordions are collapsed - // Remove when design system Checkbox is updated - position: 'relative', -})) - -const searchOptions = { - keys: ['tag'], -} - -function Categories({ categories }: { categories: Categories }) { - const { isToggled, handleToggle } = useParamToggle('category') - const sortedCategories = useMemo( - () => [ - { category: 'Trending' }, - ...categories - .slice() - .filter((cat): cat is CategoryFragment => !!cat?.category) - .sort((a, b) => - !(a.category && b.category) - ? 0 - : a?.category?.localeCompare(b?.category) - ), - ], - [categories] - ) - - return ( - - {(expanded) => ( - - - {sortedCategories.map(({ category }) => - category ? ( - handleToggle(category)} - label={capitalize(category)} - trapFocus={expanded} - /> - ) : null - )} - - - )} - - ) -} - -const FilterAccordion = styled((props: AccordionProps) => ( - -))(({ theme }) => ({ - borderBottom: theme.borders.default, - '&:last-of-type': { - borderBottom: 'none', - }, -})) - -function Tags({ tags, fetchMore = () => {}, search, setSearch }) { - const [nDisplayedTags, setNDisplayedTags] = useState(12) - const { handleToggle, isToggled } = useParamToggle('tag') - const sortedTags = tags.slice().sort((a, b) => a?.tag?.localeCompare(b?.tag)) - const fuse = new Fuse(sortedTags, searchOptions) - const resultTags = search - ? fuse.search(search).map(({ item }) => item) - : sortedTags.filter((x, i) => i < nDisplayedTags) - - function handleMoreTagsClick() { - if (tags.length > nDisplayedTags) setNDisplayedTags((x) => x + 12) - else fetchMore() - } - - function handleMoreTagsKeyDown(event) { - if (event.key === 'Enter' || event.key === ' ') handleMoreTagsClick() - } - - return ( - - {(expanded) => ( - - setSearch(event.target.value)} - inputProps={{ - tabIndex: expanded ? 0 : -1, - }} - endIcon={ - search ? ( - setSearch('')} - /> - ) : null - } - marginBottom="xsmall" - /> - - {resultTags.map(({ tag, count }) => ( - handleToggle(tag)} - label={`${tag} (${count})`} - trapFocus={expanded} - /> - ))} - - {nDisplayedTags < tags.length && !search && ( - - See More + - - )} - - )} - - ) -} - -const MarketplaceFilters = styled(MarketplaceFiltersUnstyled)( - ({ theme: _ }) => ({ - display: 'flex', - flexDirection: 'column', - height: 'auto', - overflowY: 'scroll', - overflowX: 'auto', - flexShrink: 0, - }) -) - -function MarketplaceFiltersUnstyled({ - tags, - categories, - className, -}: { - tags: any[] - categories: any[] - className?: string -}) { - const [search, setSearch] = useState('') - const filteredCategories = categories?.filter((c) => !!c.category) - - return ( - - - - - ) -} - -export default MarketplaceFilters diff --git a/src/components/page-sections/MarketplaceSearchBar.tsx b/src/components/page-sections/MarketplaceSearchBar.tsx deleted file mode 100644 index f66d395c..00000000 --- a/src/components/page-sections/MarketplaceSearchBar.tsx +++ /dev/null @@ -1,279 +0,0 @@ -import { - type ComponentProps, - type Dispatch, - type MutableRefObject, - type SetStateAction, - forwardRef, - useCallback, - useEffect, - useState, -} from 'react' - -import { - BrowseAppsIcon, - Button, - FiltersIcon, - Input, - SubTab, - TabList, -} from '@pluralsh/design-system' -import { type ReadonlyURLSearchParams } from 'next/navigation' - -import { useDebounce } from 'rooks' -import styled from 'styled-components' - -import { mqMarketTwoCol } from '@pages/marketplace' -import { mqs } from '@src/breakpoints' -import { BareModal } from '@src/components/BareModal' -import { useSearchParams } from '@src/components/hooks/useSearchParams' - -import MarketplaceFilters from './MarketplaceFilters' - -const mqMoveTabs = mqs.md - -const SearchBarWrap = styled.div(({ theme }) => ({ - display: 'flex', - gap: theme.spacing.small, - backgroundColor: theme.colors['fill-zero'], - marginBottom: theme.spacing.small, - flexWrap: 'wrap', - '& > *:first-child': { flexGrow: 1 }, - [mqs.xs]: { - gap: theme.spacing.medium, - }, - [mqMoveTabs]: { - flexWrap: 'nowrap', - }, - [mqs.lg]: { - columnGap: theme.spacing.large, - }, -})) - -export enum MarketSearchTabKey { - all = 'all', - stacks = 'stacks', - apps = 'apps', -} -const tabs: { - key: MarketSearchTabKey - label: string -}[] = [ - { key: MarketSearchTabKey.all, label: 'View all' }, - { key: MarketSearchTabKey.stacks, label: 'Stacks' }, - { key: MarketSearchTabKey.apps, label: 'Apps' }, -] - -export const TAB_PARAM = 'type' - -function hasValidTypeParam( - searchParams: ReadonlyURLSearchParams | URLSearchParams -) { - return ( - !searchParams.has('type') || - tabs.slice(1).some((t) => t.key === searchParams.get('type')) - ) -} - -export function useSearchTabKey(): [ - MarketSearchTabKey, - (k: MarketSearchTabKey) => void, -] { - const [searchParams, setSearchParams] = useSearchParams() - - // If 'type' is 'all' or not a known tab key, delete 'type' search param as irrelevant - useEffect(() => { - if (!hasValidTypeParam(searchParams)) { - setSearchParams((p) => { - p.delete(TAB_PARAM) - - return p - }) - } - }, [searchParams, setSearchParams]) - - const setTabKey = useCallback( - (tabKey: MarketSearchTabKey) => { - setSearchParams((p) => { - if (!hasValidTypeParam(p)) { - p.delete(TAB_PARAM) - } else { - p.set(TAB_PARAM, tabKey) - } - - return p - }) - }, - [setSearchParams] - ) - - return [ - (tabs.find(({ key }) => key === searchParams.get(TAB_PARAM)) || tabs[0]) - .key, - setTabKey, - ] -} - -const MarketTabs = styled(({ ...props }: ComponentProps) => ( - - {tabs.map(({ key, label }) => ( - {label} - ))} - -))(({ theme: _ }) => ({ - order: 3, - width: '100%', - justifyContent: 'stretch', - '& > *': { - flexGrow: 1, - textAlign: 'center', - }, - [mqMoveTabs]: { - width: 'auto', - order: 'initial', - }, -})) - -const MarketFilterBtn = styled( - ({ ...props }: ComponentProps) => ( - - ) -)(({ theme }) => ({ - '& > span:first-child': { - marginRight: `0 !important`, - }, - width: '40px', - '.text': { - display: 'none', - }, - [mqs.md]: { - width: 'auto', - '& > span:first-child': { - marginRight: `${theme.spacing.small}px !important`, - }, - '.text': { - display: 'inline', - }, - }, - [mqMarketTwoCol]: { - '&&': { - display: 'none', - }, - }, -})) - -const ModalFilters = styled(MarketplaceFilters)(({ theme: _ }) => ({ - maxHeight: '100%', - flexShrink: 1, -})) - -const SearchBarLabel = styled.span(({ theme }) => ({ - display: 'none', - [mqs.md]: { - display: 'inline', - marginLeft: theme.spacing.small, - }, -})) - -const SearchTitleContent = styled.div(({ theme }) => ({ - display: 'flex', - flexAlign: 'center', - marginLeft: -theme.spacing.xxsmall, - marginRight: -theme.spacing.xxsmall, - [mqs.xs]: { - marginLeft: 0, - marginRight: 0, - }, -})) - -const SearchInput = styled( - forwardRef>((props, ref) => ( - - - Marketplace - - } - showClearButton - placeholder="Search" - caption - {...props} - /> - )) -)(({ theme }) => ({ - '& > *:first-child > *:last-child': { - marginLeft: -theme.spacing.xxsmall, - marginRight: -theme.spacing.xxxsmall, - [mqs.xs]: { - marginLeft: 0, - marginRight: 0, - }, - }, - '&&': { - paddingRight: theme.spacing.xsmall, - [mqs.xs]: { - marginRight: 0, - }, - }, -})) - -export function SearchBar({ - search: searchProp, - setSearch: setSearchProp, - filterProps, - tabStateRef, -}: { - search: string - filterProps: any - setSearch: Dispatch> - tabStateRef: MutableRefObject -}) { - const [search, setSearch] = useState(searchProp) - const debouncedSetSearch = useDebounce(setSearchProp, 300) - const [tabKey, setTabKey] = useSearchTabKey() - const [filtersOpen, setFiltersOpen] = useState(false) - - const tabs = ( - setTabKey(key as MarketSearchTabKey), - }} - /> - ) - - return ( - - { - setSearch(event.target.value) - debouncedSetSearch(event.target.value) - }} - /> - {tabs} - { - setFiltersOpen(!filtersOpen) - }} - /> - - setFiltersOpen(false)} - closeButton - > - - - - ) -} diff --git a/src/components/page-sections/MarketplaceStackHero.tsx b/src/components/page-sections/MarketplaceStackHero.tsx deleted file mode 100644 index 0b7b7b16..00000000 --- a/src/components/page-sections/MarketplaceStackHero.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import { Chip, StackIcon, useNavigationContext } from '@pluralsh/design-system' - -import styled from 'styled-components' - -import { mqs } from '@src/breakpoints' -import { stackUrl } from '@src/consts/routes' -import { type MinStack } from '@src/data/getStacks' - -import { CardCta } from '../CardCta' -import { AppBody1, Heading1, TextLabel } from '../Typography' - -const knownStacks = new Set(['data', 'devops', 'security', 'observability']) - -const StackHeroSC = styled.div<{ - $bgPrefix: string - $bgSuffix: string -}>(({ theme, $bgPrefix, $bgSuffix }) => ({ - backgroundImage: `url(${$bgPrefix}-sm${$bgSuffix})`, - backgroundSize: 'cover', - backgroundPosition: 'center bottom', - borderRadius: theme.borderRadiuses.large, - border: theme.borders['fill-one'], - overflow: 'hidden', - display: 'flex', - minHeight: '454px', - '& > *': { flexShrink: 0 }, - '.contentWrap': { - width: '100%', - zIndex: 1, - }, - [mqs.sm]: { - backgroundImage: `url(${$bgPrefix}-md${$bgSuffix})`, - backgroundPosition: 'right center', - minHeight: '303px', - }, - // [mqs.md]: { - // backgroundImage: `url(${$bgPrefix}-lg${$bgSuffix})`, - // backgroundPosition: 'center center', - // }, - [mqs.lg]: { - backgroundImage: `url(${$bgPrefix}-xl${$bgSuffix})`, - backgroundPosition: 'right center', - }, - // [mqs.xl]: { - // backgroundImage: `url(${$bgPrefix}-lg${$bgSuffix})`, - // backgroundPosition: 'center center', - // }, - [mqs.max]: { - backgroundImage: `url(${$bgPrefix}-xl${$bgSuffix})`, - backgroundPosition: 'right center', - }, - [`&:hover [data-card-cta]`]: { - textDecoration: 'underline', - }, -})) - -export default function StackHero({ stack }: { stack: MinStack }) { - const imgSrcPart = knownStacks.has(stack.name) ? stack.name : 'data' - const numApps = stack?.collections?.[0]?.bundles?.length - const { Link } = useNavigationContext() - - return ( - -
-
-
-
- {stack.displayName} - {numApps ? {numApps} Apps : null} -
-
- } - > - Stack - -
-
- {stack.description} - -
View stack
-
-
-
-
- ) -} diff --git a/src/components/page-sections/PricingTable.tsx b/src/components/page-sections/PricingTable.tsx index 8271e638..e1739415 100644 --- a/src/components/page-sections/PricingTable.tsx +++ b/src/components/page-sections/PricingTable.tsx @@ -2,9 +2,25 @@ import { Button, CheckIcon, CloseIcon } from '@pluralsh/design-system' import styled from 'styled-components' +import { + breakpointIsGreaterOrEqual, + breakpointIsLessThan, +} from '@src/breakpoints' + +import { useBreakpoint } from '../contexts/BreakpointProvider' + export function PlanComparisonTableDesktop() { + const breakpoint = useBreakpoint() + + if (!breakpointIsGreaterOrEqual(breakpoint, 'md')) { + return null + } + return ( -
+
@@ -39,8 +55,17 @@ export function PlanComparisonTableDesktop() { ) } export function PlanComparisonTablesMobile() { + const breakpoint = useBreakpoint() + + if (!breakpointIsLessThan(breakpoint, 'md')) { + return null + } + return ( -
+
{plans.map((plan) => ( ->['data'] - -export type Callouts = (CalloutFragment | null)[] | null | undefined - -export async function getCommunityPageData() { - const { data, error } = await client.query< - PageCommunityQuery, - PageCommunityQueryVariables - >({ - query: PageCommunityDocument, - }) - - if (data?.page_community) { - cache = data?.page_community - } - - return { data: data?.page_community || cache, error } -} diff --git a/src/data/getFeaturedContributors.ts b/src/data/getFeaturedContributors.ts deleted file mode 100644 index bd6b49f4..00000000 --- a/src/data/getFeaturedContributors.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { directusClient as client } from '@src/apollo-client' -import { - FeaturedContributorsDocument, - type FeaturedContributorsQuery, - type FeaturedContributorsQueryVariables, -} from '@src/generated/graphqlDirectus' - -let cache: FeaturedContributorsQuery['featured_contributors'] | null = null - -export async function getFeaturedContributors() { - const { data, error } = await client.query< - FeaturedContributorsQuery, - FeaturedContributorsQueryVariables - >({ - query: FeaturedContributorsDocument, - }) - - if (data?.featured_contributors) { - cache = data?.featured_contributors - } - - return { data: data?.featured_contributors || cache, error } -} diff --git a/src/data/getSiteSettings.tsx b/src/data/getSiteSettings.tsx index 8ac34f96..eb46a006 100644 --- a/src/data/getSiteSettings.tsx +++ b/src/data/getSiteSettings.tsx @@ -1,5 +1,9 @@ +import { getImageUrl } from '@src/consts/routes' import { type NavList } from '@src/contexts/NavDataContext' -import { type ProductPageTinyFragment } from '@src/generated/graphqlDirectus' +import { + type ProductPageTinyFragment, + type SiteSettingsFragment, +} from '@src/generated/graphqlDirectus' type Solution = { slug?: string | null @@ -8,81 +12,12 @@ type Solution = { } export const getSiteSettings = ( + siteSettings: SiteSettingsFragment, solutions?: Solution[], products?: ProductPageTinyFragment[] ) => ({ - og_description: - 'Open-source application deployment, faster than ever without sacrificing compliance."', - partner_logos: { - items: [ - { - item: { - id: '1', - logo_dark: '/images/partner-logos/logo-coachhub-dark.svg', - logo_light: '/images/partner-logos/logo-coachhub-light.svg', - name: 'CoachHub', - slug: 'coachhub', - url: 'https://www.coachhub.com/', - width: 96, - }, - }, - { - item: { - id: '2', - logo_dark: '/images/partner-logos/logo-digitas-dark.png', - logo_light: '/images/partner-logos/logo-digitas-light.png', - name: 'Digitas', - slug: 'digitas', - url: 'https://www.digitas.com/', - width: 60, - }, - }, - { - item: { - id: '3', - logo_dark: '/images/partner-logos/logo-fnatic-dark.svg', - logo_light: '/images/partner-logos/logo-fnatic-light.svg', - name: 'Fnatic', - slug: 'fnatic', - url: 'https://fnatic.com/', - width: 52, - }, - }, - { - item: { - id: '4', - logo_dark: '/images/partner-logos/logo-fsn-dark.png', - logo_light: '/images/partner-logos/logo-fsn-light.png', - name: 'Fsn', - slug: 'fsn', - url: 'https://www.fsncapital.com/', - width: 58, - }, - }, - { - item: { - id: '5', - logo_dark: '/images/partner-logos/logo-justos-dark.png', - logo_light: '/images/partner-logos/logo-justos-light.png', - name: 'Justos', - slug: 'justos', - url: 'https://www.justos.com.br/', - width: 92, - }, - }, - { - item: { - id: '6', - logo_dark: '/images/partner-logos/logo-mott-mac-dark.png', - logo_light: '/images/partner-logos/logo-mott-mac-light.png', - name: 'Mot Mac', - slug: 'mot-mac', - url: 'https://www.mottmac.com/', - width: 58, - }, - }, - ], - }, + og_description: siteSettings.og_description ?? 'Plural', + og_image: getImageUrl(siteSettings.og_image), main_nav: { product: { id: 'product', @@ -182,24 +117,8 @@ export const getSiteSettings = ( ], }, }, - promo_banner_content: '', - promo_banner_url: '', }) -export type PartnerLogos = { - items: { - item: { - id: string - logo_dark: string - logo_light: string - name: string - slug: string - url: string - width: number - } - }[] -} - function getProductSubnav(products?: ProductPageTinyFragment[]): NavList[] { if (!products || !products.length) return [] diff --git a/src/generated/graphqlDirectus.ts b/src/generated/graphqlDirectus.ts index bdf496e1..0e70f9ce 100644 --- a/src/generated/graphqlDirectus.ts +++ b/src/generated/graphqlDirectus.ts @@ -26,22 +26,20 @@ export type Scalars = { export type Mutation = { __typename?: 'Mutation'; - create_apps_item?: Maybe; - create_apps_items: Array; create_article_cards_item?: Maybe; create_article_cards_items: Array; create_blog_cards_item?: Maybe; create_blog_cards_items: Array; - create_callouts_item?: Maybe; - create_callouts_items: Array; create_card_item?: Maybe; create_card_items: Array; + create_card_with_image_item?: Maybe; + create_card_with_image_items: Array; + create_card_with_image_rich_text_columns_item?: Maybe; + create_card_with_image_rich_text_columns_items: Array; create_cards_card_item?: Maybe; create_cards_card_items: Array; create_cards_item?: Maybe; create_cards_items: Array; - create_case_studies_item?: Maybe; - create_case_studies_items: Array; create_collapsible_lists_item?: Maybe; create_collapsible_lists_items: Array; create_collapsible_lists_items_item?: Maybe; @@ -66,10 +64,6 @@ export type Mutation = { create_customer_quote_items: Array; create_events_item?: Maybe; create_events_items: Array; - create_faqs_item?: Maybe; - create_faqs_items: Array; - create_featured_contributors_item?: Maybe; - create_featured_contributors_items: Array; create_hero_item?: Maybe; create_hero_items: Array; create_job_listings_item?: Maybe; @@ -84,10 +78,6 @@ export type Mutation = { create_multi_column_text_items: Array; create_multi_column_text_rich_text_columns_item?: Maybe; create_multi_column_text_rich_text_columns_items: Array; - create_nav_link_item?: Maybe; - create_nav_link_items: Array; - create_nav_list_item?: Maybe; - create_nav_list_items: Array; create_pricing_plan_features_item?: Maybe; create_pricing_plan_features_items: Array; create_pricing_plans_item?: Maybe; @@ -116,28 +106,24 @@ export type Mutation = { create_solutions_pages_items: Array; create_solutions_pages_solution_problems_item?: Maybe; create_solutions_pages_solution_problems_items: Array; - create_stacks_item?: Maybe; - create_stacks_items: Array; create_team_members_item?: Maybe; create_team_members_items: Array; create_two_column_text_item?: Maybe; create_two_column_text_items: Array; - delete_apps_item?: Maybe; - delete_apps_items?: Maybe; delete_article_cards_item?: Maybe; delete_article_cards_items?: Maybe; delete_blog_cards_item?: Maybe; delete_blog_cards_items?: Maybe; - delete_callouts_item?: Maybe; - delete_callouts_items?: Maybe; delete_card_item?: Maybe; delete_card_items?: Maybe; + delete_card_with_image_item?: Maybe; + delete_card_with_image_items?: Maybe; + delete_card_with_image_rich_text_columns_item?: Maybe; + delete_card_with_image_rich_text_columns_items?: Maybe; delete_cards_card_item?: Maybe; delete_cards_card_items?: Maybe; delete_cards_item?: Maybe; delete_cards_items?: Maybe; - delete_case_studies_item?: Maybe; - delete_case_studies_items?: Maybe; delete_collapsible_lists_item?: Maybe; delete_collapsible_lists_items?: Maybe; delete_collapsible_lists_items_item?: Maybe; @@ -162,10 +148,6 @@ export type Mutation = { delete_customer_quote_items?: Maybe; delete_events_item?: Maybe; delete_events_items?: Maybe; - delete_faqs_item?: Maybe; - delete_faqs_items?: Maybe; - delete_featured_contributors_item?: Maybe; - delete_featured_contributors_items?: Maybe; delete_hero_item?: Maybe; delete_hero_items?: Maybe; delete_job_listings_item?: Maybe; @@ -180,10 +162,6 @@ export type Mutation = { delete_multi_column_text_items?: Maybe; delete_multi_column_text_rich_text_columns_item?: Maybe; delete_multi_column_text_rich_text_columns_items?: Maybe; - delete_nav_link_item?: Maybe; - delete_nav_link_items?: Maybe; - delete_nav_list_item?: Maybe; - delete_nav_list_items?: Maybe; delete_pricing_plan_features_item?: Maybe; delete_pricing_plan_features_items?: Maybe; delete_pricing_plans_item?: Maybe; @@ -212,37 +190,31 @@ export type Mutation = { delete_solutions_pages_items?: Maybe; delete_solutions_pages_solution_problems_item?: Maybe; delete_solutions_pages_solution_problems_items?: Maybe; - delete_stacks_item?: Maybe; - delete_stacks_items?: Maybe; delete_team_members_item?: Maybe; delete_team_members_items?: Maybe; delete_two_column_text_item?: Maybe; delete_two_column_text_items?: Maybe; - update_app_defaults?: Maybe; - update_apps_batch: Array; - update_apps_item?: Maybe; - update_apps_items: Array; update_article_cards_batch: Array; update_article_cards_item?: Maybe; update_article_cards_items: Array; update_blog_cards_batch: Array; update_blog_cards_item?: Maybe; update_blog_cards_items: Array; - update_callouts_batch: Array; - update_callouts_item?: Maybe; - update_callouts_items: Array; update_card_batch: Array; update_card_item?: Maybe; update_card_items: Array; + update_card_with_image_batch: Array; + update_card_with_image_item?: Maybe; + update_card_with_image_items: Array; + update_card_with_image_rich_text_columns_batch: Array; + update_card_with_image_rich_text_columns_item?: Maybe; + update_card_with_image_rich_text_columns_items: Array; update_cards_batch: Array; update_cards_card_batch: Array; update_cards_card_item?: Maybe; update_cards_card_items: Array; update_cards_item?: Maybe; update_cards_items: Array; - update_case_studies_batch: Array; - update_case_studies_item?: Maybe; - update_case_studies_items: Array; update_collapsible_lists_batch: Array; update_collapsible_lists_item?: Maybe; update_collapsible_lists_items: Array; @@ -279,12 +251,6 @@ export type Mutation = { update_events_batch: Array; update_events_item?: Maybe; update_events_items: Array; - update_faqs_batch: Array; - update_faqs_item?: Maybe; - update_faqs_items: Array; - update_featured_contributors_batch: Array; - update_featured_contributors_item?: Maybe; - update_featured_contributors_items: Array; update_hero_batch: Array; update_hero_item?: Maybe; update_hero_items: Array; @@ -306,13 +272,6 @@ export type Mutation = { update_multi_column_text_rich_text_columns_batch: Array; update_multi_column_text_rich_text_columns_item?: Maybe; update_multi_column_text_rich_text_columns_items: Array; - update_nav_link_batch: Array; - update_nav_link_item?: Maybe; - update_nav_link_items: Array; - update_nav_list_batch: Array; - update_nav_list_item?: Maybe; - update_nav_list_items: Array; - update_page_community?: Maybe; update_page_homepage?: Maybe; update_page_legal?: Maybe; update_pricing_page?: Maybe; @@ -359,10 +318,6 @@ export type Mutation = { update_solutions_pages_solution_problems_batch: Array; update_solutions_pages_solution_problems_item?: Maybe; update_solutions_pages_solution_problems_items: Array; - update_stack_defaults?: Maybe; - update_stacks_batch: Array; - update_stacks_item?: Maybe; - update_stacks_items: Array; update_team_members_batch: Array; update_team_members_item?: Maybe; update_team_members_items: Array; @@ -372,22 +327,6 @@ export type Mutation = { }; -export type MutationCreate_Apps_ItemArgs = { - data: Create_Apps_Input; -}; - - -export type MutationCreate_Apps_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type MutationCreate_Article_Cards_ItemArgs = { data: Create_Article_Cards_Input; }; @@ -420,14 +359,14 @@ export type MutationCreate_Blog_Cards_ItemsArgs = { }; -export type MutationCreate_Callouts_ItemArgs = { - data: Create_Callouts_Input; +export type MutationCreate_Card_ItemArgs = { + data: Create_Card_Input; }; -export type MutationCreate_Callouts_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationCreate_Card_ItemsArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -436,14 +375,14 @@ export type MutationCreate_Callouts_ItemsArgs = { }; -export type MutationCreate_Card_ItemArgs = { - data: Create_Card_Input; +export type MutationCreate_Card_With_Image_ItemArgs = { + data: Create_Card_With_Image_Input; }; -export type MutationCreate_Card_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationCreate_Card_With_Image_ItemsArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -452,14 +391,14 @@ export type MutationCreate_Card_ItemsArgs = { }; -export type MutationCreate_Cards_Card_ItemArgs = { - data: Create_Cards_Card_Input; +export type MutationCreate_Card_With_Image_Rich_Text_Columns_ItemArgs = { + data: Create_Card_With_Image_Rich_Text_Columns_Input; }; -export type MutationCreate_Cards_Card_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationCreate_Card_With_Image_Rich_Text_Columns_ItemsArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -468,14 +407,14 @@ export type MutationCreate_Cards_Card_ItemsArgs = { }; -export type MutationCreate_Cards_ItemArgs = { - data: Create_Cards_Input; +export type MutationCreate_Cards_Card_ItemArgs = { + data: Create_Cards_Card_Input; }; -export type MutationCreate_Cards_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationCreate_Cards_Card_ItemsArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -484,14 +423,14 @@ export type MutationCreate_Cards_ItemsArgs = { }; -export type MutationCreate_Case_Studies_ItemArgs = { - data: Create_Case_Studies_Input; +export type MutationCreate_Cards_ItemArgs = { + data: Create_Cards_Input; }; -export type MutationCreate_Case_Studies_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationCreate_Cards_ItemsArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -692,38 +631,6 @@ export type MutationCreate_Events_ItemsArgs = { }; -export type MutationCreate_Faqs_ItemArgs = { - data: Create_Faqs_Input; -}; - - -export type MutationCreate_Faqs_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationCreate_Featured_Contributors_ItemArgs = { - data: Create_Featured_Contributors_Input; -}; - - -export type MutationCreate_Featured_Contributors_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type MutationCreate_Hero_ItemArgs = { data: Create_Hero_Input; }; @@ -836,38 +743,6 @@ export type MutationCreate_Multi_Column_Text_Rich_Text_Columns_ItemsArgs = { }; -export type MutationCreate_Nav_Link_ItemArgs = { - data: Create_Nav_Link_Input; -}; - - -export type MutationCreate_Nav_Link_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationCreate_Nav_List_ItemArgs = { - data: Create_Nav_List_Input; -}; - - -export type MutationCreate_Nav_List_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type MutationCreate_Pricing_Plan_Features_ItemArgs = { data: Create_Pricing_Plan_Features_Input; }; @@ -1092,22 +967,6 @@ export type MutationCreate_Solutions_Pages_Solution_Problems_ItemsArgs = { }; -export type MutationCreate_Stacks_ItemArgs = { - data: Create_Stacks_Input; -}; - - -export type MutationCreate_Stacks_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type MutationCreate_Team_Members_ItemArgs = { data: Create_Team_Members_Input; }; @@ -1140,16 +999,6 @@ export type MutationCreate_Two_Column_Text_ItemsArgs = { }; -export type MutationDelete_Apps_ItemArgs = { - id: Scalars['ID']['input']; -}; - - -export type MutationDelete_Apps_ItemsArgs = { - ids: Array>; -}; - - export type MutationDelete_Article_Cards_ItemArgs = { id: Scalars['ID']['input']; }; @@ -1170,52 +1019,52 @@ export type MutationDelete_Blog_Cards_ItemsArgs = { }; -export type MutationDelete_Callouts_ItemArgs = { +export type MutationDelete_Card_ItemArgs = { id: Scalars['ID']['input']; }; -export type MutationDelete_Callouts_ItemsArgs = { +export type MutationDelete_Card_ItemsArgs = { ids: Array>; }; -export type MutationDelete_Card_ItemArgs = { +export type MutationDelete_Card_With_Image_ItemArgs = { id: Scalars['ID']['input']; }; -export type MutationDelete_Card_ItemsArgs = { +export type MutationDelete_Card_With_Image_ItemsArgs = { ids: Array>; }; -export type MutationDelete_Cards_Card_ItemArgs = { +export type MutationDelete_Card_With_Image_Rich_Text_Columns_ItemArgs = { id: Scalars['ID']['input']; }; -export type MutationDelete_Cards_Card_ItemsArgs = { +export type MutationDelete_Card_With_Image_Rich_Text_Columns_ItemsArgs = { ids: Array>; }; -export type MutationDelete_Cards_ItemArgs = { +export type MutationDelete_Cards_Card_ItemArgs = { id: Scalars['ID']['input']; }; -export type MutationDelete_Cards_ItemsArgs = { +export type MutationDelete_Cards_Card_ItemsArgs = { ids: Array>; }; -export type MutationDelete_Case_Studies_ItemArgs = { +export type MutationDelete_Cards_ItemArgs = { id: Scalars['ID']['input']; }; -export type MutationDelete_Case_Studies_ItemsArgs = { +export type MutationDelete_Cards_ItemsArgs = { ids: Array>; }; @@ -1340,26 +1189,6 @@ export type MutationDelete_Events_ItemsArgs = { }; -export type MutationDelete_Faqs_ItemArgs = { - id: Scalars['ID']['input']; -}; - - -export type MutationDelete_Faqs_ItemsArgs = { - ids: Array>; -}; - - -export type MutationDelete_Featured_Contributors_ItemArgs = { - id: Scalars['ID']['input']; -}; - - -export type MutationDelete_Featured_Contributors_ItemsArgs = { - ids: Array>; -}; - - export type MutationDelete_Hero_ItemArgs = { id: Scalars['ID']['input']; }; @@ -1430,26 +1259,6 @@ export type MutationDelete_Multi_Column_Text_Rich_Text_Columns_ItemsArgs = { }; -export type MutationDelete_Nav_Link_ItemArgs = { - id: Scalars['ID']['input']; -}; - - -export type MutationDelete_Nav_Link_ItemsArgs = { - ids: Array>; -}; - - -export type MutationDelete_Nav_List_ItemArgs = { - id: Scalars['ID']['input']; -}; - - -export type MutationDelete_Nav_List_ItemsArgs = { - ids: Array>; -}; - - export type MutationDelete_Pricing_Plan_Features_ItemArgs = { id: Scalars['ID']['input']; }; @@ -1590,16 +1399,6 @@ export type MutationDelete_Solutions_Pages_Solution_Problems_ItemsArgs = { }; -export type MutationDelete_Stacks_ItemArgs = { - id: Scalars['ID']['input']; -}; - - -export type MutationDelete_Stacks_ItemsArgs = { - ids: Array>; -}; - - export type MutationDelete_Team_Members_ItemArgs = { id: Scalars['ID']['input']; }; @@ -1620,14 +1419,9 @@ export type MutationDelete_Two_Column_Text_ItemsArgs = { }; -export type MutationUpdate_App_DefaultsArgs = { - data: Update_App_Defaults_Input; -}; - - -export type MutationUpdate_Apps_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationUpdate_Article_Cards_BatchArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -1636,15 +1430,15 @@ export type MutationUpdate_Apps_BatchArgs = { }; -export type MutationUpdate_Apps_ItemArgs = { - data: Update_Apps_Input; +export type MutationUpdate_Article_Cards_ItemArgs = { + data: Update_Article_Cards_Input; id: Scalars['ID']['input']; }; -export type MutationUpdate_Apps_ItemsArgs = { - data: Update_Apps_Input; - filter?: InputMaybe; +export type MutationUpdate_Article_Cards_ItemsArgs = { + data: Update_Article_Cards_Input; + filter?: InputMaybe; ids: Array>; limit?: InputMaybe; offset?: InputMaybe; @@ -1654,9 +1448,9 @@ export type MutationUpdate_Apps_ItemsArgs = { }; -export type MutationUpdate_Article_Cards_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationUpdate_Blog_Cards_BatchArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -1665,15 +1459,15 @@ export type MutationUpdate_Article_Cards_BatchArgs = { }; -export type MutationUpdate_Article_Cards_ItemArgs = { - data: Update_Article_Cards_Input; +export type MutationUpdate_Blog_Cards_ItemArgs = { + data: Update_Blog_Cards_Input; id: Scalars['ID']['input']; }; -export type MutationUpdate_Article_Cards_ItemsArgs = { - data: Update_Article_Cards_Input; - filter?: InputMaybe; +export type MutationUpdate_Blog_Cards_ItemsArgs = { + data: Update_Blog_Cards_Input; + filter?: InputMaybe; ids: Array>; limit?: InputMaybe; offset?: InputMaybe; @@ -1683,9 +1477,9 @@ export type MutationUpdate_Article_Cards_ItemsArgs = { }; -export type MutationUpdate_Blog_Cards_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationUpdate_Card_BatchArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -1694,15 +1488,15 @@ export type MutationUpdate_Blog_Cards_BatchArgs = { }; -export type MutationUpdate_Blog_Cards_ItemArgs = { - data: Update_Blog_Cards_Input; +export type MutationUpdate_Card_ItemArgs = { + data: Update_Card_Input; id: Scalars['ID']['input']; }; -export type MutationUpdate_Blog_Cards_ItemsArgs = { - data: Update_Blog_Cards_Input; - filter?: InputMaybe; +export type MutationUpdate_Card_ItemsArgs = { + data: Update_Card_Input; + filter?: InputMaybe; ids: Array>; limit?: InputMaybe; offset?: InputMaybe; @@ -1712,9 +1506,9 @@ export type MutationUpdate_Blog_Cards_ItemsArgs = { }; -export type MutationUpdate_Callouts_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationUpdate_Card_With_Image_BatchArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -1723,15 +1517,15 @@ export type MutationUpdate_Callouts_BatchArgs = { }; -export type MutationUpdate_Callouts_ItemArgs = { - data: Update_Callouts_Input; +export type MutationUpdate_Card_With_Image_ItemArgs = { + data: Update_Card_With_Image_Input; id: Scalars['ID']['input']; }; -export type MutationUpdate_Callouts_ItemsArgs = { - data: Update_Callouts_Input; - filter?: InputMaybe; +export type MutationUpdate_Card_With_Image_ItemsArgs = { + data: Update_Card_With_Image_Input; + filter?: InputMaybe; ids: Array>; limit?: InputMaybe; offset?: InputMaybe; @@ -1741,9 +1535,9 @@ export type MutationUpdate_Callouts_ItemsArgs = { }; -export type MutationUpdate_Card_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationUpdate_Card_With_Image_Rich_Text_Columns_BatchArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -1752,15 +1546,15 @@ export type MutationUpdate_Card_BatchArgs = { }; -export type MutationUpdate_Card_ItemArgs = { - data: Update_Card_Input; +export type MutationUpdate_Card_With_Image_Rich_Text_Columns_ItemArgs = { + data: Update_Card_With_Image_Rich_Text_Columns_Input; id: Scalars['ID']['input']; }; -export type MutationUpdate_Card_ItemsArgs = { - data: Update_Card_Input; - filter?: InputMaybe; +export type MutationUpdate_Card_With_Image_Rich_Text_Columns_ItemsArgs = { + data: Update_Card_With_Image_Rich_Text_Columns_Input; + filter?: InputMaybe; ids: Array>; limit?: InputMaybe; offset?: InputMaybe; @@ -1828,35 +1622,6 @@ export type MutationUpdate_Cards_ItemsArgs = { }; -export type MutationUpdate_Case_Studies_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Case_Studies_ItemArgs = { - data: Update_Case_Studies_Input; - id: Scalars['ID']['input']; -}; - - -export type MutationUpdate_Case_Studies_ItemsArgs = { - data: Update_Case_Studies_Input; - filter?: InputMaybe; - ids: Array>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type MutationUpdate_Collapsible_Lists_BatchArgs = { data?: InputMaybe>; filter?: InputMaybe; @@ -2205,9 +1970,9 @@ export type MutationUpdate_Events_ItemsArgs = { }; -export type MutationUpdate_Faqs_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationUpdate_Hero_BatchArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -2216,15 +1981,15 @@ export type MutationUpdate_Faqs_BatchArgs = { }; -export type MutationUpdate_Faqs_ItemArgs = { - data: Update_Faqs_Input; +export type MutationUpdate_Hero_ItemArgs = { + data: Update_Hero_Input; id: Scalars['ID']['input']; }; -export type MutationUpdate_Faqs_ItemsArgs = { - data: Update_Faqs_Input; - filter?: InputMaybe; +export type MutationUpdate_Hero_ItemsArgs = { + data: Update_Hero_Input; + filter?: InputMaybe; ids: Array>; limit?: InputMaybe; offset?: InputMaybe; @@ -2234,9 +1999,9 @@ export type MutationUpdate_Faqs_ItemsArgs = { }; -export type MutationUpdate_Featured_Contributors_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationUpdate_Job_Listings_BatchArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -2245,15 +2010,15 @@ export type MutationUpdate_Featured_Contributors_BatchArgs = { }; -export type MutationUpdate_Featured_Contributors_ItemArgs = { - data: Update_Featured_Contributors_Input; +export type MutationUpdate_Job_Listings_ItemArgs = { + data: Update_Job_Listings_Input; id: Scalars['ID']['input']; }; -export type MutationUpdate_Featured_Contributors_ItemsArgs = { - data: Update_Featured_Contributors_Input; - filter?: InputMaybe; +export type MutationUpdate_Job_Listings_ItemsArgs = { + data: Update_Job_Listings_Input; + filter?: InputMaybe; ids: Array>; limit?: InputMaybe; offset?: InputMaybe; @@ -2263,9 +2028,9 @@ export type MutationUpdate_Featured_Contributors_ItemsArgs = { }; -export type MutationUpdate_Hero_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; +export type MutationUpdate_Large_Image_BatchArgs = { + data?: InputMaybe>; + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -2274,66 +2039,8 @@ export type MutationUpdate_Hero_BatchArgs = { }; -export type MutationUpdate_Hero_ItemArgs = { - data: Update_Hero_Input; - id: Scalars['ID']['input']; -}; - - -export type MutationUpdate_Hero_ItemsArgs = { - data: Update_Hero_Input; - filter?: InputMaybe; - ids: Array>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Job_Listings_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Job_Listings_ItemArgs = { - data: Update_Job_Listings_Input; - id: Scalars['ID']['input']; -}; - - -export type MutationUpdate_Job_Listings_ItemsArgs = { - data: Update_Job_Listings_Input; - filter?: InputMaybe; - ids: Array>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Large_Image_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Large_Image_ItemArgs = { - data: Update_Large_Image_Input; +export type MutationUpdate_Large_Image_ItemArgs = { + data: Update_Large_Image_Input; id: Scalars['ID']['input']; }; @@ -2466,69 +2173,6 @@ export type MutationUpdate_Multi_Column_Text_Rich_Text_Columns_ItemsArgs = { }; -export type MutationUpdate_Nav_Link_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Nav_Link_ItemArgs = { - data: Update_Nav_Link_Input; - id: Scalars['ID']['input']; -}; - - -export type MutationUpdate_Nav_Link_ItemsArgs = { - data: Update_Nav_Link_Input; - filter?: InputMaybe; - ids: Array>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Nav_List_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Nav_List_ItemArgs = { - data: Update_Nav_List_Input; - id: Scalars['ID']['input']; -}; - - -export type MutationUpdate_Nav_List_ItemsArgs = { - data: Update_Nav_List_Input; - filter?: InputMaybe; - ids: Array>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Page_CommunityArgs = { - data: Update_Page_Community_Input; -}; - - export type MutationUpdate_Page_HomepageArgs = { data: Update_Page_Homepage_Input; }; @@ -2955,40 +2599,6 @@ export type MutationUpdate_Solutions_Pages_Solution_Problems_ItemsArgs = { }; -export type MutationUpdate_Stack_DefaultsArgs = { - data: Update_Stack_Defaults_Input; -}; - - -export type MutationUpdate_Stacks_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Stacks_ItemArgs = { - data: Update_Stacks_Input; - id: Scalars['ID']['input']; -}; - - -export type MutationUpdate_Stacks_ItemsArgs = { - data: Update_Stacks_Input; - filter?: InputMaybe; - ids: Array>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type MutationUpdate_Team_Members_BatchArgs = { data?: InputMaybe>; filter?: InputMaybe; @@ -3048,31 +2658,27 @@ export type MutationUpdate_Two_Column_Text_ItemsArgs = { export type Query = { __typename?: 'Query'; - app_defaults?: Maybe; - apps: Array; - apps_aggregated: Array; - apps_by_id?: Maybe; article_cards: Array; article_cards_aggregated: Array; article_cards_by_id?: Maybe; blog_cards: Array; blog_cards_aggregated: Array; blog_cards_by_id?: Maybe; - callouts: Array; - callouts_aggregated: Array; - callouts_by_id?: Maybe; card: Array; card_aggregated: Array; card_by_id?: Maybe; + card_with_image: Array; + card_with_image_aggregated: Array; + card_with_image_by_id?: Maybe; + card_with_image_rich_text_columns: Array; + card_with_image_rich_text_columns_aggregated: Array; + card_with_image_rich_text_columns_by_id?: Maybe; cards: Array; cards_aggregated: Array; cards_by_id?: Maybe; cards_card: Array; cards_card_aggregated: Array; cards_card_by_id?: Maybe; - case_studies: Array; - case_studies_aggregated: Array; - case_studies_by_id?: Maybe; collapsible_lists: Array; collapsible_lists_aggregated: Array; collapsible_lists_by_id?: Maybe; @@ -3109,12 +2715,6 @@ export type Query = { events: Array; events_aggregated: Array; events_by_id?: Maybe; - faqs: Array; - faqs_aggregated: Array; - faqs_by_id?: Maybe; - featured_contributors: Array; - featured_contributors_aggregated: Array; - featured_contributors_by_id?: Maybe; hero: Array; hero_aggregated: Array; hero_by_id?: Maybe; @@ -3136,13 +2736,6 @@ export type Query = { multi_column_text_rich_text_columns: Array; multi_column_text_rich_text_columns_aggregated: Array; multi_column_text_rich_text_columns_by_id?: Maybe; - nav_link: Array; - nav_link_aggregated: Array; - nav_link_by_id?: Maybe; - nav_list: Array; - nav_list_aggregated: Array; - nav_list_by_id?: Maybe; - page_community?: Maybe; page_homepage?: Maybe; page_legal?: Maybe; pricing_page?: Maybe; @@ -3189,10 +2782,6 @@ export type Query = { solutions_pages_solution_problems: Array; solutions_pages_solution_problems_aggregated: Array; solutions_pages_solution_problems_by_id?: Maybe; - stack_defaults?: Maybe; - stacks: Array; - stacks_aggregated: Array; - stacks_by_id?: Maybe; team_members: Array; team_members_aggregated: Array; team_members_by_id?: Maybe; @@ -3202,32 +2791,6 @@ export type Query = { }; -export type QueryAppsArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryApps_AggregatedArgs = { - filter?: InputMaybe; - groupBy?: InputMaybe>>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryApps_By_IdArgs = { - id: Scalars['ID']['input']; -}; - - export type QueryArticle_CardsArgs = { filter?: InputMaybe; limit?: InputMaybe; @@ -3280,8 +2843,8 @@ export type QueryBlog_Cards_By_IdArgs = { }; -export type QueryCalloutsArgs = { - filter?: InputMaybe; +export type QueryCardArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -3290,8 +2853,8 @@ export type QueryCalloutsArgs = { }; -export type QueryCallouts_AggregatedArgs = { - filter?: InputMaybe; +export type QueryCard_AggregatedArgs = { + filter?: InputMaybe; groupBy?: InputMaybe>>; limit?: InputMaybe; offset?: InputMaybe; @@ -3301,13 +2864,13 @@ export type QueryCallouts_AggregatedArgs = { }; -export type QueryCallouts_By_IdArgs = { +export type QueryCard_By_IdArgs = { id: Scalars['ID']['input']; }; -export type QueryCardArgs = { - filter?: InputMaybe; +export type QueryCard_With_ImageArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -3316,8 +2879,8 @@ export type QueryCardArgs = { }; -export type QueryCard_AggregatedArgs = { - filter?: InputMaybe; +export type QueryCard_With_Image_AggregatedArgs = { + filter?: InputMaybe; groupBy?: InputMaybe>>; limit?: InputMaybe; offset?: InputMaybe; @@ -3327,13 +2890,13 @@ export type QueryCard_AggregatedArgs = { }; -export type QueryCard_By_IdArgs = { +export type QueryCard_With_Image_By_IdArgs = { id: Scalars['ID']['input']; }; -export type QueryCardsArgs = { - filter?: InputMaybe; +export type QueryCard_With_Image_Rich_Text_ColumnsArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -3342,8 +2905,8 @@ export type QueryCardsArgs = { }; -export type QueryCards_AggregatedArgs = { - filter?: InputMaybe; +export type QueryCard_With_Image_Rich_Text_Columns_AggregatedArgs = { + filter?: InputMaybe; groupBy?: InputMaybe>>; limit?: InputMaybe; offset?: InputMaybe; @@ -3353,13 +2916,13 @@ export type QueryCards_AggregatedArgs = { }; -export type QueryCards_By_IdArgs = { +export type QueryCard_With_Image_Rich_Text_Columns_By_IdArgs = { id: Scalars['ID']['input']; }; -export type QueryCards_CardArgs = { - filter?: InputMaybe; +export type QueryCardsArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -3368,8 +2931,8 @@ export type QueryCards_CardArgs = { }; -export type QueryCards_Card_AggregatedArgs = { - filter?: InputMaybe; +export type QueryCards_AggregatedArgs = { + filter?: InputMaybe; groupBy?: InputMaybe>>; limit?: InputMaybe; offset?: InputMaybe; @@ -3379,13 +2942,13 @@ export type QueryCards_Card_AggregatedArgs = { }; -export type QueryCards_Card_By_IdArgs = { +export type QueryCards_By_IdArgs = { id: Scalars['ID']['input']; }; -export type QueryCase_StudiesArgs = { - filter?: InputMaybe; +export type QueryCards_CardArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -3394,8 +2957,8 @@ export type QueryCase_StudiesArgs = { }; -export type QueryCase_Studies_AggregatedArgs = { - filter?: InputMaybe; +export type QueryCards_Card_AggregatedArgs = { + filter?: InputMaybe; groupBy?: InputMaybe>>; limit?: InputMaybe; offset?: InputMaybe; @@ -3405,7 +2968,7 @@ export type QueryCase_Studies_AggregatedArgs = { }; -export type QueryCase_Studies_By_IdArgs = { +export type QueryCards_Card_By_IdArgs = { id: Scalars['ID']['input']; }; @@ -3722,58 +3285,6 @@ export type QueryEvents_By_IdArgs = { }; -export type QueryFaqsArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryFaqs_AggregatedArgs = { - filter?: InputMaybe; - groupBy?: InputMaybe>>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryFaqs_By_IdArgs = { - id: Scalars['ID']['input']; -}; - - -export type QueryFeatured_ContributorsArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryFeatured_Contributors_AggregatedArgs = { - filter?: InputMaybe; - groupBy?: InputMaybe>>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryFeatured_Contributors_By_IdArgs = { - id: Scalars['ID']['input']; -}; - - export type QueryHeroArgs = { filter?: InputMaybe; limit?: InputMaybe; @@ -3956,8 +3467,8 @@ export type QueryMulti_Column_Text_Rich_Text_Columns_By_IdArgs = { }; -export type QueryNav_LinkArgs = { - filter?: InputMaybe; +export type QueryPricing_Plan_FeaturesArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -3966,8 +3477,8 @@ export type QueryNav_LinkArgs = { }; -export type QueryNav_Link_AggregatedArgs = { - filter?: InputMaybe; +export type QueryPricing_Plan_Features_AggregatedArgs = { + filter?: InputMaybe; groupBy?: InputMaybe>>; limit?: InputMaybe; offset?: InputMaybe; @@ -3977,13 +3488,13 @@ export type QueryNav_Link_AggregatedArgs = { }; -export type QueryNav_Link_By_IdArgs = { +export type QueryPricing_Plan_Features_By_IdArgs = { id: Scalars['ID']['input']; }; -export type QueryNav_ListArgs = { - filter?: InputMaybe; +export type QueryPricing_PlansArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -3992,8 +3503,8 @@ export type QueryNav_ListArgs = { }; -export type QueryNav_List_AggregatedArgs = { - filter?: InputMaybe; +export type QueryPricing_Plans_AggregatedArgs = { + filter?: InputMaybe; groupBy?: InputMaybe>>; limit?: InputMaybe; offset?: InputMaybe; @@ -4003,13 +3514,13 @@ export type QueryNav_List_AggregatedArgs = { }; -export type QueryNav_List_By_IdArgs = { +export type QueryPricing_Plans_By_IdArgs = { id: Scalars['ID']['input']; }; -export type QueryPricing_Plan_FeaturesArgs = { - filter?: InputMaybe; +export type QueryProduct_FeaturesArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -4018,8 +3529,8 @@ export type QueryPricing_Plan_FeaturesArgs = { }; -export type QueryPricing_Plan_Features_AggregatedArgs = { - filter?: InputMaybe; +export type QueryProduct_Features_AggregatedArgs = { + filter?: InputMaybe; groupBy?: InputMaybe>>; limit?: InputMaybe; offset?: InputMaybe; @@ -4029,13 +3540,13 @@ export type QueryPricing_Plan_Features_AggregatedArgs = { }; -export type QueryPricing_Plan_Features_By_IdArgs = { +export type QueryProduct_Features_By_IdArgs = { id: Scalars['ID']['input']; }; -export type QueryPricing_PlansArgs = { - filter?: InputMaybe; +export type QueryProduct_PagesArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -4044,8 +3555,8 @@ export type QueryPricing_PlansArgs = { }; -export type QueryPricing_Plans_AggregatedArgs = { - filter?: InputMaybe; +export type QueryProduct_Pages_AggregatedArgs = { + filter?: InputMaybe; groupBy?: InputMaybe>>; limit?: InputMaybe; offset?: InputMaybe; @@ -4055,13 +3566,13 @@ export type QueryPricing_Plans_AggregatedArgs = { }; -export type QueryPricing_Plans_By_IdArgs = { +export type QueryProduct_Pages_By_IdArgs = { id: Scalars['ID']['input']; }; -export type QueryProduct_FeaturesArgs = { - filter?: InputMaybe; +export type QueryQuote_ListsArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -4070,60 +3581,8 @@ export type QueryProduct_FeaturesArgs = { }; -export type QueryProduct_Features_AggregatedArgs = { - filter?: InputMaybe; - groupBy?: InputMaybe>>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryProduct_Features_By_IdArgs = { - id: Scalars['ID']['input']; -}; - - -export type QueryProduct_PagesArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryProduct_Pages_AggregatedArgs = { - filter?: InputMaybe; - groupBy?: InputMaybe>>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryProduct_Pages_By_IdArgs = { - id: Scalars['ID']['input']; -}; - - -export type QueryQuote_ListsArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryQuote_Lists_AggregatedArgs = { - filter?: InputMaybe; +export type QueryQuote_Lists_AggregatedArgs = { + filter?: InputMaybe; groupBy?: InputMaybe>>; limit?: InputMaybe; offset?: InputMaybe; @@ -4372,32 +3831,6 @@ export type QuerySolutions_Pages_Solution_Problems_By_IdArgs = { }; -export type QueryStacksArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryStacks_AggregatedArgs = { - filter?: InputMaybe; - groupBy?: InputMaybe>>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryStacks_By_IdArgs = { - id: Scalars['ID']['input']; -}; - - export type QueryTeam_MembersArgs = { filter?: InputMaybe; limit?: InputMaybe; @@ -4449,138 +3882,6 @@ export type QueryTwo_Column_Text_By_IdArgs = { id: Scalars['ID']['input']; }; -export type App_Defaults = { - __typename?: 'app_defaults'; - case_study?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - id: Scalars['ID']['output']; - quotes?: Maybe; - secondary_text?: Maybe; - secondary_title?: Maybe; - user_updated?: Maybe; -}; - - -export type App_DefaultsCase_StudyArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type App_DefaultsQuotesArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type App_DefaultsUser_UpdatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Apps = { - __typename?: 'apps'; - case_study?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - heroVideo?: Maybe; - /** Optional - Default comes from main Plural API */ - hero_text?: Maybe; - id: Scalars['ID']['output']; - name?: Maybe; - /** Optional - Default set in App Defaults */ - secondary_text?: Maybe; - /** Optional - Default set in App Defaults */ - secondary_title?: Maybe; - user_updated?: Maybe; -}; - - -export type AppsCase_StudyArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type AppsUser_UpdatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Apps_Aggregated = { - __typename?: 'apps_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; - countAll?: Maybe; - countDistinct?: Maybe; - group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; -}; - -export type Apps_Aggregated_Count = { - __typename?: 'apps_aggregated_count'; - /** Use to override default case study on individual app page */ - case_study?: Maybe; - date_updated?: Maybe; - heroVideo?: Maybe; - /** Optional - Default comes from main Plural API */ - hero_text?: Maybe; - id?: Maybe; - name?: Maybe; - /** Optional - Default set in App Defaults */ - secondary_text?: Maybe; - /** Optional - Default set in App Defaults */ - secondary_title?: Maybe; - user_updated?: Maybe; -}; - -export type Apps_Aggregated_Fields = { - __typename?: 'apps_aggregated_fields'; - /** Use to override default case study on individual app page */ - case_study?: Maybe; - id?: Maybe; -}; - -export type Apps_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - case_study?: InputMaybe; - date_updated?: InputMaybe; - date_updated_func?: InputMaybe; - heroVideo?: InputMaybe; - hero_text?: InputMaybe; - id?: InputMaybe; - name?: InputMaybe; - secondary_text?: InputMaybe; - secondary_title?: InputMaybe; - user_updated?: InputMaybe; -}; - export type Article_Cards = { __typename?: 'article_cards'; article_card_id?: Maybe; @@ -4792,112 +4093,6 @@ export type Boolean_Filter_Operators = { _null?: InputMaybe; }; -export type Callouts = { - __typename?: 'callouts'; - callout_id?: Maybe; - category?: Maybe; - content?: Maybe; - ctas?: Maybe; - ctas_func?: Maybe; - date_created?: Maybe; - date_created_func?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - id: Scalars['ID']['output']; - sort?: Maybe; - status?: Maybe; - title?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; -}; - - -export type CalloutsCallout_IdArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type CalloutsUser_CreatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type CalloutsUser_UpdatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Callouts_Aggregated = { - __typename?: 'callouts_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; - countAll?: Maybe; - countDistinct?: Maybe; - group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; -}; - -export type Callouts_Aggregated_Count = { - __typename?: 'callouts_aggregated_count'; - callout_id?: Maybe; - category?: Maybe; - content?: Maybe; - ctas?: Maybe; - date_created?: Maybe; - date_updated?: Maybe; - id?: Maybe; - sort?: Maybe; - status?: Maybe; - title?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; -}; - -export type Callouts_Aggregated_Fields = { - __typename?: 'callouts_aggregated_fields'; - callout_id?: Maybe; - id?: Maybe; - sort?: Maybe; -}; - -export type Callouts_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - callout_id?: InputMaybe; - category?: InputMaybe; - content?: InputMaybe; - ctas?: InputMaybe; - ctas_func?: InputMaybe; - date_created?: InputMaybe; - date_created_func?: InputMaybe; - date_updated?: InputMaybe; - date_updated_func?: InputMaybe; - id?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - export type Card = { __typename?: 'card'; body_text: Scalars['String']['output']; @@ -4991,23 +4186,29 @@ export type Card_Filter = { user_updated?: InputMaybe; }; -export type Cards = { - __typename?: 'cards'; - cards?: Maybe>>; - cards_func?: Maybe; +export type Card_With_Image = { + __typename?: 'card_with_image'; + body_text?: Maybe; + bullets?: Maybe>>; + bullets_func?: Maybe; + cta_text?: Maybe; + cta_url?: Maybe; date_created?: Maybe; date_created_func?: Maybe; date_updated?: Maybe; date_updated_func?: Maybe; + heading?: Maybe; id: Scalars['ID']['output']; + image?: Maybe; spacing?: Maybe; + theme: Scalars['String']['output']; user_created?: Maybe; user_updated?: Maybe; }; -export type CardsCardsArgs = { - filter?: InputMaybe; +export type Card_With_ImageBulletsArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -5016,7 +4217,17 @@ export type CardsCardsArgs = { }; -export type CardsUser_CreatedArgs = { +export type Card_With_ImageImageArgs = { + filter?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + page?: InputMaybe; + search?: InputMaybe; + sort?: InputMaybe>>; +}; + + +export type Card_With_ImageUser_CreatedArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; @@ -5026,7 +4237,7 @@ export type CardsUser_CreatedArgs = { }; -export type CardsUser_UpdatedArgs = { +export type Card_With_ImageUser_UpdatedArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; @@ -5035,46 +4246,73 @@ export type CardsUser_UpdatedArgs = { sort?: InputMaybe>>; }; -export type Cards_Aggregated = { - __typename?: 'cards_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; +export type Card_With_Image_Aggregated = { + __typename?: 'card_with_image_aggregated'; + avg?: Maybe; + avgDistinct?: Maybe; + count?: Maybe; countAll?: Maybe; - countDistinct?: Maybe; + countDistinct?: Maybe; group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; + max?: Maybe; + min?: Maybe; + sum?: Maybe; + sumDistinct?: Maybe; }; -export type Cards_Aggregated_Count = { - __typename?: 'cards_aggregated_count'; - cards?: Maybe; +export type Card_With_Image_Aggregated_Count = { + __typename?: 'card_with_image_aggregated_count'; + body_text?: Maybe; + bullets?: Maybe; + cta_text?: Maybe; + cta_url?: Maybe; date_created?: Maybe; date_updated?: Maybe; + heading?: Maybe; id?: Maybe; + image?: Maybe; spacing?: Maybe; + theme?: Maybe; user_created?: Maybe; user_updated?: Maybe; }; -export type Cards_Aggregated_Fields = { - __typename?: 'cards_aggregated_fields'; +export type Card_With_Image_Aggregated_Fields = { + __typename?: 'card_with_image_aggregated_fields'; id?: Maybe; }; -export type Cards_Card = { - __typename?: 'cards_card'; - card_id?: Maybe; - cards_id?: Maybe; +export type Card_With_Image_Filter = { + _and?: InputMaybe>>; + _or?: InputMaybe>>; + body_text?: InputMaybe; + bullets?: InputMaybe; + bullets_func?: InputMaybe; + cta_text?: InputMaybe; + cta_url?: InputMaybe; + date_created?: InputMaybe; + date_created_func?: InputMaybe; + date_updated?: InputMaybe; + date_updated_func?: InputMaybe; + heading?: InputMaybe; + id?: InputMaybe; + image?: InputMaybe; + spacing?: InputMaybe; + theme?: InputMaybe; + user_created?: InputMaybe; + user_updated?: InputMaybe; +}; + +export type Card_With_Image_Rich_Text_Columns = { + __typename?: 'card_with_image_rich_text_columns'; + card_with_image_id?: Maybe; id: Scalars['ID']['output']; + rich_text_columns_id?: Maybe; }; -export type Cards_CardCard_IdArgs = { - filter?: InputMaybe; +export type Card_With_Image_Rich_Text_ColumnsCard_With_Image_IdArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -5083,8 +4321,8 @@ export type Cards_CardCard_IdArgs = { }; -export type Cards_CardCards_IdArgs = { - filter?: InputMaybe; +export type Card_With_Image_Rich_Text_ColumnsRich_Text_Columns_IdArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -5092,83 +4330,59 @@ export type Cards_CardCards_IdArgs = { sort?: InputMaybe>>; }; -export type Cards_Card_Aggregated = { - __typename?: 'cards_card_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; +export type Card_With_Image_Rich_Text_Columns_Aggregated = { + __typename?: 'card_with_image_rich_text_columns_aggregated'; + avg?: Maybe; + avgDistinct?: Maybe; + count?: Maybe; countAll?: Maybe; - countDistinct?: Maybe; + countDistinct?: Maybe; group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; + max?: Maybe; + min?: Maybe; + sum?: Maybe; + sumDistinct?: Maybe; }; -export type Cards_Card_Aggregated_Count = { - __typename?: 'cards_card_aggregated_count'; - card_id?: Maybe; - cards_id?: Maybe; +export type Card_With_Image_Rich_Text_Columns_Aggregated_Count = { + __typename?: 'card_with_image_rich_text_columns_aggregated_count'; + card_with_image_id?: Maybe; id?: Maybe; + rich_text_columns_id?: Maybe; }; -export type Cards_Card_Aggregated_Fields = { - __typename?: 'cards_card_aggregated_fields'; - card_id?: Maybe; - cards_id?: Maybe; +export type Card_With_Image_Rich_Text_Columns_Aggregated_Fields = { + __typename?: 'card_with_image_rich_text_columns_aggregated_fields'; + card_with_image_id?: Maybe; id?: Maybe; + rich_text_columns_id?: Maybe; }; -export type Cards_Card_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - card_id?: InputMaybe; - cards_id?: InputMaybe; - id?: InputMaybe; -}; - -export type Cards_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - cards?: InputMaybe; - cards_func?: InputMaybe; - date_created?: InputMaybe; - date_created_func?: InputMaybe; - date_updated?: InputMaybe; - date_updated_func?: InputMaybe; +export type Card_With_Image_Rich_Text_Columns_Filter = { + _and?: InputMaybe>>; + _or?: InputMaybe>>; + card_with_image_id?: InputMaybe; id?: InputMaybe; - spacing?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; + rich_text_columns_id?: InputMaybe; }; -export type Case_Studies = { - __typename?: 'case_studies'; - case_study_id?: Maybe; - content?: Maybe; - ctas?: Maybe; - ctas_func?: Maybe; +export type Cards = { + __typename?: 'cards'; + cards?: Maybe>>; + cards_func?: Maybe; date_created?: Maybe; date_created_func?: Maybe; date_updated?: Maybe; date_updated_func?: Maybe; - hero_image?: Maybe; id: Scalars['ID']['output']; - label?: Maybe; - slug?: Maybe; - stack_apps?: Maybe; - stack_apps_func?: Maybe; - stack_label?: Maybe; - status?: Maybe; - title?: Maybe; + spacing?: Maybe; user_created?: Maybe; user_updated?: Maybe; }; -export type Case_StudiesCase_Study_IdArgs = { - filter?: InputMaybe; +export type CardsCardsArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -5177,8 +4391,8 @@ export type Case_StudiesCase_Study_IdArgs = { }; -export type Case_StudiesHero_ImageArgs = { - filter?: InputMaybe; +export type CardsUser_CreatedArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -5187,7 +4401,7 @@ export type Case_StudiesHero_ImageArgs = { }; -export type Case_StudiesUser_CreatedArgs = { +export type CardsUser_UpdatedArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; @@ -5196,9 +4410,56 @@ export type Case_StudiesUser_CreatedArgs = { sort?: InputMaybe>>; }; +export type Cards_Aggregated = { + __typename?: 'cards_aggregated'; + avg?: Maybe; + avgDistinct?: Maybe; + count?: Maybe; + countAll?: Maybe; + countDistinct?: Maybe; + group?: Maybe; + max?: Maybe; + min?: Maybe; + sum?: Maybe; + sumDistinct?: Maybe; +}; + +export type Cards_Aggregated_Count = { + __typename?: 'cards_aggregated_count'; + cards?: Maybe; + date_created?: Maybe; + date_updated?: Maybe; + id?: Maybe; + spacing?: Maybe; + user_created?: Maybe; + user_updated?: Maybe; +}; -export type Case_StudiesUser_UpdatedArgs = { - filter?: InputMaybe; +export type Cards_Aggregated_Fields = { + __typename?: 'cards_aggregated_fields'; + id?: Maybe; +}; + +export type Cards_Card = { + __typename?: 'cards_card'; + card_id?: Maybe; + cards_id?: Maybe; + id: Scalars['ID']['output']; +}; + + +export type Cards_CardCard_IdArgs = { + filter?: InputMaybe; + limit?: InputMaybe; + offset?: InputMaybe; + page?: InputMaybe; + search?: InputMaybe; + sort?: InputMaybe>>; +}; + + +export type Cards_CardCards_IdArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -5206,65 +4467,53 @@ export type Case_StudiesUser_UpdatedArgs = { sort?: InputMaybe>>; }; -export type Case_Studies_Aggregated = { - __typename?: 'case_studies_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; +export type Cards_Card_Aggregated = { + __typename?: 'cards_card_aggregated'; + avg?: Maybe; + avgDistinct?: Maybe; + count?: Maybe; countAll?: Maybe; - countDistinct?: Maybe; + countDistinct?: Maybe; group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; + max?: Maybe; + min?: Maybe; + sum?: Maybe; + sumDistinct?: Maybe; }; -export type Case_Studies_Aggregated_Count = { - __typename?: 'case_studies_aggregated_count'; - case_study_id?: Maybe; - content?: Maybe; - ctas?: Maybe; - date_created?: Maybe; - date_updated?: Maybe; - hero_image?: Maybe; +export type Cards_Card_Aggregated_Count = { + __typename?: 'cards_card_aggregated_count'; + card_id?: Maybe; + cards_id?: Maybe; id?: Maybe; - label?: Maybe; - slug?: Maybe; - stack_apps?: Maybe; - stack_label?: Maybe; - status?: Maybe; - title?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; }; -export type Case_Studies_Aggregated_Fields = { - __typename?: 'case_studies_aggregated_fields'; - case_study_id?: Maybe; +export type Cards_Card_Aggregated_Fields = { + __typename?: 'cards_card_aggregated_fields'; + card_id?: Maybe; + cards_id?: Maybe; id?: Maybe; }; -export type Case_Studies_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - case_study_id?: InputMaybe; - content?: InputMaybe; - ctas?: InputMaybe; - ctas_func?: InputMaybe; +export type Cards_Card_Filter = { + _and?: InputMaybe>>; + _or?: InputMaybe>>; + card_id?: InputMaybe; + cards_id?: InputMaybe; + id?: InputMaybe; +}; + +export type Cards_Filter = { + _and?: InputMaybe>>; + _or?: InputMaybe>>; + cards?: InputMaybe; + cards_func?: InputMaybe; date_created?: InputMaybe; date_created_func?: InputMaybe; date_updated?: InputMaybe; date_updated_func?: InputMaybe; - hero_image?: InputMaybe; id?: InputMaybe; - label?: InputMaybe; - slug?: InputMaybe; - stack_apps?: InputMaybe; - stack_apps_func?: InputMaybe; - stack_label?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; + spacing?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; @@ -5839,21 +5088,6 @@ export type Count_Functions = { count?: Maybe; }; -export type Create_Apps_Input = { - case_study?: InputMaybe; - date_updated?: InputMaybe; - heroVideo?: InputMaybe; - /** Optional - Default comes from main Plural API */ - hero_text?: InputMaybe; - id?: InputMaybe; - name?: InputMaybe; - /** Optional - Default set in App Defaults */ - secondary_text?: InputMaybe; - /** Optional - Default set in App Defaults */ - secondary_title?: InputMaybe; - user_updated?: InputMaybe; -}; - export type Create_Article_Cards_Input = { article_card_id?: InputMaybe; author?: InputMaybe; @@ -5882,33 +5116,40 @@ export type Create_Blog_Cards_Input = { user_updated?: InputMaybe; }; -export type Create_Callouts_Input = { - callout_id?: InputMaybe; - category?: InputMaybe; - content?: InputMaybe; - ctas?: InputMaybe; +export type Create_Card_Input = { + body_text: Scalars['String']['input']; date_created?: InputMaybe; date_updated?: InputMaybe; + heading: Scalars['String']['input']; id?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; + image?: InputMaybe; + url?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; -export type Create_Card_Input = { - body_text: Scalars['String']['input']; +export type Create_Card_With_Image_Input = { + body_text?: InputMaybe; + bullets?: InputMaybe>>; + cta_text?: InputMaybe; + cta_url?: InputMaybe; date_created?: InputMaybe; date_updated?: InputMaybe; - heading: Scalars['String']['input']; + heading?: InputMaybe; id?: InputMaybe; image?: InputMaybe; - url?: InputMaybe; + spacing?: InputMaybe; + theme: Scalars['String']['input']; user_created?: InputMaybe; user_updated?: InputMaybe; }; +export type Create_Card_With_Image_Rich_Text_Columns_Input = { + card_with_image_id?: InputMaybe; + id?: InputMaybe; + rich_text_columns_id?: InputMaybe; +}; + export type Create_Cards_Card_Input = { card_id?: InputMaybe; cards_id?: InputMaybe; @@ -5925,24 +5166,6 @@ export type Create_Cards_Input = { user_updated?: InputMaybe; }; -export type Create_Case_Studies_Input = { - case_study_id?: InputMaybe; - content?: InputMaybe; - ctas?: InputMaybe; - date_created?: InputMaybe; - date_updated?: InputMaybe; - hero_image?: InputMaybe; - id?: InputMaybe; - label?: InputMaybe; - slug?: InputMaybe; - stack_apps?: InputMaybe; - stack_label?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - export type Create_Collapsible_Lists_Input = { date_created?: InputMaybe; date_updated?: InputMaybe; @@ -6127,7 +5350,6 @@ export type Create_Events_Input = { date_updated?: InputMaybe; description?: InputMaybe; end_date?: InputMaybe; - fields?: InputMaybe; id?: InputMaybe; name?: InputMaybe; show_end_time?: InputMaybe; @@ -6138,50 +5360,19 @@ export type Create_Events_Input = { status?: InputMaybe; /** Must be TZ value from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones */ timezone?: InputMaybe; + url?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; -export type Create_Faqs_Input = { - collapsible_id?: InputMaybe; - content?: InputMaybe; +export type Create_Hero_Input = { + body_text?: InputMaybe; + cta_text?: InputMaybe; + cta_url?: InputMaybe; date_created?: InputMaybe; date_updated?: InputMaybe; - id?: InputMaybe; - label?: InputMaybe; - slug?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Create_Featured_Contributors_Input = { - content?: InputMaybe; - ctas?: InputMaybe; - date_created?: InputMaybe; - date_updated?: InputMaybe; - id?: InputMaybe; - name?: InputMaybe; - portrait?: InputMaybe; - social_github_url?: InputMaybe; - social_linkedin_url?: InputMaybe; - social_twitter_url?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Create_Hero_Input = { - body_text?: InputMaybe; - cta_text?: InputMaybe; - cta_url?: InputMaybe; - date_created?: InputMaybe; - date_updated?: InputMaybe; - form?: InputMaybe; - heading?: InputMaybe; + form?: InputMaybe; + heading?: InputMaybe; id?: InputMaybe; image?: InputMaybe; media_type?: InputMaybe; @@ -6264,39 +5455,10 @@ export type Create_Multi_Column_Text_Rich_Text_Columns_Input = { rich_text_columns_id?: InputMaybe; }; -export type Create_Nav_Link_Input = { - id?: InputMaybe; - title?: InputMaybe; - url?: InputMaybe; -}; - -export type Create_Nav_List_Input = { - flatten?: InputMaybe; - id?: InputMaybe; - link?: InputMaybe; - main_nav?: InputMaybe>>; - mobile_only?: InputMaybe; - parent_nav_list_id?: InputMaybe; - slug?: InputMaybe; - sort?: InputMaybe; - subnav?: InputMaybe; -}; - -export type Create_Page_Community_Input = { - callouts?: InputMaybe>>; - date_created?: InputMaybe; - date_updated?: InputMaybe; - id?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - export type Create_Page_Homepage_Input = { article_cards?: InputMaybe>>; - case_study?: InputMaybe>>; date_created?: InputMaybe; date_updated?: InputMaybe; - featured_quote?: InputMaybe; id?: InputMaybe; quotes?: InputMaybe; user_created?: InputMaybe; @@ -6372,17 +5534,12 @@ export type Create_Quote_Lists_Items_Input = { export type Create_Quotes_Input = { author_text?: InputMaybe; - company?: InputMaybe; date_created?: InputMaybe; date_updated?: InputMaybe; id?: InputMaybe; - logo?: InputMaybe; - name?: InputMaybe; - portrait?: InputMaybe; quote?: InputMaybe; quote_id?: InputMaybe; status?: InputMaybe; - title?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; @@ -6416,19 +5573,12 @@ export type Create_Site_Settings_Input = { id?: InputMaybe; og_description?: InputMaybe; og_image?: InputMaybe; - og_image_community?: InputMaybe; - og_image_marketplace?: InputMaybe; - promo_banner_content?: InputMaybe; - promo_banner_url?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; export type Create_Site_Settings_Nav_List_Input = { id?: InputMaybe; - nav_list_id?: InputMaybe; site_settings_id?: InputMaybe; }; @@ -6473,6 +5623,7 @@ export type Create_Solutions_Pages_Input = { description?: InputMaybe; download_section_description?: InputMaybe; download_section_title?: InputMaybe; + ebook_url?: InputMaybe; featured_quote?: InputMaybe; id?: InputMaybe; lower_features?: InputMaybe>>; @@ -6495,15 +5646,6 @@ export type Create_Solutions_Pages_Solution_Problems_Input = { solutions_pages_id?: InputMaybe; }; -export type Create_Stacks_Input = { - case_study?: InputMaybe; - date_updated?: InputMaybe; - heroVideo?: InputMaybe; - id?: InputMaybe; - name?: InputMaybe; - user_updated?: InputMaybe; -}; - export type Create_Team_Members_Input = { categories?: InputMaybe; date_created?: InputMaybe; @@ -6743,7 +5885,9 @@ export type Custom_Pages_Components_Filter = { collection?: InputMaybe; custom_pages_id?: InputMaybe; id?: InputMaybe; + item__article_cards?: InputMaybe; item__blog_cards?: InputMaybe; + item__card_with_image?: InputMaybe; item__cards?: InputMaybe; item__cta?: InputMaybe; item__customer_quote?: InputMaybe; @@ -6755,7 +5899,7 @@ export type Custom_Pages_Components_Filter = { item__two_column_text?: InputMaybe; }; -export type Custom_Pages_Components_Item_Union = Blog_Cards | Cards | Cta | Customer_Quote | Hero | Large_Image | Logo_Strip | Multi_Column_Text | Section_Header | Two_Column_Text; +export type Custom_Pages_Components_Item_Union = Article_Cards | Blog_Cards | Card_With_Image | Cards | Cta | Customer_Quote | Hero | Large_Image | Logo_Strip | Multi_Column_Text | Section_Header | Two_Column_Text; export type Custom_Pages_Filter = { _and?: InputMaybe>>; @@ -7169,8 +6313,6 @@ export type Events = { description?: Maybe; end_date?: Maybe; end_date_func?: Maybe; - fields?: Maybe; - fields_func?: Maybe; id: Scalars['ID']['output']; name?: Maybe; show_end_time?: Maybe; @@ -7182,6 +6324,7 @@ export type Events = { status?: Maybe; /** Must be TZ value from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones */ timezone?: Maybe; + url?: Maybe; user_created?: Maybe; user_updated?: Maybe; }; @@ -7227,7 +6370,6 @@ export type Events_Aggregated_Count = { date_updated?: Maybe; description?: Maybe; end_date?: Maybe; - fields?: Maybe; id?: Maybe; name?: Maybe; show_end_time?: Maybe; @@ -7238,6 +6380,7 @@ export type Events_Aggregated_Count = { status?: Maybe; /** Must be TZ value from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones */ timezone?: Maybe; + url?: Maybe; user_created?: Maybe; user_updated?: Maybe; }; @@ -7259,8 +6402,6 @@ export type Events_Filter = { description?: InputMaybe; end_date?: InputMaybe; end_date_func?: InputMaybe; - fields?: InputMaybe; - fields_func?: InputMaybe; id?: InputMaybe; name?: InputMaybe; show_end_time?: InputMaybe; @@ -7271,220 +6412,7 @@ export type Events_Filter = { start_date_func?: InputMaybe; status?: InputMaybe; timezone?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Faqs = { - __typename?: 'faqs'; - collapsible_id?: Maybe; - content?: Maybe; - date_created?: Maybe; - date_created_func?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - id: Scalars['ID']['output']; - label?: Maybe; - slug?: Maybe; - sort?: Maybe; - status?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; -}; - - -export type FaqsCollapsible_IdArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type FaqsUser_CreatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type FaqsUser_UpdatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Faqs_Aggregated = { - __typename?: 'faqs_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; - countAll?: Maybe; - countDistinct?: Maybe; - group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; -}; - -export type Faqs_Aggregated_Count = { - __typename?: 'faqs_aggregated_count'; - collapsible_id?: Maybe; - content?: Maybe; - date_created?: Maybe; - date_updated?: Maybe; - id?: Maybe; - label?: Maybe; - slug?: Maybe; - sort?: Maybe; - status?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; -}; - -export type Faqs_Aggregated_Fields = { - __typename?: 'faqs_aggregated_fields'; - collapsible_id?: Maybe; - sort?: Maybe; -}; - -export type Faqs_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - collapsible_id?: InputMaybe; - content?: InputMaybe; - date_created?: InputMaybe; - date_created_func?: InputMaybe; - date_updated?: InputMaybe; - date_updated_func?: InputMaybe; - id?: InputMaybe; - label?: InputMaybe; - slug?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Featured_Contributors = { - __typename?: 'featured_contributors'; - content?: Maybe; - ctas?: Maybe; - ctas_func?: Maybe; - date_created?: Maybe; - date_created_func?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - id: Scalars['ID']['output']; - name?: Maybe; - portrait?: Maybe; - social_github_url?: Maybe; - social_linkedin_url?: Maybe; - social_twitter_url?: Maybe; - sort?: Maybe; - status?: Maybe; - title?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; -}; - - -export type Featured_ContributorsPortraitArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Featured_ContributorsUser_CreatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Featured_ContributorsUser_UpdatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Featured_Contributors_Aggregated = { - __typename?: 'featured_contributors_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; - countAll?: Maybe; - countDistinct?: Maybe; - group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; -}; - -export type Featured_Contributors_Aggregated_Count = { - __typename?: 'featured_contributors_aggregated_count'; - content?: Maybe; - ctas?: Maybe; - date_created?: Maybe; - date_updated?: Maybe; - id?: Maybe; - name?: Maybe; - portrait?: Maybe; - social_github_url?: Maybe; - social_linkedin_url?: Maybe; - social_twitter_url?: Maybe; - sort?: Maybe; - status?: Maybe; - title?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; -}; - -export type Featured_Contributors_Aggregated_Fields = { - __typename?: 'featured_contributors_aggregated_fields'; - id?: Maybe; - sort?: Maybe; -}; - -export type Featured_Contributors_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - content?: InputMaybe; - ctas?: InputMaybe; - ctas_func?: InputMaybe; - date_created?: InputMaybe; - date_created_func?: InputMaybe; - date_updated?: InputMaybe; - date_updated_func?: InputMaybe; - id?: InputMaybe; - name?: InputMaybe; - portrait?: InputMaybe; - social_github_url?: InputMaybe; - social_linkedin_url?: InputMaybe; - social_twitter_url?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; + url?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; @@ -8140,212 +7068,33 @@ export type Multi_Column_Text_Rich_Text_Columns_Filter = { rich_text_columns_id?: InputMaybe; }; -export type Nav_Link = { - __typename?: 'nav_link'; - id: Scalars['ID']['output']; - title?: Maybe; - url?: Maybe; +export type Number_Filter_Operators = { + _between?: InputMaybe>>; + _eq?: InputMaybe; + _gt?: InputMaybe; + _gte?: InputMaybe; + _in?: InputMaybe>>; + _lt?: InputMaybe; + _lte?: InputMaybe; + _nbetween?: InputMaybe>>; + _neq?: InputMaybe; + _nin?: InputMaybe>>; + _nnull?: InputMaybe; + _null?: InputMaybe; }; -export type Nav_Link_Aggregated = { - __typename?: 'nav_link_aggregated'; - count?: Maybe; - countAll?: Maybe; - countDistinct?: Maybe; - group?: Maybe; -}; - -export type Nav_Link_Aggregated_Count = { - __typename?: 'nav_link_aggregated_count'; - id?: Maybe; - title?: Maybe; - url?: Maybe; -}; - -export type Nav_Link_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - id?: InputMaybe; - title?: InputMaybe; - url?: InputMaybe; -}; - -export type Nav_List = { - __typename?: 'nav_list'; - flatten?: Maybe; - id: Scalars['ID']['output']; - link?: Maybe; - main_nav?: Maybe>>; - mobile_only?: Maybe; - parent_nav_list_id?: Maybe; - slug?: Maybe; - sort?: Maybe; - subnav?: Maybe; - subnav_func?: Maybe; -}; - - -export type Nav_ListLinkArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Nav_ListMain_NavArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Nav_ListParent_Nav_List_IdArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Nav_List_Aggregated = { - __typename?: 'nav_list_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; - countAll?: Maybe; - countDistinct?: Maybe; - group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; -}; - -export type Nav_List_Aggregated_Count = { - __typename?: 'nav_list_aggregated_count'; - flatten?: Maybe; - id?: Maybe; - link?: Maybe; - mobile_only?: Maybe; - parent_nav_list_id?: Maybe; - slug?: Maybe; - sort?: Maybe; - subnav?: Maybe; -}; - -export type Nav_List_Aggregated_Fields = { - __typename?: 'nav_list_aggregated_fields'; - sort?: Maybe; -}; - -export type Nav_List_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - flatten?: InputMaybe; - id?: InputMaybe; - link?: InputMaybe; - main_nav?: InputMaybe; - mobile_only?: InputMaybe; - parent_nav_list_id?: InputMaybe; - slug?: InputMaybe; - sort?: InputMaybe; - subnav?: InputMaybe; - subnav_func?: InputMaybe; -}; - -export type Number_Filter_Operators = { - _between?: InputMaybe>>; - _eq?: InputMaybe; - _gt?: InputMaybe; - _gte?: InputMaybe; - _in?: InputMaybe>>; - _lt?: InputMaybe; - _lte?: InputMaybe; - _nbetween?: InputMaybe>>; - _neq?: InputMaybe; - _nin?: InputMaybe>>; - _nnull?: InputMaybe; - _null?: InputMaybe; -}; - -export type Page_Community = { - __typename?: 'page_community'; - callouts?: Maybe>>; - callouts_func?: Maybe; - date_created?: Maybe; - date_created_func?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - id: Scalars['ID']['output']; - user_created?: Maybe; - user_updated?: Maybe; -}; - - -export type Page_CommunityCalloutsArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Page_CommunityUser_CreatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Page_CommunityUser_UpdatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Page_Community_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - callouts?: InputMaybe; - callouts_func?: InputMaybe; - date_created?: InputMaybe; - date_created_func?: InputMaybe; - date_updated?: InputMaybe; - date_updated_func?: InputMaybe; - id?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Page_Homepage = { - __typename?: 'page_homepage'; - article_cards?: Maybe>>; - article_cards_func?: Maybe; - case_study?: Maybe>>; - date_created?: Maybe; - date_created_func?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - featured_quote?: Maybe; - id: Scalars['ID']['output']; - quotes?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; +export type Page_Homepage = { + __typename?: 'page_homepage'; + article_cards?: Maybe>>; + article_cards_func?: Maybe; + date_created?: Maybe; + date_created_func?: Maybe; + date_updated?: Maybe; + date_updated_func?: Maybe; + id: Scalars['ID']['output']; + quotes?: Maybe; + user_created?: Maybe; + user_updated?: Maybe; }; @@ -8359,26 +7108,6 @@ export type Page_HomepageArticle_CardsArgs = { }; -export type Page_HomepageCase_StudyArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Page_HomepageFeatured_QuoteArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type Page_HomepageQuotesArgs = { filter?: InputMaybe; limit?: InputMaybe; @@ -8413,12 +7142,10 @@ export type Page_Homepage_Filter = { _or?: InputMaybe>>; article_cards?: InputMaybe; article_cards_func?: InputMaybe; - case_study?: InputMaybe; date_created?: InputMaybe; date_created_func?: InputMaybe; date_updated?: InputMaybe; date_updated_func?: InputMaybe; - featured_quote?: InputMaybe; id?: InputMaybe; quotes?: InputMaybe; user_created?: InputMaybe; @@ -8968,44 +7695,19 @@ export type Quote_Lists_Items_Item_Union = Quotes; export type Quotes = { __typename?: 'quotes'; author_text?: Maybe; - company?: Maybe; date_created?: Maybe; date_created_func?: Maybe; date_updated?: Maybe; date_updated_func?: Maybe; id: Scalars['ID']['output']; - logo?: Maybe; - name?: Maybe; - portrait?: Maybe; quote?: Maybe; quote_id?: Maybe; status?: Maybe; - title?: Maybe; user_created?: Maybe; user_updated?: Maybe; }; -export type QuotesLogoArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QuotesPortraitArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type QuotesQuote_IdArgs = { filter?: InputMaybe; limit?: InputMaybe; @@ -9052,17 +7754,12 @@ export type Quotes_Aggregated = { export type Quotes_Aggregated_Count = { __typename?: 'quotes_aggregated_count'; author_text?: Maybe; - company?: Maybe; date_created?: Maybe; date_updated?: Maybe; id?: Maybe; - logo?: Maybe; - name?: Maybe; - portrait?: Maybe; quote?: Maybe; quote_id?: Maybe; status?: Maybe; - title?: Maybe; user_created?: Maybe; user_updated?: Maybe; }; @@ -9076,19 +7773,14 @@ export type Quotes_Filter = { _and?: InputMaybe>>; _or?: InputMaybe>>; author_text?: InputMaybe; - company?: InputMaybe; date_created?: InputMaybe; date_created_func?: InputMaybe; date_updated?: InputMaybe; date_updated_func?: InputMaybe; id?: InputMaybe; - logo?: InputMaybe; - name?: InputMaybe; - portrait?: InputMaybe; quote?: InputMaybe; quote_id?: InputMaybe; status?: InputMaybe; - title?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; @@ -9265,12 +7957,6 @@ export type Site_Settings = { id: Scalars['ID']['output']; og_description?: Maybe; og_image?: Maybe; - og_image_community?: Maybe; - og_image_marketplace?: Maybe; - promo_banner_content?: Maybe; - promo_banner_url?: Maybe; - sort?: Maybe; - status?: Maybe; user_created?: Maybe; user_updated?: Maybe; }; @@ -9286,26 +7972,6 @@ export type Site_SettingsOg_ImageArgs = { }; -export type Site_SettingsOg_Image_CommunityArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Site_SettingsOg_Image_MarketplaceArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type Site_SettingsUser_CreatedArgs = { filter?: InputMaybe; limit?: InputMaybe; @@ -9335,12 +8001,6 @@ export type Site_Settings_Filter = { id?: InputMaybe; og_description?: InputMaybe; og_image?: InputMaybe; - og_image_community?: InputMaybe; - og_image_marketplace?: InputMaybe; - promo_banner_content?: InputMaybe; - promo_banner_url?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; @@ -9348,21 +8008,10 @@ export type Site_Settings_Filter = { export type Site_Settings_Nav_List = { __typename?: 'site_settings_nav_list'; id: Scalars['ID']['output']; - nav_list_id?: Maybe; site_settings_id?: Maybe; }; -export type Site_Settings_Nav_ListNav_List_IdArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type Site_Settings_Nav_ListSite_Settings_IdArgs = { filter?: InputMaybe; limit?: InputMaybe; @@ -9389,7 +8038,6 @@ export type Site_Settings_Nav_List_Aggregated = { export type Site_Settings_Nav_List_Aggregated_Count = { __typename?: 'site_settings_nav_list_aggregated_count'; id?: Maybe; - nav_list_id?: Maybe; site_settings_id?: Maybe; }; @@ -9403,7 +8051,6 @@ export type Site_Settings_Nav_List_Filter = { _and?: InputMaybe>>; _or?: InputMaybe>>; id?: InputMaybe; - nav_list_id?: InputMaybe; site_settings_id?: InputMaybe; }; @@ -9650,6 +8297,7 @@ export type Solutions_Pages = { description?: Maybe; download_section_description?: Maybe; download_section_title?: Maybe; + ebook_url?: Maybe; featured_quote?: Maybe; id: Scalars['ID']['output']; lower_features?: Maybe>>; @@ -9751,6 +8399,7 @@ export type Solutions_Pages_Aggregated_Count = { description?: Maybe; download_section_description?: Maybe; download_section_title?: Maybe; + ebook_url?: Maybe; featured_quote?: Maybe; id?: Maybe; lower_features?: Maybe; @@ -9785,6 +8434,7 @@ export type Solutions_Pages_Filter = { description?: InputMaybe; download_section_description?: InputMaybe; download_section_title?: InputMaybe; + ebook_url?: InputMaybe; featured_quote?: InputMaybe; id?: InputMaybe; lower_features?: InputMaybe; @@ -9867,19 +8517,45 @@ export type Solutions_Pages_Solution_Problems_Filter = { solutions_pages_id?: InputMaybe; }; -export type Stack_Defaults = { - __typename?: 'stack_defaults'; - case_study?: Maybe; +export type String_Filter_Operators = { + _contains?: InputMaybe; + _empty?: InputMaybe; + _ends_with?: InputMaybe; + _eq?: InputMaybe; + _icontains?: InputMaybe; + _in?: InputMaybe>>; + _ncontains?: InputMaybe; + _nempty?: InputMaybe; + _nends_with?: InputMaybe; + _neq?: InputMaybe; + _nin?: InputMaybe>>; + _nnull?: InputMaybe; + _nstarts_with?: InputMaybe; + _null?: InputMaybe; + _starts_with?: InputMaybe; +}; + +export type Team_Members = { + __typename?: 'team_members'; + categories?: Maybe; + categories_func?: Maybe; + date_created?: Maybe; + date_created_func?: Maybe; date_updated?: Maybe; date_updated_func?: Maybe; id: Scalars['ID']['output']; - quotes?: Maybe; - user_updated?: Maybe; + name?: Maybe; + orderOfAppearance?: Maybe; + portrait?: Maybe; + pronouns?: Maybe; + sort?: Maybe; + status?: Maybe; + title?: Maybe; }; -export type Stack_DefaultsCase_StudyArgs = { - filter?: InputMaybe; +export type Team_MembersPortraitArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -9887,159 +8563,18 @@ export type Stack_DefaultsCase_StudyArgs = { sort?: InputMaybe>>; }; - -export type Stack_DefaultsQuotesArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Stack_DefaultsUser_UpdatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Stacks = { - __typename?: 'stacks'; - case_study?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - heroVideo?: Maybe; - id: Scalars['ID']['output']; - name?: Maybe; - user_updated?: Maybe; -}; - - -export type StacksCase_StudyArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type StacksUser_UpdatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Stacks_Aggregated = { - __typename?: 'stacks_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; - countAll?: Maybe; - countDistinct?: Maybe; - group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; -}; - -export type Stacks_Aggregated_Count = { - __typename?: 'stacks_aggregated_count'; - /** Use to override default case study for individual stack */ - case_study?: Maybe; - date_updated?: Maybe; - heroVideo?: Maybe; - id?: Maybe; - name?: Maybe; - user_updated?: Maybe; -}; - -export type Stacks_Aggregated_Fields = { - __typename?: 'stacks_aggregated_fields'; - /** Use to override default case study for individual stack */ - case_study?: Maybe; - id?: Maybe; -}; - -export type Stacks_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - case_study?: InputMaybe; - date_updated?: InputMaybe; - date_updated_func?: InputMaybe; - heroVideo?: InputMaybe; - id?: InputMaybe; - name?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type String_Filter_Operators = { - _contains?: InputMaybe; - _empty?: InputMaybe; - _ends_with?: InputMaybe; - _eq?: InputMaybe; - _icontains?: InputMaybe; - _in?: InputMaybe>>; - _ncontains?: InputMaybe; - _nempty?: InputMaybe; - _nends_with?: InputMaybe; - _neq?: InputMaybe; - _nin?: InputMaybe>>; - _nnull?: InputMaybe; - _nstarts_with?: InputMaybe; - _null?: InputMaybe; - _starts_with?: InputMaybe; -}; - -export type Team_Members = { - __typename?: 'team_members'; - categories?: Maybe; - categories_func?: Maybe; - date_created?: Maybe; - date_created_func?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - id: Scalars['ID']['output']; - name?: Maybe; - orderOfAppearance?: Maybe; - portrait?: Maybe; - pronouns?: Maybe; - sort?: Maybe; - status?: Maybe; - title?: Maybe; -}; - - -export type Team_MembersPortraitArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Team_Members_Aggregated = { - __typename?: 'team_members_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; - countAll?: Maybe; - countDistinct?: Maybe; - group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; +export type Team_Members_Aggregated = { + __typename?: 'team_members_aggregated'; + avg?: Maybe; + avgDistinct?: Maybe; + count?: Maybe; + countAll?: Maybe; + countDistinct?: Maybe; + group?: Maybe; + max?: Maybe; + min?: Maybe; + sum?: Maybe; + sumDistinct?: Maybe; }; export type Team_Members_Aggregated_Count = { @@ -10163,31 +8698,6 @@ export type Two_Column_Text_Filter = { user_updated?: InputMaybe; }; -export type Update_App_Defaults_Input = { - case_study?: InputMaybe; - date_updated?: InputMaybe; - id?: InputMaybe; - quotes?: InputMaybe; - secondary_text?: InputMaybe; - secondary_title?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Update_Apps_Input = { - case_study?: InputMaybe; - date_updated?: InputMaybe; - heroVideo?: InputMaybe; - /** Optional - Default comes from main Plural API */ - hero_text?: InputMaybe; - id?: InputMaybe; - name?: InputMaybe; - /** Optional - Default set in App Defaults */ - secondary_text?: InputMaybe; - /** Optional - Default set in App Defaults */ - secondary_title?: InputMaybe; - user_updated?: InputMaybe; -}; - export type Update_Article_Cards_Input = { article_card_id?: InputMaybe; author?: InputMaybe; @@ -10216,33 +8726,40 @@ export type Update_Blog_Cards_Input = { user_updated?: InputMaybe; }; -export type Update_Callouts_Input = { - callout_id?: InputMaybe; - category?: InputMaybe; - content?: InputMaybe; - ctas?: InputMaybe; +export type Update_Card_Input = { + body_text?: InputMaybe; date_created?: InputMaybe; date_updated?: InputMaybe; + heading?: InputMaybe; id?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; + image?: InputMaybe; + url?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; -export type Update_Card_Input = { +export type Update_Card_With_Image_Input = { body_text?: InputMaybe; + bullets?: InputMaybe>>; + cta_text?: InputMaybe; + cta_url?: InputMaybe; date_created?: InputMaybe; date_updated?: InputMaybe; heading?: InputMaybe; id?: InputMaybe; image?: InputMaybe; - url?: InputMaybe; + spacing?: InputMaybe; + theme?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; +export type Update_Card_With_Image_Rich_Text_Columns_Input = { + card_with_image_id?: InputMaybe; + id?: InputMaybe; + rich_text_columns_id?: InputMaybe; +}; + export type Update_Cards_Card_Input = { card_id?: InputMaybe; cards_id?: InputMaybe; @@ -10259,24 +8776,6 @@ export type Update_Cards_Input = { user_updated?: InputMaybe; }; -export type Update_Case_Studies_Input = { - case_study_id?: InputMaybe; - content?: InputMaybe; - ctas?: InputMaybe; - date_created?: InputMaybe; - date_updated?: InputMaybe; - hero_image?: InputMaybe; - id?: InputMaybe; - label?: InputMaybe; - slug?: InputMaybe; - stack_apps?: InputMaybe; - stack_label?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - export type Update_Collapsible_Lists_Input = { date_created?: InputMaybe; date_updated?: InputMaybe; @@ -10461,7 +8960,6 @@ export type Update_Events_Input = { date_updated?: InputMaybe; description?: InputMaybe; end_date?: InputMaybe; - fields?: InputMaybe; id?: InputMaybe; name?: InputMaybe; show_end_time?: InputMaybe; @@ -10472,38 +8970,7 @@ export type Update_Events_Input = { status?: InputMaybe; /** Must be TZ value from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones */ timezone?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Update_Faqs_Input = { - collapsible_id?: InputMaybe; - content?: InputMaybe; - date_created?: InputMaybe; - date_updated?: InputMaybe; - id?: InputMaybe; - label?: InputMaybe; - slug?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Update_Featured_Contributors_Input = { - content?: InputMaybe; - ctas?: InputMaybe; - date_created?: InputMaybe; - date_updated?: InputMaybe; - id?: InputMaybe; - name?: InputMaybe; - portrait?: InputMaybe; - social_github_url?: InputMaybe; - social_linkedin_url?: InputMaybe; - social_twitter_url?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; + url?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; @@ -10598,39 +9065,10 @@ export type Update_Multi_Column_Text_Rich_Text_Columns_Input = { rich_text_columns_id?: InputMaybe; }; -export type Update_Nav_Link_Input = { - id?: InputMaybe; - title?: InputMaybe; - url?: InputMaybe; -}; - -export type Update_Nav_List_Input = { - flatten?: InputMaybe; - id?: InputMaybe; - link?: InputMaybe; - main_nav?: InputMaybe>>; - mobile_only?: InputMaybe; - parent_nav_list_id?: InputMaybe; - slug?: InputMaybe; - sort?: InputMaybe; - subnav?: InputMaybe; -}; - -export type Update_Page_Community_Input = { - callouts?: InputMaybe>>; - date_created?: InputMaybe; - date_updated?: InputMaybe; - id?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - export type Update_Page_Homepage_Input = { article_cards?: InputMaybe>>; - case_study?: InputMaybe>>; date_created?: InputMaybe; date_updated?: InputMaybe; - featured_quote?: InputMaybe; id?: InputMaybe; quotes?: InputMaybe; user_created?: InputMaybe; @@ -10716,17 +9154,12 @@ export type Update_Quote_Lists_Items_Input = { export type Update_Quotes_Input = { author_text?: InputMaybe; - company?: InputMaybe; date_created?: InputMaybe; date_updated?: InputMaybe; id?: InputMaybe; - logo?: InputMaybe; - name?: InputMaybe; - portrait?: InputMaybe; quote?: InputMaybe; quote_id?: InputMaybe; status?: InputMaybe; - title?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; @@ -10760,19 +9193,12 @@ export type Update_Site_Settings_Input = { id?: InputMaybe; og_description?: InputMaybe; og_image?: InputMaybe; - og_image_community?: InputMaybe; - og_image_marketplace?: InputMaybe; - promo_banner_content?: InputMaybe; - promo_banner_url?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; export type Update_Site_Settings_Nav_List_Input = { id?: InputMaybe; - nav_list_id?: InputMaybe; site_settings_id?: InputMaybe; }; @@ -10817,6 +9243,7 @@ export type Update_Solutions_Pages_Input = { description?: InputMaybe; download_section_description?: InputMaybe; download_section_title?: InputMaybe; + ebook_url?: InputMaybe; featured_quote?: InputMaybe; id?: InputMaybe; lower_features?: InputMaybe>>; @@ -10839,23 +9266,6 @@ export type Update_Solutions_Pages_Solution_Problems_Input = { solutions_pages_id?: InputMaybe; }; -export type Update_Stack_Defaults_Input = { - case_study?: InputMaybe; - date_updated?: InputMaybe; - id?: InputMaybe; - quotes?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Update_Stacks_Input = { - case_study?: InputMaybe; - date_updated?: InputMaybe; - heroVideo?: InputMaybe; - id?: InputMaybe; - name?: InputMaybe; - user_updated?: InputMaybe; -}; - export type Update_Team_Members_Input = { categories?: InputMaybe; date_created?: InputMaybe; @@ -10881,150 +9291,101 @@ export type Update_Two_Column_Text_Input = { user_updated?: InputMaybe; }; -export type EventFragment = { __typename?: 'events', id: string, name?: string | null, start_date?: any | null, end_date?: any | null, show_start_time: boolean, show_end_time?: boolean | null, timezone?: string | null, description?: string | null, fields?: any | null, ctas?: any | null }; +export type CustomPageFragment = { __typename?: 'custom_pages', id: string, slug: string, components?: Array<{ __typename?: 'custom_pages_components', collection?: string | null, item?: { __typename?: 'article_cards', id: string, heading?: string | null, description?: string | null, videoUrl?: string | null, date?: any | null, author?: string | null, ctas?: any | null, url?: string | null, thumbnail?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | { __typename?: 'blog_cards', spacing?: string | null } | { __typename?: 'card_with_image', spacing?: string | null, theme: string, heading?: string | null, body_text?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, bullets?: Array<{ __typename?: 'card_with_image_rich_text_columns', rich_text_columns_id?: { __typename?: 'rich_text_columns', icon?: string | null, heading?: string | null, body_text: string } | null } | null> | null } | { __typename?: 'cards', spacing?: string | null, cards?: Array<{ __typename?: 'cards_card', card_id?: { __typename?: 'card', heading: string, body_text: string, url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null } | { __typename?: 'cta', spacing?: string | null, heading?: string | null, body_text?: string | null, cta_text?: string | null, cta_url?: string | null } | { __typename?: 'customer_quote', spacing?: string | null, quote?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | { __typename?: 'hero', spacing?: string | null, heading?: string | null, body_text?: string | null, media_type?: string | null, video_url?: string | null, form?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | { __typename?: 'large_image', spacing?: string | null, overline?: string | null, heading?: string | null, body_text?: string | null, media_type?: string | null, video_url?: string | null, form?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | { __typename?: 'logo_strip', spacing?: string | null, logo_list?: { __typename?: 'company_logo_lists', slug?: string | null, logos?: Array<{ __typename?: 'company_logo_lists_company_logos', company_logos_id?: { __typename?: 'company_logos', slug?: string | null, name: string, url?: string | null, logo_light?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, logo_dark?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null } | null } | { __typename?: 'multi_column_text', spacing?: string | null, columns?: Array<{ __typename?: 'multi_column_text_rich_text_columns', rich_text_columns_id?: { __typename?: 'rich_text_columns', icon?: string | null, heading?: string | null, body_text: string } | null } | null> | null } | { __typename?: 'section_header', spacing?: string | null, overline?: string | null, title?: string | null, description?: string | null } | { __typename?: 'two_column_text', spacing?: string | null, main_content: string, side_content: string } | null } | null> | null }; -export type EventsQueryVariables = Exact<{ [key: string]: never; }>; +export type CustomPageTinyFragment = { __typename?: 'custom_pages', id: string, slug: string }; +export type CustomPageSlugsQueryVariables = Exact<{ [key: string]: never; }>; -export type EventsQuery = { __typename?: 'Query', events: Array<{ __typename?: 'events', id: string, name?: string | null, start_date?: any | null, end_date?: any | null, show_start_time: boolean, show_end_time?: boolean | null, timezone?: string | null, description?: string | null, fields?: any | null, ctas?: any | null }> }; -export type LinkFragment = { __typename?: 'nav_link', id: string, title?: string | null, url?: string | null }; +export type CustomPageSlugsQuery = { __typename?: 'Query', custom_pages: Array<{ __typename?: 'custom_pages', id: string, slug: string }> }; -export type NavListFragment = { __typename?: 'nav_list', id: string, flatten?: boolean | null, mobile_only?: boolean | null, link?: { __typename?: 'nav_link', id: string, title?: string | null, url?: string | null } | null }; +export type CustomPageQueryVariables = Exact<{ + slug: Scalars['String']['input']; +}>; -export type CompanyLogoFragment = { __typename?: 'company_logos', slug?: string | null, name: string, url?: string | null, logo_light?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, logo_dark?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; -export type LogoListFragment = { __typename?: 'company_logo_lists', slug?: string | null, logos?: Array<{ __typename?: 'company_logo_lists_company_logos', company_logos_id?: { __typename?: 'company_logos', slug?: string | null, name: string, url?: string | null, logo_light?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, logo_dark?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null }; +export type CustomPageQuery = { __typename?: 'Query', custom_pages: Array<{ __typename?: 'custom_pages', id: string, slug: string, components?: Array<{ __typename?: 'custom_pages_components', collection?: string | null, item?: { __typename?: 'article_cards', id: string, heading?: string | null, description?: string | null, videoUrl?: string | null, date?: any | null, author?: string | null, ctas?: any | null, url?: string | null, thumbnail?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | { __typename?: 'blog_cards', spacing?: string | null } | { __typename?: 'card_with_image', spacing?: string | null, theme: string, heading?: string | null, body_text?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, bullets?: Array<{ __typename?: 'card_with_image_rich_text_columns', rich_text_columns_id?: { __typename?: 'rich_text_columns', icon?: string | null, heading?: string | null, body_text: string } | null } | null> | null } | { __typename?: 'cards', spacing?: string | null, cards?: Array<{ __typename?: 'cards_card', card_id?: { __typename?: 'card', heading: string, body_text: string, url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null } | { __typename?: 'cta', spacing?: string | null, heading?: string | null, body_text?: string | null, cta_text?: string | null, cta_url?: string | null } | { __typename?: 'customer_quote', spacing?: string | null, quote?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | { __typename?: 'hero', spacing?: string | null, heading?: string | null, body_text?: string | null, media_type?: string | null, video_url?: string | null, form?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | { __typename?: 'large_image', spacing?: string | null, overline?: string | null, heading?: string | null, body_text?: string | null, media_type?: string | null, video_url?: string | null, form?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | { __typename?: 'logo_strip', spacing?: string | null, logo_list?: { __typename?: 'company_logo_lists', slug?: string | null, logos?: Array<{ __typename?: 'company_logo_lists_company_logos', company_logos_id?: { __typename?: 'company_logos', slug?: string | null, name: string, url?: string | null, logo_light?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, logo_dark?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null } | null } | { __typename?: 'multi_column_text', spacing?: string | null, columns?: Array<{ __typename?: 'multi_column_text_rich_text_columns', rich_text_columns_id?: { __typename?: 'rich_text_columns', icon?: string | null, heading?: string | null, body_text: string } | null } | null> | null } | { __typename?: 'section_header', spacing?: string | null, overline?: string | null, title?: string | null, description?: string | null } | { __typename?: 'two_column_text', spacing?: string | null, main_content: string, side_content: string } | null } | null> | null }> }; -export type CaseStudyFragment = { __typename?: 'case_studies', id: string, slug?: string | null, label?: string | null, title?: string | null, content?: string | null, ctas?: any | null, stack_label?: string | null, stack_apps?: any | null, hero_image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; +export type HeroComponentFragment = { __typename?: 'hero', spacing?: string | null, heading?: string | null, body_text?: string | null, media_type?: string | null, video_url?: string | null, form?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; -export type AppExtrasFragment = { __typename?: 'apps', name?: string | null, heroVideo?: string | null, hero_text?: string | null, secondary_title?: string | null, secondary_text?: string | null, case_study?: { __typename?: 'case_studies', id: string, slug?: string | null, label?: string | null, title?: string | null, content?: string | null, ctas?: any | null, stack_label?: string | null, stack_apps?: any | null, hero_image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null }; +export type LogoStripComponentFragment = { __typename?: 'logo_strip', spacing?: string | null, logo_list?: { __typename?: 'company_logo_lists', slug?: string | null, logos?: Array<{ __typename?: 'company_logo_lists_company_logos', company_logos_id?: { __typename?: 'company_logos', slug?: string | null, name: string, url?: string | null, logo_light?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, logo_dark?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null } | null }; -export type AppDefaultsFragment = { __typename?: 'app_defaults', secondary_title?: string | null, secondary_text?: string | null, case_study?: { __typename?: 'case_studies', id: string, slug?: string | null, label?: string | null, title?: string | null, content?: string | null, ctas?: any | null, stack_label?: string | null, stack_apps?: any | null, hero_image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null, quotes?: { __typename?: 'quote_lists', slug: string, items?: Array<{ __typename?: 'quote_lists_items', item?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | null> | null } | null }; +export type SectionHeaderComponentFragment = { __typename?: 'section_header', spacing?: string | null, overline?: string | null, title?: string | null, description?: string | null }; -export type AppExtrasQueryVariables = Exact<{ - name?: InputMaybe; -}>; +export type LargeImageComponentFragment = { __typename?: 'large_image', spacing?: string | null, overline?: string | null, heading?: string | null, body_text?: string | null, media_type?: string | null, video_url?: string | null, form?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; +export type CardFragment = { __typename?: 'card', heading: string, body_text: string, url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; -export type AppExtrasQuery = { __typename?: 'Query', apps: Array<{ __typename?: 'apps', name?: string | null, heroVideo?: string | null, hero_text?: string | null, secondary_title?: string | null, secondary_text?: string | null, case_study?: { __typename?: 'case_studies', id: string, slug?: string | null, label?: string | null, title?: string | null, content?: string | null, ctas?: any | null, stack_label?: string | null, stack_apps?: any | null, hero_image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null }>, app_defaults?: { __typename?: 'app_defaults', secondary_title?: string | null, secondary_text?: string | null, case_study?: { __typename?: 'case_studies', id: string, slug?: string | null, label?: string | null, title?: string | null, content?: string | null, ctas?: any | null, stack_label?: string | null, stack_apps?: any | null, hero_image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null, quotes?: { __typename?: 'quote_lists', slug: string, items?: Array<{ __typename?: 'quote_lists_items', item?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | null> | null } | null } | null }; +export type CardsComponentFragment = { __typename?: 'cards', spacing?: string | null, cards?: Array<{ __typename?: 'cards_card', card_id?: { __typename?: 'card', heading: string, body_text: string, url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null }; -export type StackExtrasFragment = { __typename?: 'stacks', name?: string | null, heroVideo?: string | null, case_study?: { __typename?: 'case_studies', id: string, slug?: string | null, label?: string | null, title?: string | null, content?: string | null, ctas?: any | null, stack_label?: string | null, stack_apps?: any | null, hero_image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null }; +export type BlogCardsComponentFragment = { __typename?: 'blog_cards', spacing?: string | null }; -export type StackDefaultsFragment = { __typename?: 'stack_defaults', case_study?: { __typename?: 'case_studies', id: string, slug?: string | null, label?: string | null, title?: string | null, content?: string | null, ctas?: any | null, stack_label?: string | null, stack_apps?: any | null, hero_image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null, quotes?: { __typename?: 'quote_lists', slug: string, items?: Array<{ __typename?: 'quote_lists_items', item?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | null> | null } | null }; +export type RichTextColumnFragment = { __typename?: 'rich_text_columns', icon?: string | null, heading?: string | null, body_text: string }; -export type StackExtrasQueryVariables = Exact<{ - name?: InputMaybe; -}>; +export type TwoColumnTextComponentFragment = { __typename?: 'two_column_text', spacing?: string | null, main_content: string, side_content: string }; +export type MultiColumnTextComponentFragment = { __typename?: 'multi_column_text', spacing?: string | null, columns?: Array<{ __typename?: 'multi_column_text_rich_text_columns', rich_text_columns_id?: { __typename?: 'rich_text_columns', icon?: string | null, heading?: string | null, body_text: string } | null } | null> | null }; -export type StackExtrasQuery = { __typename?: 'Query', stacks: Array<{ __typename?: 'stacks', name?: string | null, heroVideo?: string | null, case_study?: { __typename?: 'case_studies', id: string, slug?: string | null, label?: string | null, title?: string | null, content?: string | null, ctas?: any | null, stack_label?: string | null, stack_apps?: any | null, hero_image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null }>, stack_defaults?: { __typename?: 'stack_defaults', case_study?: { __typename?: 'case_studies', id: string, slug?: string | null, label?: string | null, title?: string | null, content?: string | null, ctas?: any | null, stack_label?: string | null, stack_apps?: any | null, hero_image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null, quotes?: { __typename?: 'quote_lists', slug: string, items?: Array<{ __typename?: 'quote_lists_items', item?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | null> | null } | null } | null }; +export type CustomerQuoteComponentFragment = { __typename?: 'customer_quote', spacing?: string | null, quote?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null }; -export type ImageFileFragment = { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null }; +export type CtaComponentFragment = { __typename?: 'cta', spacing?: string | null, heading?: string | null, body_text?: string | null, cta_text?: string | null, cta_url?: string | null }; -export type TeamMemberFragment = { __typename?: 'team_members', id: string, name?: string | null, title?: string | null, categories?: any | null, pronouns?: string | null, portrait?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; +export type MediaCardComponentFragment = { __typename?: 'article_cards', id: string, heading?: string | null, description?: string | null, videoUrl?: string | null, date?: any | null, author?: string | null, ctas?: any | null, url?: string | null, thumbnail?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; -export type TeamMembersQueryVariables = Exact<{ [key: string]: never; }>; +export type CardWithImageComponentFragment = { __typename?: 'card_with_image', spacing?: string | null, theme: string, heading?: string | null, body_text?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, bullets?: Array<{ __typename?: 'card_with_image_rich_text_columns', rich_text_columns_id?: { __typename?: 'rich_text_columns', icon?: string | null, heading?: string | null, body_text: string } | null } | null> | null }; +export type MinJobListingFragment = { __typename?: 'job_listings', id: string, slug: string, job_title?: string | null, department?: string | null, tags?: any | null, location?: string | null, status?: string | null }; -export type TeamMembersQuery = { __typename?: 'Query', team_members: Array<{ __typename?: 'team_members', id: string, name?: string | null, title?: string | null, categories?: any | null, pronouns?: string | null, portrait?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }> }; +export type FullJobListingFragment = { __typename?: 'job_listings', content?: string | null, id: string, slug: string, job_title?: string | null, department?: string | null, tags?: any | null, location?: string | null, status?: string | null }; -export type FeaturedContributorFragment = { __typename?: 'featured_contributors', id: string, name?: string | null, title?: string | null, social_github_url?: string | null, social_twitter_url?: string | null, social_linkedin_url?: string | null, content?: string | null, ctas?: any | null, portrait?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; +export type JobListingsQueryVariables = Exact<{ [key: string]: never; }>; -export type FeaturedContributorsQueryVariables = Exact<{ [key: string]: never; }>; +export type JobListingsQuery = { __typename?: 'Query', job_listings: Array<{ __typename?: 'job_listings', id: string, slug: string, job_title?: string | null, department?: string | null, tags?: any | null, location?: string | null, status?: string | null }> }; -export type FeaturedContributorsQuery = { __typename?: 'Query', featured_contributors: Array<{ __typename?: 'featured_contributors', id: string, name?: string | null, title?: string | null, social_github_url?: string | null, social_twitter_url?: string | null, social_linkedin_url?: string | null, content?: string | null, ctas?: any | null, portrait?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }> }; +export type JobListingQueryVariables = Exact<{ + slug?: InputMaybe; +}>; -export type FaqItemFragment = { __typename?: 'collapsibles', id: string, label?: string | null, content?: string | null }; -export type FaqListFragment = { __typename?: 'collapsible_lists', items?: Array<{ __typename?: 'collapsible_lists_items', item?: { __typename?: 'collapsibles', id: string, label?: string | null, content?: string | null } | null } | null> | null }; - -export type FaqListQueryVariables = Exact<{ - slug?: InputMaybe; -}>; - - -export type FaqListQuery = { __typename?: 'Query', collapsible_lists: Array<{ __typename?: 'collapsible_lists', items?: Array<{ __typename?: 'collapsible_lists_items', item?: { __typename?: 'collapsibles', id: string, label?: string | null, content?: string | null } | null } | null> | null }> }; - -export type SolutionFeatureFragment = { __typename?: 'solution_features', id: string, title?: string | null, description?: string | null, icon?: string | null, link_title?: string | null, link_url?: string | null }; - -export type SolutionProblemFragment = { __typename?: 'solution_problems', id: string, title?: string | null, subtitle?: string | null, problem?: string | null, solution?: string | null }; - -export type SolutionFragment = { __typename?: 'solutions_pages', id: string, slug: string, title?: string | null, description?: string | null, upper_features_title?: string | null, lower_features_title?: string | null, download_section_title?: string | null, download_section_description?: string | null, upper_features?: Array<{ __typename?: 'solution_features', id: string, title?: string | null, description?: string | null, icon?: string | null, link_title?: string | null, link_url?: string | null } | null> | null, lower_features?: Array<{ __typename?: 'solution_features', id: string, title?: string | null, description?: string | null, icon?: string | null, link_title?: string | null, link_url?: string | null } | null> | null, problems?: Array<{ __typename?: 'solution_problems', id: string, title?: string | null, subtitle?: string | null, problem?: string | null, solution?: string | null } | null> | null, featured_quote?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null }; - -export type SolutionsSlugsQueryVariables = Exact<{ [key: string]: never; }>; - - -export type SolutionsSlugsQuery = { __typename?: 'Query', solutions_pages: Array<{ __typename?: 'solutions_pages', slug: string, nav_title?: string | null, category?: string | null }> }; - -export type SolutionsQueryVariables = Exact<{ - slug?: InputMaybe; -}>; - - -export type SolutionsQuery = { __typename?: 'Query', solutions_pages: Array<{ __typename?: 'solutions_pages', id: string, slug: string, title?: string | null, description?: string | null, upper_features_title?: string | null, lower_features_title?: string | null, download_section_title?: string | null, download_section_description?: string | null, upper_features?: Array<{ __typename?: 'solution_features', id: string, title?: string | null, description?: string | null, icon?: string | null, link_title?: string | null, link_url?: string | null } | null> | null, lower_features?: Array<{ __typename?: 'solution_features', id: string, title?: string | null, description?: string | null, icon?: string | null, link_title?: string | null, link_url?: string | null } | null> | null, problems?: Array<{ __typename?: 'solution_problems', id: string, title?: string | null, subtitle?: string | null, problem?: string | null, solution?: string | null } | null> | null, featured_quote?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null }> }; - -export type CustomPageFragment = { __typename?: 'custom_pages', id: string, slug: string, components?: Array<{ __typename?: 'custom_pages_components', collection?: string | null, item?: { __typename?: 'blog_cards', spacing?: string | null } | { __typename?: 'cards', spacing?: string | null, cards?: Array<{ __typename?: 'cards_card', card_id?: { __typename?: 'card', heading: string, body_text: string, url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null } | { __typename?: 'cta', spacing?: string | null, heading?: string | null, body_text?: string | null, cta_text?: string | null, cta_url?: string | null } | { __typename?: 'customer_quote', spacing?: string | null, quote?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | { __typename?: 'hero', spacing?: string | null, heading?: string | null, body_text?: string | null, media_type?: string | null, video_url?: string | null, form?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | { __typename?: 'large_image', spacing?: string | null, overline?: string | null, heading?: string | null, body_text?: string | null, media_type?: string | null, video_url?: string | null, form?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | { __typename?: 'logo_strip', spacing?: string | null, logo_list?: { __typename?: 'company_logo_lists', slug?: string | null, logos?: Array<{ __typename?: 'company_logo_lists_company_logos', company_logos_id?: { __typename?: 'company_logos', slug?: string | null, name: string, url?: string | null, logo_light?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, logo_dark?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null } | null } | { __typename?: 'multi_column_text', spacing?: string | null, columns?: Array<{ __typename?: 'multi_column_text_rich_text_columns', rich_text_columns_id?: { __typename?: 'rich_text_columns', icon?: string | null, heading?: string | null, body_text: string } | null } | null> | null } | { __typename?: 'section_header', spacing?: string | null, overline?: string | null, title?: string | null, description?: string | null } | { __typename?: 'two_column_text', spacing?: string | null, main_content: string, side_content: string } | null } | null> | null }; - -export type CustomPageTinyFragment = { __typename?: 'custom_pages', id: string, slug: string }; - -export type CustomPageSlugsQueryVariables = Exact<{ [key: string]: never; }>; - - -export type CustomPageSlugsQuery = { __typename?: 'Query', custom_pages: Array<{ __typename?: 'custom_pages', id: string, slug: string }> }; - -export type CustomPageQueryVariables = Exact<{ - slug: Scalars['String']['input']; -}>; - - -export type CustomPageQuery = { __typename?: 'Query', custom_pages: Array<{ __typename?: 'custom_pages', id: string, slug: string, components?: Array<{ __typename?: 'custom_pages_components', collection?: string | null, item?: { __typename?: 'blog_cards', spacing?: string | null } | { __typename?: 'cards', spacing?: string | null, cards?: Array<{ __typename?: 'cards_card', card_id?: { __typename?: 'card', heading: string, body_text: string, url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null } | { __typename?: 'cta', spacing?: string | null, heading?: string | null, body_text?: string | null, cta_text?: string | null, cta_url?: string | null } | { __typename?: 'customer_quote', spacing?: string | null, quote?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | { __typename?: 'hero', spacing?: string | null, heading?: string | null, body_text?: string | null, media_type?: string | null, video_url?: string | null, form?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | { __typename?: 'large_image', spacing?: string | null, overline?: string | null, heading?: string | null, body_text?: string | null, media_type?: string | null, video_url?: string | null, form?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | { __typename?: 'logo_strip', spacing?: string | null, logo_list?: { __typename?: 'company_logo_lists', slug?: string | null, logos?: Array<{ __typename?: 'company_logo_lists_company_logos', company_logos_id?: { __typename?: 'company_logos', slug?: string | null, name: string, url?: string | null, logo_light?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, logo_dark?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null } | null } | { __typename?: 'multi_column_text', spacing?: string | null, columns?: Array<{ __typename?: 'multi_column_text_rich_text_columns', rich_text_columns_id?: { __typename?: 'rich_text_columns', icon?: string | null, heading?: string | null, body_text: string } | null } | null> | null } | { __typename?: 'section_header', spacing?: string | null, overline?: string | null, title?: string | null, description?: string | null } | { __typename?: 'two_column_text', spacing?: string | null, main_content: string, side_content: string } | null } | null> | null }> }; - -export type HeroComponentFragment = { __typename?: 'hero', spacing?: string | null, heading?: string | null, body_text?: string | null, media_type?: string | null, video_url?: string | null, form?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; +export type JobListingQuery = { __typename?: 'Query', job_listings: Array<{ __typename?: 'job_listings', content?: string | null, id: string, slug: string, job_title?: string | null, department?: string | null, tags?: any | null, location?: string | null, status?: string | null }> }; -export type LogoStripComponentFragment = { __typename?: 'logo_strip', spacing?: string | null, logo_list?: { __typename?: 'company_logo_lists', slug?: string | null, logos?: Array<{ __typename?: 'company_logo_lists_company_logos', company_logos_id?: { __typename?: 'company_logos', slug?: string | null, name: string, url?: string | null, logo_light?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, logo_dark?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null } | null }; +export type JobListingSlugsQueryVariables = Exact<{ [key: string]: never; }>; -export type SectionHeaderComponentFragment = { __typename?: 'section_header', spacing?: string | null, overline?: string | null, title?: string | null, description?: string | null }; -export type LargeImageComponentFragment = { __typename?: 'large_image', spacing?: string | null, overline?: string | null, heading?: string | null, body_text?: string | null, media_type?: string | null, video_url?: string | null, form?: string | null, cta_text?: string | null, cta_url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; +export type JobListingSlugsQuery = { __typename?: 'Query', job_listings: Array<{ __typename?: 'job_listings', slug: string }> }; -export type CardFragment = { __typename?: 'card', heading: string, body_text: string, url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; +export type EventFragment = { __typename?: 'events', id: string, name?: string | null, start_date?: any | null, end_date?: any | null, show_start_time: boolean, show_end_time?: boolean | null, timezone?: string | null, description?: string | null, ctas?: any | null }; -export type CardsComponentFragment = { __typename?: 'cards', spacing?: string | null, cards?: Array<{ __typename?: 'cards_card', card_id?: { __typename?: 'card', heading: string, body_text: string, url?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null }; +export type EventsQueryVariables = Exact<{ [key: string]: never; }>; -export type BlogCardsComponentFragment = { __typename?: 'blog_cards', spacing?: string | null }; -export type RichTextColumnFragment = { __typename?: 'rich_text_columns', icon?: string | null, heading?: string | null, body_text: string }; +export type EventsQuery = { __typename?: 'Query', events: Array<{ __typename?: 'events', id: string, name?: string | null, start_date?: any | null, end_date?: any | null, show_start_time: boolean, show_end_time?: boolean | null, timezone?: string | null, description?: string | null, ctas?: any | null }> }; -export type TwoColumnTextComponentFragment = { __typename?: 'two_column_text', spacing?: string | null, main_content: string, side_content: string }; +export type CompanyLogoFragment = { __typename?: 'company_logos', slug?: string | null, name: string, url?: string | null, logo_light?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, logo_dark?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; -export type MultiColumnTextComponentFragment = { __typename?: 'multi_column_text', spacing?: string | null, columns?: Array<{ __typename?: 'multi_column_text_rich_text_columns', rich_text_columns_id?: { __typename?: 'rich_text_columns', icon?: string | null, heading?: string | null, body_text: string } | null } | null> | null }; +export type LogoListFragment = { __typename?: 'company_logo_lists', slug?: string | null, logos?: Array<{ __typename?: 'company_logo_lists_company_logos', company_logos_id?: { __typename?: 'company_logos', slug?: string | null, name: string, url?: string | null, logo_light?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null, logo_dark?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null } | null> | null }; -export type CustomerQuoteComponentFragment = { __typename?: 'customer_quote', spacing?: string | null, quote?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null }; +export type ImageFileFragment = { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null }; -export type CtaComponentFragment = { __typename?: 'cta', spacing?: string | null, heading?: string | null, body_text?: string | null, cta_text?: string | null, cta_url?: string | null }; +export type TeamMemberFragment = { __typename?: 'team_members', id: string, name?: string | null, title?: string | null, categories?: any | null, pronouns?: string | null, portrait?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; -export type MinJobListingFragment = { __typename?: 'job_listings', id: string, slug: string, job_title?: string | null, department?: string | null, tags?: any | null, location?: string | null, status?: string | null }; +export type TeamMembersQueryVariables = Exact<{ [key: string]: never; }>; -export type FullJobListingFragment = { __typename?: 'job_listings', content?: string | null, id: string, slug: string, job_title?: string | null, department?: string | null, tags?: any | null, location?: string | null, status?: string | null }; -export type JobListingsQueryVariables = Exact<{ [key: string]: never; }>; +export type TeamMembersQuery = { __typename?: 'Query', team_members: Array<{ __typename?: 'team_members', id: string, name?: string | null, title?: string | null, categories?: any | null, pronouns?: string | null, portrait?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }> }; +export type FaqItemFragment = { __typename?: 'collapsibles', id: string, label?: string | null, content?: string | null }; -export type JobListingsQuery = { __typename?: 'Query', job_listings: Array<{ __typename?: 'job_listings', id: string, slug: string, job_title?: string | null, department?: string | null, tags?: any | null, location?: string | null, status?: string | null }> }; +export type FaqListFragment = { __typename?: 'collapsible_lists', items?: Array<{ __typename?: 'collapsible_lists_items', item?: { __typename?: 'collapsibles', id: string, label?: string | null, content?: string | null } | null } | null> | null }; -export type JobListingQueryVariables = Exact<{ +export type FaqListQueryVariables = Exact<{ slug?: InputMaybe; }>; -export type JobListingQuery = { __typename?: 'Query', job_listings: Array<{ __typename?: 'job_listings', content?: string | null, id: string, slug: string, job_title?: string | null, department?: string | null, tags?: any | null, location?: string | null, status?: string | null }> }; - -export type JobListingSlugsQueryVariables = Exact<{ [key: string]: never; }>; - - -export type JobListingSlugsQuery = { __typename?: 'Query', job_listings: Array<{ __typename?: 'job_listings', slug: string }> }; +export type FaqListQuery = { __typename?: 'Query', collapsible_lists: Array<{ __typename?: 'collapsible_lists', items?: Array<{ __typename?: 'collapsible_lists_items', item?: { __typename?: 'collapsibles', id: string, label?: string | null, content?: string | null } | null } | null> | null }> }; export type PricingPageFragment = { __typename?: 'pricing_page', id: string, pro_plan?: { __typename?: 'pricing_plans', id: string, name: string, subtitle?: string | null, features?: Array<{ __typename?: 'pricing_plan_features', id: string, description?: string | null } | null> | null } | null, enterprise_plan?: { __typename?: 'pricing_plans', id: string, name: string, subtitle?: string | null, features?: Array<{ __typename?: 'pricing_plan_features', id: string, description?: string | null } | null> | null } | null }; @@ -11055,14 +9416,34 @@ export type ProductPageQueryVariables = Exact<{ export type ProductPageQuery = { __typename?: 'Query', product_pages: Array<{ __typename?: 'product_pages', id: string, slug: string, type?: string | null, dropdown_icon?: string | null, dropdown_title?: string | null, dropdown_description?: string | null, page_title?: string | null, page_subtitle?: string | null, features?: Array<{ __typename?: 'product_features', id: string, icon?: string | null, title?: string | null, description?: string | null, image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null> | null }> }; -export type CalloutFragment = { __typename?: 'callouts', id: string, sort?: number | null, category?: string | null, title?: string | null, content?: string | null, ctas?: any | null }; +export type SolutionFeatureFragment = { __typename?: 'solution_features', id: string, title?: string | null, description?: string | null, icon?: string | null, link_title?: string | null, link_url?: string | null }; + +export type SolutionProblemFragment = { __typename?: 'solution_problems', id: string, title?: string | null, subtitle?: string | null, problem?: string | null, solution?: string | null }; + +export type SolutionFragment = { __typename?: 'solutions_pages', id: string, slug: string, title?: string | null, description?: string | null, upper_features_title?: string | null, lower_features_title?: string | null, download_section_title?: string | null, download_section_description?: string | null, ebook_url?: string | null, upper_features?: Array<{ __typename?: 'solution_features', id: string, title?: string | null, description?: string | null, icon?: string | null, link_title?: string | null, link_url?: string | null } | null> | null, lower_features?: Array<{ __typename?: 'solution_features', id: string, title?: string | null, description?: string | null, icon?: string | null, link_title?: string | null, link_url?: string | null } | null> | null, problems?: Array<{ __typename?: 'solution_problems', id: string, title?: string | null, subtitle?: string | null, problem?: string | null, solution?: string | null } | null> | null, featured_quote?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null }; -export type PageCommunityFragment = { __typename?: 'page_community', callouts?: Array<{ __typename?: 'callouts', id: string, sort?: number | null, category?: string | null, title?: string | null, content?: string | null, ctas?: any | null } | null> | null }; +export type SolutionsSlugsQueryVariables = Exact<{ [key: string]: never; }>; + + +export type SolutionsSlugsQuery = { __typename?: 'Query', solutions_pages: Array<{ __typename?: 'solutions_pages', slug: string, nav_title?: string | null, category?: string | null }> }; + +export type SolutionsQueryVariables = Exact<{ + slug?: InputMaybe; +}>; -export type PageCommunityQueryVariables = Exact<{ [key: string]: never; }>; +export type SolutionsQuery = { __typename?: 'Query', solutions_pages: Array<{ __typename?: 'solutions_pages', id: string, slug: string, title?: string | null, description?: string | null, upper_features_title?: string | null, lower_features_title?: string | null, download_section_title?: string | null, download_section_description?: string | null, ebook_url?: string | null, upper_features?: Array<{ __typename?: 'solution_features', id: string, title?: string | null, description?: string | null, icon?: string | null, link_title?: string | null, link_url?: string | null } | null> | null, lower_features?: Array<{ __typename?: 'solution_features', id: string, title?: string | null, description?: string | null, icon?: string | null, link_title?: string | null, link_url?: string | null } | null> | null, problems?: Array<{ __typename?: 'solution_problems', id: string, title?: string | null, subtitle?: string | null, problem?: string | null, solution?: string | null } | null> | null, featured_quote?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null }> }; -export type PageCommunityQuery = { __typename?: 'Query', page_community?: { __typename?: 'page_community', callouts?: Array<{ __typename?: 'callouts', id: string, sort?: number | null, category?: string | null, title?: string | null, content?: string | null, ctas?: any | null } | null> | null } | null }; +export type QuoteFragment = { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null }; + +export type QuoteListFragment = { __typename?: 'quote_lists', slug: string, items?: Array<{ __typename?: 'quote_lists_items', item?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | null> | null }; + +export type SiteSettingsFragment = { __typename?: 'site_settings', og_description?: string | null, og_image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; + +export type SiteSettingsQueryVariables = Exact<{ [key: string]: never; }>; + + +export type SiteSettingsQuery = { __typename?: 'Query', site_settings?: { __typename?: 'site_settings', og_description?: string | null, og_image?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null }; export type MarkdownPageFragment = { __typename?: 'markdown_pages', id: string, slug?: string | null, title?: string | null, subtitle?: string | null, content?: string | null }; @@ -11078,50 +9459,13 @@ export type LegalPageSlugsQueryVariables = Exact<{ [key: string]: never; }>; export type LegalPageSlugsQuery = { __typename?: 'Query', page_legal?: { __typename?: 'page_legal', pages?: Array<{ __typename?: 'markdown_pages', slug?: string | null } | null> | null } | null }; -export type ArticleCardFragment = { __typename?: 'article_cards', id: string, heading?: string | null, description?: string | null, videoUrl?: string | null, date?: any | null, author?: string | null, ctas?: any | null, url?: string | null, thumbnail?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null }; - -export type PageHomepageFragment = { __typename?: 'page_homepage', quotes?: { __typename?: 'quote_lists', slug: string, items?: Array<{ __typename?: 'quote_lists_items', item?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | null> | null } | null, article_cards?: Array<{ __typename?: 'article_cards', id: string, heading?: string | null, description?: string | null, videoUrl?: string | null, date?: any | null, author?: string | null, ctas?: any | null, url?: string | null, thumbnail?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null> | null, featured_quote?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null }; +export type PageHomepageFragment = { __typename?: 'page_homepage', quotes?: { __typename?: 'quote_lists', slug: string, items?: Array<{ __typename?: 'quote_lists_items', item?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | null> | null } | null, article_cards?: Array<{ __typename?: 'article_cards', id: string, heading?: string | null, description?: string | null, videoUrl?: string | null, date?: any | null, author?: string | null, ctas?: any | null, url?: string | null, thumbnail?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null> | null }; export type PageHomepageQueryVariables = Exact<{ [key: string]: never; }>; -export type PageHomepageQuery = { __typename?: 'Query', page_homepage?: { __typename?: 'page_homepage', quotes?: { __typename?: 'quote_lists', slug: string, items?: Array<{ __typename?: 'quote_lists_items', item?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | null> | null } | null, article_cards?: Array<{ __typename?: 'article_cards', id: string, heading?: string | null, description?: string | null, videoUrl?: string | null, date?: any | null, author?: string | null, ctas?: any | null, url?: string | null, thumbnail?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null> | null, featured_quote?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | null }; +export type PageHomepageQuery = { __typename?: 'Query', page_homepage?: { __typename?: 'page_homepage', quotes?: { __typename?: 'quote_lists', slug: string, items?: Array<{ __typename?: 'quote_lists_items', item?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | null> | null } | null, article_cards?: Array<{ __typename?: 'article_cards', id: string, heading?: string | null, description?: string | null, videoUrl?: string | null, date?: any | null, author?: string | null, ctas?: any | null, url?: string | null, thumbnail?: { __typename?: 'directus_files', id: string, title?: string | null, description?: string | null, tags?: any | null, filename_disk?: string | null, filename_download: string, metadata?: any | null, type?: string | null, filesize?: any | null } | null } | null> | null } | null }; -export type QuoteFragment = { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null }; - -export type QuoteListFragment = { __typename?: 'quote_lists', slug: string, items?: Array<{ __typename?: 'quote_lists_items', item?: { __typename?: 'quotes', id: string, quote?: string | null, author_text?: string | null } | null } | null> | null }; - -export const EventFragmentDoc = gql` - fragment Event on events { - id - name - start_date - end_date - show_start_time - show_end_time - timezone - description - fields - ctas -} - `; -export const LinkFragmentDoc = gql` - fragment Link on nav_link { - id - title - url -} - `; -export const NavListFragmentDoc = gql` - fragment NavList on nav_list { - id - flatten - mobile_only - link { - ...Link - } -} - ${LinkFragmentDoc}`; export const ImageFileFragmentDoc = gql` fragment ImageFile on directus_files { id @@ -11135,171 +9479,6 @@ export const ImageFileFragmentDoc = gql` filesize } `; -export const CaseStudyFragmentDoc = gql` - fragment CaseStudy on case_studies { - id - slug - label - title - content - ctas - stack_label - stack_apps - hero_image { - ...ImageFile - } -} - ${ImageFileFragmentDoc}`; -export const AppExtrasFragmentDoc = gql` - fragment AppExtras on apps { - name - heroVideo - hero_text - secondary_title - secondary_text - case_study { - ...CaseStudy - } -} - ${CaseStudyFragmentDoc}`; -export const QuoteFragmentDoc = gql` - fragment Quote on quotes { - id - quote - author_text -} - `; -export const QuoteListFragmentDoc = gql` - fragment QuoteList on quote_lists { - slug - items { - item { - ...Quote - } - } -} - ${QuoteFragmentDoc}`; -export const AppDefaultsFragmentDoc = gql` - fragment AppDefaults on app_defaults { - secondary_title - secondary_text - case_study { - ...CaseStudy - } - quotes { - ...QuoteList - } -} - ${CaseStudyFragmentDoc} -${QuoteListFragmentDoc}`; -export const StackExtrasFragmentDoc = gql` - fragment StackExtras on stacks { - name - heroVideo - case_study { - ...CaseStudy - } -} - ${CaseStudyFragmentDoc}`; -export const StackDefaultsFragmentDoc = gql` - fragment StackDefaults on stack_defaults { - case_study { - ...CaseStudy - } - quotes { - ...QuoteList - } -} - ${CaseStudyFragmentDoc} -${QuoteListFragmentDoc}`; -export const TeamMemberFragmentDoc = gql` - fragment TeamMember on team_members { - id - name - title - categories - pronouns - portrait { - ...ImageFile - } -} - ${ImageFileFragmentDoc}`; -export const FeaturedContributorFragmentDoc = gql` - fragment FeaturedContributor on featured_contributors { - id - name - title - portrait { - ...ImageFile - } - social_github_url - social_twitter_url - social_linkedin_url - content - ctas -} - ${ImageFileFragmentDoc}`; -export const FaqItemFragmentDoc = gql` - fragment FaqItem on collapsibles { - id - label - content -} - `; -export const FaqListFragmentDoc = gql` - fragment FaqList on collapsible_lists { - items { - item { - ...FaqItem - } - } -} - ${FaqItemFragmentDoc}`; -export const SolutionFeatureFragmentDoc = gql` - fragment SolutionFeature on solution_features { - id - title - description - icon - link_title - link_url -} - `; -export const SolutionProblemFragmentDoc = gql` - fragment SolutionProblem on solution_problems { - id - title - subtitle - problem - solution -} - `; -export const SolutionFragmentDoc = gql` - fragment Solution on solutions_pages { - id - slug - title - description - upper_features_title - lower_features_title - download_section_title - download_section_description - upper_features { - ...SolutionFeature - } - lower_features { - ...SolutionFeature - } - problems { - ...SolutionProblem - } - featured_quote { - ...Quote - } -} - ${SolutionFeatureFragmentDoc} -${SolutionProblemFragmentDoc} -${QuoteFragmentDoc}`; export const HeroComponentFragmentDoc = gql` fragment HeroComponent on hero { spacing @@ -11419,6 +9598,13 @@ export const BlogCardsComponentFragmentDoc = gql` spacing } `; +export const QuoteFragmentDoc = gql` + fragment Quote on quotes { + id + quote + author_text +} + `; export const CustomerQuoteComponentFragmentDoc = gql` fragment CustomerQuoteComponent on customer_quote { spacing @@ -11436,8 +9622,42 @@ export const CtaComponentFragmentDoc = gql` cta_url } `; -export const CustomPageFragmentDoc = gql` - fragment CustomPage on custom_pages { +export const MediaCardComponentFragmentDoc = gql` + fragment MediaCardComponent on article_cards { + id + heading + description + thumbnail { + ...ImageFile + } + videoUrl + date + author + ctas + url +} + ${ImageFileFragmentDoc}`; +export const CardWithImageComponentFragmentDoc = gql` + fragment CardWithImageComponent on card_with_image { + spacing + theme + heading + body_text + image { + ...ImageFile + } + bullets { + rich_text_columns_id { + ...RichTextColumn + } + } + cta_text + cta_url +} + ${ImageFileFragmentDoc} +${RichTextColumnFragmentDoc}`; +export const CustomPageFragmentDoc = gql` + fragment CustomPage on custom_pages { id slug components { @@ -11453,6 +9673,8 @@ export const CustomPageFragmentDoc = gql` ...BlogCardsComponent ...CustomerQuoteComponent ...CTAComponent + ...MediaCardComponent + ...CardWithImageComponent } } } @@ -11465,7 +9687,9 @@ ${MultiColumnTextComponentFragmentDoc} ${CardsComponentFragmentDoc} ${BlogCardsComponentFragmentDoc} ${CustomerQuoteComponentFragmentDoc} -${CtaComponentFragmentDoc}`; +${CtaComponentFragmentDoc} +${MediaCardComponentFragmentDoc} +${CardWithImageComponentFragmentDoc}`; export const CustomPageTinyFragmentDoc = gql` fragment CustomPageTiny on custom_pages { id @@ -11489,6 +9713,47 @@ export const FullJobListingFragmentDoc = gql` content } ${MinJobListingFragmentDoc}`; +export const EventFragmentDoc = gql` + fragment Event on events { + id + name + start_date + end_date + show_start_time + show_end_time + timezone + description + ctas +} + `; +export const TeamMemberFragmentDoc = gql` + fragment TeamMember on team_members { + id + name + title + categories + pronouns + portrait { + ...ImageFile + } +} + ${ImageFileFragmentDoc}`; +export const FaqItemFragmentDoc = gql` + fragment FaqItem on collapsibles { + id + label + content +} + `; +export const FaqListFragmentDoc = gql` + fragment FaqList on collapsible_lists { + items { + item { + ...FaqItem + } + } +} + ${FaqItemFragmentDoc}`; export const PricingPlanFeatureFragmentDoc = gql` fragment PricingPlanFeature on pricing_plan_features { id @@ -11552,355 +9817,97 @@ export const ProductPageTinyFragmentDoc = gql` dropdown_description } `; -export const CalloutFragmentDoc = gql` - fragment Callout on callouts { +export const SolutionFeatureFragmentDoc = gql` + fragment SolutionFeature on solution_features { id - sort - category title - content - ctas + description + icon + link_title + link_url } `; -export const PageCommunityFragmentDoc = gql` - fragment PageCommunity on page_community { - callouts { - ...Callout - } -} - ${CalloutFragmentDoc}`; -export const MarkdownPageFragmentDoc = gql` - fragment MarkdownPage on markdown_pages { +export const SolutionProblemFragmentDoc = gql` + fragment SolutionProblem on solution_problems { id - slug title subtitle - content + problem + solution } `; -export const PageLegalFragmentDoc = gql` - fragment PageLegal on page_legal { - pages { - ...MarkdownPage - } -} - ${MarkdownPageFragmentDoc}`; -export const ArticleCardFragmentDoc = gql` - fragment ArticleCard on article_cards { +export const SolutionFragmentDoc = gql` + fragment Solution on solutions_pages { id - heading + slug + title description - thumbnail { - ...ImageFile + upper_features_title + lower_features_title + download_section_title + download_section_description + upper_features { + ...SolutionFeature } - videoUrl - date - author - ctas - url -} - ${ImageFileFragmentDoc}`; -export const PageHomepageFragmentDoc = gql` - fragment PageHomepage on page_homepage { - quotes { - ...QuoteList + lower_features { + ...SolutionFeature } - article_cards { - ...ArticleCard + problems { + ...SolutionProblem } featured_quote { ...Quote } + ebook_url } - ${QuoteListFragmentDoc} -${ArticleCardFragmentDoc} + ${SolutionFeatureFragmentDoc} +${SolutionProblemFragmentDoc} ${QuoteFragmentDoc}`; -export const EventsDocument = gql` - query Events { - events(filter: {status: {_neq: "archived"}}) { - ...Event - } -} - ${EventFragmentDoc}`; - -/** - * __useEventsQuery__ - * - * To run a query within a React component, call `useEventsQuery` and pass it any options that fit your needs. - * When your component renders, `useEventsQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useEventsQuery({ - * variables: { - * }, - * }); - */ -export function useEventsQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(EventsDocument, options); - } -export function useEventsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(EventsDocument, options); - } -export type EventsQueryHookResult = ReturnType; -export type EventsLazyQueryHookResult = ReturnType; -export type EventsQueryResult = Apollo.QueryResult; -export const AppExtrasDocument = gql` - query AppExtras($name: String) { - apps(filter: {name: {_eq: $name}}) { - ...AppExtras - } - app_defaults { - ...AppDefaults - } -} - ${AppExtrasFragmentDoc} -${AppDefaultsFragmentDoc}`; - -/** - * __useAppExtrasQuery__ - * - * To run a query within a React component, call `useAppExtrasQuery` and pass it any options that fit your needs. - * When your component renders, `useAppExtrasQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useAppExtrasQuery({ - * variables: { - * name: // value for 'name' - * }, - * }); - */ -export function useAppExtrasQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(AppExtrasDocument, options); - } -export function useAppExtrasLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(AppExtrasDocument, options); - } -export type AppExtrasQueryHookResult = ReturnType; -export type AppExtrasLazyQueryHookResult = ReturnType; -export type AppExtrasQueryResult = Apollo.QueryResult; -export const StackExtrasDocument = gql` - query StackExtras($name: String) { - stacks(filter: {name: {_eq: $name}}) { - ...StackExtras - } - stack_defaults { - ...StackDefaults - } -} - ${StackExtrasFragmentDoc} -${StackDefaultsFragmentDoc}`; - -/** - * __useStackExtrasQuery__ - * - * To run a query within a React component, call `useStackExtrasQuery` and pass it any options that fit your needs. - * When your component renders, `useStackExtrasQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useStackExtrasQuery({ - * variables: { - * name: // value for 'name' - * }, - * }); - */ -export function useStackExtrasQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(StackExtrasDocument, options); - } -export function useStackExtrasLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(StackExtrasDocument, options); - } -export type StackExtrasQueryHookResult = ReturnType; -export type StackExtrasLazyQueryHookResult = ReturnType; -export type StackExtrasQueryResult = Apollo.QueryResult; -export const TeamMembersDocument = gql` - query TeamMembers { - team_members(filter: {status: {_neq: "archived"}}) { - ...TeamMember - } -} - ${TeamMemberFragmentDoc}`; - -/** - * __useTeamMembersQuery__ - * - * To run a query within a React component, call `useTeamMembersQuery` and pass it any options that fit your needs. - * When your component renders, `useTeamMembersQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useTeamMembersQuery({ - * variables: { - * }, - * }); - */ -export function useTeamMembersQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(TeamMembersDocument, options); - } -export function useTeamMembersLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(TeamMembersDocument, options); - } -export type TeamMembersQueryHookResult = ReturnType; -export type TeamMembersLazyQueryHookResult = ReturnType; -export type TeamMembersQueryResult = Apollo.QueryResult; -export const FeaturedContributorsDocument = gql` - query FeaturedContributors { - featured_contributors(filter: {status: {_neq: "archived"}}) { - ...FeaturedContributor +export const SiteSettingsFragmentDoc = gql` + fragment SiteSettings on site_settings { + og_description + og_image { + ...ImageFile } } - ${FeaturedContributorFragmentDoc}`; - -/** - * __useFeaturedContributorsQuery__ - * - * To run a query within a React component, call `useFeaturedContributorsQuery` and pass it any options that fit your needs. - * When your component renders, `useFeaturedContributorsQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useFeaturedContributorsQuery({ - * variables: { - * }, - * }); - */ -export function useFeaturedContributorsQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(FeaturedContributorsDocument, options); - } -export function useFeaturedContributorsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(FeaturedContributorsDocument, options); - } -export type FeaturedContributorsQueryHookResult = ReturnType; -export type FeaturedContributorsLazyQueryHookResult = ReturnType; -export type FeaturedContributorsQueryResult = Apollo.QueryResult; -export const FaqListDocument = gql` - query FaqList($slug: String) { - collapsible_lists(filter: {slug: {_eq: $slug}, status: {_neq: "archived"}}) { - ...FaqList - } + ${ImageFileFragmentDoc}`; +export const MarkdownPageFragmentDoc = gql` + fragment MarkdownPage on markdown_pages { + id + slug + title + subtitle + content } - ${FaqListFragmentDoc}`; - -/** - * __useFaqListQuery__ - * - * To run a query within a React component, call `useFaqListQuery` and pass it any options that fit your needs. - * When your component renders, `useFaqListQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useFaqListQuery({ - * variables: { - * slug: // value for 'slug' - * }, - * }); - */ -export function useFaqListQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(FaqListDocument, options); - } -export function useFaqListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(FaqListDocument, options); - } -export type FaqListQueryHookResult = ReturnType; -export type FaqListLazyQueryHookResult = ReturnType; -export type FaqListQueryResult = Apollo.QueryResult; -export const SolutionsSlugsDocument = gql` - query SolutionsSlugs { - solutions_pages(filter: {status: {_neq: "archived"}}) { - slug - nav_title - category + `; +export const PageLegalFragmentDoc = gql` + fragment PageLegal on page_legal { + pages { + ...MarkdownPage } } - `; - -/** - * __useSolutionsSlugsQuery__ - * - * To run a query within a React component, call `useSolutionsSlugsQuery` and pass it any options that fit your needs. - * When your component renders, `useSolutionsSlugsQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useSolutionsSlugsQuery({ - * variables: { - * }, - * }); - */ -export function useSolutionsSlugsQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(SolutionsSlugsDocument, options); - } -export function useSolutionsSlugsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(SolutionsSlugsDocument, options); - } -export type SolutionsSlugsQueryHookResult = ReturnType; -export type SolutionsSlugsLazyQueryHookResult = ReturnType; -export type SolutionsSlugsQueryResult = Apollo.QueryResult; -export const SolutionsDocument = gql` - query Solutions($slug: String) { - solutions_pages(filter: {slug: {_eq: $slug}, status: {_neq: "archived"}}) { - ...Solution + ${MarkdownPageFragmentDoc}`; +export const QuoteListFragmentDoc = gql` + fragment QuoteList on quote_lists { + slug + items { + item { + ...Quote + } } } - ${SolutionFragmentDoc}`; - -/** - * __useSolutionsQuery__ - * - * To run a query within a React component, call `useSolutionsQuery` and pass it any options that fit your needs. - * When your component renders, `useSolutionsQuery` returns an object from Apollo Client that contains loading, error, and data properties - * you can use to render your UI. - * - * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; - * - * @example - * const { data, loading, error } = useSolutionsQuery({ - * variables: { - * slug: // value for 'slug' - * }, - * }); - */ -export function useSolutionsQuery(baseOptions?: Apollo.QueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(SolutionsDocument, options); - } -export function useSolutionsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { - const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(SolutionsDocument, options); - } -export type SolutionsQueryHookResult = ReturnType; -export type SolutionsLazyQueryHookResult = ReturnType; -export type SolutionsQueryResult = Apollo.QueryResult; + ${QuoteFragmentDoc}`; +export const PageHomepageFragmentDoc = gql` + fragment PageHomepage on page_homepage { + quotes { + ...QuoteList + } + article_cards { + ...MediaCardComponent + } +} + ${QuoteListFragmentDoc} +${MediaCardComponentFragmentDoc}`; export const CustomPageSlugsDocument = gql` query CustomPageSlugs { custom_pages(filter: {status: {_eq: "published"}}) { @@ -12073,6 +10080,109 @@ export function useJobListingSlugsLazyQuery(baseOptions?: Apollo.LazyQueryHookOp export type JobListingSlugsQueryHookResult = ReturnType; export type JobListingSlugsLazyQueryHookResult = ReturnType; export type JobListingSlugsQueryResult = Apollo.QueryResult; +export const EventsDocument = gql` + query Events { + events(filter: {status: {_neq: "archived"}}) { + ...Event + } +} + ${EventFragmentDoc}`; + +/** + * __useEventsQuery__ + * + * To run a query within a React component, call `useEventsQuery` and pass it any options that fit your needs. + * When your component renders, `useEventsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useEventsQuery({ + * variables: { + * }, + * }); + */ +export function useEventsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(EventsDocument, options); + } +export function useEventsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(EventsDocument, options); + } +export type EventsQueryHookResult = ReturnType; +export type EventsLazyQueryHookResult = ReturnType; +export type EventsQueryResult = Apollo.QueryResult; +export const TeamMembersDocument = gql` + query TeamMembers { + team_members(filter: {status: {_neq: "archived"}}) { + ...TeamMember + } +} + ${TeamMemberFragmentDoc}`; + +/** + * __useTeamMembersQuery__ + * + * To run a query within a React component, call `useTeamMembersQuery` and pass it any options that fit your needs. + * When your component renders, `useTeamMembersQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTeamMembersQuery({ + * variables: { + * }, + * }); + */ +export function useTeamMembersQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TeamMembersDocument, options); + } +export function useTeamMembersLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TeamMembersDocument, options); + } +export type TeamMembersQueryHookResult = ReturnType; +export type TeamMembersLazyQueryHookResult = ReturnType; +export type TeamMembersQueryResult = Apollo.QueryResult; +export const FaqListDocument = gql` + query FaqList($slug: String) { + collapsible_lists(filter: {slug: {_eq: $slug}, status: {_neq: "archived"}}) { + ...FaqList + } +} + ${FaqListFragmentDoc}`; + +/** + * __useFaqListQuery__ + * + * To run a query within a React component, call `useFaqListQuery` and pass it any options that fit your needs. + * When your component renders, `useFaqListQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useFaqListQuery({ + * variables: { + * slug: // value for 'slug' + * }, + * }); + */ +export function useFaqListQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(FaqListDocument, options); + } +export function useFaqListLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(FaqListDocument, options); + } +export type FaqListQueryHookResult = ReturnType; +export type FaqListLazyQueryHookResult = ReturnType; +export type FaqListQueryResult = Apollo.QueryResult; export const PricingPageDocument = gql` query PricingPage { pricing_page { @@ -12176,40 +10286,111 @@ export function useProductPageLazyQuery(baseOptions?: Apollo.LazyQueryHookOption export type ProductPageQueryHookResult = ReturnType; export type ProductPageLazyQueryHookResult = ReturnType; export type ProductPageQueryResult = Apollo.QueryResult; -export const PageCommunityDocument = gql` - query PageCommunity { - page_community { - ...PageCommunity +export const SolutionsSlugsDocument = gql` + query SolutionsSlugs { + solutions_pages(filter: {status: {_neq: "archived"}}) { + slug + nav_title + category + } +} + `; + +/** + * __useSolutionsSlugsQuery__ + * + * To run a query within a React component, call `useSolutionsSlugsQuery` and pass it any options that fit your needs. + * When your component renders, `useSolutionsSlugsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useSolutionsSlugsQuery({ + * variables: { + * }, + * }); + */ +export function useSolutionsSlugsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(SolutionsSlugsDocument, options); + } +export function useSolutionsSlugsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(SolutionsSlugsDocument, options); + } +export type SolutionsSlugsQueryHookResult = ReturnType; +export type SolutionsSlugsLazyQueryHookResult = ReturnType; +export type SolutionsSlugsQueryResult = Apollo.QueryResult; +export const SolutionsDocument = gql` + query Solutions($slug: String) { + solutions_pages(filter: {slug: {_eq: $slug}, status: {_neq: "archived"}}) { + ...Solution + } +} + ${SolutionFragmentDoc}`; + +/** + * __useSolutionsQuery__ + * + * To run a query within a React component, call `useSolutionsQuery` and pass it any options that fit your needs. + * When your component renders, `useSolutionsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useSolutionsQuery({ + * variables: { + * slug: // value for 'slug' + * }, + * }); + */ +export function useSolutionsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(SolutionsDocument, options); + } +export function useSolutionsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(SolutionsDocument, options); + } +export type SolutionsQueryHookResult = ReturnType; +export type SolutionsLazyQueryHookResult = ReturnType; +export type SolutionsQueryResult = Apollo.QueryResult; +export const SiteSettingsDocument = gql` + query SiteSettings { + site_settings { + ...SiteSettings } } - ${PageCommunityFragmentDoc}`; + ${SiteSettingsFragmentDoc}`; /** - * __usePageCommunityQuery__ + * __useSiteSettingsQuery__ * - * To run a query within a React component, call `usePageCommunityQuery` and pass it any options that fit your needs. - * When your component renders, `usePageCommunityQuery` returns an object from Apollo Client that contains loading, error, and data properties + * To run a query within a React component, call `useSiteSettingsQuery` and pass it any options that fit your needs. + * When your component renders, `useSiteSettingsQuery` returns an object from Apollo Client that contains loading, error, and data properties * you can use to render your UI. * * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; * * @example - * const { data, loading, error } = usePageCommunityQuery({ + * const { data, loading, error } = useSiteSettingsQuery({ * variables: { * }, * }); */ -export function usePageCommunityQuery(baseOptions?: Apollo.QueryHookOptions) { +export function useSiteSettingsQuery(baseOptions?: Apollo.QueryHookOptions) { const options = {...defaultOptions, ...baseOptions} - return Apollo.useQuery(PageCommunityDocument, options); + return Apollo.useQuery(SiteSettingsDocument, options); } -export function usePageCommunityLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { +export function useSiteSettingsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { const options = {...defaultOptions, ...baseOptions} - return Apollo.useLazyQuery(PageCommunityDocument, options); + return Apollo.useLazyQuery(SiteSettingsDocument, options); } -export type PageCommunityQueryHookResult = ReturnType; -export type PageCommunityLazyQueryHookResult = ReturnType; -export type PageCommunityQueryResult = Apollo.QueryResult; +export type SiteSettingsQueryHookResult = ReturnType; +export type SiteSettingsLazyQueryHookResult = ReturnType; +export type SiteSettingsQueryResult = Apollo.QueryResult; export const PageLegalDocument = gql` query PageLegal { page_legal { diff --git a/src/generated/pages.json b/src/generated/pages.json index 8c17cab6..9080df12 100644 --- a/src/generated/pages.json +++ b/src/generated/pages.json @@ -20,9 +20,6 @@ { "path": "/kubecon" }, - { - "path": "/marketplace" - }, { "path": "/pricing" } diff --git a/src/graph/directus/cms.graphql b/src/graph/directus/cms.graphql deleted file mode 100644 index 00da39d0..00000000 --- a/src/graph/directus/cms.graphql +++ /dev/null @@ -1,288 +0,0 @@ -fragment Event on events { - id - name - start_date - end_date - show_start_time - show_end_time - timezone - description - fields - ctas -} - -query Events { - events(filter: { status: { _neq: "archived" } }) { - ...Event - } -} - -fragment Link on nav_link { - id - title - url -} - -fragment NavList on nav_list { - id - # slug' - flatten - mobile_only - link { - ...Link - } -} - -# fragment NavListDepth3 on nav_list { -# ...NavList -# subnav(sort: ["sort"]) { -# ...NavList -# subnav(sort: ["sort"]) { -# ...NavList -# } -# } -# } - -fragment CompanyLogo on company_logos { - slug - name - logo_light { - ...ImageFile - } - logo_dark { - ...ImageFile - } - url -} - -fragment LogoList on company_logo_lists { - slug - logos { - company_logos_id { - ...CompanyLogo - } - } -} - -# fragment SiteSettings on site_settings { -# main_nav(sort: ["sort"]) { -# ...NavListDepth3 -# } -# og_description -# og_image { -# ...ImageFile -# } -# og_image_marketplace { -# ...ImageFile -# } -# og_image_community { -# ...ImageFile -# } -# partner_logos { -# ...LogoList -# } -# promo_banner_content -# promo_banner_url -# } - -# query SiteSettings { -# site_settings { -# ...SiteSettings -# } -# } - -fragment CaseStudy on case_studies { - id - slug - label - title - content - ctas - stack_label - stack_apps - hero_image { - ...ImageFile - } -} - -fragment AppExtras on apps { - name - heroVideo - hero_text - secondary_title - secondary_text - case_study { - ...CaseStudy - } -} -fragment AppDefaults on app_defaults { - secondary_title - secondary_text - case_study { - ...CaseStudy - } - quotes { - ...QuoteList - } -} - -query AppExtras($name: String) { - apps(filter: { name: { _eq: $name } }) { - ...AppExtras - } - app_defaults { - ...AppDefaults - } -} - -fragment StackExtras on stacks { - name - heroVideo - case_study { - ...CaseStudy - } -} -fragment StackDefaults on stack_defaults { - case_study { - ...CaseStudy - } - quotes { - ...QuoteList - } -} - -query StackExtras($name: String) { - stacks(filter: { name: { _eq: $name } }) { - ...StackExtras - } - stack_defaults { - ...StackDefaults - } -} - -fragment ImageFile on directus_files { - id - title - description - tags - filename_disk - filename_download - metadata - type - filesize -} - -fragment TeamMember on team_members { - id - name - title - categories - pronouns - portrait { - ...ImageFile - } -} - -query TeamMembers { - team_members(filter: { status: { _neq: "archived" } }) { - ...TeamMember - } -} - -fragment FeaturedContributor on featured_contributors { - id - name - title - portrait { - ...ImageFile - } - social_github_url - social_twitter_url - social_linkedin_url - content - ctas -} - -query FeaturedContributors { - featured_contributors(filter: { status: { _neq: "archived" } }) { - ...FeaturedContributor - } -} - -fragment FaqItem on collapsibles { - id - label - content -} - -fragment FaqList on collapsible_lists { - items { - item { - ...FaqItem - } - } -} - -query FaqList($slug: String) { - collapsible_lists( - filter: { slug: { _eq: $slug }, status: { _neq: "archived" } } - ) { - ...FaqList - } -} - -fragment SolutionFeature on solution_features { - id - title - description - icon - link_title - link_url -} - -fragment SolutionProblem on solution_problems { - id - title - subtitle - problem - solution -} - -fragment Solution on solutions_pages { - id - slug - title - description - upper_features_title - lower_features_title - download_section_title - download_section_description - upper_features { - ...SolutionFeature - } - lower_features { - ...SolutionFeature - } - problems { - ...SolutionProblem - } - featured_quote { - ...Quote - } -} - -query SolutionsSlugs { - solutions_pages(filter: { status: { _neq: "archived" } }) { - slug - nav_title - category - } -} - -query Solutions($slug: String) { - solutions_pages( - filter: { slug: { _eq: $slug }, status: { _neq: "archived" } } - ) { - ...Solution - } -} diff --git a/src/graph/directus/customPages.graphql b/src/graph/directus/customPages.graphql index 4e772a7e..3be6ce44 100644 --- a/src/graph/directus/customPages.graphql +++ b/src/graph/directus/customPages.graphql @@ -14,6 +14,8 @@ fragment CustomPage on custom_pages { ...BlogCardsComponent ...CustomerQuoteComponent ...CTAComponent + ...MediaCardComponent + ...CardWithImageComponent } } } @@ -135,3 +137,34 @@ fragment CTAComponent on cta { cta_text cta_url } + +fragment MediaCardComponent on article_cards { + id + heading + description + thumbnail { + ...ImageFile + } + videoUrl + date + author + ctas + url +} + +fragment CardWithImageComponent on card_with_image { + spacing + theme + heading + body_text + image { + ...ImageFile + } + bullets { + rich_text_columns_id { + ...RichTextColumn + } + } + cta_text + cta_url +} diff --git a/src/graph/directus/misc.graphql b/src/graph/directus/misc.graphql new file mode 100644 index 00000000..9c941ff2 --- /dev/null +++ b/src/graph/directus/misc.graphql @@ -0,0 +1,89 @@ +fragment Event on events { + id + name + start_date + end_date + show_start_time + show_end_time + timezone + description + ctas +} + +query Events { + events(filter: { status: { _neq: "archived" } }) { + ...Event + } +} + +fragment CompanyLogo on company_logos { + slug + name + logo_light { + ...ImageFile + } + logo_dark { + ...ImageFile + } + url +} + +fragment LogoList on company_logo_lists { + slug + logos { + company_logos_id { + ...CompanyLogo + } + } +} + +fragment ImageFile on directus_files { + id + title + description + tags + filename_disk + filename_download + metadata + type + filesize +} + +fragment TeamMember on team_members { + id + name + title + categories + pronouns + portrait { + ...ImageFile + } +} + +query TeamMembers { + team_members(filter: { status: { _neq: "archived" } }) { + ...TeamMember + } +} + +fragment FaqItem on collapsibles { + id + label + content +} + +fragment FaqList on collapsible_lists { + items { + item { + ...FaqItem + } + } +} + +query FaqList($slug: String) { + collapsible_lists( + filter: { slug: { _eq: $slug }, status: { _neq: "archived" } } + ) { + ...FaqList + } +} diff --git a/src/graph/directus/pageData/solution.graphql b/src/graph/directus/pageData/solution.graphql new file mode 100644 index 00000000..09058525 --- /dev/null +++ b/src/graph/directus/pageData/solution.graphql @@ -0,0 +1,56 @@ +fragment SolutionFeature on solution_features { + id + title + description + icon + link_title + link_url +} + +fragment SolutionProblem on solution_problems { + id + title + subtitle + problem + solution +} + +fragment Solution on solutions_pages { + id + slug + title + description + upper_features_title + lower_features_title + download_section_title + download_section_description + upper_features { + ...SolutionFeature + } + lower_features { + ...SolutionFeature + } + problems { + ...SolutionProblem + } + featured_quote { + ...Quote + } + ebook_url +} + +query SolutionsSlugs { + solutions_pages(filter: { status: { _neq: "archived" } }) { + slug + nav_title + category + } +} + +query Solutions($slug: String) { + solutions_pages( + filter: { slug: { _eq: $slug }, status: { _neq: "archived" } } + ) { + ...Solution + } +} diff --git a/src/graph/directus/siteSettings.graphql b/src/graph/directus/siteSettings.graphql new file mode 100644 index 00000000..22c1e7d7 --- /dev/null +++ b/src/graph/directus/siteSettings.graphql @@ -0,0 +1,12 @@ +fragment SiteSettings on site_settings { + og_description + og_image { + ...ImageFile + } +} + +query SiteSettings { + site_settings { + ...SiteSettings + } +} diff --git a/src/graph/directus/pages.graphql b/src/graph/directus/topLevelPages.graphql similarity index 51% rename from src/graph/directus/pages.graphql rename to src/graph/directus/topLevelPages.graphql index 58831e69..6ac72211 100644 --- a/src/graph/directus/pages.graphql +++ b/src/graph/directus/topLevelPages.graphql @@ -1,24 +1,3 @@ -fragment Callout on callouts { - id - sort - category - title - content - ctas -} - -fragment PageCommunity on page_community { - callouts { - ...Callout - } -} - -query PageCommunity { - page_community { - ...PageCommunity - } -} - fragment MarkdownPage on markdown_pages { id slug @@ -47,29 +26,12 @@ query LegalPageSlugs { } } -fragment ArticleCard on article_cards { - id - heading - description - thumbnail { - ...ImageFile - } - videoUrl - date - author - ctas - url -} - fragment PageHomepage on page_homepage { quotes { ...QuoteList } article_cards { - ...ArticleCard - } - featured_quote { - ...Quote + ...MediaCardComponent } } diff --git a/src/utils/getGlobalProps.tsx b/src/utils/getGlobalProps.tsx index 14c27bce..17f67b8f 100644 --- a/src/utils/getGlobalProps.tsx +++ b/src/utils/getGlobalProps.tsx @@ -14,6 +14,9 @@ import { ProductPageSlugsDocument, type ProductPageSlugsQuery, type ProductPageSlugsQueryVariables, + SiteSettingsDocument, + type SiteSettingsQuery, + type SiteSettingsQueryVariables, SolutionsSlugsDocument, type SolutionsSlugsQuery, type SolutionsSlugsQueryVariables, @@ -48,7 +51,15 @@ async function getGlobalProps() { }) const products = productData.product_pages - const siteSettings = getSiteSettings(solutions, products) + const { data: siteSettingsData } = await directusClient.query< + SiteSettingsQuery, + SiteSettingsQueryVariables + >({ + query: SiteSettingsDocument, + }) + const siteSettingsQuery = siteSettingsData.site_settings ?? {} + + const siteSettings = getSiteSettings(siteSettingsQuery, solutions, products) return { siteSettings, diff --git a/yarn.lock b/yarn.lock index 2c19afb6..bcbd4c99 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2447,6 +2447,13 @@ __metadata: languageName: node linkType: hard +"@corex/deepmerge@npm:^4.0.43": + version: 4.0.43 + resolution: "@corex/deepmerge@npm:4.0.43" + checksum: f0103bfcfb9938ba478868fad522b018b92615ba186b0322c92aa1f57e539b87d4379d88fee3a404264a83bd4b13c384cfb07834377997d6d71cd840a880b4c4 + languageName: node + linkType: hard + "@csstools/css-parser-algorithms@npm:^2.3.0": version: 2.3.0 resolution: "@csstools/css-parser-algorithms@npm:2.3.0" @@ -3809,6 +3816,13 @@ __metadata: languageName: node linkType: hard +"@next/env@npm:^13.4.3": + version: 13.5.7 + resolution: "@next/env@npm:13.5.7" + checksum: 7703ba37a5ad9c280fb8a04af43231b41bec2ed0bcf182a7e9e147b12e9d710ef96bbdc8e67aa27d2cf1abd4b57951d1c12018ba6ff03fbd87f31876362f5f58 + languageName: node + linkType: hard + "@next/eslint-plugin-next@npm:14.1.0": version: 14.1.0 resolution: "@next/eslint-plugin-next@npm:14.1.0" @@ -12717,7 +12731,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.6": +"minimist@npm:^1.2.0, minimist@npm:^1.2.6, minimist@npm:^1.2.8": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 @@ -12950,6 +12964,23 @@ __metadata: languageName: node linkType: hard +"next-sitemap@npm:4.2.3": + version: 4.2.3 + resolution: "next-sitemap@npm:4.2.3" + dependencies: + "@corex/deepmerge": ^4.0.43 + "@next/env": ^13.4.3 + fast-glob: ^3.2.12 + minimist: ^1.2.8 + peerDependencies: + next: "*" + bin: + next-sitemap: bin/next-sitemap.mjs + next-sitemap-cjs: bin/next-sitemap.cjs + checksum: 322cbbf11b6549b7bd5acda98f60a4ef6bb6627e6cd5b4a9367aa8950edf6bcc90f47f4da74a18ecdd823f52c0f625b559b4165dbd27f292c731b222e38fa105 + languageName: node + linkType: hard + "next-transpile-modules@npm:10.0.0": version: 10.0.0 resolution: "next-transpile-modules@npm:10.0.0" @@ -13801,6 +13832,7 @@ __metadata: moment-timezone: 0.5.43 next: 13.4.12 next-compose-plugins: 2.2.1 + next-sitemap: 4.2.3 next-transpile-modules: 10.0.0 npm-run-all: 4.1.5 octokit: 3.1.0