diff --git a/astro.config.mjs b/astro.config.mjs index 425bdeb1..fc604999 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -6,6 +6,8 @@ import tailwindcss from '@tailwindcss/vite'; import { defineConfig, envField } from 'astro/config'; import { loadEnv } from 'vite'; import config from './public/config.json'; +import tina from '@tinacms/astro/integration'; +import { tinaAdminDevRedirect } from '@tinacms/astro/vite'; const { locales, default_locale: defaultLocale } = config.i18n; const { STATIC_BUILD } = loadEnv(process.env.STATIC_BUILD, process.cwd(), ''); @@ -22,7 +24,7 @@ export default defineConfig({ }, output: STATIC_BUILD === 'true' ? 'static' : 'server', adapter: netlify(), - integrations: [mdx(), sitemap(), react()], + integrations: [mdx(), sitemap(), react(), tina()], vite: { optimizeDeps: { esbuildOptions: { @@ -35,7 +37,7 @@ export default defineConfig({ noExternal: ['clsx', '@phosphor-icons/*', '@radix-ui/*'] } }, - plugins: [tailwindcss()], + plugins: [tailwindcss(), tinaAdminDevRedirect()], resolve: { preserveSymlinks: true, mainFields: [ diff --git a/deno.lock b/deno.lock index e1ede6e4..2a0a32e9 100644 --- a/deno.lock +++ b/deno.lock @@ -35,6 +35,7 @@ "npm:@samvera/clover-iiif@^2.9.1", "npm:@tailwindcss/typography@~0.5.20", "npm:@tailwindcss/vite@^4.3.2", + "npm:@tinacms/astro@0.6", "npm:@tinacms/cli@^2.5.1", "npm:@tinacms/datalayer@^2.0.25", "npm:@turf/turf@^7.3.5", diff --git a/package-lock.json b/package-lock.json index 6bf54a5b..1c04a1a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,6 +28,7 @@ "@peripleo/peripleo": "^0.8.9", "@samvera/clover-iiif": "^2.9.1", "@tailwindcss/vite": "^4.3.2", + "@tinacms/astro": "^0.6.0", "@tinacms/cli": "^2.5.1", "@tinacms/datalayer": "^2.0.25", "@turf/turf": "^7.3.5", @@ -694,9 +695,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -713,9 +711,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -732,9 +727,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -751,9 +743,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2630,9 +2619,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "optional": true, "os": [ "linux" @@ -2645,9 +2631,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "optional": true, "os": [ "linux" @@ -2660,9 +2643,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "optional": true, "os": [ "linux" @@ -2675,9 +2655,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "optional": true, "os": [ "linux" @@ -3280,6 +3257,19 @@ } } }, + "node_modules/@cu-mkp/editioncrafter/node_modules/@types/react": { + "version": "17.0.93", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.93.tgz", + "integrity": "sha512-KM4Ty/ZTLZupiYxZVAlP+InNJS3De6uBMdq0ePa6/04+eG9Y7ftnWfst1xTLQ5rwAhgHwQ4momt/O4KepdGBTw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "^0.16", + "csstype": "^3.2.2" + } + }, "node_modules/@cu-mkp/editioncrafter/node_modules/@types/unist": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", @@ -8926,9 +8916,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -8949,9 +8936,6 @@ "cpu": [ "arm" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -8972,9 +8956,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -8995,9 +8976,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -9018,9 +8996,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -9041,9 +9016,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -9296,6 +9268,21 @@ } } }, + "node_modules/@performant-software/shared-components/node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/@peripleo/maplibre": { "version": "0.8.9", "resolved": "https://registry.npmjs.org/@peripleo/maplibre/-/maplibre-0.8.9.tgz", @@ -11431,6 +11418,21 @@ "node": ">= 20.19.4" } }, + "node_modules/@react-native/dev-middleware/node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, "node_modules/@react-native/dev-middleware/node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -11865,9 +11867,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -11884,9 +11883,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -11903,9 +11899,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -11922,9 +11915,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -11941,9 +11931,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -11960,9 +11947,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -12515,6 +12499,17 @@ "react-native": ">0.69" } }, + "node_modules/@solana-mobile/mobile-wallet-adapter-protocol-web3js/node_modules/@types/react": { + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", + "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "csstype": "^3.2.2" + } + }, "node_modules/@solana-mobile/mobile-wallet-adapter-protocol-web3js/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -12656,6 +12651,21 @@ "license": "MIT", "peer": true }, + "node_modules/@solana-mobile/mobile-wallet-adapter-protocol-web3js/node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, "node_modules/@solana-mobile/mobile-wallet-adapter-protocol-web3js/node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -12735,6 +12745,17 @@ } } }, + "node_modules/@solana-mobile/wallet-adapter-mobile/node_modules/@types/react": { + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", + "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "csstype": "^3.2.2" + } + }, "node_modules/@solana-mobile/wallet-adapter-mobile/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -12885,6 +12906,21 @@ "optional": true, "peer": true }, + "node_modules/@solana-mobile/wallet-adapter-mobile/node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, "node_modules/@solana-mobile/wallet-adapter-mobile/node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -12964,6 +13000,17 @@ "react-native": ">0.69" } }, + "node_modules/@solana-mobile/wallet-standard-mobile/node_modules/@types/react": { + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", + "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "csstype": "^3.2.2" + } + }, "node_modules/@solana-mobile/wallet-standard-mobile/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -13105,6 +13152,21 @@ "license": "MIT", "peer": true }, + "node_modules/@solana-mobile/wallet-standard-mobile/node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, "node_modules/@solana-mobile/wallet-standard-mobile/node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -13941,9 +14003,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -13960,9 +14019,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -13979,9 +14035,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -13998,9 +14051,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -14310,6 +14360,18 @@ "node": ">=14.17" } }, + "node_modules/@tinacms/astro": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@tinacms/astro/-/astro-0.6.0.tgz", + "integrity": "sha512-bHKUkCkS6ISN0RbD1kLW4olA1RP1UkJP2KT0tQapJYeLZmkqUKaiiqvMtm7gvBzgFUEwWntVbsJjTATjvGYt9w==", + "license": "Apache-2.0", + "dependencies": { + "@tinacms/bridge": "0.3.0" + }, + "peerDependencies": { + "astro": "^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, "node_modules/@tinacms/bridge": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tinacms/bridge/-/bridge-0.3.0.tgz", @@ -19527,6 +19589,14 @@ "@types/node": "*" } }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/@types/send": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", @@ -31511,6 +31581,21 @@ "license": "MIT", "peer": true }, + "node_modules/jayson/node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, "node_modules/jayson/node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -32706,9 +32791,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -32729,9 +32811,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -32752,9 +32831,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -32775,9 +32851,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -36036,6 +36109,21 @@ "node": ">=0.10.0" } }, + "node_modules/metro/node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, "node_modules/metro/node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -40719,6 +40807,21 @@ "ws": "^7" } }, + "node_modules/react-devtools-core/node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, "node_modules/react-devtools-core/node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -41681,6 +41784,14 @@ } } }, + "node_modules/recharts/node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/recma-build-jsx": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", diff --git a/package.json b/package.json index ab7f32ab..fe128316 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "@peripleo/peripleo": "^0.8.9", "@samvera/clover-iiif": "^2.9.1", "@tailwindcss/vite": "^4.3.2", + "@tinacms/astro": "^0.6.0", "@tinacms/cli": "^2.5.1", "@tinacms/datalayer": "^2.0.25", "@turf/turf": "^7.3.5", diff --git a/src/apps/pages/Banner.astro b/src/apps/pages/Banner.astro index c3a14053..990713a6 100644 --- a/src/apps/pages/Banner.astro +++ b/src/apps/pages/Banner.astro @@ -1,10 +1,11 @@ --- import clsx from 'clsx'; import Container from '@components/Container.astro'; -import LinkButton from '@components/LinkButton'; +import LinkButton from '@components/LinkButton.astro'; import SearchBar from '@apps/pages/SearchBar'; import RichText from '@components/RichText.astro'; import { toBackgroundClass } from '@utils/pageBuilder'; +import { tinaField } from '@tinacms/astro/tina-field'; const Height = { small: 'small', @@ -28,7 +29,9 @@ const { subtitle, textAlignment, title, - url + url, + section, + isTinaPreview } = Astro.props; --- @@ -82,6 +85,7 @@ const { hero && 'banner-hero', home && 'banner-home' )} + data-tina-field={tinaField(section, 'title')} > { title } @@ -89,6 +93,7 @@ const { { subtitle && (

{ subtitle }

@@ -96,6 +101,7 @@ const { { url && (
+ )} data-tina-field={tinaField(section, 'content')}>
) : null } - { search && ( + { search && !isTinaPreview && ( ) } -

+

{ quote }

diff --git a/src/apps/pages/Images.astro b/src/apps/pages/Images.astro index 5ca73357..90cec351 100644 --- a/src/apps/pages/Images.astro +++ b/src/apps/pages/Images.astro @@ -1,8 +1,9 @@ --- import ImageWithCitation from '@components/ImageWithCitation.astro'; +import { tinaField } from '@tinacms/astro/tina-field'; import _ from 'underscore'; -const { items, title } = Astro.props; +const { items, title, section } = Astro.props; ---

{ title } @@ -18,10 +20,11 @@ const { items, title } = Astro.props;
- { _.map(items, (item) => ( + { _.map(items, (item: any) => ( -
+
{ - _.map(links, link => ( + _.map(links, (link: { url?: string, label: string }, idx: number) => ( -

{ link.label }

+

{ link.label }

)) } diff --git a/src/apps/pages/MultiColumn.astro b/src/apps/pages/MultiColumn.astro index 902bba5b..6c583611 100644 --- a/src/apps/pages/MultiColumn.astro +++ b/src/apps/pages/MultiColumn.astro @@ -10,7 +10,8 @@ const { buttonText, content, darken, - gap, + gap, + t, textAlignment, title, url @@ -34,6 +35,7 @@ const { buttonText={buttonText} textAlignment={textAlignment} title={title} + t={t} url={url} content={content} gap={gap} diff --git a/src/apps/pages/Page.astro b/src/apps/pages/Page.astro index 3c879274..9a534c2a 100644 --- a/src/apps/pages/Page.astro +++ b/src/apps/pages/Page.astro @@ -1,26 +1,41 @@ --- -import { fetchPage } from '@backend/tina'; import PageBody from '@components/PageBody.astro'; -import PageStoreProvider from '@components/PageStoreProvider'; import { setCacheControl } from '@utils/url'; +import { tinaField } from '@tinacms/astro/tina-field'; +import Header from '@layouts/Header.astro'; +import clsx from 'clsx'; +import branding from '@branding'; -const { slug } = Astro.props; -const locale = Astro.currentLocale; - -const page = await fetchPage(locale, slug); +const { page, isTinaPreview, t } = Astro.props; setCacheControl(Astro.response.headers); --- - - - - \ No newline at end of file +
+ { + isTinaPreview && ( +
+
+
+ ) + } + +
\ No newline at end of file diff --git a/src/apps/pages/Tabs.astro b/src/apps/pages/Tabs.astro deleted file mode 100644 index 8019edfc..00000000 --- a/src/apps/pages/Tabs.astro +++ /dev/null @@ -1,24 +0,0 @@ ---- -import _ from 'underscore'; -import TabsComponent from './Tabs'; -import PageBody from '@components/PageBody.astro'; - -const { - tabs, - raise, - activeBg, - textStyle, - invertText, - inactiveBg -} = Astro.props; ---- - - - { - _.map(tabs, (tab) => ( -
- -
- )) - } -
diff --git a/src/apps/pages/Tabs.tsx b/src/apps/pages/Tabs.tsx deleted file mode 100644 index e864727b..00000000 --- a/src/apps/pages/Tabs.tsx +++ /dev/null @@ -1,82 +0,0 @@ -import { Tab, TabGroup, TabList, TabPanel, TabPanels } from '@headlessui/react'; -import React, { Fragment, useMemo } from 'react'; -import _ from 'underscore'; -import parse from 'html-react-parser'; -import clsx from 'clsx'; -import { toBackgroundClass } from '@utils/pageBuilder'; - -interface TabsProps { - tabs: any[]; - children: any[]; - raise?: boolean; - activeBg?: string; - textStyle?: string; - invertText?: boolean; - inactiveBg?: string; -} - - -const Tabs = (props: TabsProps) => { - const { tabs, children, raise, activeBg, textStyle, invertText, inactiveBg } = props; - - const activeBgClass = useMemo(() => activeBg && toBackgroundClass(activeBg), [activeBg]); - - const inactiveBgClass = useMemo(() => inactiveBg && toBackgroundClass(inactiveBg), [inactiveBg]); - - const parsedChildren = useMemo(() => { - return React.Children.map(children, (child) => ( - parse(child.props.value) - )) - }, [props.children]); - - return ( - -
- - { - _.map(tabs, (tab) => ( - - {({ hover, selected }) => ( - - )} - - )) - } - -
- - { - _.map(parsedChildren, (child, idx) => ( - - { child } - - ) - ) - } - -
- ) -} - -export default Tabs; \ No newline at end of file diff --git a/src/apps/pages/Tabs/Tabs.tsx b/src/apps/pages/Tabs/Tabs.tsx new file mode 100644 index 00000000..d0e2e97b --- /dev/null +++ b/src/apps/pages/Tabs/Tabs.tsx @@ -0,0 +1,63 @@ +import { Tab, TabGroup, TabList, TabPanel, TabPanels } from '@headlessui/react'; +import React, { Fragment, useMemo } from 'react'; +import _ from 'underscore'; +import parse from 'html-react-parser'; +import { getClassNames } from './style'; + +interface TabsProps { + tabs: any[]; + children: any[]; + raise?: boolean; + activeBg?: string; + textStyle?: string; + invertText?: boolean; + inactiveBg?: string; +} + + +const Tabs = (props: TabsProps) => { + const { tabs, children, raise, activeBg, textStyle, invertText, inactiveBg } = props; + + const classNames = useMemo(() => (getClassNames({ raise, activeBg, textStyle, invertText, inactiveBg })), [props]); + + const parsedChildren = useMemo(() => { + return React.Children.map(children, (child) => ( + parse(child.props.value) + )) + }, [props.children]); + + return ( + +
+ + { + _.map(tabs, (tab: any) => ( + + {({ selected }) => ( + + )} + + )) + } + +
+ + { + _.map(parsedChildren, (child: any, idx: number) => ( + + { child } + + ) + ) + } + +
+ ) +} + +export default Tabs; \ No newline at end of file diff --git a/src/apps/pages/Tabs/index.astro b/src/apps/pages/Tabs/index.astro new file mode 100644 index 00000000..483f11ff --- /dev/null +++ b/src/apps/pages/Tabs/index.astro @@ -0,0 +1,65 @@ +--- +import _ from 'underscore'; +import TabsComponent from './Tabs'; +import PageBody from '@components/PageBody.astro'; +import { getClassNames } from './style'; + +const { + tabs, + raise, + activeBg, + textStyle, + invertText, + inactiveBg, + isTinaPreview +} = Astro.props; + +const classNames = getClassNames({ raise, activeBg, inactiveBg, invertText, textStyle }); +--- + +{ !isTinaPreview && ( + + { + _.map(tabs, (tab: any) => ( +
+ +
+ )) + } +
+)} + +{ + isTinaPreview && ( +
+
+
+ { + _.map(tabs, (tab: any, idx: number) => ( + + )) + } +
+
+
+ { + _.map(tabs, (tab: any, idx: number) => ( +
+

{tab.label} Content Preview

+ +
+ )) + } +
+
+ ) +} + diff --git a/src/apps/pages/Tabs/style.ts b/src/apps/pages/Tabs/style.ts new file mode 100644 index 00000000..d86f16e1 --- /dev/null +++ b/src/apps/pages/Tabs/style.ts @@ -0,0 +1,32 @@ +import clsx from "clsx"; +import { toBackgroundClass } from '@utils/pageBuilder'; + +export const getClassNames = (options: any) => { + const { raise } = options; + return ({ + tabGroup: 'px-6 sm:px-12 md:px-16 lg:px-32 2xl:mx-auto max-w-(--breakpoint-2xl) overflow-x-auto overflow-y-visible', + tabList: clsx( + 'flex min-h-[65px] relative z-30', + { 'w-full border-b-4 h-[65px]': !raise } + ), + button: (active: boolean) => getButtonClass({...options, active}), + tabContent: 'tab-content flex flex-col' + }) +} + +const getButtonClass = (options: any) => { + const { active, activeBg, inactiveBg, invertText, raise, textStyle } = options; + return (clsx( + 'tab-button', + 'lg:whitespace-nowrap px-3 lg:px-6 xl:px-8 py-4 focus:outline-none', + { '-mb-[4px] border-b-4': !raise }, + active && toBackgroundClass(activeBg), + !active&& toBackgroundClass(inactiveBg), + (!active || !toBackgroundClass(activeBg)) && raise && invertText && 'text-text-inverse', + { 'hover:border-secondary/60 border-b-4 hover:text-secondary/60': !raise }, + { 'border-secondary border-b-4 text-secondary': active && !raise }, + { 'cursor-default': active }, + { 'font-serif italic sm:text-lg lg:text-xl font-normal': textStyle === 'italic' }, + { 'text-sm text-gray-500 uppercase font-medium': textStyle === 'uppercase' } + )) +}; \ No newline at end of file diff --git a/src/apps/pages/TextImage.astro b/src/apps/pages/TextImage.astro new file mode 100644 index 00000000..e247fb71 --- /dev/null +++ b/src/apps/pages/TextImage.astro @@ -0,0 +1,164 @@ +--- +import ImageWithCitation from "@components/ImageWithCitation.astro"; +import LinkButton from "@components/LinkButton.astro"; +import clsx from "clsx"; +import _ from "underscore"; + +const props = Astro.props; + +const BackgroundPosition = { + top: 'top', + bottom: 'bottom', + left: 'left', + right: 'right' +}; + +const TextPosition = { + left: 'left', + right: 'right' +}; + +//Position the text to match the background if applicable, otherwise default to the passed prop, +//otherwise default to left +const textPosition = props.backgroundPosition === BackgroundPosition.right + ? TextPosition.right + : props.backgroundPosition === BackgroundPosition.left + ? TextPosition.left + : (props.textPosition || TextPosition.left); + +--- + +
+ { props.backgroundPosition && ( +
+ )} +
+
+ { props.title && ( +

+ { props.title } +

+ )} + { props.description && ( +

+ { props.description } +

+ )} + { !_.isEmpty(props.url) && ( +
+ +
+ )} +
+
+
+
+ +
+
+
+ + \ No newline at end of file diff --git a/src/apps/pages/TextImage.tsx b/src/apps/pages/TextImage.tsx deleted file mode 100644 index c0b0894b..00000000 --- a/src/apps/pages/TextImage.tsx +++ /dev/null @@ -1,191 +0,0 @@ -import ImageWithCitation from '@components/ImageWithCitation'; -import LinkButton from '@components/LinkButton'; -import clsx from 'clsx'; -import { useEffect, useRef, useState } from 'react'; -import _ from 'underscore'; - -interface Props { - backgroundPosition: 'top' | 'bottom' | 'left' | 'right'; - buttonText?: string; - citation?: string; - citationLink?: string; - description?: string; - image: string; - imageAlt?: string; - textPosition: 'left' | 'right'; - title: string; - url?: string; -} - -const BackgroundPosition = { - top: 'top', - bottom: 'bottom', - left: 'left', - right: 'right' -}; - -const TextPosition = { - left: 'left', - right: 'right' -}; - -const IMAGE_SCALE = 1.75; -const BACKGROUND_SCALE = 1.65; -const SCREEN_WIDTH_LG = 1024; - -const TextImage = (props: Props) => { - const [backgroundHeight, setBackgroundHeight] = useState(); - const [contentHeight, setContentHeight] = useState(); - const [imageHeight, setImageHeight] = useState(); - const [screenWidth, setScreenWidth] = useState(); - const [textPosition, setTextPosition] = useState(props.textPosition || TextPosition.left); - - const contentRef = useRef(); - - /** - * Adds the window resize event listener. - */ - useEffect(() => { - const onResize = () => { - setScreenWidth(window.innerWidth); - }; - - setScreenWidth(window.innerWidth); - - window.addEventListener('resize', onResize); - - // Clean up the event listener when the component unmounts - return () => { - window.removeEventListener('resize', onResize); - }; - }, []); - - /** - * Sets the resize observer on the content element. - */ - useEffect(() => { - const { current: instance } = contentRef; - - let observer; - - if (instance) { - const observer = new ResizeObserver(([entry]) => { - setContentHeight(entry.target.clientHeight); - }); - - observer.observe(instance); - } - - return () => observer?.disconnect(); - }, [screenWidth]); - - /** - * Sets the image height and background height when the content height changes. - */ - useEffect(() => { - if (contentHeight && screenWidth >= SCREEN_WIDTH_LG) { - const { backgroundPosition } = props; - - if (backgroundPosition === BackgroundPosition.top || backgroundPosition === BackgroundPosition.bottom) { - setImageHeight(contentHeight * IMAGE_SCALE); - setBackgroundHeight(contentHeight * BACKGROUND_SCALE); - } else { - setImageHeight(contentHeight); - } - } - }, [contentHeight]); - - /** - * Sets the text to be positioned on the same side as the background, if a background position is specified. - */ - useEffect(() => { - if (props.backgroundPosition === BackgroundPosition.left) { - setTextPosition(TextPosition.left); - } else if (props.backgroundPosition === BackgroundPosition.right) { - setTextPosition(TextPosition.right); - } - }, [props.backgroundPosition]); - - return ( -
- { props.backgroundPosition && ( -
- )} -
-
- { props.title && ( -

- { props.title } -

- )} - { props.description && ( -

- { props.description } -

- )} - { !_.isEmpty(props.url) && ( -
- -
- )} -
-
-
-
- -
-
-
- ); -}; - -export default TextImage; \ No newline at end of file diff --git a/src/apps/paths/PathList.tsx b/src/apps/paths/PathList.tsx index f32b9f1c..3008f3fd 100644 --- a/src/apps/paths/PathList.tsx +++ b/src/apps/paths/PathList.tsx @@ -8,7 +8,7 @@ import config from '@config'; import { Listbox, ListboxButton, ListboxOption, ListboxOptions } from '@headlessui/react'; import { ChevronDownIcon } from '@heroicons/react/24/outline'; import Cards from '@components/Cards'; -import Card from '@components/Card'; +import Card from '@components/Card/index'; import { getRelativeLocaleUrl } from 'astro:i18n'; interface Props { diff --git a/src/apps/paths/Paths.astro b/src/apps/paths/Paths.astro index aa03656d..8a55e364 100644 --- a/src/apps/paths/Paths.astro +++ b/src/apps/paths/Paths.astro @@ -1,7 +1,7 @@ --- import { getTranslations } from '@backend/i18n'; import { fetchPaths } from '@backend/tina'; -import Card from '@components/Card'; +import Card from '@components/Card/index'; import Cards from '@components/Cards'; import Container from '@components/Container.astro'; import { getRelativeLocaleUrl } from 'astro:i18n'; diff --git a/src/apps/posts/PostList.tsx b/src/apps/posts/PostList.tsx index 383d7303..a57ccb03 100644 --- a/src/apps/posts/PostList.tsx +++ b/src/apps/posts/PostList.tsx @@ -8,7 +8,7 @@ import config from '@config'; import { Listbox, ListboxButton, ListboxOption, ListboxOptions } from '@headlessui/react'; import { ChevronDownIcon } from '@heroicons/react/24/outline'; import Cards from '@components/Cards'; -import Card from '@components/Card'; +import Card from '@components/Card/index'; import { getRelativeLocaleUrl } from 'astro:i18n'; interface Props { diff --git a/src/assets/pages/contact_form.png b/src/assets/pages/contact_form.png new file mode 100644 index 00000000..35a25840 Binary files /dev/null and b/src/assets/pages/contact_form.png differ diff --git a/src/assets/pages/image_carousel.png b/src/assets/pages/image_carousel.png new file mode 100644 index 00000000..d379758c Binary files /dev/null and b/src/assets/pages/image_carousel.png differ diff --git a/src/assets/pages/media_viewer.png b/src/assets/pages/media_viewer.png new file mode 100644 index 00000000..6e2c9a4d Binary files /dev/null and b/src/assets/pages/media_viewer.png differ diff --git a/src/backend/tina/i18n.ts b/src/backend/tina/i18n.ts index 40110be8..a76f6610 100644 --- a/src/backend/tina/i18n.ts +++ b/src/backend/tina/i18n.ts @@ -1,5 +1,6 @@ import config from '@config' with { type: 'json' }; import _ from 'underscore'; +import { QueryResult, requestWithMetadata } from '@tinacms/astro/data'; /** * Filters the passed array of items to include the correct localized content. @@ -54,14 +55,14 @@ export const fetchOne = async (locale: string, slug: string, query: any) => { let response; if (!config.content.localize_pages) { - response = await query({ relativePath: `${slug}.mdx` }); + response = await requestWithMetadata(query({ relativePath: `${slug}.mdx` })); } else { - response = await query({ relativePath: `${locale}/${slug}.mdx` }); + response = await requestWithMetadata(query({ relativePath: `${locale}/${slug}.mdx` })); if (!response.data && locale !== config.i18n.default_locale) { - response = await query({ relativePath: `${config.i18n.default_locale}/${slug}.mdx` }); + response = await requestWithMetadata(query({ relativePath: `${config.i18n.default_locale}/${slug}.mdx` })); } } - return response; + return response as QueryResult; }; \ No newline at end of file diff --git a/src/backend/tina/index.ts b/src/backend/tina/index.ts index b37f1d06..ba742b1e 100644 --- a/src/backend/tina/index.ts +++ b/src/backend/tina/index.ts @@ -1,11 +1,15 @@ import client from '@tina/databaseClient'; import { fetchOne, filterAll } from './i18n'; +import { QueryResult, requestWithMetadata } from '@tinacms/astro/data'; +import { PagesQuery } from '@root/tina/__generated__/types'; interface Caches { + footer: any; i18n: Map; i18ns: any; navbar: Map; pages: Map; + pagesResponse: Map; paths: Map; pathsResponse: Map; posts: Map; @@ -13,16 +17,33 @@ interface Caches { } const caches: Caches = { + footer: undefined, i18n: new Map(), i18ns: undefined, navbar: new Map(), pages: new Map(), + pagesResponse: new Map(), paths: new Map(), pathsResponse: new Map(), posts: new Map(), postsResponse: new Map() } +export const fetchFooter = async () => { + if (!client.queries.branding) { + return null; + } + + if (caches.footer) { + return caches.footer; + } + + const response = await client.queries.branding({ relativePath: 'branding.json' }); + const footer = response.data.branding.footer; + caches.footer = footer; + return footer; +} + export const fetchI18n = async (language: string) => { if (!client.queries.i18n) { return null; @@ -32,7 +53,7 @@ export const fetchI18n = async (language: string) => { return caches.i18n.get(language); } - const response = await client.queries.i18n({ relativePath: `${language}.json` }); + const response = await requestWithMetadata(client.queries.i18n({ relativePath: `${language}.json` })); const data = response.data?.i18n; caches.i18n.set(language, data); return data; @@ -47,7 +68,7 @@ export const fetchI18ns = async () => { return caches.i18ns; } - const response = await client.queries.i18nConnection(); + const response = await requestWithMetadata(client.queries.i18nConnection()); const data = response.data?.i18nConnection?.edges?.map((item) => item?.node); caches.i18ns = data; return data; @@ -62,7 +83,7 @@ export const fetchNavbar = async (language: string) => { return caches.navbar.get(language); } - const response = await client.queries.navbar({ relativePath: `${language}.json` }); + const response = await requestWithMetadata(client.queries.navbar({ relativePath: `${language}.json` })); const data = response.data?.navbar; caches.navbar.set(language, data); return data; @@ -83,6 +104,20 @@ export const fetchPage = async (locale: string, slug: string) => { return data; }; +export const fetchPageResponse = async (locale: string, slug: string, ignoreCache?: boolean) => { + if (!client.queries.pages) { + return null; + } + + if (caches.pages.has(`${locale}-${slug}`) && !ignoreCache) { + return caches.pages.get(`${locale}-${slug}`); + } + + const response = await fetchOne(locale, slug, client.queries.pages); + caches.pagesResponse.set(`${locale}-${slug}`, response); + return response as QueryResult; +} + export const fetchPages = async (locale: string, params?: any) => { if (!client.queries.pagesConnection) { return null; @@ -94,10 +129,10 @@ export const fetchPages = async (locale: string, params?: any) => { return caches.pages.get(`${locale}-${paramsStr}`); } - const response = await client.queries.pagesConnection(params); + const response = await requestWithMetadata(client.queries.pagesConnection(params)); const data = response.data?.pagesConnection?.edges?.map((item) => item?.node); caches.pages.set(`${locale}-${paramsStr}`, data); - return filterAll(locale, data); + return filterAll(locale, data || []); }; export const fetchPathResponse = async (slug: string) => { @@ -109,7 +144,7 @@ export const fetchPathResponse = async (slug: string) => { return caches.pathsResponse.get(slug); } - const response = await client.queries.path({ relativePath: `${slug}.mdx`}); + const response = await requestWithMetadata(client.queries.path({ relativePath: `${slug}.mdx`})); caches.pathsResponse.set(slug, response); return response; }; @@ -125,7 +160,7 @@ export const fetchPaths = async (params = {}) => { return caches.paths.get(paramsStr); } - const response = await client.queries.pathConnection(params); + const response = await requestWithMetadata(client.queries.pathConnection(params)); const data = { metadata: response.data?.pathConnection?.pageInfo, paths: response.data?.pathConnection?.edges?.map((item) => item?.node) @@ -143,7 +178,7 @@ export const fetchPostResponse = async (slug: string) => { return caches.postsResponse.get(slug); } - const response = await client.queries.post({ relativePath: `${slug}.mdx`}); + const response = await requestWithMetadata(client.queries.post({ relativePath: `${slug}.mdx`})); caches.postsResponse.set(slug, response); return response; } @@ -158,7 +193,7 @@ export const fetchPosts = async (params = {}) => { return caches.posts.get(paramsStr); } - const response = await client.queries.postConnection(params); + const response = await requestWithMetadata(client.queries.postConnection(params)); const data = { metadata: response.data?.postConnection?.pageInfo, posts: response.data?.postConnection?.edges?.map((item) => item?.node) diff --git a/src/components/Card/index.astro b/src/components/Card/index.astro new file mode 100644 index 00000000..5a0c3612 --- /dev/null +++ b/src/components/Card/index.astro @@ -0,0 +1,92 @@ +--- +import { tinaField } from '@tinacms/astro/tina-field'; +import { classNames } from './styles'; + +const { alt, category, date, dateOptions, title, slug, imageUrl, blurb, labels, item } = Astro.props; + +const dateString = date ? new Date(date).toLocaleDateString(undefined, dateOptions) : null; + +--- + + \ No newline at end of file diff --git a/src/components/Card.tsx b/src/components/Card/index.tsx similarity index 55% rename from src/components/Card.tsx rename to src/components/Card/index.tsx index f2b68093..6b4a2f55 100644 --- a/src/components/Card.tsx +++ b/src/components/Card/index.tsx @@ -1,4 +1,5 @@ import { useMemo } from 'react'; +import { classNames } from './styles'; interface Props { alt?: string; @@ -25,16 +26,16 @@ const Card = (props: Props) => { return (
{imageUrl && ( {alt { )} {!imageUrl && (
)}
{category && ( {category} )}

- {title}

{blurb && (

{blurb}

@@ -92,21 +89,15 @@ const Card = (props: Props) => {
{labels.byline && (
-
-

- {labels.byline} -

-
+

+ {labels.byline} +

)} {labels.readMore} → diff --git a/src/components/Card/styles.ts b/src/components/Card/styles.ts new file mode 100644 index 00000000..22f9b5fd --- /dev/null +++ b/src/components/Card/styles.ts @@ -0,0 +1,13 @@ +export const classNames = { + root: 'flex max-w-xl flex-col items-start justify-between bg-neutral-light', + imageContainer: 'relative w-full', + image: 'aspect-[16/9] w-full bg-neutral-light object-cover sm:aspect-[2/1] lg:aspect-[3/2]', + imageRing: 'absolute inset-0 ring-1 ring-inset ring-gray-900/10', + infoHeader: 'flex items-center gap-x-4 text-xs p-2 text-gray-500', + category: 'relative z-10 rounded-full bg-gray-200 px-3 py-1.5 font-medium text-gray-600 hover:bg-white', + infoMain: 'group relative p-6', + title: 'mt-3 text-lg font-semibold leading-6 text-gray-900 group-hover:text-gray-600', + blurb: 'mt-5 line-clamp-3 text-sm leading-6 text-gray-600', + byline: 'relative mt-8 flex items-center gap-x-4 p-6 text-sm leading-6', + readMore: 'flex justify-end p-8 w-full' +} \ No newline at end of file diff --git a/src/components/Column.astro b/src/components/Column.astro index 2148fdb3..6a5c473c 100644 --- a/src/components/Column.astro +++ b/src/components/Column.astro @@ -3,7 +3,7 @@ import clsx from "clsx"; import _ from "underscore"; import ColumnContent from "@components/ColumnContent.astro"; -const { items, className, url, t } = Astro.props; +const { items, className, url, t, isTinaPreview } = Astro.props; --- { url && ( @@ -18,6 +18,7 @@ const { items, className, url, t } = Astro.props; ))} @@ -31,7 +32,7 @@ const { items, className, url, t } = Astro.props; )} > { _.map(items, (item) => ( - + ))}
) } \ No newline at end of file diff --git a/src/components/ColumnContent.astro b/src/components/ColumnContent.astro index e7f1fdcf..8358d4f1 100644 --- a/src/components/ColumnContent.astro +++ b/src/components/ColumnContent.astro @@ -1,5 +1,5 @@ --- -import Card from '@components/Card'; +import Card from '@components/Card/index.astro'; import ContactForm from '@components/ContactForm'; import RichText from '@components/RichText.astro'; import Spacer from '@components/Spacer.astro'; @@ -7,8 +7,9 @@ import { toBorderClass, toBackgroundClass } from '@root/src/utils/pageBuilder'; import clsx from 'clsx'; import _ from 'underscore'; import ImageWithCitation from './ImageWithCitation.astro'; +import { tinaField } from '@tinacms/astro/tina-field'; -const { item, t } = Astro.props; +const { item, t, isTinaPreview } = Astro.props; const BlockTypes = { basic: 'Basic', @@ -40,15 +41,19 @@ const BlockTypes = { item.full_height && 'h-full' ) }} + item={item} /> )} { item.__typename.endsWith(BlockTypes.text) && ( -
+
)} @@ -59,11 +64,13 @@ const BlockTypes = { >

{ item?.title }

{ item?.description }

@@ -85,10 +92,13 @@ const BlockTypes = { readMore: t('readMore') }} title={item.title} + item={item} /> )} -{ item.__typename.endsWith(BlockTypes.contactForm) && ( + + +{ !isTinaPreview && item.__typename.endsWith(BlockTypes.contactForm) && ( @@ -103,25 +113,25 @@ const BlockTypes = { toBackgroundClass(item.bg_color), { 'items-center text-center': item.text_alignment === 'center' } )}> - -

+

{ item.quote }

{ item.border_color && } -

+

{ item.attribution }

)} { item.__typename.endsWith(BlockTypes.imageLink) && ( - + { item.overlay && ( -
+

{ item.overlay }

)} @@ -129,7 +139,7 @@ const BlockTypes = { )} { item.__typename.endsWith(BlockTypes.counter) && ( -
+

{ item.count }

{ item.type || 'records' }

@@ -139,13 +149,13 @@ const BlockTypes = { )} { item.__typename.endsWith(BlockTypes.linkRow) && ( -
{ - _.map(item.links, (link) => ( + _.map(item.links, (link: { url: string, label: string }) => ( { link.label } diff --git a/src/components/ImageWithCitation.astro b/src/components/ImageWithCitation.astro index 47d84ec7..700409ce 100644 --- a/src/components/ImageWithCitation.astro +++ b/src/components/ImageWithCitation.astro @@ -1,4 +1,6 @@ --- +import { tinaField } from '@tinacms/astro/tina-field'; + interface Props { alt?: string; citation?: string; @@ -9,14 +11,15 @@ interface Props { citation?: string; }; src: string; + item?: any; } -const { alt, citation, citationLink, classNames, src } = Astro.props; +const { alt, citation, citationLink, classNames, src, item } = Astro.props; --- { citation ? ( -
+ ) : ( - {alt} + {alt} ) } diff --git a/src/components/ImageWithCitation.tsx b/src/components/ImageWithCitation.tsx deleted file mode 100644 index c7bab47f..00000000 --- a/src/components/ImageWithCitation.tsx +++ /dev/null @@ -1,31 +0,0 @@ -interface ImageWithCitationProps { - alt?: string; - citation?: string; - citationLink?: string; - classNames?: { - root?: string; - image?: string; - citation?: string; - }; - src: string; -} - -const ImageWithCitation = (props: ImageWithCitationProps) => { - const { alt, citation, citationLink, classNames, src } = props; - return citation ? ( - - ) : ( - {alt} - ); -}; - -export default ImageWithCitation; diff --git a/src/components/LinkButton.astro b/src/components/LinkButton.astro new file mode 100644 index 00000000..ebf35d1b --- /dev/null +++ b/src/components/LinkButton.astro @@ -0,0 +1,32 @@ +--- +import { toBackgroundClass, toBorderClass, toTextClass } from '@utils/pageBuilder'; +import clsx from 'clsx'; + +const { color, border, text, href, content, arrow, className, ...props } = Astro.props; +--- + + +
+ { content } +
+ { arrow && ( + + + + ) } +
\ No newline at end of file diff --git a/src/components/LinkButton.tsx b/src/components/LinkButton.tsx deleted file mode 100644 index 1f7b1d18..00000000 --- a/src/components/LinkButton.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import clsx from 'clsx'; -import { ArrowRightIcon } from '@heroicons/react/24/outline'; -import { toBackgroundClass, toBorderClass, toTextClass } from '@utils/pageBuilder'; - -interface Props { - arrow?: boolean; - border?: string; - className?: string; - color?: string; - content: JSX.Element | string; - href: string; - text?: string; -} - -const LinkButton = ({ className, content, href, ...props }: Props) => ( - -
- { content } -
- { props.arrow && ( - - ) } -
-); - -export default LinkButton; \ No newline at end of file diff --git a/src/components/MultiColumnContent.astro b/src/components/MultiColumnContent.astro index 09a0d180..488997bc 100644 --- a/src/components/MultiColumnContent.astro +++ b/src/components/MultiColumnContent.astro @@ -1,9 +1,10 @@ --- import clsx from 'clsx'; import _ from 'underscore'; -import LinkButton from '@components/LinkButton'; +import LinkButton from '@components/LinkButton.astro'; import Column from '@components/Column.astro'; import { toBackgroundClass, toBorderClass } from '@utils/pageBuilder'; +import { tinaField } from '@tinacms/astro/tina-field'; const { buttonText, @@ -13,7 +14,9 @@ const { t, textAlignment, title, - url + url, + section, + isTinaPreview } = Astro.props; const TOTAL_COLUMNS = 12; @@ -40,6 +43,7 @@ const gridCols = total === TOTAL_COLUMNS ? 'lg:grid-cols-12' : 'lg:auto-cols-fr 'py-8', { 'flex justify-center text-center': textAlignment === 'center' } )} + data-tina-field={tinaField(section, 'title')} > { title } @@ -53,7 +57,7 @@ const gridCols = total === TOTAL_COLUMNS ? 'lg:grid-cols-12' : 'lg:auto-cols-fr { 'gap-4 xl:gap-8': gap === 'small' || !gap } )} > - { _.map(content, (col: any) => ( + { _.map(content, (col: any, idx: number) => ( )) }
@@ -75,6 +80,7 @@ const gridCols = total === TOTAL_COLUMNS ? 'lg:grid-cols-12' : 'lg:auto-cols-fr 'py-4', { 'flex justify-center': textAlignment === 'center' } )} + data-tina-field={tinaField(section, 'button_text')} > ( +{ _.map(sections, (section: any, idx: number) => (
{ section?.__typename?.endsWith(SectionTypes.carousel) && ( - + { + !isTinaPreview && ( + + ) + } + { + isTinaPreview && ( + Image carousel preview + ) + } )} { section?.__typename?.endsWith(SectionTypes.contactForm) && ( - + { + !isTinaPreview && ( + + ) + } + { + isTinaPreview && ( + Contact form preview + ) + } )} { section?.__typename?.endsWith(SectionTypes.freeText) && ( @@ -73,6 +97,7 @@ const SectionTypes = { )} @@ -98,7 +123,7 @@ const SectionTypes = { textPosition={section.text_position} title={section.title} url={section.url} - client:load + section={section} /> )} @@ -113,6 +138,9 @@ const SectionTypes = { url={section.url} content={section.columns} gap={section.gap} + section={section} + isTinaPreview={isTinaPreview} + t={t} /> )} { section?.__typename?.endsWith(SectionTypes.banner) && ( @@ -133,9 +161,11 @@ const SectionTypes = { textAlignment={section.text_alignment} title={section.title} url={section.url} + section={section} + isTinaPreview={isTinaPreview} /> )} - { section?.__typename?.endsWith(SectionTypes.tabs) && ( + { section?.__typename?.endsWith(SectionTypes.tabs) && ( )} { section?.__typename?.endsWith(SectionTypes.featureQuote) && ( )} { section?.__typename?.endsWith(SectionTypes.linkBanner) && ( @@ -159,10 +191,20 @@ const SectionTypes = { )} { section?.__typename?.endsWith(SectionTypes.media) && ( - + { + !isTinaPreview && ( + + ) + } + { + isTinaPreview && ( + // replace with placeholder image + Media viewer preview + ) + } )}
diff --git a/src/components/RichText.astro b/src/components/RichText.astro index 1b9171b4..5eecd447 100644 --- a/src/components/RichText.astro +++ b/src/components/RichText.astro @@ -1,7 +1,7 @@ --- -import { TinaMarkdown } from 'tinacms/dist/rich-text'; -import LinkButton from '@components/LinkButton'; -import Spacer from '@components/Spacer'; +import TinaMarkdown from '@tinacms/astro/TinaMarkdown.astro'; +import LinkButton from '@components/LinkButton.astro'; +import Spacer from '@components/Spacer.astro'; const { content } = Astro.props; diff --git a/src/components/Spacer.astro b/src/components/Spacer.astro index ba566c7b..69a65a5c 100644 --- a/src/components/Spacer.astro +++ b/src/components/Spacer.astro @@ -1,6 +1,26 @@ --- -import SpacerComponent from '@components/Spacer'; +import clsx from 'clsx'; +import { toBackgroundClass } from '@utils/pageBuilder'; + const { size, color, thick } = Astro.props; + --- - \ No newline at end of file +
+
+
\ No newline at end of file diff --git a/src/components/Spacer.tsx b/src/components/Spacer.tsx deleted file mode 100644 index 3d729431..00000000 --- a/src/components/Spacer.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import clsx from 'clsx'; -import { toBackgroundClass } from '../utils/pageBuilder'; - -interface SpacerProps { - size: string; - color?: string; - thick?: boolean; -} - -const Spacer = (props: SpacerProps) => ( -
-
-
-); - -export default Spacer; \ No newline at end of file diff --git a/src/layouts/Footer.astro b/src/layouts/Footer.astro index 7072c997..54e7ab6c 100644 --- a/src/layouts/Footer.astro +++ b/src/layouts/Footer.astro @@ -2,7 +2,7 @@ import { getTranslations } from '@backend/i18n'; import { fetchNavbar } from '@backend/tina'; import Container from '@components/Container.astro'; -import LinkButton from '@components/LinkButton'; +import LinkButton from '@components/LinkButton.astro'; import MultiColumnContent from '@components/MultiColumnContent.astro'; import config from '@config'; import NavBar from '@layouts/NavBar.astro'; diff --git a/src/layouts/Header.astro b/src/layouts/Header.astro index f54b73c0..50d4ea43 100644 --- a/src/layouts/Header.astro +++ b/src/layouts/Header.astro @@ -8,19 +8,27 @@ import { getCustomNavbar, getDefaultNavbar, getPages } from '@utils/nav'; import { getCurrentURL, setCacheControl } from '@utils/url'; import { getRelativeLocaleUrl, getRelativeLocaleUrlList } from 'astro:i18n'; import clsx from 'clsx'; +import config from '@config'; const locales = getRelativeLocaleUrlList(); -const currentLocale = Astro.currentLocale; -const currentUrl = getCurrentURL(Astro.request.headers); +const currentLocale = Astro.currentLocale || config?.i18n?.default_locale; const { fullscreen, image, imageAlt, + isTinaPreview, title, transparent } = Astro.props; +let currentUrl: URL; +if (!isTinaPreview) { + currentUrl = getCurrentURL(Astro.request.headers); +} else { + currentUrl = Astro.url; +} + const [{ t }, navbar, pages] = await Promise.all([ getTranslations(currentLocale), fetchNavbar(currentLocale), @@ -67,27 +75,37 @@ setCacheControl(Astro.response.headers); - + { + !isTinaPreview && ( + + ) + }
- - - +{ + !isTinaPreview && ( + + + + ) +} + diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index 0f70c9b5..e87e8c35 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -14,10 +14,14 @@ import '@performant-software/core-data/style.css'; import '@performant-software/geospatial/style.css'; import '@styles/index.css'; import branding from '@branding'; +import clsx from 'clsx'; +import { fetchFooter } from '@backend/tina'; setCacheControl(Astro.response.headers); -const { header, footer } = branding; +const { header } = branding; + +const footer = await fetchFooter(); const { font_header: fontHeader, font_body: fontBody } = branding; @@ -56,7 +60,8 @@ const { footer: includeFooter, fullscreen, titleKey, - transparent + transparent, + isTinaPreview } = Astro.props; --- @@ -106,21 +111,27 @@ const { class='flex h-full sm:min-h-screen flex-col bg-layout text-neutral-dark mx-auto font-sans' transition:animate='initial' > - -
- - + { + !isTinaPreview && ( + <> + +
+ + + + ) + }
diff --git a/src/layouts/NavBar.astro b/src/layouts/NavBar.astro index f6de3d36..d5a6d7a1 100644 --- a/src/layouts/NavBar.astro +++ b/src/layouts/NavBar.astro @@ -1,16 +1,17 @@ --- import NavDropdown from '@components/NavDropdown'; import NavLink from '@components/NavLink'; +import clsx from 'clsx'; import _ from 'underscore'; -const { className, items } = Astro.props; +const { className, items, isTinaPreview } = Astro.props; ---
- { _.map(items, (item) => ( + {!isTinaPreview && _.map(items, (item) => ( <> { item.options && ( ))} + { + isTinaPreview && _.map(items, (item) => ( + +
+ { item.label } +
+
+ )) + }
\ No newline at end of file diff --git a/src/lib/islands.ts b/src/lib/islands.ts new file mode 100644 index 00000000..e7cd04b7 --- /dev/null +++ b/src/lib/islands.ts @@ -0,0 +1,23 @@ +// src/lib/islands.ts +import type { IslandRegistry } from '@tinacms/astro/experimental'; +import type { QueryResult } from '@tinacms/astro/data'; +import { fetchPageResponse } from '@backend/tina'; +import { PagesQuery } from '@root/tina/__generated__/types'; +import Page from '@apps/pages/Page.astro'; +import { getTranslations } from '@backend/i18n'; +import config from '@config'; + +const { t } = await getTranslations(config.i18n.default_locale); + +export const islands: IslandRegistry = { + page: { + fetch: (_request, params) => fetchPageResponse(params.get('lang') || 'en', params.get('slug') ?? 'home', true), + component: Page, + wrapper: { tag: 'main' }, + propsFromData: (data) => ({ + page: (data as QueryResult).data?.pages, + isTinaPreview: true, + t + }), + } +}; \ No newline at end of file diff --git a/src/pages/[lang]/pages/[slug].astro b/src/pages/[lang]/pages/[slug].astro index b09ce55f..0a5d7390 100644 --- a/src/pages/[lang]/pages/[slug].astro +++ b/src/pages/[lang]/pages/[slug].astro @@ -1,10 +1,14 @@ --- import Page from '@apps/pages/Page.astro'; -import { fetchPages } from '@backend/tina'; +import { fetchPageResponse, fetchPages } from '@backend/tina'; import config from '@config'; import Layout from '@layouts/Layout.astro'; +import TinaIsland from '@tinacms/astro/TinaIsland.astro'; +import { islands } from '@lib/islands'; +import PageStoreProvider from '@components/PageStoreProvider'; +import { getTranslations } from '@backend/i18n'; -const { slug } = Astro.params; +const { slug, lang } = Astro.params; export const getStaticPaths = async () => { const paths = []; @@ -20,15 +24,31 @@ export const getStaticPaths = async () => { return paths; }; +const ignoreCache = import.meta.env.PUBLIC_IGNORE_PAGE_CACHE === 'true'; + +const pageResp = await fetchPageResponse(lang, slug, ignoreCache); + +const page = pageResp.data.pages; + +const { t } = await getTranslations(Astro.currentLocale); + --- - + + + - \ No newline at end of file + diff --git a/src/pages/[lang]/pages/preview/[slug].astro b/src/pages/[lang]/pages/preview/[slug].astro new file mode 100644 index 00000000..07fbade9 --- /dev/null +++ b/src/pages/[lang]/pages/preview/[slug].astro @@ -0,0 +1,59 @@ +--- +import Page from '@apps/pages/Page.astro'; +import { fetchPageResponse, fetchPages } from '@backend/tina'; +import config from '@config'; +import Layout from '@layouts/Layout.astro'; +import TinaIsland from '@tinacms/astro/TinaIsland.astro'; +import { islands } from '@lib/islands'; +import PageStoreProvider from '@components/PageStoreProvider'; +import Header from '@layouts/Header.astro'; +import branding from '@branding'; +import clsx from 'clsx'; +import { getTranslations } from '@backend/i18n'; + +const { slug, lang } = Astro.params; + +export const getStaticPaths = async () => { + const paths = []; + + for (const lang of config.i18n.locales) { + const pages = await fetchPages(lang); + + for (const page of pages) { + paths.push({ params: { lang, slug: page._sys.filename } }); + } + } + + return paths; +}; + +const ignoreCache = import.meta.env.PUBLIC_IGNORE_PAGE_CACHE === 'true'; + +const pageResp = await fetchPageResponse(lang, slug, ignoreCache); + +const page = pageResp.data.pages; + +const { t } = await getTranslations(Astro.currentLocale); + +--- + + + + + + + diff --git a/src/pages/tina-island/[name].ts b/src/pages/tina-island/[name].ts new file mode 100644 index 00000000..cb7735f7 --- /dev/null +++ b/src/pages/tina-island/[name].ts @@ -0,0 +1,6 @@ +import type { APIRoute } from 'astro'; +import { experimental_createIslandRoute } from '@tinacms/astro/experimental'; +import { islands } from '@lib/islands'; + +export const prerender = false; +export const ALL: APIRoute = experimental_createIslandRoute(islands); \ No newline at end of file diff --git a/tina/content/pages.ts b/tina/content/pages.ts index cfe2513a..bc2ae66e 100644 --- a/tina/content/pages.ts +++ b/tina/content/pages.ts @@ -851,6 +851,7 @@ const staticSectionTemplates: Template[] = [{ } }, { name: 'image', + description: 'Please Note: Image size may not be accurate in preview mode. On the published site the image will resize to the same height as the text.', label: 'Image', type: 'image' }, { @@ -937,6 +938,11 @@ const Pages: Collection = { label: 'Pages', path: 'content/pages', format: 'mdx', + ui: { + router: ({ document }) => { + return `/en/pages/preview/${document._sys.filename}`; + } + }, fields: [{ name: 'title', label: 'Title', diff --git a/tina/tina-lock.json b/tina/tina-lock.json index a8f60428..c86310c0 100644 --- a/tina/tina-lock.json +++ b/tina/tina-lock.json @@ -1 +1 @@ -{"schema":{"version":{"fullVersion":"2.4.5","major":"2","minor":"4","patch":"5"},"meta":{"flags":["experimentalData"]},"collections":[{"name":"branding","label":"Branding","path":"content/branding","format":"json","fields":[{"name":"title","label":"Title","type":"string","namespace":["branding","title"],"searchable":true,"uid":false},{"name":"font_header","label":"Header Font","type":"string","options":[{"label":"Afacad","value":"Afacad"},{"label":"Baskervville","value":"Baskervville"},{"label":"Crimson Text SemiBold","value":"Crimson Text SemiBold"},{"label":"DM Sans","value":"DM Sans"},{"label":"DM Serif Display","value":"DM Serif Display"},{"label":"Inter","value":"Inter"},{"label":"Libre Bodoni","value":"Libre Bodoni"},{"label":"Open Sans","value":"Open Sans"}],"namespace":["branding","font_header"],"searchable":true,"uid":false},{"name":"header_size","label":"Home Page Hero Header Size","type":"string","options":[{"label":"Default (52px)","value":"52px"},{"label":"Large (64px)","value":"64px"},{"label":"Extra Large (74px)","value":"74px"}],"namespace":["branding","header_size"],"searchable":true,"uid":false},{"name":"page_header_size","label":"Content Page Hero Header Size","type":"string","options":[{"label":"Default(48px)","value":"48px"},{"label":"Large (64px)","value":"64px"}],"namespace":["branding","page_header_size"],"searchable":true,"uid":false},{"name":"header_font_weight","label":"Header Font Weight","type":"string","options":[{"label":"Default (normal)","value":"400"},{"label":"Semi-bold","value":"600"},{"label":"Bold","value":"700"}],"namespace":["branding","header_font_weight"],"searchable":true,"uid":false},{"name":"header_capitalization","label":"Capitalization for hero and banner headers","type":"string","options":[{"label":"Original","value":"normal"},{"label":"Small Caps","value":"small-caps"},{"label":"All Caps","value":"uppercase"}],"namespace":["branding","header_capitalization"],"searchable":true,"uid":false},{"name":"font_body","label":"Body Font","type":"string","options":[{"label":"Afacad","value":"Afacad"},{"label":"Baskervville","value":"Baskervville"},{"label":"Crimson Text SemiBold","value":"Crimson Text SemiBold"},{"label":"DM Sans","value":"DM Sans"},{"label":"DM Serif Display","value":"DM Serif Display"},{"label":"Inter","value":"Inter"},{"label":"Libre Bodoni","value":"Libre Bodoni"},{"label":"Open Sans","value":"Open Sans"}],"namespace":["branding","font_body"],"searchable":true,"uid":false},{"name":"primary_color","label":"Primary Color","type":"string","ui":{"component":"color"},"namespace":["branding","primary_color"],"searchable":true,"uid":false},{"name":"secondary_color","label":"Secondary Color (accent)","type":"string","ui":{"component":"color"},"namespace":["branding","secondary_color"],"searchable":true,"uid":false},{"name":"tertiary_color","label":"Tertiary Color (overlay)","type":"string","ui":{"component":"color"},"namespace":["branding","tertiary_color"],"searchable":true,"uid":false},{"name":"background_color","label":"Main background color","type":"string","ui":{"component":"color"},"namespace":["branding","background_color"],"searchable":true,"uid":false},{"name":"background_alternate","label":"Alternate Background","type":"string","ui":{"component":"color"},"namespace":["branding","background_alternate"],"searchable":true,"uid":false},{"name":"content_color","label":"Main Text Color for light background (defaults to black)","type":"string","ui":{"component":"color"},"namespace":["branding","content_color"],"searchable":true,"uid":false},{"name":"content_alternate","label":"Alternate text color","type":"string","ui":{"component":"color"},"namespace":["branding","content_alternate"],"searchable":true,"uid":false},{"name":"content_inverse","label":"Text on dark background (defaults to white)","type":"string","ui":{"component":"color"},"namespace":["branding","content_inverse"],"searchable":true,"uid":false},{"name":"content_inverse_alternate","label":"Text on dark background alternate","type":"string","ui":{"component":"color"},"namespace":["branding","content_inverse_alternate"],"searchable":true,"uid":false},{"name":"maps","label":"Maps","type":"object","fields":[{"name":"geometry_color","label":"Geometry Color","type":"string","ui":{"component":"color"},"namespace":["branding","maps","geometry_color"],"searchable":true,"uid":false},{"name":"selected_geometry_color","label":"Selected Geometry Color","type":"string","ui":{"component":"color"},"namespace":["branding","maps","selected_geometry_color"],"searchable":true,"uid":false}],"namespace":["branding","maps"],"searchable":true,"uid":false},{"name":"header","label":"Header","type":"object","fields":[{"name":"logo","label":"Logo","type":"image","namespace":["branding","header","logo"],"searchable":false,"uid":false},{"name":"hide_title","label":"Hide Title","type":"boolean","namespace":["branding","header","hide_title"],"searchable":true,"uid":false}],"namespace":["branding","header"],"searchable":true,"uid":false},{"name":"footer","label":"Footer","type":"object","fields":[{"name":"custom","label":"Use custom footer?","type":"boolean","namespace":["branding","footer","custom"],"searchable":true,"uid":false},{"name":"allow_login","label":"Allow Login","type":"boolean","namespace":["branding","footer","allow_login"],"searchable":true,"uid":false},{"name":"logos","label":"Logos","type":"object","list":true,"fields":[{"name":"image","label":"Image","type":"image","namespace":["branding","footer","logos","image"],"searchable":false,"uid":false},{"name":"image_alt","label":"Image Alt","type":"string","namespace":["branding","footer","logos","image_alt"],"searchable":true,"uid":false},{"name":"url","label":"URL","type":"string","namespace":["branding","footer","logos","url"],"searchable":true,"uid":false}],"namespace":["branding","footer","logos"],"searchable":true,"uid":false},{"name":"terms_url","label":"Terms and Conditions URL","type":"string","namespace":["branding","footer","terms_url"],"searchable":true,"uid":false},{"name":"privacy_url","label":"Privacy Policy URL","type":"string","namespace":["branding","footer","privacy_url"],"searchable":true,"uid":false},{"name":"accessibility_url","label":"Accessibility URL","type":"string","namespace":["branding","footer","accessibility_url"],"searchable":true,"uid":false},{"name":"custom_content","label":"Custom Footer Content","type":"object","fields":[{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["branding","footer","custom_content","background"],"searchable":true,"uid":false},{"name":"image","label":"Background Image","type":"image","namespace":["branding","footer","custom_content","image"],"searchable":false,"uid":false},{"name":"text","label":"Text Color","type":"string","options":[{"label":"Main","value":"text-content"},{"label":"Alternate","value":"text-content-alt"}],"namespace":["branding","footer","custom_content","text"],"searchable":true,"uid":false},{"name":"columns","label":"Columns","type":"object","list":true,"ui":{"min":1,"max":6},"fields":[{"name":"width","label":"Column width (percent)","type":"string","options":[{"label":"16.5%","value":"col-span-2"},{"label":"25%","value":"col-span-3"},{"label":"33%","value":"col-span-4"},{"label":"50%","value":"col-span-6"},{"label":"67%","value":"col-span-8"},{"label":"75%","value":"col-span-9"},{"label":"100%","value":"col-span-12"}],"namespace":["branding","footer","custom_content","columns","width"],"searchable":true,"uid":false},{"name":"justify","label":"Vertical Alignment","type":"string","options":[{"label":"Top (default)","value":"justify-start"},{"label":"Center","value":"justify-center"},{"label":"Bottom","value":"justify-end"}],"namespace":["branding","footer","custom_content","columns","justify"],"searchable":true,"uid":false},{"name":"align","label":"Horizontal Alignment","type":"string","options":[{"label":"Left (default)","value":""},{"label":"Center","value":"items-center text-center"},{"label":"Bottom","value":"justify-end"}],"namespace":["branding","footer","custom_content","columns","align"],"searchable":true,"uid":false},{"name":"border","label":"Border Color (leave blank for none)","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["branding","footer","custom_content","columns","border"],"searchable":true,"uid":false},{"name":"rounded","label":"Rounded Corners?","type":"boolean","namespace":["branding","footer","custom_content","columns","rounded"],"searchable":true,"uid":false},{"name":"content","label":"Content","type":"object","list":true,"templates":[{"name":"richtext","label":"Rich Text","fields":[{"name":"text","label":"Text","type":"rich-text","templates":[{"name":"spacer","label":"Spacer","fields":[{"name":"size","label":"Size","type":"string","options":[{"label":"None (divider only)","value":"none"},{"label":"Extra Small (20px)","value":"xs"},{"label":"Small (32px)","value":"small"},{"label":"Medium (64px)","value":"medium"},{"label":"Large (96px)","value":"large"}],"namespace":["branding","footer","custom_content","columns","content","richtext","text","spacer","size"]},{"name":"color","label":"Divider Color","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["branding","footer","custom_content","columns","content","richtext","text","spacer","color"]}],"namespace":["branding","footer","custom_content","columns","content","richtext","text","spacer"]},{"name":"button","label":"Button Link","fields":[{"name":"content","label":"Button Text","type":"string","namespace":["branding","footer","custom_content","columns","content","richtext","text","button","content"]},{"name":"href","label":"Button Link","type":"string","namespace":["branding","footer","custom_content","columns","content","richtext","text","button","href"]},{"name":"color","label":"Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["branding","footer","custom_content","columns","content","richtext","text","button","color"]},{"name":"text","label":"Text Color","type":"string","description":"Leave blank for default.","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["branding","footer","custom_content","columns","content","richtext","text","button","text"]},{"name":"border","label":"Border Color (leave blank for none)","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["branding","footer","custom_content","columns","content","richtext","text","button","border"]},{"name":"arrow","label":"Include arrow icon?","type":"boolean","namespace":["branding","footer","custom_content","columns","content","richtext","text","button","arrow"]}],"namespace":["branding","footer","custom_content","columns","content","richtext","text","button"]}],"namespace":["branding","footer","custom_content","columns","content","richtext","text"],"searchable":true,"parser":{"type":"markdown"},"uid":false}],"namespace":["branding","footer","custom_content","columns","content","richtext"]},{"name":"image","label":"Image","fields":[{"name":"image","label":"Image","type":"image","namespace":["branding","footer","custom_content","columns","content","image","image"],"searchable":false,"uid":false},{"name":"rounded","label":"Rounded Corners?","type":"boolean","namespace":["branding","footer","custom_content","columns","content","image","rounded"],"searchable":true,"uid":false}],"namespace":["branding","footer","custom_content","columns","content","image"]},{"name":"link_row","label":"Navigation Links","fields":[{"name":"links","label":"Links","type":"object","list":true,"ui":{},"fields":[{"name":"url","label":"URL","type":"string","namespace":["branding","footer","custom_content","columns","content","link_row","links","url"]},{"name":"label","label":"Label","type":"string","namespace":["branding","footer","custom_content","columns","content","link_row","links","label"]}],"namespace":["branding","footer","custom_content","columns","content","link_row","links"],"searchable":true,"uid":false},{"name":"orientation","label":"Orientation","type":"string","options":[{"label":"Row","value":"row"},{"label":"Column","value":"column"}],"namespace":["branding","footer","custom_content","columns","content","link_row","orientation"],"searchable":true,"uid":false}],"namespace":["branding","footer","custom_content","columns","content","link_row"]},{"name":"basic","label":"Title and Description (plain text)","fields":[{"name":"title","label":"Title","type":"string","namespace":["branding","footer","custom_content","columns","content","basic","title"],"searchable":true,"uid":false},{"name":"description","label":"Description","type":"string","ui":{"component":"textarea"},"namespace":["branding","footer","custom_content","columns","content","basic","description"],"searchable":true,"uid":false}],"namespace":["branding","footer","custom_content","columns","content","basic"]},{"name":"card","label":"Card Link","fields":[{"name":"slug","label":"Link","type":"string","namespace":["branding","footer","custom_content","columns","content","card","slug"],"searchable":true,"uid":false},{"name":"title","label":"Title","type":"string","namespace":["branding","footer","custom_content","columns","content","card","title"],"searchable":true,"uid":false},{"name":"author","label":"Author","type":"string","namespace":["branding","footer","custom_content","columns","content","card","author"],"searchable":true,"uid":false},{"name":"date","label":"Date","type":"datetime","namespace":["branding","footer","custom_content","columns","content","card","date"],"searchable":true,"uid":false},{"name":"category","label":"Category","type":"string","namespace":["branding","footer","custom_content","columns","content","card","category"],"searchable":true,"uid":false},{"name":"image","label":"Image","type":"image","namespace":["branding","footer","custom_content","columns","content","card","image"],"searchable":false,"uid":false},{"name":"alt","label":"Image Alt Text","type":"string","namespace":["branding","footer","custom_content","columns","content","card","alt"],"searchable":true,"uid":false},{"name":"blurb","label":"Blurb","type":"string","ui":{"component":"textarea"},"namespace":["branding","footer","custom_content","columns","content","card","blurb"],"searchable":true,"uid":false}],"namespace":["branding","footer","custom_content","columns","content","card"]},{"name":"image_link","label":"Image Link","fields":[{"name":"image","label":"Image","type":"image","namespace":["branding","footer","custom_content","columns","content","image_link","image"],"searchable":false,"uid":false},{"name":"link","label":"Link","type":"string","namespace":["branding","footer","custom_content","columns","content","image_link","link"],"searchable":true,"uid":false},{"name":"overlay","label":"Overlay Text","type":"string","namespace":["branding","footer","custom_content","columns","content","image_link","overlay"],"searchable":true,"uid":false}],"namespace":["branding","footer","custom_content","columns","content","image_link"]},{"name":"quote","label":"Quotation Card","fields":[{"name":"quote","label":"Quotation Text","type":"string","ui":{"component":"textarea"},"namespace":["branding","footer","custom_content","columns","content","quote","quote"],"searchable":true,"uid":false},{"name":"attribution","label":"Attribution","type":"string","namespace":["branding","footer","custom_content","columns","content","quote","attribution"],"searchable":true,"uid":false},{"name":"text_color","label":"Text Color","type":"string","options":[{"label":"Main","value":"text-content"},{"label":"Alternate","value":"text-content-alt"}],"namespace":["branding","footer","custom_content","columns","content","quote","text_color"],"searchable":true,"uid":false},{"name":"border_color","label":"Border Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["branding","footer","custom_content","columns","content","quote","border_color"],"searchable":true,"uid":false},{"name":"icon","label":"Icon","type":"image","namespace":["branding","footer","custom_content","columns","content","quote","icon"],"searchable":false,"uid":false}],"namespace":["branding","footer","custom_content","columns","content","quote"]}],"namespace":["branding","footer","custom_content","columns","content"],"searchable":true,"uid":false}],"namespace":["branding","footer","custom_content","columns"],"searchable":true,"uid":false}],"namespace":["branding","footer","custom_content"],"searchable":true,"uid":false}],"namespace":["branding","footer"],"searchable":true,"uid":false}],"ui":{"allowedActions":{"create":false,"delete":false}},"namespace":["branding"]},{"name":"pages","label":"Pages","path":"content/pages","format":"mdx","fields":[{"name":"title","label":"Title","type":"string","isTitle":true,"required":true,"namespace":["pages","title"],"searchable":true,"uid":false},{"name":"home_page","label":"Home Page","type":"boolean","namespace":["pages","home_page"],"searchable":true,"uid":false},{"name":"nav_bar","label":"Navigation Menu","type":"boolean","namespace":["pages","nav_bar"],"searchable":true,"uid":false},{"name":"transparent","label":"Make top navbar transparent?","type":"boolean","namespace":["pages","transparent"],"searchable":true,"uid":false},{"name":"sections","label":"Sections","type":"object","list":true,"templates":[{"name":"free_text","label":"Free Text","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","free_text","id"],"searchable":true,"uid":false},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","free_text","background"],"searchable":true,"uid":false},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","free_text","top_margin"],"searchable":true,"uid":false},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","free_text","bottom_margin"],"searchable":true,"uid":false},{"name":"body","label":"Body","type":"rich-text","isBody":true,"templates":[{"name":"spacer","label":"Spacer","fields":[{"name":"size","label":"Size","type":"string","options":[{"label":"None (divider only)","value":"none"},{"label":"Extra Small (20px)","value":"xs"},{"label":"Small (32px)","value":"small"},{"label":"Medium (64px)","value":"medium"},{"label":"Large (96px)","value":"large"}],"namespace":["pages","sections","free_text","body","spacer","size"]},{"name":"color","label":"Divider Color","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["pages","sections","free_text","body","spacer","color"]}],"namespace":["pages","sections","free_text","body","spacer"]},{"name":"button","label":"Button Link","fields":[{"name":"content","label":"Button Text","type":"string","namespace":["pages","sections","free_text","body","button","content"]},{"name":"href","label":"Button Link","type":"string","namespace":["pages","sections","free_text","body","button","href"]},{"name":"color","label":"Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","free_text","body","button","color"]},{"name":"text","label":"Text Color","type":"string","description":"Leave blank for default.","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","free_text","body","button","text"]},{"name":"border","label":"Border Color (leave blank for none)","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","free_text","body","button","border"]},{"name":"arrow","label":"Include arrow icon?","type":"boolean","namespace":["pages","sections","free_text","body","button","arrow"]}],"namespace":["pages","sections","free_text","body","button"]}],"namespace":["pages","sections","free_text","body"],"searchable":true,"parser":{"type":"mdx"},"uid":false}],"namespace":["pages","sections","free_text"]},{"name":"images","label":"Images","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","images","id"],"searchable":true,"uid":false},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","images","background"],"searchable":true,"uid":false},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","images","top_margin"],"searchable":true,"uid":false},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","images","bottom_margin"],"searchable":true,"uid":false},{"name":"title","label":"Title","type":"string","namespace":["pages","sections","images","title"],"searchable":true,"uid":false},{"name":"items","label":"Items","type":"object","list":true,"ui":{},"fields":[{"name":"image","label":"Image","type":"image","namespace":["pages","sections","images","items","image"]},{"name":"image_alt","label":"Image Alt","type":"string","namespace":["pages","sections","images","items","image_alt"]},{"name":"url","label":"URL","type":"string","namespace":["pages","sections","images","items","url"]},{"name":"citation","label":"Image Citation Text","type":"string","namespace":["pages","sections","images","items","citation"]},{"name":"citation_link","label":"Image Citation Link","type":"string","namespace":["pages","sections","images","items","citation_link"]}],"namespace":["pages","sections","images","items"],"searchable":true,"uid":false}],"namespace":["pages","sections","images"]},{"name":"spacer","label":"Spacer","ui":{"defaultItem":{"size":"small"}},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","spacer","id"],"searchable":true,"uid":false},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","spacer","background"],"searchable":true,"uid":false},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","spacer","top_margin"],"searchable":true,"uid":false},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","spacer","bottom_margin"],"searchable":true,"uid":false},{"name":"size","label":"Size","type":"string","required":true,"options":[{"label":"None (divider only)","value":"none"},{"label":"Extra Small (20px)","value":"xs"},{"label":"Small (32px)","value":"small"},{"label":"Medium (64px)","value":"medium"},{"label":"Large (96px)","value":"large"}],"namespace":["pages","sections","spacer","size"],"searchable":true,"uid":false},{"name":"color","label":"Divider Color","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["pages","sections","spacer","color"],"searchable":true,"uid":false},{"name":"thick","label":"Thick divider? (2px)","type":"boolean","namespace":["pages","sections","spacer","thick"],"searchable":true,"uid":false}],"namespace":["pages","sections","spacer"]},{"name":"multi_column","label":"Columns","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","multi_column","id"],"searchable":true,"uid":false},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","multi_column","background"],"searchable":true,"uid":false},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","multi_column","top_margin"],"searchable":true,"uid":false},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","multi_column","bottom_margin"],"searchable":true,"uid":false},{"name":"title","label":"Title","type":"string","namespace":["pages","sections","multi_column","title"],"searchable":true,"uid":false},{"name":"url","label":"URL","type":"string","namespace":["pages","sections","multi_column","url"],"searchable":true,"uid":false},{"name":"button_text","label":"Button Text","type":"string","namespace":["pages","sections","multi_column","button_text"],"searchable":true,"uid":false},{"name":"text_alignment","label":"Text Alignment","type":"string","options":[{"label":"Left","value":"left"},{"label":"Center","value":"center"}],"namespace":["pages","sections","multi_column","text_alignment"],"searchable":true,"uid":false},{"name":"gap","label":"Column Gap","type":"string","options":[{"label":"Large","value":"large"},{"label":"Small (default)","value":"small"},{"label":"None","value":"none"}],"namespace":["pages","sections","multi_column","gap"],"searchable":true,"uid":false},{"name":"text","label":"Text Color","type":"string","options":[{"label":"Main","value":"text-content"},{"label":"Alternate","value":"text-content-alt"}],"namespace":["pages","sections","multi_column","text"],"searchable":true,"uid":false},{"name":"background_image","label":"Background Image","type":"image","namespace":["pages","sections","multi_column","background_image"],"searchable":false,"uid":false},{"name":"darken","label":"Darken Background Image?","type":"boolean","namespace":["pages","sections","multi_column","darken"],"searchable":true,"uid":false},{"name":"columns","label":"Columns","type":"object","list":true,"ui":{"min":1,"max":6},"fields":[{"name":"width","label":"Column width (percent)","type":"string","options":[{"label":"25%","value":"col-span-3"},{"label":"33%","value":"col-span-1 sm:col-span-2 lg:col-span-4"},{"label":"50%","value":"col-span-6"},{"label":"67%","value":"col-span-1 sm:col-span-2 lg:col-span-8"},{"label":"75%","value":"col-span-9"},{"label":"100%","value":"col-span-12"}],"namespace":["pages","sections","multi_column","columns","width"]},{"name":"justify","label":"Vertical Alignment","type":"string","options":[{"label":"Top (default)","value":"justify-start"},{"label":"Center","value":"justify-center"},{"label":"Bottom","value":"justify-end"}],"namespace":["pages","sections","multi_column","columns","justify"]},{"name":"align","label":"Horizontal Alignment","type":"string","options":[{"label":"Left (default)","value":""},{"label":"Center","value":"justify-self-center"},{"label":"Bottom","value":"justify-self-end"}],"namespace":["pages","sections","multi_column","columns","align"]},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","multi_column","columns","background"]},{"name":"border","label":"Border Color (leave blank for none)","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["pages","sections","multi_column","columns","border"]},{"name":"rounded","label":"Rounded Corners?","type":"boolean","namespace":["pages","sections","multi_column","columns","rounded"]},{"name":"url","label":"URL","description":"If provided, the entire column will be a link to the given URL.","type":"string","namespace":["pages","sections","multi_column","columns","url"]},{"name":"content","label":"Content","type":"object","list":true,"templates":[{"name":"richtext","label":"Rich Text","fields":[{"name":"text","label":"Text","type":"rich-text","templates":[{"name":"spacer","label":"Spacer","fields":[{"name":"size","label":"Size","type":"string","options":[{"label":"None (divider only)","value":"none"},{"label":"Extra Small (20px)","value":"xs"},{"label":"Small (32px)","value":"small"},{"label":"Medium (64px)","value":"medium"},{"label":"Large (96px)","value":"large"}],"namespace":["pages","sections","multi_column","columns","content","richtext","text","spacer","size"]},{"name":"color","label":"Divider Color","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["pages","sections","multi_column","columns","content","richtext","text","spacer","color"]}],"namespace":["pages","sections","multi_column","columns","content","richtext","text","spacer"]},{"name":"button","label":"Button Link","fields":[{"name":"content","label":"Button Text","type":"string","namespace":["pages","sections","multi_column","columns","content","richtext","text","button","content"]},{"name":"href","label":"Button Link","type":"string","namespace":["pages","sections","multi_column","columns","content","richtext","text","button","href"]},{"name":"color","label":"Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","multi_column","columns","content","richtext","text","button","color"]},{"name":"text","label":"Text Color","type":"string","description":"Leave blank for default.","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","multi_column","columns","content","richtext","text","button","text"]},{"name":"border","label":"Border Color (leave blank for none)","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","multi_column","columns","content","richtext","text","button","border"]},{"name":"arrow","label":"Include arrow icon?","type":"boolean","namespace":["pages","sections","multi_column","columns","content","richtext","text","button","arrow"]}],"namespace":["pages","sections","multi_column","columns","content","richtext","text","button"]}],"namespace":["pages","sections","multi_column","columns","content","richtext","text"]},{"name":"size","label":"Paragraph Text Size","type":"string","options":[{"label":"Default (16px)","value":""},{"label":"Large (18px)","value":"text-lg"},{"label":"Small (14px)","value":"text-sm"}],"namespace":["pages","sections","multi_column","columns","content","richtext","size"]},{"name":"padding","label":"Add side padding?","description":"If selected, will add a small buffer around the left and right of the text; for example if the text will be inside a border.","type":"boolean","namespace":["pages","sections","multi_column","columns","content","richtext","padding"]}],"namespace":["pages","sections","multi_column","columns","content","richtext"]},{"name":"image","label":"Image","ui":{"defaultItem":{"full_height":true}},"fields":[{"name":"image","label":"Image","type":"image","namespace":["pages","sections","multi_column","columns","content","image","image"]},{"name":"full_height","label":"Full height?","type":"boolean","namespace":["pages","sections","multi_column","columns","content","image","full_height"]},{"name":"rounded","label":"Rounded Corners?","type":"boolean","namespace":["pages","sections","multi_column","columns","content","image","rounded"]},{"name":"image_alt","label":"Image Alt","type":"string","namespace":["pages","sections","multi_column","columns","content","image","image_alt"]},{"name":"citation","label":"Image Citation/Caption Text","type":"string","namespace":["pages","sections","multi_column","columns","content","image","citation"]},{"name":"citation_link","label":"Image Citation Link","type":"string","namespace":["pages","sections","multi_column","columns","content","image","citation_link"]}],"namespace":["pages","sections","multi_column","columns","content","image"]},{"name":"basic","label":"Title and Description (plain text)","fields":[{"name":"title","label":"Title","type":"string","namespace":["pages","sections","multi_column","columns","content","basic","title"]},{"name":"description","label":"Description","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","multi_column","columns","content","basic","description"]}],"namespace":["pages","sections","multi_column","columns","content","basic"]},{"name":"card","label":"Card Link","fields":[{"name":"slug","label":"Link","type":"string","namespace":["pages","sections","multi_column","columns","content","card","slug"]},{"name":"title","label":"Title","type":"string","namespace":["pages","sections","multi_column","columns","content","card","title"]},{"name":"author","label":"Author","type":"string","namespace":["pages","sections","multi_column","columns","content","card","author"]},{"name":"date","label":"Date","type":"datetime","namespace":["pages","sections","multi_column","columns","content","card","date"]},{"name":"category","label":"Category","type":"string","namespace":["pages","sections","multi_column","columns","content","card","category"]},{"name":"image","label":"Image","type":"image","namespace":["pages","sections","multi_column","columns","content","card","image"]},{"name":"alt","label":"Image Alt Text","type":"string","namespace":["pages","sections","multi_column","columns","content","card","alt"]},{"name":"blurb","label":"Blurb","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","multi_column","columns","content","card","blurb"]}],"namespace":["pages","sections","multi_column","columns","content","card"]},{"name":"image_link","label":"Image Link","fields":[{"name":"image","label":"Image","type":"image","namespace":["pages","sections","multi_column","columns","content","image_link","image"]},{"name":"link","label":"Link","type":"string","namespace":["pages","sections","multi_column","columns","content","image_link","link"]},{"name":"overlay","label":"Overlay Text","type":"string","namespace":["pages","sections","multi_column","columns","content","image_link","overlay"]}],"namespace":["pages","sections","multi_column","columns","content","image_link"]},{"name":"quote","label":"Quotation Card","fields":[{"name":"quote","label":"Quotation Text","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","multi_column","columns","content","quote","quote"]},{"name":"attribution","label":"Attribution","type":"string","namespace":["pages","sections","multi_column","columns","content","quote","attribution"]},{"name":"text_color","label":"Text Color","type":"string","options":[{"label":"Main","value":"text-content"},{"label":"Alternate","value":"text-content-alt"}],"namespace":["pages","sections","multi_column","columns","content","quote","text_color"]},{"name":"text_alignment","label":"Text Alignment","type":"string","options":[{"label":"Left","value":"left"},{"label":"Center","value":"center"}],"namespace":["pages","sections","multi_column","columns","content","quote","text_alignment"]},{"name":"border_color","label":"Border Color","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["pages","sections","multi_column","columns","content","quote","border_color"]},{"name":"bg_color","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","multi_column","columns","content","quote","bg_color"]},{"name":"icon_background","label":"Icon in background?","type":"boolean","namespace":["pages","sections","multi_column","columns","content","quote","icon_background"]},{"name":"icon","label":"Icon","type":"image","namespace":["pages","sections","multi_column","columns","content","quote","icon"]}],"namespace":["pages","sections","multi_column","columns","content","quote"]},{"name":"counter","label":"Record Counter","fields":[{"name":"count","label":"Record Count","type":"number","namespace":["pages","sections","multi_column","columns","content","counter","count"]},{"name":"type","label":"Type (defaults to \"records\")","type":"string","namespace":["pages","sections","multi_column","columns","content","counter","type"]},{"name":"description","label":"Description","type":"string","namespace":["pages","sections","multi_column","columns","content","counter","description"]}],"namespace":["pages","sections","multi_column","columns","content","counter"]},{"name":"contact_form","label":"Contact Form","fields":[{"name":"email","label":"Email","type":"string","namespace":["pages","sections","multi_column","columns","content","contact_form","email"]}],"namespace":["pages","sections","multi_column","columns","content","contact_form"]}],"namespace":["pages","sections","multi_column","columns","content"]}],"namespace":["pages","sections","multi_column","columns"],"searchable":true,"uid":false}],"namespace":["pages","sections","multi_column"]},{"name":"banner","label":"Full Width Banner","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","banner","id"],"searchable":true,"uid":false},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","banner","background"],"searchable":true,"uid":false},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","banner","top_margin"],"searchable":true,"uid":false},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","banner","bottom_margin"],"searchable":true,"uid":false},{"name":"hero","label":"Is hero?","type":"boolean","namespace":["pages","sections","banner","hero"],"searchable":true,"uid":false},{"name":"title","label":"Title","type":"string","namespace":["pages","sections","banner","title"],"searchable":true,"uid":false},{"name":"subtitle","label":"Subtitle","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","banner","subtitle"],"searchable":true,"uid":false},{"name":"url","label":"URL","type":"string","namespace":["pages","sections","banner","url"],"searchable":true,"uid":false},{"name":"button_text","label":"Button Text","type":"string","namespace":["pages","sections","banner","button_text"],"searchable":true,"uid":false},{"name":"search","label":"Search Bar","type":"object","fields":[{"name":"search_name","label":"Search Name","description":"This should match the name configured for the search in Settings.","type":"string","namespace":["pages","sections","banner","search","search_name"]},{"name":"button_text","label":"Button Text","type":"string","namespace":["pages","sections","banner","search","button_text"]},{"name":"placeholder","label":"Search Placeholder","type":"string","namespace":["pages","sections","banner","search","placeholder"]}],"namespace":["pages","sections","banner","search"],"searchable":true,"uid":false},{"name":"content","label":"Rich Text Content","type":"rich-text","templates":[{"name":"spacer","label":"Spacer","fields":[{"name":"size","label":"Size","type":"string","options":[{"label":"None (divider only)","value":"none"},{"label":"Extra Small (20px)","value":"xs"},{"label":"Small (32px)","value":"small"},{"label":"Medium (64px)","value":"medium"},{"label":"Large (96px)","value":"large"}],"namespace":["pages","sections","banner","content","spacer","size"]},{"name":"color","label":"Divider Color","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["pages","sections","banner","content","spacer","color"]}],"namespace":["pages","sections","banner","content","spacer"]},{"name":"button","label":"Button Link","fields":[{"name":"content","label":"Button Text","type":"string","namespace":["pages","sections","banner","content","button","content"]},{"name":"href","label":"Button Link","type":"string","namespace":["pages","sections","banner","content","button","href"]},{"name":"color","label":"Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","banner","content","button","color"]},{"name":"text","label":"Text Color","type":"string","description":"Leave blank for default.","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","banner","content","button","text"]},{"name":"border","label":"Border Color (leave blank for none)","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","banner","content","button","border"]},{"name":"arrow","label":"Include arrow icon?","type":"boolean","namespace":["pages","sections","banner","content","button","arrow"]}],"namespace":["pages","sections","banner","content","button"]}],"namespace":["pages","sections","banner","content"],"searchable":true,"parser":{"type":"mdx"},"uid":false},{"name":"text_alignment","label":"Text Alignment","type":"string","options":[{"label":"Left","value":"left"},{"label":"Center","value":"center"}],"namespace":["pages","sections","banner","text_alignment"],"searchable":true,"uid":false},{"name":"height","label":"Height","type":"string","options":[{"label":"Small","value":"small"},{"label":"Medium","value":"medium"},{"label":"Large","value":"large"}],"namespace":["pages","sections","banner","height"],"searchable":true,"uid":false},{"name":"color","label":"Text Mode","type":"string","options":[{"label":"Dark Text","value":"black"},{"label":"Light Text","value":"white"}],"namespace":["pages","sections","banner","color"],"searchable":true,"uid":false},{"name":"background_image","label":"Background Image","type":"image","namespace":["pages","sections","banner","background_image"],"searchable":false,"uid":false},{"name":"background_image_alt","label":"Background Image Alt Text","type":"string","namespace":["pages","sections","banner","background_image_alt"],"searchable":true,"uid":false},{"name":"darken","label":"Darken Background?","type":"boolean","namespace":["pages","sections","banner","darken"],"searchable":true,"uid":false}],"namespace":["pages","sections","banner"]},{"name":"feature_quote","label":"Feature Quote","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","feature_quote","id"],"searchable":true,"uid":false},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","feature_quote","background"],"searchable":true,"uid":false},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","feature_quote","top_margin"],"searchable":true,"uid":false},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","feature_quote","bottom_margin"],"searchable":true,"uid":false},{"name":"text","label":"Text Color","type":"string","options":[{"label":"Main","value":"text-content"},{"label":"Alternate","value":"text-content-alt"}],"namespace":["pages","sections","feature_quote","text"],"searchable":true,"uid":false},{"name":"background_image","label":"Background Image","type":"image","namespace":["pages","sections","feature_quote","background_image"],"searchable":false,"uid":false},{"name":"darken","label":"Darken Background Image?","type":"boolean","namespace":["pages","sections","feature_quote","darken"],"searchable":true,"uid":false},{"name":"mode","label":"Text mode","description":"If using an image background, specify whether the text should be light or dark. If using a solid color background, leave default.","type":"string","options":[{"label":"Default","value":""},{"label":"Light text","value":"light"},{"label":"Dark text","value":"dark"}],"namespace":["pages","sections","feature_quote","mode"],"searchable":true,"uid":false},{"name":"quote","label":"Quotation Text","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","feature_quote","quote"],"searchable":true,"uid":false},{"name":"attribution","label":"Attribution","type":"string","namespace":["pages","sections","feature_quote","attribution"],"searchable":true,"uid":false},{"name":"date","label":"Date","type":"string","namespace":["pages","sections","feature_quote","date"],"searchable":true,"uid":false},{"name":"icon","label":"Icon","type":"image","namespace":["pages","sections","feature_quote","icon"],"searchable":false,"uid":false}],"namespace":["pages","sections","feature_quote"]},{"name":"text_image","label":"Text Image Block","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","text_image","id"],"searchable":true,"uid":false},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","text_image","background"],"searchable":true,"uid":false},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","text_image","top_margin"],"searchable":true,"uid":false},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","text_image","bottom_margin"],"searchable":true,"uid":false},{"name":"title","label":"Title","type":"string","namespace":["pages","sections","text_image","title"],"searchable":true,"uid":false},{"name":"description","label":"Description","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","text_image","description"],"searchable":true,"uid":false},{"name":"image","label":"Image","type":"image","namespace":["pages","sections","text_image","image"],"searchable":false,"uid":false},{"name":"image_alt","label":"Image Alt","type":"string","namespace":["pages","sections","text_image","image_alt"],"searchable":true,"uid":false},{"name":"url","label":"URL","type":"string","namespace":["pages","sections","text_image","url"],"searchable":true,"uid":false},{"name":"citation","label":"Image Citation Text","type":"string","namespace":["pages","sections","text_image","citation"],"searchable":true,"uid":false},{"name":"citation_link","label":"Image Citation Link","type":"string","namespace":["pages","sections","text_image","citation_link"],"searchable":true,"uid":false},{"name":"background_position","label":"Background Position","type":"string","options":[{"label":"Top","value":"top"},{"label":"Bottom","value":"bottom"},{"label":"Left","value":"left"},{"label":"Right","value":"right"}],"namespace":["pages","sections","text_image","background_position"],"searchable":true,"uid":false},{"name":"text_position","label":"Text Position","type":"string","options":[{"label":"Left","value":"left"},{"label":"Right","value":"right"}],"namespace":["pages","sections","text_image","text_position"],"searchable":true,"uid":false},{"name":"button_text","label":"Button Text","type":"string","namespace":["pages","sections","text_image","button_text"],"searchable":true,"uid":false}],"namespace":["pages","sections","text_image"]},{"name":"link_banner","label":"Links Banner","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","link_banner","id"],"searchable":true,"uid":false},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","link_banner","background"],"searchable":true,"uid":false},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","link_banner","top_margin"],"searchable":true,"uid":false},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","link_banner","bottom_margin"],"searchable":true,"uid":false},{"name":"link_background","label":"Link Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","link_banner","link_background"],"searchable":true,"uid":false},{"name":"links","label":"Links","list":true,"type":"object","fields":[{"name":"label","label":"Label","type":"string","namespace":["pages","sections","link_banner","links","label"]},{"name":"url","label":"URL","type":"string","namespace":["pages","sections","link_banner","links","url"]}],"namespace":["pages","sections","link_banner","links"],"searchable":true,"uid":false}],"namespace":["pages","sections","link_banner"]},{"name":"contact_form","label":"Contact Form","fields":[{"name":"email","label":"Email","type":"string","namespace":["pages","sections","contact_form","email"],"searchable":true,"uid":false}],"namespace":["pages","sections","contact_form"]},{"name":"media","label":"Media","fields":[{"name":"media","label":"Media","type":"object","fields":[{"name":"title","label":"Title","type":"string","namespace":["pages","sections","media","media","title"]},{"name":"uuid","label":"UUID","type":"string","namespace":["pages","sections","media","media","uuid"]},{"name":"manifest_url","label":"Manifest URL","type":"string","namespace":["pages","sections","media","media","manifest_url"]},{"name":"content_url","label":"Content URL","type":"string","namespace":["pages","sections","media","media","content_url"]},{"name":"content_preview_url","label":"Content Preview URL","type":"string","namespace":["pages","sections","media","media","content_preview_url"]}],"ui":{},"namespace":["pages","sections","media","media"],"searchable":true,"uid":false},{"name":"ratio","label":"Ratio","type":"string","description":"Ratio of horizontal space that each pane of the viewer should take up. The image is on the left and the metadata is on the right. (Default: 2:1)","options":[{"value":"clover-12","label":"1:2"},{"value":"clover-11","label":"1:1"},{"value":"clover-21","label":"2:1"}],"namespace":["pages","sections","media","ratio"],"searchable":true,"uid":false}],"namespace":["pages","sections","media"]},{"name":"carousel","label":"Carousel","fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","carousel","id"],"searchable":true,"uid":false},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","carousel","background"],"searchable":true,"uid":false},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","carousel","top_margin"],"searchable":true,"uid":false},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","carousel","bottom_margin"],"searchable":true,"uid":false},{"name":"items","label":"Items","type":"object","list":true,"ui":{},"fields":[{"name":"title","label":"Title","type":"string","namespace":["pages","sections","carousel","items","title"]},{"name":"description","label":"Description","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","carousel","items","description"]},{"name":"url","label":"URL","type":"string","namespace":["pages","sections","carousel","items","url"]},{"name":"image","label":"Image","type":"image","namespace":["pages","sections","carousel","items","image"]},{"name":"image_alt","label":"Image Alt Text","type":"string","namespace":["pages","sections","carousel","items","image_alt"]}],"namespace":["pages","sections","carousel","items"],"searchable":true,"uid":false}],"namespace":["pages","sections","carousel"]},{"name":"tabs","label":"Tabbed Content","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","tabs","id"],"searchable":true,"uid":false},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","background"],"searchable":true,"uid":false},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","tabs","top_margin"],"searchable":true,"uid":false},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","tabs","bottom_margin"],"searchable":true,"uid":false},{"name":"invert_text","label":"Default to light text color for tabs with no specified background color?","description":"For tabs that overlap with the section above, select this option if the section above has a dark background.","type":"boolean","namespace":["pages","sections","tabs","invert_text"],"searchable":true,"uid":false},{"name":"active_bg","label":"Active Tab Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","active_bg"],"searchable":true,"uid":false},{"name":"inactive_bg","label":"Inactive Tab Background Color (defaults to none)","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","inactive_bg"],"searchable":true,"uid":false},{"name":"text_style","label":"Tab Label Styling","type":"string","options":[{"label":"Small Uppercase","value":"uppercase"},{"label":"Italic Serif","value":"italic"}],"namespace":["pages","sections","tabs","text_style"],"searchable":true,"uid":false},{"name":"tabs","label":"Tabs","type":"object","list":true,"ui":{},"fields":[{"name":"label","label":"Tab Label","type":"string","namespace":["pages","sections","tabs","tabs","label"]},{"name":"content","label":"Tab Content","type":"object","list":true,"templates":[{"name":"free_text","label":"Free Text","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","tabs","tabs","content","free_text","id"]},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","tabs","content","free_text","background"]},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","free_text","top_margin"]},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","free_text","bottom_margin"]},{"name":"body","label":"Body","type":"rich-text","isBody":true,"templates":[{"name":"spacer","label":"Spacer","fields":[{"name":"size","label":"Size","type":"string","options":[{"label":"None (divider only)","value":"none"},{"label":"Extra Small (20px)","value":"xs"},{"label":"Small (32px)","value":"small"},{"label":"Medium (64px)","value":"medium"},{"label":"Large (96px)","value":"large"}],"namespace":["pages","sections","tabs","tabs","content","free_text","body","spacer","size"]},{"name":"color","label":"Divider Color","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["pages","sections","tabs","tabs","content","free_text","body","spacer","color"]}],"namespace":["pages","sections","tabs","tabs","content","free_text","body","spacer"]},{"name":"button","label":"Button Link","fields":[{"name":"content","label":"Button Text","type":"string","namespace":["pages","sections","tabs","tabs","content","free_text","body","button","content"]},{"name":"href","label":"Button Link","type":"string","namespace":["pages","sections","tabs","tabs","content","free_text","body","button","href"]},{"name":"color","label":"Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","tabs","tabs","content","free_text","body","button","color"]},{"name":"text","label":"Text Color","type":"string","description":"Leave blank for default.","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","tabs","tabs","content","free_text","body","button","text"]},{"name":"border","label":"Border Color (leave blank for none)","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","tabs","tabs","content","free_text","body","button","border"]},{"name":"arrow","label":"Include arrow icon?","type":"boolean","namespace":["pages","sections","tabs","tabs","content","free_text","body","button","arrow"]}],"namespace":["pages","sections","tabs","tabs","content","free_text","body","button"]}],"namespace":["pages","sections","tabs","tabs","content","free_text","body"]}],"namespace":["pages","sections","tabs","tabs","content","free_text"]},{"name":"images","label":"Images","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","tabs","tabs","content","images","id"]},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","tabs","content","images","background"]},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","images","top_margin"]},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","images","bottom_margin"]},{"name":"title","label":"Title","type":"string","namespace":["pages","sections","tabs","tabs","content","images","title"]},{"name":"items","label":"Items","type":"object","list":true,"ui":{},"fields":[{"name":"image","label":"Image","type":"image","namespace":["pages","sections","tabs","tabs","content","images","items","image"]},{"name":"image_alt","label":"Image Alt","type":"string","namespace":["pages","sections","tabs","tabs","content","images","items","image_alt"]},{"name":"url","label":"URL","type":"string","namespace":["pages","sections","tabs","tabs","content","images","items","url"]},{"name":"citation","label":"Image Citation Text","type":"string","namespace":["pages","sections","tabs","tabs","content","images","items","citation"]},{"name":"citation_link","label":"Image Citation Link","type":"string","namespace":["pages","sections","tabs","tabs","content","images","items","citation_link"]}],"namespace":["pages","sections","tabs","tabs","content","images","items"]}],"namespace":["pages","sections","tabs","tabs","content","images"]},{"name":"spacer","label":"Spacer","ui":{"defaultItem":{"size":"small"}},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","tabs","tabs","content","spacer","id"]},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","tabs","content","spacer","background"]},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","spacer","top_margin"]},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","spacer","bottom_margin"]},{"name":"size","label":"Size","type":"string","required":true,"options":[{"label":"None (divider only)","value":"none"},{"label":"Extra Small (20px)","value":"xs"},{"label":"Small (32px)","value":"small"},{"label":"Medium (64px)","value":"medium"},{"label":"Large (96px)","value":"large"}],"namespace":["pages","sections","tabs","tabs","content","spacer","size"]},{"name":"color","label":"Divider Color","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["pages","sections","tabs","tabs","content","spacer","color"]},{"name":"thick","label":"Thick divider? (2px)","type":"boolean","namespace":["pages","sections","tabs","tabs","content","spacer","thick"]}],"namespace":["pages","sections","tabs","tabs","content","spacer"]},{"name":"multi_column","label":"Columns","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","tabs","tabs","content","multi_column","id"]},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","background"]},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","top_margin"]},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","bottom_margin"]},{"name":"title","label":"Title","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","title"]},{"name":"url","label":"URL","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","url"]},{"name":"button_text","label":"Button Text","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","button_text"]},{"name":"text_alignment","label":"Text Alignment","type":"string","options":[{"label":"Left","value":"left"},{"label":"Center","value":"center"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","text_alignment"]},{"name":"gap","label":"Column Gap","type":"string","options":[{"label":"Large","value":"large"},{"label":"Small (default)","value":"small"},{"label":"None","value":"none"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","gap"]},{"name":"text","label":"Text Color","type":"string","options":[{"label":"Main","value":"text-content"},{"label":"Alternate","value":"text-content-alt"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","text"]},{"name":"background_image","label":"Background Image","type":"image","namespace":["pages","sections","tabs","tabs","content","multi_column","background_image"]},{"name":"darken","label":"Darken Background Image?","type":"boolean","namespace":["pages","sections","tabs","tabs","content","multi_column","darken"]},{"name":"columns","label":"Columns","type":"object","list":true,"ui":{"min":1,"max":6},"fields":[{"name":"width","label":"Column width (percent)","type":"string","options":[{"label":"25%","value":"col-span-3"},{"label":"33%","value":"col-span-1 sm:col-span-2 lg:col-span-4"},{"label":"50%","value":"col-span-6"},{"label":"67%","value":"col-span-1 sm:col-span-2 lg:col-span-8"},{"label":"75%","value":"col-span-9"},{"label":"100%","value":"col-span-12"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","width"]},{"name":"justify","label":"Vertical Alignment","type":"string","options":[{"label":"Top (default)","value":"justify-start"},{"label":"Center","value":"justify-center"},{"label":"Bottom","value":"justify-end"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","justify"]},{"name":"align","label":"Horizontal Alignment","type":"string","options":[{"label":"Left (default)","value":""},{"label":"Center","value":"justify-self-center"},{"label":"Bottom","value":"justify-self-end"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","align"]},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","background"]},{"name":"border","label":"Border Color (leave blank for none)","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","border"]},{"name":"rounded","label":"Rounded Corners?","type":"boolean","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","rounded"]},{"name":"url","label":"URL","description":"If provided, the entire column will be a link to the given URL.","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","url"]},{"name":"content","label":"Content","type":"object","list":true,"templates":[{"name":"richtext","label":"Rich Text","fields":[{"name":"text","label":"Text","type":"rich-text","templates":[{"name":"spacer","label":"Spacer","fields":[{"name":"size","label":"Size","type":"string","options":[{"label":"None (divider only)","value":"none"},{"label":"Extra Small (20px)","value":"xs"},{"label":"Small (32px)","value":"small"},{"label":"Medium (64px)","value":"medium"},{"label":"Large (96px)","value":"large"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","text","spacer","size"]},{"name":"color","label":"Divider Color","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","text","spacer","color"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","text","spacer"]},{"name":"button","label":"Button Link","fields":[{"name":"content","label":"Button Text","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","text","button","content"]},{"name":"href","label":"Button Link","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","text","button","href"]},{"name":"color","label":"Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","text","button","color"]},{"name":"text","label":"Text Color","type":"string","description":"Leave blank for default.","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","text","button","text"]},{"name":"border","label":"Border Color (leave blank for none)","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","text","button","border"]},{"name":"arrow","label":"Include arrow icon?","type":"boolean","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","text","button","arrow"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","text","button"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","text"]},{"name":"size","label":"Paragraph Text Size","type":"string","options":[{"label":"Default (16px)","value":""},{"label":"Large (18px)","value":"text-lg"},{"label":"Small (14px)","value":"text-sm"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","size"]},{"name":"padding","label":"Add side padding?","description":"If selected, will add a small buffer around the left and right of the text; for example if the text will be inside a border.","type":"boolean","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext","padding"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","richtext"]},{"name":"image","label":"Image","ui":{"defaultItem":{"full_height":true}},"fields":[{"name":"image","label":"Image","type":"image","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","image","image"]},{"name":"full_height","label":"Full height?","type":"boolean","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","image","full_height"]},{"name":"rounded","label":"Rounded Corners?","type":"boolean","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","image","rounded"]},{"name":"image_alt","label":"Image Alt","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","image","image_alt"]},{"name":"citation","label":"Image Citation/Caption Text","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","image","citation"]},{"name":"citation_link","label":"Image Citation Link","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","image","citation_link"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","image"]},{"name":"basic","label":"Title and Description (plain text)","fields":[{"name":"title","label":"Title","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","basic","title"]},{"name":"description","label":"Description","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","basic","description"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","basic"]},{"name":"card","label":"Card Link","fields":[{"name":"slug","label":"Link","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","card","slug"]},{"name":"title","label":"Title","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","card","title"]},{"name":"author","label":"Author","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","card","author"]},{"name":"date","label":"Date","type":"datetime","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","card","date"]},{"name":"category","label":"Category","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","card","category"]},{"name":"image","label":"Image","type":"image","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","card","image"]},{"name":"alt","label":"Image Alt Text","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","card","alt"]},{"name":"blurb","label":"Blurb","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","card","blurb"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","card"]},{"name":"image_link","label":"Image Link","fields":[{"name":"image","label":"Image","type":"image","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","image_link","image"]},{"name":"link","label":"Link","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","image_link","link"]},{"name":"overlay","label":"Overlay Text","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","image_link","overlay"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","image_link"]},{"name":"quote","label":"Quotation Card","fields":[{"name":"quote","label":"Quotation Text","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","quote","quote"]},{"name":"attribution","label":"Attribution","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","quote","attribution"]},{"name":"text_color","label":"Text Color","type":"string","options":[{"label":"Main","value":"text-content"},{"label":"Alternate","value":"text-content-alt"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","quote","text_color"]},{"name":"text_alignment","label":"Text Alignment","type":"string","options":[{"label":"Left","value":"left"},{"label":"Center","value":"center"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","quote","text_alignment"]},{"name":"border_color","label":"Border Color","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","quote","border_color"]},{"name":"bg_color","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","quote","bg_color"]},{"name":"icon_background","label":"Icon in background?","type":"boolean","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","quote","icon_background"]},{"name":"icon","label":"Icon","type":"image","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","quote","icon"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","quote"]},{"name":"counter","label":"Record Counter","fields":[{"name":"count","label":"Record Count","type":"number","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","counter","count"]},{"name":"type","label":"Type (defaults to \"records\")","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","counter","type"]},{"name":"description","label":"Description","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","counter","description"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","counter"]},{"name":"contact_form","label":"Contact Form","fields":[{"name":"email","label":"Email","type":"string","namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","contact_form","email"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content","contact_form"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns","content"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column","columns"]}],"namespace":["pages","sections","tabs","tabs","content","multi_column"]},{"name":"banner","label":"Full Width Banner","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","tabs","tabs","content","banner","id"]},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","tabs","content","banner","background"]},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","banner","top_margin"]},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","banner","bottom_margin"]},{"name":"hero","label":"Is hero?","type":"boolean","namespace":["pages","sections","tabs","tabs","content","banner","hero"]},{"name":"title","label":"Title","type":"string","namespace":["pages","sections","tabs","tabs","content","banner","title"]},{"name":"subtitle","label":"Subtitle","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","tabs","tabs","content","banner","subtitle"]},{"name":"url","label":"URL","type":"string","namespace":["pages","sections","tabs","tabs","content","banner","url"]},{"name":"button_text","label":"Button Text","type":"string","namespace":["pages","sections","tabs","tabs","content","banner","button_text"]},{"name":"search","label":"Search Bar","type":"object","fields":[{"name":"search_name","label":"Search Name","description":"This should match the name configured for the search in Settings.","type":"string","namespace":["pages","sections","tabs","tabs","content","banner","search","search_name"]},{"name":"button_text","label":"Button Text","type":"string","namespace":["pages","sections","tabs","tabs","content","banner","search","button_text"]},{"name":"placeholder","label":"Search Placeholder","type":"string","namespace":["pages","sections","tabs","tabs","content","banner","search","placeholder"]}],"namespace":["pages","sections","tabs","tabs","content","banner","search"]},{"name":"content","label":"Rich Text Content","type":"rich-text","templates":[{"name":"spacer","label":"Spacer","fields":[{"name":"size","label":"Size","type":"string","options":[{"label":"None (divider only)","value":"none"},{"label":"Extra Small (20px)","value":"xs"},{"label":"Small (32px)","value":"small"},{"label":"Medium (64px)","value":"medium"},{"label":"Large (96px)","value":"large"}],"namespace":["pages","sections","tabs","tabs","content","banner","content","spacer","size"]},{"name":"color","label":"Divider Color","type":"string","options":[{"label":"Secondary","value":"secondary"}],"namespace":["pages","sections","tabs","tabs","content","banner","content","spacer","color"]}],"namespace":["pages","sections","tabs","tabs","content","banner","content","spacer"]},{"name":"button","label":"Button Link","fields":[{"name":"content","label":"Button Text","type":"string","namespace":["pages","sections","tabs","tabs","content","banner","content","button","content"]},{"name":"href","label":"Button Link","type":"string","namespace":["pages","sections","tabs","tabs","content","banner","content","button","href"]},{"name":"color","label":"Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","tabs","tabs","content","banner","content","button","color"]},{"name":"text","label":"Text Color","type":"string","description":"Leave blank for default.","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","tabs","tabs","content","banner","content","button","text"]},{"name":"border","label":"Border Color (leave blank for none)","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","tabs","tabs","content","banner","content","button","border"]},{"name":"arrow","label":"Include arrow icon?","type":"boolean","namespace":["pages","sections","tabs","tabs","content","banner","content","button","arrow"]}],"namespace":["pages","sections","tabs","tabs","content","banner","content","button"]}],"namespace":["pages","sections","tabs","tabs","content","banner","content"]},{"name":"text_alignment","label":"Text Alignment","type":"string","options":[{"label":"Left","value":"left"},{"label":"Center","value":"center"}],"namespace":["pages","sections","tabs","tabs","content","banner","text_alignment"]},{"name":"height","label":"Height","type":"string","options":[{"label":"Small","value":"small"},{"label":"Medium","value":"medium"},{"label":"Large","value":"large"}],"namespace":["pages","sections","tabs","tabs","content","banner","height"]},{"name":"color","label":"Text Mode","type":"string","options":[{"label":"Dark Text","value":"black"},{"label":"Light Text","value":"white"}],"namespace":["pages","sections","tabs","tabs","content","banner","color"]},{"name":"background_image","label":"Background Image","type":"image","namespace":["pages","sections","tabs","tabs","content","banner","background_image"]},{"name":"background_image_alt","label":"Background Image Alt Text","type":"string","namespace":["pages","sections","tabs","tabs","content","banner","background_image_alt"]},{"name":"darken","label":"Darken Background?","type":"boolean","namespace":["pages","sections","tabs","tabs","content","banner","darken"]}],"namespace":["pages","sections","tabs","tabs","content","banner"]},{"name":"feature_quote","label":"Feature Quote","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","tabs","tabs","content","feature_quote","id"]},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","tabs","content","feature_quote","background"]},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","feature_quote","top_margin"]},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","feature_quote","bottom_margin"]},{"name":"text","label":"Text Color","type":"string","options":[{"label":"Main","value":"text-content"},{"label":"Alternate","value":"text-content-alt"}],"namespace":["pages","sections","tabs","tabs","content","feature_quote","text"]},{"name":"background_image","label":"Background Image","type":"image","namespace":["pages","sections","tabs","tabs","content","feature_quote","background_image"]},{"name":"darken","label":"Darken Background Image?","type":"boolean","namespace":["pages","sections","tabs","tabs","content","feature_quote","darken"]},{"name":"mode","label":"Text mode","description":"If using an image background, specify whether the text should be light or dark. If using a solid color background, leave default.","type":"string","options":[{"label":"Default","value":""},{"label":"Light text","value":"light"},{"label":"Dark text","value":"dark"}],"namespace":["pages","sections","tabs","tabs","content","feature_quote","mode"]},{"name":"quote","label":"Quotation Text","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","tabs","tabs","content","feature_quote","quote"]},{"name":"attribution","label":"Attribution","type":"string","namespace":["pages","sections","tabs","tabs","content","feature_quote","attribution"]},{"name":"date","label":"Date","type":"string","namespace":["pages","sections","tabs","tabs","content","feature_quote","date"]},{"name":"icon","label":"Icon","type":"image","namespace":["pages","sections","tabs","tabs","content","feature_quote","icon"]}],"namespace":["pages","sections","tabs","tabs","content","feature_quote"]},{"name":"text_image","label":"Text Image Block","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","tabs","tabs","content","text_image","id"]},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","tabs","content","text_image","background"]},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","text_image","top_margin"]},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","text_image","bottom_margin"]},{"name":"title","label":"Title","type":"string","namespace":["pages","sections","tabs","tabs","content","text_image","title"]},{"name":"description","label":"Description","type":"string","ui":{"component":"textarea"},"namespace":["pages","sections","tabs","tabs","content","text_image","description"]},{"name":"image","label":"Image","type":"image","namespace":["pages","sections","tabs","tabs","content","text_image","image"]},{"name":"image_alt","label":"Image Alt","type":"string","namespace":["pages","sections","tabs","tabs","content","text_image","image_alt"]},{"name":"url","label":"URL","type":"string","namespace":["pages","sections","tabs","tabs","content","text_image","url"]},{"name":"citation","label":"Image Citation Text","type":"string","namespace":["pages","sections","tabs","tabs","content","text_image","citation"]},{"name":"citation_link","label":"Image Citation Link","type":"string","namespace":["pages","sections","tabs","tabs","content","text_image","citation_link"]},{"name":"background_position","label":"Background Position","type":"string","options":[{"label":"Top","value":"top"},{"label":"Bottom","value":"bottom"},{"label":"Left","value":"left"},{"label":"Right","value":"right"}],"namespace":["pages","sections","tabs","tabs","content","text_image","background_position"]},{"name":"text_position","label":"Text Position","type":"string","options":[{"label":"Left","value":"left"},{"label":"Right","value":"right"}],"namespace":["pages","sections","tabs","tabs","content","text_image","text_position"]},{"name":"button_text","label":"Button Text","type":"string","namespace":["pages","sections","tabs","tabs","content","text_image","button_text"]}],"namespace":["pages","sections","tabs","tabs","content","text_image"]},{"name":"link_banner","label":"Links Banner","ui":{},"fields":[{"name":"id","label":"Section Identifier","type":"string","description":"This identifier does not appear on the published page; it is just for your convenience to distinguish this section in the section list.","namespace":["pages","sections","tabs","tabs","content","link_banner","id"]},{"name":"background","label":"Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Main Background","value":"layout"},{"label":"Alternate Background","value":"layout_alternate"}],"namespace":["pages","sections","tabs","tabs","content","link_banner","background"]},{"name":"top_margin","label":"Top Margin","description":"Note: Negative margin will raise the section to overlap with the previous section. Leave blank for none.","type":"string","options":[{"label":"Negative XXL (-192px)","value":"-mt-[192px]"},{"label":"Negative XL (-96px)","value":"-mt-[96px]"},{"label":"Negative Large (-80px)","value":"-mt-[80px]"},{"label":"Negative Medium (-64px)","value":"-mt-[64px]"},{"label":"Negative Small (-32px)","value":"-mt-[32px]"},{"label":"Small (32px)","value":"pt-[16px] lg:pt-[32px]"},{"label":"Medium (64px)","value":"pt-[32px] lg:pt-[64px]"},{"label":"Large (80px)","value":"pt-[48px] lg:pt-[80px]"},{"label":"XL (96px)","value":"pt-[64px] lg:pt-[96px]"},{"label":"XXL (192px)","value":"pt-[128px] lg:pt-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","link_banner","top_margin"]},{"name":"bottom_margin","label":"Bottom Margin","type":"string","options":[{"label":"Small (32px)","value":"pb-[16px] lg:pb-[32px]"},{"label":"Medium (64px)","value":"pb-[32px] lg:pb-[64px]"},{"label":"Large (80px)","value":"pb-[48px] lg:pb-[80px]"},{"label":"XL (96px)","value":"pb-[64px] lg:pb-[96px]"},{"label":"XXL (192px)","value":"pb-[128px] lg:pb-[192px]"}],"namespace":["pages","sections","tabs","tabs","content","link_banner","bottom_margin"]},{"name":"link_background","label":"Link Background Color","type":"string","options":[{"label":"Primary","value":"primary"},{"label":"Secondary","value":"secondary"},{"label":"Main Background","value":"layout"}],"namespace":["pages","sections","tabs","tabs","content","link_banner","link_background"]},{"name":"links","label":"Links","list":true,"type":"object","fields":[{"name":"label","label":"Label","type":"string","namespace":["pages","sections","tabs","tabs","content","link_banner","links","label"]},{"name":"url","label":"URL","type":"string","namespace":["pages","sections","tabs","tabs","content","link_banner","links","url"]}],"namespace":["pages","sections","tabs","tabs","content","link_banner","links"]}],"namespace":["pages","sections","tabs","tabs","content","link_banner"]},{"name":"contact_form","label":"Contact Form","fields":[{"name":"email","label":"Email","type":"string","namespace":["pages","sections","tabs","tabs","content","contact_form","email"]}],"namespace":["pages","sections","tabs","tabs","content","contact_form"]},{"name":"media","label":"Media","fields":[{"name":"media","label":"Media","type":"object","fields":[{"name":"title","label":"Title","type":"string","namespace":["pages","sections","tabs","tabs","content","media","media","title"]},{"name":"uuid","label":"UUID","type":"string","namespace":["pages","sections","tabs","tabs","content","media","media","uuid"]},{"name":"manifest_url","label":"Manifest URL","type":"string","namespace":["pages","sections","tabs","tabs","content","media","media","manifest_url"]},{"name":"content_url","label":"Content URL","type":"string","namespace":["pages","sections","tabs","tabs","content","media","media","content_url"]},{"name":"content_preview_url","label":"Content Preview URL","type":"string","namespace":["pages","sections","tabs","tabs","content","media","media","content_preview_url"]}],"ui":{},"namespace":["pages","sections","tabs","tabs","content","media","media"]},{"name":"ratio","label":"Ratio","type":"string","description":"Ratio of horizontal space that each pane of the viewer should take up. The image is on the left and the metadata is on the right. (Default: 2:1)","options":[{"value":"clover-12","label":"1:2"},{"value":"clover-11","label":"1:1"},{"value":"clover-21","label":"2:1"}],"namespace":["pages","sections","tabs","tabs","content","media","ratio"]}],"namespace":["pages","sections","tabs","tabs","content","media"]}],"namespace":["pages","sections","tabs","tabs","content"]}],"namespace":["pages","sections","tabs","tabs"],"searchable":true,"uid":false}],"namespace":["pages","sections","tabs"]}],"namespace":["pages","sections"],"searchable":true,"uid":false}],"namespace":["pages"]},{"name":"path","label":"Paths","path":"content/paths","format":"mdx","ui":{},"fields":[{"name":"_notEditableNotice","type":"string","ui":{},"namespace":["path","_notEditableNotice"],"searchable":true,"uid":false},{"type":"object","name":"creator","label":"Creator","fields":[{"name":"id","label":"ID","type":"string","namespace":["path","creator","id"],"searchable":true,"uid":false},{"name":"email","label":"Email","type":"string","namespace":["path","creator","email"],"searchable":true,"uid":false}],"ui":{},"namespace":["path","creator"],"searchable":true,"uid":false},{"name":"title","label":"Title","type":"string","required":true,"isTitle":true,"namespace":["path","title"],"searchable":true,"uid":false},{"name":"image","label":"Cover Image","type":"image","namespace":["path","image"],"searchable":false,"uid":false},{"name":"imageAlt","label":"Cover Image alt text","type":"string","namespace":["path","imageAlt"],"searchable":true,"uid":false},{"name":"author","label":"Author","type":"string","namespace":["path","author"],"searchable":true,"uid":false},{"name":"date","label":"Date","type":"datetime","namespace":["path","date"],"searchable":true,"uid":false},{"name":"view","label":"View","type":"string","description":"\"Zoom\" (default) will focus on each point as you progress through the path. \"Full\" will keep the entire path visible at all times.","options":[{"label":"Zoom","value":"zoom"},{"label":"Full","value":"full"}],"namespace":["path","view"],"searchable":true,"uid":false},{"name":"published","label":"Published","type":"boolean","ui":{},"namespace":["path","published"],"searchable":true,"uid":false},{"name":"description","label":"Description","type":"rich-text","isBody":true,"templates":[{"name":"iframe","label":"AV Embed","fields":[{"name":"src","label":"Embed Link","type":"string","required":true,"namespace":["path","description","iframe","src"],"searchable":true,"uid":false},{"name":"width","label":"Width (pixels)","type":"number","ui":{},"namespace":["path","description","iframe","width"],"searchable":true,"uid":false},{"name":"height","label":"Height (pixels)","type":"number","ui":{},"namespace":["path","description","iframe","height"],"searchable":true,"uid":false}],"namespace":["path","description","iframe"]},{"name":"media","label":"Media","fields":[{"name":"media","label":"Media","type":"object","fields":[{"name":"title","label":"Title","type":"string","namespace":["path","description","media","media","title"]},{"name":"uuid","label":"UUID","type":"string","namespace":["path","description","media","media","uuid"]},{"name":"manifest_url","label":"Manifest URL","type":"string","namespace":["path","description","media","media","manifest_url"]},{"name":"content_url","label":"Content URL","type":"string","namespace":["path","description","media","media","content_url"]},{"name":"content_preview_url","label":"Content Preview URL","type":"string","namespace":["path","description","media","media","content_preview_url"]}],"ui":{},"namespace":["path","description","media","media"],"searchable":true,"uid":false}],"namespace":["path","description","media"]}],"namespace":["path","description"],"searchable":true,"parser":{"type":"mdx"},"uid":false},{"name":"path","type":"object","list":true,"ui":{},"fields":[{"name":"place","label":"Place Data","type":"object","fields":[{"name":"title","label":"Title","type":"string","required":true,"isTitle":true,"namespace":["path","path","place","title"],"searchable":true,"uid":false},{"name":"uuid","label":"UUID","type":"string","namespace":["path","path","place","uuid"],"searchable":true,"uid":false},{"name":"animate","label":"Animate pulsing place marker?","type":"boolean","namespace":["path","path","place","animate"],"searchable":true,"uid":false},{"name":"buffer","label":"Map zoom buffer (in miles)","type":"number","namespace":["path","path","place","buffer"],"searchable":true,"uid":false},{"name":"layer","label":"Custom Map Layer","type":"number","list":true,"namespace":["path","path","place","layer"],"searchable":true,"uid":false}],"ui":{},"required":true,"namespace":["path","path","place"],"searchable":true,"uid":false},{"name":"blurb","label":"Blurb","type":"rich-text","templates":[{"name":"iframe","label":"AV Embed","fields":[{"name":"src","label":"Embed Link","type":"string","required":true,"namespace":["path","path","blurb","iframe","src"],"searchable":true,"uid":false},{"name":"width","label":"Width (pixels)","type":"number","ui":{},"namespace":["path","path","blurb","iframe","width"],"searchable":true,"uid":false},{"name":"height","label":"Height (pixels)","type":"number","ui":{},"namespace":["path","path","blurb","iframe","height"],"searchable":true,"uid":false}],"namespace":["path","path","blurb","iframe"]}],"namespace":["path","path","blurb"],"searchable":true,"parser":{"type":"mdx"},"uid":false}],"namespace":["path","path"],"searchable":true,"uid":false},{"name":"overlay_layer","label":"Overlay layer","type":"string","description":"Optional map overlay to display for this path. Options are pulled from Settings > Layers.","ui":{},"namespace":["path","overlay_layer"],"searchable":true,"uid":false}],"namespace":["path"]},{"name":"post","label":"Posts","path":"content/posts","format":"mdx","ui":{},"fields":[{"name":"_notEditableNotice","type":"string","ui":{},"namespace":["post","_notEditableNotice"],"searchable":true,"uid":false},{"type":"object","name":"creator","label":"Creator","fields":[{"name":"id","label":"ID","type":"string","namespace":["post","creator","id"],"searchable":true,"uid":false},{"name":"email","label":"Email","type":"string","namespace":["post","creator","email"],"searchable":true,"uid":false}],"ui":{},"namespace":["post","creator"],"searchable":true,"uid":false},{"type":"string","name":"title","label":"Title","isTitle":true,"required":true,"namespace":["post","title"],"searchable":true,"uid":false},{"name":"author","label":"Author","type":"string","namespace":["post","author"],"searchable":true,"uid":false},{"name":"date","label":"Date","type":"datetime","namespace":["post","date"],"searchable":true,"uid":false},{"name":"published","label":"Published","type":"boolean","ui":{},"namespace":["post","published"],"searchable":true,"uid":false},{"name":"cardImage","label":"Card Image","type":"image","namespace":["post","cardImage"],"searchable":false,"uid":false},{"name":"imageAlt","label":"Card Image alt text","type":"string","namespace":["post","imageAlt"],"searchable":true,"uid":false},{"type":"rich-text","name":"body","label":"Body","isBody":true,"templates":[{"name":"iframe","label":"AV Embed","fields":[{"name":"src","label":"Embed Link","type":"string","required":true,"namespace":["post","body","iframe","src"],"searchable":true,"uid":false},{"name":"width","label":"Width (pixels)","type":"number","ui":{},"namespace":["post","body","iframe","width"],"searchable":true,"uid":false},{"name":"height","label":"Height (pixels)","type":"number","ui":{},"namespace":["post","body","iframe","height"],"searchable":true,"uid":false}],"namespace":["post","body","iframe"]},{"name":"place","label":"Place","fields":[{"name":"title","label":"Title","type":"string","required":true,"isTitle":true,"namespace":["post","body","place","title"],"searchable":true,"uid":false},{"name":"place","label":"Place Data","type":"object","fields":[{"name":"title","label":"Title","type":"string","required":true,"isTitle":true,"namespace":["post","body","place","place","title"]},{"name":"uuid","label":"UUID","type":"string","namespace":["post","body","place","place","uuid"]},{"name":"animate","label":"Animate pulsing place marker?","type":"boolean","namespace":["post","body","place","place","animate"]},{"name":"buffer","label":"Map zoom buffer (in miles)","type":"number","namespace":["post","body","place","place","buffer"]},{"name":"layer","label":"Custom Map Layer","type":"number","list":true,"namespace":["post","body","place","place","layer"]}],"ui":{},"required":true,"namespace":["post","body","place","place"],"searchable":true,"uid":false},{"name":"caption","label":"Caption","type":"string","ui":{"component":"textarea"},"namespace":["post","body","place","caption"],"searchable":true,"uid":false}],"namespace":["post","body","place"]},{"name":"media","label":"Media","fields":[{"name":"media","label":"Media","type":"object","fields":[{"name":"title","label":"Title","type":"string","namespace":["post","body","media","media","title"]},{"name":"uuid","label":"UUID","type":"string","namespace":["post","body","media","media","uuid"]},{"name":"manifest_url","label":"Manifest URL","type":"string","namespace":["post","body","media","media","manifest_url"]},{"name":"content_url","label":"Content URL","type":"string","namespace":["post","body","media","media","content_url"]},{"name":"content_preview_url","label":"Content Preview URL","type":"string","namespace":["post","body","media","media","content_preview_url"]}],"ui":{},"namespace":["post","body","media","media"],"searchable":true,"uid":false},{"name":"ratio","label":"Ratio","type":"string","description":"Ratio of horizontal space that each pane of the viewer should take up. The image is on the left and the metadata is on the right. (Default: 2:1)","options":[{"value":"clover-12","label":"1:2"},{"value":"clover-11","label":"1:1"},{"value":"clover-21","label":"2:1"}],"namespace":["post","body","media","ratio"],"searchable":true,"uid":false}],"namespace":["post","body","media"]},{"name":"data_table","label":"Table","fields":[{"name":"title","label":"Title","type":"string","required":true,"isTitle":true,"namespace":["post","body","data_table","title"],"searchable":true,"uid":false},{"name":"data","label":"Data","type":"string","ui":{},"namespace":["post","body","data_table","data"],"searchable":true,"uid":false}],"namespace":["post","body","data_table"]},{"name":"map","label":"Map","fields":[{"name":"title","label":"Title","type":"string","required":true,"isTitle":true,"namespace":["post","body","map","title"],"searchable":true,"uid":false},{"name":"data","label":"Data","type":"string","ui":{},"namespace":["post","body","map","data"],"searchable":true,"uid":false}],"namespace":["post","body","map"]},{"name":"timeline","label":"Timeline","fields":[{"name":"title","label":"Title","type":"string","required":true,"isTitle":true,"namespace":["post","body","timeline","title"],"searchable":true,"uid":false},{"name":"data","label":"Data","type":"string","ui":{},"namespace":["post","body","timeline","data"],"searchable":true,"uid":false}],"namespace":["post","body","timeline"]},{"name":"events_by_year","label":"Events By Year","fields":[{"name":"title","label":"Title","type":"string","required":true,"isTitle":true,"namespace":["post","body","events_by_year","title"],"searchable":true,"uid":false},{"name":"data","label":"Data","type":"string","ui":{},"namespace":["post","body","events_by_year","data"],"searchable":true,"uid":false},{"name":"interval","label":"Interval","type":"number","namespace":["post","body","events_by_year","interval"],"searchable":true,"uid":false}],"namespace":["post","body","events_by_year"]},{"name":"stacked_timeline","label":"Stacked Timeline","fields":[{"name":"title","label":"Title","type":"string","required":true,"isTitle":true,"namespace":["post","body","stacked_timeline","title"],"searchable":true,"uid":false},{"name":"data","label":"Data","type":"string","ui":{},"namespace":["post","body","stacked_timeline","data"],"searchable":true,"uid":false},{"name":"link","label":"Event bar link","type":"string","options":[{"label":"None","value":""},{"label":"Event detail page","value":"detail"},{"label":"Filtered search","value":"search"}],"namespace":["post","body","stacked_timeline","link"],"searchable":true,"uid":false},{"name":"model","label":"Search Model (for links)","description":"E.g. \"items\" or \"people\".","type":"string","namespace":["post","body","stacked_timeline","model"],"searchable":true,"uid":false},{"name":"filter","label":"UUID of field to filter on","type":"string","namespace":["post","body","stacked_timeline","filter"],"searchable":true,"uid":false}],"namespace":["post","body","stacked_timeline"]}],"namespace":["post","body"],"searchable":true,"parser":{"type":"mdx"},"uid":false}],"namespace":["post"]},{"name":"i18n","format":"json","label":"Internationalization","path":"content/i18n","fields":[{"name":"t_explore","label":"Explore","type":"string","ui":{"component":"text"},"namespace":["i18n","t_explore"],"searchable":true,"uid":false},{"name":"t_home","label":"Home","type":"string","ui":{"component":"text"},"namespace":["i18n","t_home"],"searchable":true,"uid":false},{"name":"t_about","label":"About","type":"string","ui":{"component":"text"},"namespace":["i18n","t_about"],"searchable":true,"uid":false},{"name":"t_pages","label":"Pages","type":"string","ui":{"component":"text"},"namespace":["i18n","t_pages"],"searchable":true,"uid":false},{"name":"t_paths","label":"Paths","type":"string","ui":{"component":"text"},"namespace":["i18n","t_paths"],"searchable":true,"uid":false},{"name":"t_posts","label":"Posts","type":"string","ui":{"component":"text"},"namespace":["i18n","t_posts"],"searchable":true,"uid":false},{"name":"t_all","label":"All","type":"string","ui":{"component":"text"},"namespace":["i18n","t_all"],"searchable":true,"uid":false},{"name":"t_loading","label":"Loading","type":"string","ui":{"component":"text"},"namespace":["i18n","t_loading"],"searchable":true,"uid":false},{"name":"t_backTo","label":"Back to