From 7f0cb8016a256fdcc8501be439af86a386f06cc2 Mon Sep 17 00:00:00 2001 From: Jake Laderman Date: Mon, 28 Oct 2024 16:31:48 -0400 Subject: [PATCH] big directus clean up --- pages/index.tsx | 13 +- pages/marketplace.tsx | 618 ---- pages/solutions/[solution].tsx | 54 +- public/sitemap-0.xml | 56 +- src/components/PageHeader.tsx | 5 +- src/components/PrimaryPage.tsx | 32 +- src/components/PromoBanner.tsx | 160 - src/components/RepoCardList.tsx | 171 - .../MediaCard.tsx} | 30 +- .../page-sections/CaseStudySection.tsx | 93 - .../CommunityCalloutsSection.tsx | 122 - .../page-sections/EventsSection.tsx | 29 +- .../FeaturedContributorsSection.tsx | 181 - .../page-sections/MarketplaceCarousel.tsx | 141 - .../page-sections/MarketplaceFilters.tsx | 259 -- .../page-sections/MarketplaceSearchBar.tsx | 279 -- .../page-sections/MarketplaceStackHero.tsx | 95 - .../page-sections/articleSection.tsx | 4 +- src/data/getCommunityPageData.ts | 30 - src/data/getFeaturedContributors.ts | 23 - src/data/getSiteSettings.tsx | 97 +- src/generated/graphqlDirectus.ts | 3294 +++-------------- src/generated/pages.json | 3 - src/graph/directus/cms.graphql | 288 -- src/graph/directus/customPages.graphql | 15 + src/graph/directus/misc.graphql | 89 + src/graph/directus/pageData/solution.graphql | 56 + src/graph/directus/siteSettings.graphql | 12 + .../{pages.graphql => topLevelPages.graphql} | 40 +- src/utils/getGlobalProps.tsx | 13 +- 30 files changed, 850 insertions(+), 5452 deletions(-) delete mode 100644 pages/marketplace.tsx delete mode 100644 src/components/PromoBanner.tsx delete mode 100644 src/components/RepoCardList.tsx rename src/components/{ArticleCard.tsx => custom-page/MediaCard.tsx} (86%) delete mode 100644 src/components/page-sections/CaseStudySection.tsx delete mode 100644 src/components/page-sections/CommunityCalloutsSection.tsx delete mode 100644 src/components/page-sections/FeaturedContributorsSection.tsx delete mode 100644 src/components/page-sections/MarketplaceCarousel.tsx delete mode 100644 src/components/page-sections/MarketplaceFilters.tsx delete mode 100644 src/components/page-sections/MarketplaceSearchBar.tsx delete mode 100644 src/components/page-sections/MarketplaceStackHero.tsx delete mode 100644 src/data/getCommunityPageData.ts delete mode 100644 src/data/getFeaturedContributors.ts delete mode 100644 src/graph/directus/cms.graphql create mode 100644 src/graph/directus/misc.graphql create mode 100644 src/graph/directus/pageData/solution.graphql create mode 100644 src/graph/directus/siteSettings.graphql rename src/graph/directus/{pages.graphql => topLevelPages.graphql} (51%) 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/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/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/public/sitemap-0.xml b/public/sitemap-0.xml index 4662e13e..62db127c 100644 --- a/public/sitemap-0.xml +++ b/public/sitemap-0.xml @@ -1,31 +1,31 @@ -https://plural.sh2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/about2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/careers2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/community2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/contact2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/contact-sales2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/kubecon2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/pricing2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/4042024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/5002024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/kubernetes/test2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/kubernetes/demo-video2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/careers/hire/enterprise-account-executive2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/careers/hire/software-eng2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/careers/hire/tech-lead2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/careers/hire/product-marketing-manager2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/careers/hire/bdr2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/solutions/plural-for-healthcare2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/legal/terms-and-conditions2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/legal/privacy-policy2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/products/cluster-upgrade-assistant2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/products/continuous-deployment2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/products/kubernetes-dashboard2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/products/global-services2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/products/pr-automation2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/products/policy-enforcement2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/products/namespace-as-a-service2024-10-28T20:26:53.212Zdaily0.5 -https://plural.sh/products/terraform-stacks2024-10-28T20:26:53.212Zdaily0.5 +https://plural.sh2024-10-28T20:32:25.788Zdaily0.5 +https://plural.sh/about2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/careers2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/community2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/contact2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/contact-sales2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/kubecon2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/pricing2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/4042024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/5002024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/legal/terms-and-conditions2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/legal/privacy-policy2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/careers/hire/enterprise-account-executive2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/careers/hire/software-eng2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/careers/hire/tech-lead2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/careers/hire/product-marketing-manager2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/careers/hire/bdr2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/products/cluster-upgrade-assistant2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/products/continuous-deployment2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/products/kubernetes-dashboard2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/products/global-services2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/products/pr-automation2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/products/policy-enforcement2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/products/namespace-as-a-service2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/products/terraform-stacks2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/solutions/plural-for-healthcare2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/kubernetes/test2024-10-28T20:32:25.789Zdaily0.5 +https://plural.sh/kubernetes/demo-video2024-10-28T20:32:25.789Zdaily0.5 \ No newline at end of file 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/ArticleCard.tsx b/src/components/custom-page/MediaCard.tsx similarity index 86% rename from src/components/ArticleCard.tsx rename to src/components/custom-page/MediaCard.tsx index 7499a05a..1108bdd9 100644 --- a/src/components/ArticleCard.tsx +++ b/src/components/custom-page/MediaCard.tsx @@ -9,15 +9,15 @@ import { type Merge } from 'type-fest' import { mqs } from '@src/breakpoints' import { QUICKSTART_VIDEO_URL } from '@src/consts' import { getImageUrl } from '@src/consts/routes' -import { type ArticleCardFragment } from '@src/generated/graphqlDirectus' +import { type MediaCardComponentFragment } from '@src/generated/graphqlDirectus' import { isExternalUrl } from '@src/utils/text' -import Embed from './Embed' -import { SubsectionHead } from './SectionHeads' -import { ShadowedCard } from './ShadowedCard' -import { Body1, Cta } from './Typography' +import Embed from '../Embed' +import { SubsectionHead } from '../SectionHeads' +import { ShadowedCard } from '../ShadowedCard' +import { Body1, Cta } from '../Typography' -const ArticleCardSC = styled(ShadowedCard)<{ +const MediaCardSC = styled(ShadowedCard)<{ $size: 'medium' | 'small' $reverse: boolean }>(({ $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/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/articleSection.tsx b/src/components/page-sections/articleSection.tsx index 374eaa65..38ab160e 100644 --- a/src/components/page-sections/articleSection.tsx +++ b/src/components/page-sections/articleSection.tsx @@ -5,7 +5,7 @@ import Link from 'next/link' import { type PageHomepageQuery } from '@src/generated/graphqlDirectus' import { cn as classNames } from '@src/utils/cn' -import { ArticleCardNoBorder } from '../ArticleCard' +import { MediaCardNoBorder } from '../custom-page/MediaCard' import { GradientBG } from '../layout/GradientBG' import { StandardPageSection, StandardPageWidth } from '../layout/LayoutHelpers' import { CenteredSectionHead } from '../SectionHeads' @@ -114,7 +114,7 @@ function ArticleSection({ articleCards }: { articleCards?: ArticleCardsType }) { return ( c && ( - ->['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..87c0350a 100644 --- a/src/generated/graphqlDirectus.ts +++ b/src/generated/graphqlDirectus.ts @@ -26,22 +26,16 @@ 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_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 +60,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; @@ -86,8 +76,6 @@ export type Mutation = { 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 +104,20 @@ 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_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 +142,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; @@ -182,8 +158,6 @@ export type Mutation = { 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,25 +186,16 @@ 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; @@ -240,9 +205,6 @@ export type Mutation = { 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 +241,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; @@ -309,10 +265,6 @@ export type Mutation = { 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 +311,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 +320,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,22 +352,6 @@ export type MutationCreate_Blog_Cards_ItemsArgs = { }; -export type MutationCreate_Callouts_ItemArgs = { - data: Create_Callouts_Input; -}; - - -export type MutationCreate_Callouts_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type MutationCreate_Card_ItemArgs = { data: Create_Card_Input; }; @@ -484,22 +400,6 @@ export type MutationCreate_Cards_ItemsArgs = { }; -export type MutationCreate_Case_Studies_ItemArgs = { - data: Create_Case_Studies_Input; -}; - - -export type MutationCreate_Case_Studies_ItemsArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type MutationCreate_Collapsible_Lists_ItemArgs = { data: Create_Collapsible_Lists_Input; }; @@ -692,38 +592,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; }; @@ -852,22 +720,6 @@ export type MutationCreate_Nav_Link_ItemsArgs = { }; -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 +944,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 +976,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,16 +996,6 @@ export type MutationDelete_Blog_Cards_ItemsArgs = { }; -export type MutationDelete_Callouts_ItemArgs = { - id: Scalars['ID']['input']; -}; - - -export type MutationDelete_Callouts_ItemsArgs = { - ids: Array>; -}; - - export type MutationDelete_Card_ItemArgs = { id: Scalars['ID']['input']; }; @@ -1210,16 +1026,6 @@ export type MutationDelete_Cards_ItemsArgs = { }; -export type MutationDelete_Case_Studies_ItemArgs = { - id: Scalars['ID']['input']; -}; - - -export type MutationDelete_Case_Studies_ItemsArgs = { - ids: Array>; -}; - - export type MutationDelete_Collapsible_Lists_ItemArgs = { id: Scalars['ID']['input']; }; @@ -1340,26 +1146,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']; }; @@ -1440,16 +1226,6 @@ export type MutationDelete_Nav_Link_ItemsArgs = { }; -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 +1366,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,40 +1386,6 @@ 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; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Apps_ItemArgs = { - data: Update_Apps_Input; - id: Scalars['ID']['input']; -}; - - -export type MutationUpdate_Apps_ItemsArgs = { - data: Update_Apps_Input; - filter?: InputMaybe; - ids: Array>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type MutationUpdate_Article_Cards_BatchArgs = { data?: InputMaybe>; filter?: InputMaybe; @@ -1712,35 +1444,6 @@ export type MutationUpdate_Blog_Cards_ItemsArgs = { }; -export type MutationUpdate_Callouts_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Callouts_ItemArgs = { - data: Update_Callouts_Input; - id: Scalars['ID']['input']; -}; - - -export type MutationUpdate_Callouts_ItemsArgs = { - data: Update_Callouts_Input; - filter?: InputMaybe; - ids: Array>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type MutationUpdate_Card_BatchArgs = { data?: InputMaybe>; filter?: InputMaybe; @@ -1828,35 +1531,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,64 +1879,6 @@ export type MutationUpdate_Events_ItemsArgs = { }; -export type MutationUpdate_Faqs_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Faqs_ItemArgs = { - data: Update_Faqs_Input; - id: Scalars['ID']['input']; -}; - - -export type MutationUpdate_Faqs_ItemsArgs = { - data: Update_Faqs_Input; - filter?: InputMaybe; - ids: Array>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Featured_Contributors_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type MutationUpdate_Featured_Contributors_ItemArgs = { - data: Update_Featured_Contributors_Input; - id: Scalars['ID']['input']; -}; - - -export type MutationUpdate_Featured_Contributors_ItemsArgs = { - data: Update_Featured_Contributors_Input; - filter?: InputMaybe; - ids: Array>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - export type MutationUpdate_Hero_BatchArgs = { data?: InputMaybe>; filter?: InputMaybe; @@ -2495,47 +2111,13 @@ export type MutationUpdate_Nav_Link_ItemsArgs = { }; -export type MutationUpdate_Nav_List_BatchArgs = { - data?: InputMaybe>; - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; +export type MutationUpdate_Page_HomepageArgs = { + data: Update_Page_Homepage_Input; }; -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; -}; - - -export type MutationUpdate_Page_LegalArgs = { - data: Update_Page_Legal_Input; +export type MutationUpdate_Page_LegalArgs = { + data: Update_Page_Legal_Input; }; @@ -2955,40 +2537,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,19 +2596,12 @@ 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; @@ -3070,9 +2611,6 @@ export type Query = { 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 +2647,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; @@ -3139,10 +2671,6 @@ export type Query = { 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 +2717,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 +2726,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,32 +2778,6 @@ export type QueryBlog_Cards_By_IdArgs = { }; -export type QueryCalloutsArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryCallouts_AggregatedArgs = { - filter?: InputMaybe; - groupBy?: InputMaybe>>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryCallouts_By_IdArgs = { - id: Scalars['ID']['input']; -}; - - export type QueryCardArgs = { filter?: InputMaybe; limit?: InputMaybe; @@ -3384,32 +2856,6 @@ export type QueryCards_Card_By_IdArgs = { }; -export type QueryCase_StudiesArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryCase_Studies_AggregatedArgs = { - filter?: InputMaybe; - groupBy?: InputMaybe>>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryCase_Studies_By_IdArgs = { - id: Scalars['ID']['input']; -}; - - export type QueryCollapsible_ListsArgs = { filter?: InputMaybe; limit?: InputMaybe; @@ -3722,58 +3168,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; @@ -3982,32 +3376,6 @@ export type QueryNav_Link_By_IdArgs = { }; -export type QueryNav_ListArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryNav_List_AggregatedArgs = { - filter?: InputMaybe; - groupBy?: InputMaybe>>; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type QueryNav_List_By_IdArgs = { - id: Scalars['ID']['input']; -}; - - export type QueryPricing_Plan_FeaturesArgs = { filter?: InputMaybe; limit?: InputMaybe; @@ -4372,32 +3740,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,21 +3791,33 @@ export type QueryTwo_Column_Text_By_IdArgs = { id: Scalars['ID']['input']; }; -export type App_Defaults = { - __typename?: 'app_defaults'; - case_study?: Maybe; +export type Article_Cards = { + __typename?: 'article_cards'; + article_card_id?: Maybe; + author?: Maybe; + ctas?: Maybe; + ctas_func?: Maybe; + date?: Maybe; + date_created?: Maybe; + date_created_func?: Maybe; + date_func?: Maybe; date_updated?: Maybe; date_updated_func?: Maybe; + description?: Maybe; + heading?: Maybe; id: Scalars['ID']['output']; - quotes?: Maybe; - secondary_text?: Maybe; - secondary_title?: Maybe; + sort?: Maybe; + status?: Maybe; + thumbnail?: Maybe; + url?: Maybe; + user_created?: Maybe; user_updated?: Maybe; + videoUrl?: Maybe; }; -export type App_DefaultsCase_StudyArgs = { - filter?: InputMaybe; +export type Article_CardsArticle_Card_IdArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -4472,8 +3826,8 @@ export type App_DefaultsCase_StudyArgs = { }; -export type App_DefaultsQuotesArgs = { - filter?: InputMaybe; +export type Article_CardsThumbnailArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -4482,7 +3836,7 @@ export type App_DefaultsQuotesArgs = { }; -export type App_DefaultsUser_UpdatedArgs = { +export type Article_CardsUser_CreatedArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; @@ -4491,35 +3845,8 @@ export type App_DefaultsUser_UpdatedArgs = { 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 = { +export type Article_CardsUser_UpdatedArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; @@ -4528,155 +3855,38 @@ export type AppsUser_UpdatedArgs = { sort?: InputMaybe>>; }; -export type Apps_Aggregated = { - __typename?: 'apps_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; +export type Article_Cards_Aggregated = { + __typename?: 'article_cards_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 Apps_Aggregated_Count = { - __typename?: 'apps_aggregated_count'; - /** Use to override default case study on individual app page */ - case_study?: Maybe; +export type Article_Cards_Aggregated_Count = { + __typename?: 'article_cards_aggregated_count'; + article_card_id?: Maybe; + author?: Maybe; + ctas?: Maybe; + date?: Maybe; + date_created?: Maybe; date_updated?: Maybe; - heroVideo?: Maybe; - /** Optional - Default comes from main Plural API */ - hero_text?: Maybe; + description?: Maybe; + heading?: Maybe; id?: Maybe; - name?: Maybe; - /** Optional - Default set in App Defaults */ - secondary_text?: Maybe; - /** Optional - Default set in App Defaults */ - secondary_title?: Maybe; + sort?: Maybe; + status?: Maybe; + thumbnail?: Maybe; + url?: Maybe; + user_created?: 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; - author?: Maybe; - ctas?: Maybe; - ctas_func?: Maybe; - date?: Maybe; - date_created?: Maybe; - date_created_func?: Maybe; - date_func?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - description?: Maybe; - heading?: Maybe; - id: Scalars['ID']['output']; - sort?: Maybe; - status?: Maybe; - thumbnail?: Maybe; - url?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; - videoUrl?: Maybe; -}; - - -export type Article_CardsArticle_Card_IdArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Article_CardsThumbnailArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Article_CardsUser_CreatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Article_CardsUser_UpdatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Article_Cards_Aggregated = { - __typename?: 'article_cards_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; - countAll?: Maybe; - countDistinct?: Maybe; - group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; -}; - -export type Article_Cards_Aggregated_Count = { - __typename?: 'article_cards_aggregated_count'; - article_card_id?: Maybe; - author?: Maybe; - ctas?: Maybe; - date?: Maybe; - date_created?: Maybe; - date_updated?: Maybe; - description?: Maybe; - heading?: Maybe; - id?: Maybe; - sort?: Maybe; - status?: Maybe; - thumbnail?: Maybe; - url?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; - videoUrl?: Maybe; + videoUrl?: Maybe; }; export type Article_Cards_Aggregated_Fields = { @@ -4792,112 +4002,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']; @@ -5143,42 +4247,24 @@ export type Cards_Filter = { user_updated?: InputMaybe; }; -export type Case_Studies = { - __typename?: 'case_studies'; - case_study_id?: Maybe; - content?: Maybe; - ctas?: Maybe; - ctas_func?: Maybe; +export type Collapsible_Lists = { + __typename?: 'collapsible_lists'; 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; + items?: Maybe>>; + items_func?: Maybe; + slug: Scalars['String']['output']; status?: Maybe; - title?: Maybe; user_created?: Maybe; user_updated?: Maybe; }; -export type Case_StudiesCase_Study_IdArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Case_StudiesHero_ImageArgs = { - filter?: InputMaybe; +export type Collapsible_ListsItemsArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -5187,7 +4273,7 @@ export type Case_StudiesHero_ImageArgs = { }; -export type Case_StudiesUser_CreatedArgs = { +export type Collapsible_ListsUser_CreatedArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; @@ -5197,7 +4283,7 @@ export type Case_StudiesUser_CreatedArgs = { }; -export type Case_StudiesUser_UpdatedArgs = { +export type Collapsible_ListsUser_UpdatedArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; @@ -5206,165 +4292,57 @@ export type Case_StudiesUser_UpdatedArgs = { sort?: InputMaybe>>; }; -export type Case_Studies_Aggregated = { - __typename?: 'case_studies_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; +export type Collapsible_Lists_Aggregated = { + __typename?: 'collapsible_lists_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; +export type Collapsible_Lists_Aggregated_Count = { + __typename?: 'collapsible_lists_aggregated_count'; date_created?: Maybe; date_updated?: Maybe; - hero_image?: Maybe; id?: Maybe; - label?: Maybe; + items?: 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 Collapsible_Lists_Aggregated_Fields = { + __typename?: 'collapsible_lists_aggregated_fields'; id?: Maybe; }; -export type Case_Studies_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - case_study_id?: InputMaybe; - content?: InputMaybe; - ctas?: InputMaybe; - ctas_func?: InputMaybe; +export type Collapsible_Lists_Filter = { + _and?: InputMaybe>>; + _or?: InputMaybe>>; date_created?: InputMaybe; date_created_func?: InputMaybe; date_updated?: InputMaybe; date_updated_func?: InputMaybe; - hero_image?: InputMaybe; id?: InputMaybe; - label?: InputMaybe; + items?: InputMaybe; + items_func?: InputMaybe; slug?: InputMaybe; - stack_apps?: InputMaybe; - stack_apps_func?: InputMaybe; - stack_label?: InputMaybe; status?: InputMaybe; - title?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; -export type Collapsible_Lists = { - __typename?: 'collapsible_lists'; - date_created?: Maybe; - date_created_func?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - id: Scalars['ID']['output']; - items?: Maybe>>; - items_func?: Maybe; - slug: Scalars['String']['output']; - status?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; -}; - - -export type Collapsible_ListsItemsArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Collapsible_ListsUser_CreatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Collapsible_ListsUser_UpdatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Collapsible_Lists_Aggregated = { - __typename?: 'collapsible_lists_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; - countAll?: Maybe; - countDistinct?: Maybe; - group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; -}; - -export type Collapsible_Lists_Aggregated_Count = { - __typename?: 'collapsible_lists_aggregated_count'; - date_created?: Maybe; - date_updated?: Maybe; - id?: Maybe; - items?: Maybe; - slug?: Maybe; - status?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; -}; - -export type Collapsible_Lists_Aggregated_Fields = { - __typename?: 'collapsible_lists_aggregated_fields'; - id?: Maybe; -}; - -export type Collapsible_Lists_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - date_created?: InputMaybe; - date_created_func?: InputMaybe; - date_updated?: InputMaybe; - date_updated_func?: InputMaybe; - id?: InputMaybe; - items?: InputMaybe; - items_func?: InputMaybe; - slug?: InputMaybe; - status?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Collapsible_Lists_Items = { - __typename?: 'collapsible_lists_items'; - collapsible_lists_id?: Maybe; - collection?: Maybe; +export type Collapsible_Lists_Items = { + __typename?: 'collapsible_lists_items'; + collapsible_lists_id?: Maybe; + collection?: Maybe; id: Scalars['ID']['output']; item?: Maybe; sort?: Maybe; @@ -5839,21 +4817,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,21 +4845,6 @@ export type Create_Blog_Cards_Input = { user_updated?: InputMaybe; }; -export type Create_Callouts_Input = { - callout_id?: InputMaybe; - category?: InputMaybe; - content?: InputMaybe; - ctas?: InputMaybe; - date_created?: InputMaybe; - date_updated?: InputMaybe; - id?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - export type Create_Card_Input = { body_text: Scalars['String']['input']; date_created?: InputMaybe; @@ -5925,24 +4873,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 +5057,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,38 +5067,7 @@ 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; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Create_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 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; + url?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; @@ -6270,33 +5168,10 @@ export type Create_Nav_Link_Input = { 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 +5247,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 +5286,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 +5336,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 +5359,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,6 +5598,7 @@ export type Custom_Pages_Components_Filter = { collection?: InputMaybe; custom_pages_id?: InputMaybe; id?: InputMaybe; + item__article_cards?: InputMaybe; item__blog_cards?: InputMaybe; item__cards?: InputMaybe; item__cta?: InputMaybe; @@ -6755,7 +5611,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 | 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 +6025,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 +6036,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 +6082,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 +6092,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 +6114,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,30 +6124,41 @@ export type Events_Filter = { start_date_func?: InputMaybe; status?: InputMaybe; timezone?: InputMaybe; + url?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; -export type Faqs = { - __typename?: 'faqs'; - collapsible_id?: Maybe; - content?: Maybe; +export type Hash_Filter_Operators = { + _empty?: InputMaybe; + _nempty?: InputMaybe; + _nnull?: InputMaybe; + _null?: InputMaybe; +}; + +export type Hero = { + __typename?: 'hero'; + body_text?: Maybe; + cta_text?: Maybe; + cta_url?: Maybe; date_created?: Maybe; date_created_func?: Maybe; date_updated?: Maybe; date_updated_func?: Maybe; + form?: Maybe; + heading?: Maybe; id: Scalars['ID']['output']; - label?: Maybe; - slug?: Maybe; - sort?: Maybe; - status?: Maybe; + image?: Maybe; + media_type?: Maybe; + spacing?: Maybe; user_created?: Maybe; user_updated?: Maybe; + video_url?: Maybe; }; -export type FaqsCollapsible_IdArgs = { - filter?: InputMaybe; +export type HeroImageArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -7303,7 +6167,7 @@ export type FaqsCollapsible_IdArgs = { }; -export type FaqsUser_CreatedArgs = { +export type HeroUser_CreatedArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; @@ -7313,7 +6177,7 @@ export type FaqsUser_CreatedArgs = { }; -export type FaqsUser_UpdatedArgs = { +export type HeroUser_UpdatedArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; @@ -7322,290 +6186,66 @@ export type FaqsUser_UpdatedArgs = { sort?: InputMaybe>>; }; -export type Faqs_Aggregated = { - __typename?: 'faqs_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; +export type Hero_Aggregated = { + __typename?: 'hero_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 Faqs_Aggregated_Count = { - __typename?: 'faqs_aggregated_count'; - collapsible_id?: Maybe; - content?: Maybe; +export type Hero_Aggregated_Count = { + __typename?: 'hero_aggregated_count'; + body_text?: Maybe; + cta_text?: Maybe; + cta_url?: Maybe; date_created?: Maybe; date_updated?: Maybe; + form?: Maybe; + heading?: Maybe; id?: Maybe; - label?: Maybe; - slug?: Maybe; - sort?: Maybe; - status?: Maybe; + image?: Maybe; + media_type?: Maybe; + spacing?: Maybe; user_created?: Maybe; user_updated?: Maybe; + video_url?: Maybe; }; -export type Faqs_Aggregated_Fields = { - __typename?: 'faqs_aggregated_fields'; - collapsible_id?: Maybe; - sort?: Maybe; +export type Hero_Aggregated_Fields = { + __typename?: 'hero_aggregated_fields'; + id?: Maybe; }; -export type Faqs_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - collapsible_id?: InputMaybe; - content?: InputMaybe; +export type Hero_Filter = { + _and?: InputMaybe>>; + _or?: InputMaybe>>; + body_text?: InputMaybe; + cta_text?: InputMaybe; + cta_url?: 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; + form?: InputMaybe; + heading?: InputMaybe; + id?: InputMaybe; + image?: InputMaybe; + media_type?: InputMaybe; + spacing?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; + video_url?: 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; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Hash_Filter_Operators = { - _empty?: InputMaybe; - _nempty?: InputMaybe; - _nnull?: InputMaybe; - _null?: InputMaybe; -}; - -export type Hero = { - __typename?: 'hero'; - body_text?: Maybe; - cta_text?: Maybe; - cta_url?: Maybe; - date_created?: Maybe; - date_created_func?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - form?: Maybe; - heading?: Maybe; - id: Scalars['ID']['output']; - image?: Maybe; - media_type?: Maybe; - spacing?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; - video_url?: Maybe; -}; - - -export type HeroImageArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type HeroUser_CreatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type HeroUser_UpdatedArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - -export type Hero_Aggregated = { - __typename?: 'hero_aggregated'; - avg?: Maybe; - avgDistinct?: Maybe; - count?: Maybe; - countAll?: Maybe; - countDistinct?: Maybe; - group?: Maybe; - max?: Maybe; - min?: Maybe; - sum?: Maybe; - sumDistinct?: Maybe; -}; - -export type Hero_Aggregated_Count = { - __typename?: 'hero_aggregated_count'; - body_text?: Maybe; - cta_text?: Maybe; - cta_url?: Maybe; - date_created?: Maybe; - date_updated?: Maybe; - form?: Maybe; - heading?: Maybe; - id?: Maybe; - image?: Maybe; - media_type?: Maybe; - spacing?: Maybe; - user_created?: Maybe; - user_updated?: Maybe; - video_url?: Maybe; -}; - -export type Hero_Aggregated_Fields = { - __typename?: 'hero_aggregated_fields'; - id?: Maybe; -}; - -export type Hero_Filter = { - _and?: InputMaybe>>; - _or?: InputMaybe>>; - body_text?: InputMaybe; - cta_text?: InputMaybe; - cta_url?: InputMaybe; - date_created?: InputMaybe; - date_created_func?: InputMaybe; - date_updated?: InputMaybe; - date_updated_func?: InputMaybe; - form?: InputMaybe; - heading?: InputMaybe; - id?: InputMaybe; - image?: InputMaybe; - media_type?: InputMaybe; - spacing?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; - video_url?: InputMaybe; -}; - -export type Job_Listings = { - __typename?: 'job_listings'; +export type Job_Listings = { + __typename?: 'job_listings'; content?: Maybe; date_created?: Maybe; date_created_func?: Maybe; @@ -8170,96 +6810,6 @@ export type Nav_Link_Filter = { 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; @@ -8275,22 +6825,23 @@ export type Number_Filter_Operators = { _null?: InputMaybe; }; -export type Page_Community = { - __typename?: 'page_community'; - callouts?: Maybe>>; - callouts_func?: 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; }; -export type Page_CommunityCalloutsArgs = { - filter?: InputMaybe; +export type Page_HomepageArticle_CardsArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -8299,8 +6850,8 @@ export type Page_CommunityCalloutsArgs = { }; -export type Page_CommunityUser_CreatedArgs = { - filter?: InputMaybe; +export type Page_HomepageQuotesArgs = { + filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; page?: InputMaybe; @@ -8309,87 +6860,7 @@ export type Page_CommunityUser_CreatedArgs = { }; -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_HomepageArticle_CardsArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -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; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - sort?: InputMaybe>>; -}; - - -export type Page_HomepageUser_CreatedArgs = { +export type Page_HomepageUser_CreatedArgs = { filter?: InputMaybe; limit?: InputMaybe; offset?: InputMaybe; @@ -8413,12 +6884,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 +7437,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 +7496,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 +7515,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 +7699,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 +7714,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 +7743,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 +7750,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 +7780,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 +7793,6 @@ export type Site_Settings_Nav_List_Filter = { _and?: InputMaybe>>; _or?: InputMaybe>>; id?: InputMaybe; - nav_list_id?: InputMaybe; site_settings_id?: InputMaybe; }; @@ -9650,6 +8039,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 +8141,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 +8176,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,121 +8259,6 @@ export type Solutions_Pages_Solution_Problems_Filter = { solutions_pages_id?: InputMaybe; }; -export type Stack_Defaults = { - __typename?: 'stack_defaults'; - case_study?: Maybe; - date_updated?: Maybe; - date_updated_func?: Maybe; - id: Scalars['ID']['output']; - quotes?: Maybe; - user_updated?: Maybe; -}; - - -export type Stack_DefaultsCase_StudyArgs = { - filter?: InputMaybe; - limit?: InputMaybe; - offset?: InputMaybe; - page?: InputMaybe; - search?: InputMaybe; - 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; @@ -10163,31 +8440,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,21 +8468,6 @@ export type Update_Blog_Cards_Input = { user_updated?: InputMaybe; }; -export type Update_Callouts_Input = { - callout_id?: InputMaybe; - category?: InputMaybe; - content?: InputMaybe; - ctas?: InputMaybe; - date_created?: InputMaybe; - date_updated?: InputMaybe; - id?: InputMaybe; - sort?: InputMaybe; - status?: InputMaybe; - title?: InputMaybe; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - export type Update_Card_Input = { body_text?: InputMaybe; date_created?: InputMaybe; @@ -10259,24 +8496,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 +8680,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,50 +8690,19 @@ 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; + url?: InputMaybe; user_created?: InputMaybe; user_updated?: InputMaybe; }; -export type Update_Faqs_Input = { - collapsible_id?: InputMaybe; - content?: InputMaybe; +export type Update_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 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; - user_created?: InputMaybe; - user_updated?: InputMaybe; -}; - -export type Update_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; @@ -10604,33 +8791,10 @@ export type Update_Nav_Link_Input = { 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 +8880,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 +8919,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 +8969,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 +8992,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,91 +9017,7 @@ 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 EventsQueryVariables = 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 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 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 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 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 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 AppExtrasQueryVariables = Exact<{ - name?: InputMaybe; -}>; - - -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 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 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 StackExtrasQueryVariables = Exact<{ - name?: InputMaybe; -}>; - - -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 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 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 TeamMembersQueryVariables = 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 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 FeaturedContributorsQueryVariables = Exact<{ [key: string]: never; }>; - - -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 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 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?: '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 }; @@ -10979,7 +9031,7 @@ export type CustomPageQueryVariables = Exact<{ }>; -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 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?: '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 }; @@ -11005,6 +9057,8 @@ export type CustomerQuoteComponentFragment = { __typename?: 'customer_quote', sp 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 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 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 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 }; @@ -11026,6 +9080,37 @@ export type JobListingSlugsQueryVariables = Exact<{ [key: string]: never; }>; export type JobListingSlugsQuery = { __typename?: 'Query', job_listings: Array<{ __typename?: 'job_listings', slug: string }> }; +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 EventsQueryVariables = 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, ctas?: any | null }> }; + +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 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 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 TeamMembersQueryVariables = 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 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 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 }; export type PricingPlanFragment = { __typename?: 'pricing_plans', id: string, name: string, subtitle?: string | null, features?: Array<{ __typename?: 'pricing_plan_features', id: string, description?: string | null } | null> | null }; @@ -11055,14 +9140,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 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 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 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 PageCommunityQueryVariables = Exact<{ [key: string]: never; }>; +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 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 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 +9183,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 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 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 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,214 +9203,49 @@ 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 { +export const HeroComponentFragmentDoc = gql` + fragment HeroComponent on hero { + spacing + heading + body_text + media_type + image { ...ImageFile } + video_url + form + cta_text + cta_url } ${ImageFileFragmentDoc}`; -export const AppExtrasFragmentDoc = gql` - fragment AppExtras on apps { +export const CompanyLogoFragmentDoc = gql` + fragment CompanyLogo on company_logos { + slug name - heroVideo - hero_text - secondary_title - secondary_text - case_study { - ...CaseStudy + logo_light { + ...ImageFile } + logo_dark { + ...ImageFile + } + url } - ${CaseStudyFragmentDoc}`; -export const QuoteFragmentDoc = gql` - fragment Quote on quotes { - id - quote - author_text -} - `; -export const QuoteListFragmentDoc = gql` - fragment QuoteList on quote_lists { + ${ImageFileFragmentDoc}`; +export const LogoListFragmentDoc = gql` + fragment LogoList on company_logo_lists { slug - items { - item { - ...Quote + logos { + company_logos_id { + ...CompanyLogo } } } - ${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 - heading - body_text - media_type - image { - ...ImageFile - } - video_url - form - cta_text - cta_url -} - ${ImageFileFragmentDoc}`; -export const CompanyLogoFragmentDoc = gql` - fragment CompanyLogo on company_logos { - slug - name - logo_light { - ...ImageFile - } - logo_dark { - ...ImageFile - } - url -} - ${ImageFileFragmentDoc}`; -export const LogoListFragmentDoc = gql` - fragment LogoList on company_logo_lists { - slug - logos { - company_logos_id { - ...CompanyLogo - } - } -} - ${CompanyLogoFragmentDoc}`; -export const LogoStripComponentFragmentDoc = gql` - fragment LogoStripComponent on logo_strip { - spacing - logo_list { - ...LogoList + ${CompanyLogoFragmentDoc}`; +export const LogoStripComponentFragmentDoc = gql` + fragment LogoStripComponent on logo_strip { + spacing + logo_list { + ...LogoList } } ${LogoListFragmentDoc}`; @@ -11419,6 +9322,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,6 +9346,21 @@ export const CtaComponentFragmentDoc = gql` cta_url } `; +export const MediaCardComponentFragmentDoc = gql` + fragment MediaCardComponent on article_cards { + id + heading + description + thumbnail { + ...ImageFile + } + videoUrl + date + author + ctas + url +} + ${ImageFileFragmentDoc}`; export const CustomPageFragmentDoc = gql` fragment CustomPage on custom_pages { id @@ -11453,6 +9378,7 @@ export const CustomPageFragmentDoc = gql` ...BlogCardsComponent ...CustomerQuoteComponent ...CTAComponent + ...MediaCardComponent } } } @@ -11465,7 +9391,8 @@ ${MultiColumnTextComponentFragmentDoc} ${CardsComponentFragmentDoc} ${BlogCardsComponentFragmentDoc} ${CustomerQuoteComponentFragmentDoc} -${CtaComponentFragmentDoc}`; +${CtaComponentFragmentDoc} +${MediaCardComponentFragmentDoc}`; export const CustomPageTinyFragmentDoc = gql` fragment CustomPageTiny on custom_pages { id @@ -11489,6 +9416,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 +9520,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 +9783,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 +9989,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..9713c0e9 100644 --- a/src/graph/directus/customPages.graphql +++ b/src/graph/directus/customPages.graphql @@ -14,6 +14,7 @@ fragment CustomPage on custom_pages { ...BlogCardsComponent ...CustomerQuoteComponent ...CTAComponent + ...MediaCardComponent } } } @@ -135,3 +136,17 @@ fragment CTAComponent on cta { cta_text cta_url } + +fragment MediaCardComponent on article_cards { + id + heading + description + thumbnail { + ...ImageFile + } + videoUrl + date + author + ctas + 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,