A controller answers a route on your app: it calls createPage() and returns the answer.
Add the controller
app/Http/Controllers/CreatePageController.php
<?phpdeclare(strict_types=1);namespace App\Http\Controllers;use Fetchski\AttractCmsLaravel\Data\Page;use Fetchski\AttractCmsLaravel\Facades\Attract;final class CreatePageController{ public function __invoke(): Page { return Attract::pages()->createPage(type: 'default-page', title: 'About Us'); }}
The other values are the example’s: take yours from the request, a form or your database.
Add the route
routes/web.php
use App\Http\Controllers\CreatePageController;use Illuminate\Support\Facades\Route;Route::post('/page', CreatePageController::class)->middleware('auth');
It acts with your key’s access, so auth lets only your signed-in users reach it.
Call it
Your own page’s form or script sends POST /page (a form adds @csrf, as every web route checks it), and gets back its answer as JSON. Test it, below, calls it.
To keep the call in an Action instead, this writes app/Actions/Attract/CreatePage.php (an invokable Action that calls createPage()) and its test under tests/Feature/Actions/Attract/ (Pest when your app has it):
It calls createPage() on your default site and prints its answer as JSON. It writes, so it asks first: add --force to skip the question in a script. See Call any method from the terminal for every argument type.Send its title and type (one of the site’s page types; anything else is refused with the list). It goes in as the last child of the home page unless _targetId (a page’s _id, or _home) and _position (firstChild, lastChild, before or after) place it. Create it as a draft (aposMode: draft), then publish it.
Required parameters
Named arguments, e.g. createPage(type: …); leave out the optional ones.
string
required
Required. The page type: one of the site’s page types (the type its pages carry). Anything else is refused with the list.
string
required
Required. Page title. At most 100 characters.
Optional parameters
Enums\AposMode|string|null
Optional. Leave it out and the site uses "published". published (the default) or draft. Drafts need a credential that may see them: an API key with the type’s write scope (content:<type>:write), or a signed-in editor. The public and a key with only the read scope get 403. One of draft, published.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. The locale to read or write, e.g. en (default: the site’s default locale).
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. The page to place it beside or under, by _id (_home and _archive work too). Default _home.
Enums\Position|string|null
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Where, relative to _targetId. Default lastChild. One of before, after, firstChild, lastChild.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Copy this existing page’s fields (by _id) into the new one.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. URL slug for the page.
?bool
Optional. Leave it out and the site uses false. Whether page is orphaned (not in tree structure)
Optional. Leave it out and the site uses "public". Page visibility setting. One of public, loginRequired, private.
MainArea|array<string, mixed>|null
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.
Show MainArea (Fetchski\AttractCmsLaravel\Data\MainArea)
Enums\AfterContentAreaMetaType|string|null
Always area. One of area.
?string
The area’s id, set by the site: leave it out when you write one.
A list of MainAreaItem. The widgets, top to bottom. Each is an object with its type and that widget’s own fields; _id and metaType may be left out (the site sets them).
Show MainAreaItem (Fetchski\AttractCmsLaravel\Data\MainAreaItem)
A widget in an area that takes @apostrophecms/rich-text, @apostrophecms/image, @apostrophecms/video: the one its type names.
Show RichTextWidget (Fetchski\AttractCmsLaravel\Data\RichTextWidget)
A @apostrophecms/rich-text widget: its type and its own fields. A field left out takes its default.
Enums\RichTextWidgetType|string
required
Required. The widget’s type: always @apostrophecms/rich-text. One of @apostrophecms/rich-text.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
The text as HTML, e.g. <h2>Our story</h2><p>It began with <strong>one</strong> idea.</p>. The site keeps the tags and styles this area’s editor offers (paragraphs, headings, bold, italic, links, lists…) and removes the rest.
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot.
Show CustomCSS (Fetchski\AttractCmsLaravel\Data\CustomCSS)
array<string, string>|null
The CSS typed into each part slot, by slot name.
?string
The compiled CSS (read only: rebuilt from slots).
?string
The site’s check mark for css (read only).
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show ImageWidget (Fetchski\AttractCmsLaravel\Data\ImageWidget)
A @apostrophecms/image widget: its type and its own fields. A field left out takes its default.
Enums\ImageWidgetType|string
required
Required. The widget’s type: always @apostrophecms/image. One of @apostrophecms/image.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
Collection<int, array<string, mixed>>|null
The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Caption.
Enums\LinkTo|string|null
Link To… One of none, @apostrophecms/any-page-type, _url.
Collection<int, array<string, mixed>>|null
The related @apostrophecms/any-page-type documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
apostrophe:linkHrefHelp When set, a URL; empty or null when not.
?string
Link Title.
?string
If empty, the title of the related document will be used.
Collection<int, Enums\LinkTarget|string>|null
Link Target. Each one of _blank.
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show VideoWidget (Fetchski\AttractCmsLaravel\Data\VideoWidget)
A @apostrophecms/video widget: its type and its own fields. A field left out takes its default.
Enums\VideoWidgetType|string
required
Required. The widget’s type: always @apostrophecms/video. One of @apostrophecms/video.
array<string, mixed>
required
Required. Enter the URL for a media source you wish to embed (e.g., YouTube, Vimeo, or other hosted video URL).
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. An ISO 8601 date and time, e.g. 2026-10-21T14:30:00.000Z.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. An ISO 8601 date and time, e.g. 2026-10-21T14:30:00.000Z.
?string
Optional. Leave it out and the site uses "". Overrides the document title in the browser tab and search results. Leave blank to use the regular title.
?string
Optional. Leave it out and the site uses "". Shown in search results and link previews. Aim for 150–160 characters.
ImageArea|array<string, mixed>|null
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Used for Open Graph / social link previews. Recommended 1200×630. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.
Show ImageArea (Fetchski\AttractCmsLaravel\Data\ImageArea)
Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.
Enums\AfterContentAreaMetaType|string|null
Always area. One of area.
?string
The area’s id, set by the site: leave it out when you write one.
Collection<int, ImageWidget>|null
A list of ImageWidget. The widgets, top to bottom. Each is an object with its type and that widget’s own fields; _id and metaType may be left out (the site sets them). At most 1 items. Its fields are listed under the first ImageWidget above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional. Set part of this page in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). Individual sections can still override this for themselves. At most 4 items.
Show PagePageFontOverridesItem (Fetchski\AttractCmsLaravel\Data\PagePageFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of PagePageFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show PagePageFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\PagePageFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\FooterMarqueeMode|string|null
Optional. Leave it out and the site uses "inherit". The ribbon of phrases scrolling across the top of the footer. Its phrases and the site-wide default are set in Site design → Footer: Marquee. One of inherit, on, off.
SectionsArea|array<string, mixed>|null
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. A new document starts with page-header.
Show SectionsArea (Fetchski\AttractCmsLaravel\Data\SectionsArea)
Enums\AfterContentAreaMetaType|string|null
Always area. One of area.
?string
The area’s id, set by the site: leave it out when you write one.
A list of SectionsAreaItem. The widgets, top to bottom. Each is an object with its type and that widget’s own fields; _id and metaType may be left out (the site sets them).
Show SectionsAreaItem (Fetchski\AttractCmsLaravel\Data\SectionsAreaItem)
A widget in an area that takes page-header, hero, @apostrophecms/layout, intro, feature, stats, logos, steps, media-text, device-mock, team, faq, service-map, blog-preview, cookie-declaration, @apostrophecms/rich-text, google-reviews, testimonials, instagram-feed, gallery-preview, gallery-full, pricing, newsletter, sms-signup, form-render, final-cta: the one its type names.
Show PageHeaderWidget (Fetchski\AttractCmsLaravel\Data\PageHeaderWidget)
A page-header widget: its type and its own fields. A field left out takes its default.
Enums\PageHeaderWidgetType|string
required
Required. The widget’s type: always page-header. One of page-header.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
Optional. Leave empty to show the page title (the usual case). Set it only when the visible heading should read differently from the page’s title in navigation, search results and breadcrumbs.
Enums\EyebrowMode|string|null
The small label above the title. One of business, custom, none.
?string
Eyebrow text.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\EyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\EyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TitleWeight|string|null
Title weight. One of normal, medium, semibold, bold, extrabold.
Enums\TitleSize|string|null
Title size. One of small, normal, large, xlarge.
?string
Optional intro shown under the page title.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\LeadWeight|string|null
Lead weight. One of normal, medium, semibold, bold, extrabold.
Enums\LeadSize|string|null
Lead size. One of small, normal, large, xlarge.
Enums\PageHeaderBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\PageHeaderBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
?ImageArea
An ImageArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first ImageArea above.
?string
Scrim behind the text over a background image (only applies when one is set). Leave empty to use the dark surface color.
?string
Optional light-theme override. Falls back to the dark-theme overlay, then the light surface color.
A list of PageHeaderWidgetPageHeaderFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show PageHeaderWidgetPageHeaderFontOverridesItem (Fetchski\AttractCmsLaravel\Data\PageHeaderWidgetPageHeaderFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\PageHeaderPrimaryCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\PageHeaderPrimaryCtaSize|string|null
Button size. One of small, normal, large.
Enums\PageHeaderPrimaryCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\PageHeaderPrimaryCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\PageHeaderPrimaryCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\PageHeaderPrimaryCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\PageHeaderSecondaryCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\PageHeaderSecondaryCtaSize|string|null
Button size. One of small, normal, large.
Enums\PageHeaderSecondaryCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\PageHeaderSecondaryCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\PageHeaderSecondaryCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show HeroWidget (Fetchski\AttractCmsLaravel\Data\HeroWidget)
A hero widget: its type and its own fields. A field left out takes its default.
Enums\HeroWidgetType|string
required
Required. The widget’s type: always hero. One of hero.
string
required
Required. Headline.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
Enums\HeroAlign|string|null
Content alignment. One of left, center.
Enums\HeroHeight|string|null
Full fills the screen (home pages); Compact is a short banner for interior pages. One of full, tall, compact.
?bool
Giant outlined word above the headline (same treatment as the footer wordmark). Reveals on hover.
?string
Keep it short — one word reads best at display size. Leave empty to use the business name.
Enums\HeroGhostSize|string|null
Ghost wordmark size. One of display, large, medium.
Enums\HeroGhostFill|string|null
Outlined letters that fill on hover one at a time, all at once, or always-solid (no ghost effect). One of letter, word, solid.
?string
Optional. Overrides the wordmark fill + outline tint in the dark theme. Leave empty to track the theme’s text color.
?string
Optional light-theme override — handy over a fixed video/photo background that doesn’t switch with the theme. Falls back to the dark-theme color, then the theme default.
?bool
A small line (optional icon + business name) above the headline. Off by default when the ghost wordmark carries the brand.
?bool
Show eyebrow / kicker.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\HeroEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\HeroEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
Enums\HeroEyebrowPlacement|string|null
Eyebrow placement. One of top, belowHeadline, aboveCta.
Enums\HeroHeadlineFill|string|null
Solid is the standard headline. The outline options give the headline the same ghost treatment as the wordmark, filling on hover. (The accent sticker word stays solid.) One of solid, letter, word.
?string
Optional. Overrides the headline color in the dark theme. Leave empty to track the theme’s text color.
?string
Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the theme default.
?bool
Wraps the final headline word in the solid accent “sticker”. Turn off for a plain headline.
Enums\HeroStickerStyle|string|null
Dual layers a colored offset shadow behind the patch; single is one flat color. One of dual, single.
?string
Patch background. Leave empty to use the site primary/accent color.
?string
Offset-shadow layer. Leave empty to use the site secondary color.
?bool
Hovering either the wordmark or the headline fills both at once. Only available when both are set to fill the whole word/headline on hover.
?bool
A bold social hashtag (e.g. #behindthescenes) with its own placement, fill, and optional pill background.
?string
Include the # — e.g. #behindthescenes.
Enums\HeroHashtagPlacement|string|null
Hashtag placement. One of aboveGhost, aboveHeadline, belowHeadline, aboveCta.
Enums\HeroHashtagSize|string|null
Smaller than the headline, but still a prominent element. One of large, medium, small.
Enums\HeroHashtagFill|string|null
Solid color, or the same outlined “ghost” treatment as the headline that fills on hover. (Ignored when the Solid pill background is used.) One of solid, letter, word.
?string
Optional text color (or outline tint). Leave empty to use the site accent color.
?string
Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the accent.
Enums\HeroHashtagBackground|string|null
An optional patch behind the hashtag — a softer take on the headline sticker. One of none, solid, outline.
Enums\HeroHashtagBgShape|string|null
Rounded pill or a squared patch like the headline sticker. One of pill, square.
?string
Patch fill (solid) or border + text (outline). Leave empty to use the site accent color.
Enums\HeroHashtagTilt|string|null
A slight rotation, like the headline sticker. Works with or without a background. One of none, left, right.
?string
Intro copy.
?string
Optional. Overrides the intro text color. Leave empty for the muted default.
?string
Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the muted default.
Enums\HeroIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold.
Enums\HeroIconPlacement|string|null
Where to place an optional Font Awesome icon. One of none, lockup, aboveHeadline, aboveGhost.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\HeroIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
?string
Optional — leave empty to use the design’s own color rhythm.
Enums\HeroIconAnimation|string|null
Icon animation. One of none, fa-beat, fa-bounce, fa-fade, fa-beat-fade, fa-flip, fa-shake, fa-spin.
Enums\HeroBackgroundType|string|null
Background type. One of gradient, image, video.
?ImageArea
An ImageArea. Used when background type is Image, and as the poster/fallback for Video. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first ImageArea above.
Collection<int, array<string, mixed>>|null
Pick from the Videos library (⌘K → Videos). Short, muted loop; reduced-motion visitors get the fallback image instead. The related video documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.
A list of HeroWidgetHeroFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show HeroWidgetHeroFontOverridesItem (Fetchski\AttractCmsLaravel\Data\HeroWidgetHeroFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of HeroWidgetHeroFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show HeroWidgetHeroFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\HeroWidgetHeroFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\HeroPrimaryCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\HeroPrimaryCtaSize|string|null
Button size. One of small, normal, large.
Enums\HeroPrimaryCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\HeroPrimaryCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\HeroPrimaryCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\HeroPrimaryCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\HeroPrimaryCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\HeroSecondaryCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\HeroSecondaryCtaSize|string|null
Button size. One of small, normal, large.
Enums\HeroSecondaryCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\HeroSecondaryCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\HeroSecondaryCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\HeroSecondaryCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\HeroSecondaryCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show LayoutWidget (Fetchski\AttractCmsLaravel\Data\LayoutWidget)
A @apostrophecms/layout widget: its type and its own fields. A field left out takes its default.
Enums\LayoutWidgetType|string
required
Required. The widget’s type: always @apostrophecms/layout. One of @apostrophecms/layout.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?LayoutColumnArea
A LayoutColumnArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.
Show LayoutColumnArea (Fetchski\AttractCmsLaravel\Data\LayoutColumnArea)
Enums\AfterContentAreaMetaType|string|null
Always area. One of area.
?string
The area’s id, set by the site: leave it out when you write one.
Collection<int, LayoutColumnWidget>|null
A list of LayoutColumnWidget. The widgets, top to bottom. Each is an object with its type and that widget’s own fields; _id and metaType may be left out (the site sets them).
Show LayoutColumnWidget (Fetchski\AttractCmsLaravel\Data\LayoutColumnWidget)
A @apostrophecms/layout-column widget: its type and its own fields. A field left out takes its default.
Enums\LayoutColumnWidgetType|string
required
Required. The widget’s type: always @apostrophecms/layout-column. One of @apostrophecms/layout-column.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?int
Colstart.
?int
Colspan.
?int
Rowstart.
?int
Rowspan.
?int
Order.
?LayoutColumnContentArea
A LayoutColumnContentArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.
Show LayoutColumnContentArea (Fetchski\AttractCmsLaravel\Data\LayoutColumnContentArea)
Enums\AfterContentAreaMetaType|string|null
Always area. One of area.
?string
The area’s id, set by the site: leave it out when you write one.
A list of LayoutColumnContentAreaItem. The widgets, top to bottom. Each is an object with its type and that widget’s own fields; _id and metaType may be left out (the site sets them). Its fields are listed under the first LayoutColumnContentAreaItem above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?bool
Visible on tablet.
?bool
Visible on mobile.
Enums\Justify|string|null
Horizontal alignment. One of stretch, start, end, center.
Enums\Align|string|null
Vertical alignment. One of stretch, start, end, center.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show IntroWidget (Fetchski\AttractCmsLaravel\Data\IntroWidget)
A intro widget: its type and its own fields. A field left out takes its default.
Enums\IntroWidgetType|string
required
Required. The widget’s type: always intro. One of intro.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\IntroEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\IntroEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Headline.
?string
Optional. Overrides the headline color. Leave empty to track the theme’s text color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the theme default.
Enums\IntroHeadlineWeight|string|null
Headline weight. One of normal, medium, semibold, bold, extrabold.
?string
Body copy.
?string
Optional. Overrides the body text color. Leave empty for the muted default.
?string
Optional light-theme override. Falls back to the dark-theme color, then the muted default.
Enums\IntroBodyWeight|string|null
Body weight. One of normal, medium, semibold, bold.
Enums\IntroPhotoPlacement|string|null
Where the optional photo sits. Left/right place it beside the text; Full background fills the whole section behind the text (with a readability overlay). One of none, left, right, background.
?ImageArea
An ImageArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first ImageArea above.
Enums\IntroPhotoCorners|string|null
Photo corners. One of rounded, squared.
Enums\IntroPhotoFrame|string|null
Border draws a frame around the photo; Offset adds a refined offset accent frame behind it. One of none, border, offset.
?string
Border / offset-frame color. Leave empty to use the site accent color.
Enums\IntroPhotoTilt|string|null
A slight rotation for a more playful look. One of none, left, right.
Enums\IntroPhotoHover|string|null
Photo hover effect. One of none, lift, zoom, tilt, glow, lift-glow, zoom-glow.
?string
Scrim behind the text over a full-background photo. Leave empty to use the dark surface color.
?string
Optional light-theme override. Falls back to the dark-theme overlay, then the light surface color.
?float
Overlay opacity (%). 0 to 100.
Enums\IntroBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\IntroBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of IntroWidgetIntroFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show IntroWidgetIntroFontOverridesItem (Fetchski\AttractCmsLaravel\Data\IntroWidgetIntroFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of IntroWidgetIntroFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show IntroWidgetIntroFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\IntroWidgetIntroFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show FeatureWidget (Fetchski\AttractCmsLaravel\Data\FeatureWidget)
A feature widget: its type and its own fields. A field left out takes its default.
Enums\FeatureWidgetType|string
required
Required. The widget’s type: always feature. One of feature.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
Enums\FeatureColumns|string|null
Auto fits as many as comfortably fit and works for any number of cards. Or lock a maximum per row. One of auto, 2, 3, 4.
Enums\FeatureGap|string|null
Gap between cards. One of tight, normal, roomy.
Enums\FeatureCardSize|string|null
Scales padding, icon, title, and the index numeral together. One of small, medium, large.
Enums\FeatureCardStyle|string|null
The card treatment. Poster (the default) frames the card with an accent keyline; Raised is a quiet lit card; Luxe a frosted glass panel; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay.
Enums\FeatureCardStyleRadius|string|null
Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large.
?string
Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\FeatureCardStyleForgeScope|string|null
Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame.
Enums\FeatureCardStyleForgeWeight|string|null
Thickness of the Forge corner mark / colored frame. One of fine, medium, bold.
Enums\FeatureCardHover|string|null
How a card reacts on hover. Pop is the lift + hard offset shadow; Glow is a soft accent halo. One of none, lift, pop, glow, border.
?string
Border / shadow / glow color on hover. Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the accent.
?bool
A big outlined numeral on each card (01, 02, …). Great for step-by-step sequences; turn off when the cards aren’t ordered.
Enums\FeatureNumberFill|string|null
Same treatment as the hero ghost text: all numbers solid, outlined and filling on hover, or always outlined. One of solid, hover, outline.
?string
Optional. Tints the numeral fill + outline. Leave empty to track the theme’s text color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the theme default.
?string
Optional. Overrides the card title color. Leave empty to track the theme’s text color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the theme default.
Enums\FeatureTitleWeight|string|null
Title weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional. Overrides the card text color. Leave empty for the muted default.
?string
Optional light-theme override. Falls back to the dark-theme color, then the muted default.
Enums\FeatureTextWeight|string|null
Text weight. One of normal, medium, semibold, bold.
A list of FeatureWidgetFeatureCardsItem. Feature cards.
Show FeatureWidgetFeatureCardsItem (Fetchski\AttractCmsLaravel\Data\FeatureWidgetFeatureCardsItem)
string
required
Required. Title.
?string
The row’s id, unique in its array.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\IconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
?string
Optional — leave empty to use the design’s own color rhythm.
Enums\IconAnimation|string|null
Icon animation. One of none, fa-beat, fa-bounce, fa-fade, fa-beat-fade, fa-flip, fa-shake, fa-spin.
Enums\IconSize|string|null
Relative to the component’s base icon size. One of default, sm, lg, xl, 2xl, 2x, 3x, 4x, 5x.
?string
Text.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\FeatureBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\FeatureBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of FeatureWidgetFeatureFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show FeatureWidgetFeatureFontOverridesItem (Fetchski\AttractCmsLaravel\Data\FeatureWidgetFeatureFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of FeatureWidgetFeatureFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show FeatureWidgetFeatureFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\FeatureWidgetFeatureFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show StatsWidget (Fetchski\AttractCmsLaravel\Data\StatsWidget)
A stats widget: its type and its own fields. A field left out takes its default.
Enums\StatsWidgetType|string
required
Required. The widget’s type: always stats. One of stats.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?bool
A small label above the heading (e.g. “By the numbers”).
?string
Eyebrow.
?string
Optional — leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\StatsEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\StatsEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional. Leave empty to show just the numbers.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\StatsHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
Enums\StatsColumns|string|null
Auto fits as many as comfortably fit and works for any number of stats. Or lock a maximum per row. One of auto, 2, 3, 4.
Enums\StatsGap|string|null
Gap between stats. One of tight, normal, roomy.
Enums\StatsSize|string|null
The baseline scale for the whole stat (value / icon / label / description stay proportional). Fine-tune any single element with its own size control below. One of small, medium, large.
Enums\StatsAlign|string|null
Alignment. One of center, left.
?bool
A hairline rule between each stat — the classic “by the numbers” rail.
?bool
Numbers tick up from zero when the band scrolls into view. Non-numeric values and reduced-motion visitors simply show the final value.
Enums\StatsIconSize|string|null
Size of the icon above each number, independent of the overall stat size. One of auto, sm, md, lg, xl, xxl.
Enums\StatsIconGap|string|null
Space between the icon and the number below it. One of tight, normal, roomy.
Enums\StatsValueSize|string|null
Value size. One of auto, xs, sm, md, lg, xl.
Enums\StatsValueWeight|string|null
Value weight. One of normal, medium, semibold, bold, extrabold.
?string
The big numeral. Optional — leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\StatsLabelSize|string|null
Label size. One of auto, xs, sm, md, lg, xl.
Enums\StatsLabelWeight|string|null
Label weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\StatsDescriptionSize|string|null
Description size. One of auto, xs, sm, md, lg, xl.
Enums\StatsDescriptionWeight|string|null
Description weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Collection<int, StatsWidgetStatsItem>|null
A list of StatsWidgetStatsItem. Stats.
Show StatsWidgetStatsItem (Fetchski\AttractCmsLaravel\Data\StatsWidgetStatsItem)
string
required
Required. The number, e.g. 500, 4.9, 12 — symbols go in the prefix/suffix so the count-up animates the number alone.
string
required
Required. Label.
?string
The row’s id, unique in its array.
?string
Optional Font Awesome icon shown above the number (e.g. star, bolt, chart-line). Leave empty for no icon.
Enums\IconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
?string
Optional — leave empty to use the design’s own color rhythm.
?string
Optional, shown before the number (e.g. $, ~, >). Kept out of the count-up.
?string
Optional, shown after the number (e.g. +, %, k, yrs, ★).
?string
Optional small text under the label.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\StatsBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\StatsBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of StatsWidgetStatsFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show StatsWidgetStatsFontOverridesItem (Fetchski\AttractCmsLaravel\Data\StatsWidgetStatsFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of StatsWidgetStatsFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show StatsWidgetStatsFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\StatsWidgetStatsFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\StatsCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\StatsCtaSize|string|null
Button size. One of small, normal, large.
Enums\StatsCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\StatsCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\StatsCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\StatsCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\StatsCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show LogosWidget (Fetchski\AttractCmsLaravel\Data\LogosWidget)
A logos widget: its type and its own fields. A field left out takes its default.
Enums\LogosWidgetType|string
required
Required. The widget’s type: always logos. One of logos.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?bool
A small label above the heading (e.g. “Trusted by”).
?string
Eyebrow.
?string
Optional — leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\LogosEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\LogosEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional. Leave empty to show just the logos.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\LogosHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\LogosIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold, extrabold.
Enums\LogosDisplay|string|null
A slow scrolling ribbon (marquee) or a calm static grid. One of marquee, grid.
Enums\LogosSpeed|string|null
Marquee speed. One of slow, normal, fast.
Enums\LogosDirection|string|null
Marquee direction. One of left, right.
?bool
Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.
Enums\LogosColumns|string|null
Auto fits as many as comfortably fit and works for any number of logos. Or lock a maximum per row. One of auto, 3, 4, 5, 6.
Enums\LogosGap|string|null
Gap between logos. One of tight, normal, roomy.
Enums\LogosSize|string|null
The height each logo is scaled to (width follows the logo’s aspect ratio). One of small, medium, large.
Enums\LogosAlign|string|null
Aligns the eyebrow / heading / intro (and the grid when there are few logos). One of center, left.
?bool
Sets every logo on a raised, bordered card. Off = logos sit straight on the background.
?bool
Mutes the logos to grayscale and dims them, returning to full color on hover — the classic logo-wall look.
Collection<int, LogosWidgetLogosItem>|null
A list of LogosWidgetLogosItem. Logos.
Show LogosWidgetLogosItem (Fetchski\AttractCmsLaravel\Data\LogosWidgetLogosItem)
Collection<int, array<string, mixed>>
required
Required. Pick a logo from the Images library. A transparent PNG or an SVG works best. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
string
required
Required. Company / partner / certification name — used as the image alt text and the link title.
?string
The row’s id, unique in its array.
?string
Make this logo a link, e.g. to the partner’s site. Opens in a new tab for external URLs.
?bool
For dark / black logos that would vanish on the dark theme — flips them to light. Leave off for full-color or white logos.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\LogosBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\LogosBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of LogosWidgetLogosFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show LogosWidgetLogosFontOverridesItem (Fetchski\AttractCmsLaravel\Data\LogosWidgetLogosFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of LogosWidgetLogosFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show LogosWidgetLogosFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\LogosWidgetLogosFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\LogosCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\LogosCtaSize|string|null
Button size. One of small, normal, large.
Enums\LogosCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\LogosCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\LogosCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\LogosCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\LogosCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show StepsWidget (Fetchski\AttractCmsLaravel\Data\StepsWidget)
A steps widget: its type and its own fields. A field left out takes its default.
Enums\StepsWidgetType|string
required
Required. The widget’s type: always steps. One of steps.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?bool
A small label above the heading (e.g. “How it works”).
?string
Eyebrow.
?string
Optional — leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\StepsEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\StepsEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional. Leave empty to show just the steps.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\StepsHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
Enums\StepsHeadingSize|string|null
Heading size. One of small, normal, large, xlarge, xxlarge.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\StepsIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold, extrabold.
Enums\StepsIntroSize|string|null
Intro size. One of small, normal, large, xlarge, xxlarge.
Enums\StepsLayout|string|null
Horizontal lays the steps across a row (marker on top); Vertical stacks them as a classic timeline (marker on the left). One of horizontal, vertical.
Enums\StepsColumns|string|null
Horizontal only. Auto fits as many as comfortably fit and works for any number of steps. Or lock a maximum per row. One of auto, 2, 3, 4.
Enums\StepsGap|string|null
Gap between steps. One of tight, normal, roomy.
Enums\StepsAlign|string|null
Horizontal only — aligns the section header and each step’s text. (Vertical is always left-aligned beside its marker.) One of center, left.
?bool
A line linking the step markers into a timeline (down the markers when vertical, across them when horizontal).
Enums\StepsCardStyle|string|null
Plain keeps the connector-linked timeline (just marker + text, no card). Every other style boxes each step — Raised is a quiet lit card, Luxe a frosted glass panel, Outline a plaque frame, Spine adds a color rail, Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay.
Enums\StepsCardStyleRadius|string|null
Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large.
?string
Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\StepsCardStyleForgeScope|string|null
Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame.
Enums\StepsCardStyleForgeWeight|string|null
Thickness of the Forge corner mark / colored frame. One of fine, medium, bold.
Enums\StepsCardHover|string|null
What a boxed step does on hover (applies when Step style is not Plain). Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight.
Enums\StepsMarker|string|null
Number auto-counts 1, 2, 3…; Icon shows each step’s icon (falling back to the number when a step has none); None hides the marker badge. One of number, icon, none.
Enums\StepsMarkerStyle|string|null
Soft is a tinted accent badge; Filled is a solid accent badge; Outline is a bordered badge. One of soft, filled, outline.
Enums\StepsMarkerShape|string|null
Marker shape. One of circle, rounded, square.
Enums\StepsMarkerSize|string|null
Marker size. One of small, medium, large.
?string
Color for the marker badge and the connector line. Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme accent.
Enums\StepsTitleSize|string|null
Title size. One of small, normal, large, xlarge, xxlarge.
Enums\StepsTitleWeight|string|null
Title weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\StepsBodySize|string|null
Body size. One of small, normal, large, xlarge, xxlarge.
Enums\StepsBodyWeight|string|null
Body weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Collection<int, StepsWidgetStepsItemsItem>|null
A list of StepsWidgetStepsItemsItem. Each item is one step in the process. They render in this order; the number marker counts automatically.
Show StepsWidgetStepsItemsItem (Fetchski\AttractCmsLaravel\Data\StepsWidgetStepsItemsItem)
string
required
Required. Title.
?string
The row’s id, unique in its array.
?string
Optional Font Awesome icon for this step (e.g. calendar-check, circle-check, gear). Shown in the marker when the section marker is set to “Icon”; otherwise the step is numbered.
Enums\IconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
?string
Optional — leave empty to use the design’s own color rhythm.
?string
Overrides the auto number for this step’s marker, e.g. “01” or “A”. Leave empty to auto-count.
?string
Optional description under the title.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\StepsBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\StepsBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of StepsWidgetStepsFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show StepsWidgetStepsFontOverridesItem (Fetchski\AttractCmsLaravel\Data\StepsWidgetStepsFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of StepsWidgetStepsFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show StepsWidgetStepsFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\StepsWidgetStepsFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\StepsCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\StepsCtaSize|string|null
Button size. One of small, normal, large.
Enums\StepsCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\StepsCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\StepsCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\StepsCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\StepsCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show MediaTextWidget (Fetchski\AttractCmsLaravel\Data\MediaTextWidget)
A media-text widget: its type and its own fields. A field left out takes its default.
Enums\MediaTextWidgetType|string
required
Required. The widget’s type: always media-text. One of media-text.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?bool
A small label above the section heading (e.g. “Why us”).
?string
Eyebrow.
?string
Optional — leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\MediaTextEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\MediaTextEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional section heading above the blocks. Leave empty to show just the blocks.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\MediaTextHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
Enums\MediaTextHeadingSize|string|null
Heading size. One of small, normal, large, xlarge, xxlarge.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\MediaTextIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold, extrabold.
Enums\MediaTextIntroSize|string|null
Intro size. One of small, normal, large, xlarge, xxlarge.
Enums\MediaTextAlign|string|null
Aligns the section header and the text inside each block. (Side-by-side rows usually read best left-aligned.) One of left, center.
Enums\MediaTextRatio|string|null
For media-left / media-right rows: how the two columns share the width. One of balanced, media, text.
Enums\MediaTextVAlign|string|null
For media-left / media-right rows: how the text lines up against the media. One of center, top.
Enums\MediaTextMediaRatio|string|null
Aspect ratio of the media frame. Auto keeps an image at its natural shape (videos and embeds always use a ratio). One of auto, landscape, standard, square, portrait, wide.
Enums\MediaTextMediaRadius|string|null
Media corners. One of large, rounded, slight, square.
Enums\MediaTextGap|string|null
Gap between blocks. One of tight, normal, roomy.
?bool
A hairline rule between blocks.
?string
Each block’s eyebrow color. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\MediaTextBlockEyebrowWeight|string|null
Block eyebrow weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\MediaTextBlockHeadingWeight|string|null
Block heading weight. One of normal, medium, semibold, bold, extrabold.
Enums\MediaTextBlockHeadingSize|string|null
Block heading size. One of small, normal, large, xlarge, xxlarge.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\MediaTextBodyWeight|string|null
Block body weight. One of normal, medium, semibold, bold, extrabold.
Enums\MediaTextBodySize|string|null
Block body size. One of small, normal, large, xlarge, xxlarge.
A list of MediaTextWidgetMediaTextBlocksItem. Each block is one media + text row. They render top to bottom in this order; alternate “Media left” / “Media right” for a classic zig-zag.
Show MediaTextWidgetMediaTextBlocksItem (Fetchski\AttractCmsLaravel\Data\MediaTextWidgetMediaTextBlocksItem)
?string
The row’s id, unique in its array.
Enums\Layout|string|null
Media left / right place the media beside the text; Stacked puts media above the text; Full-bleed runs the media edge-to-edge with the text below. One of media-left, media-right, stacked, full.
Pick where the media comes from. “None” makes this a text-only block. One of image, video, embed, none.
Collection<int, array<string, mixed>>|null
Pick an image from the Images library. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Describe the image for screen readers and SEO. Leave empty to use the library image’s own alt text. Set to a single space for a purely decorative image.
Collection<int, array<string, mixed>>|null
Pick a clip from the Videos library (⌘K → Videos). The related video documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Play automatically as a muted, looping background clip (a pause button is shown, and reduced-motion visitors get the poster image). Off = a normal video with play controls.
A paragraph or two. Leave a blank line between paragraphs.
?string
This block’s button text. Leave empty (with no link) to hide the button.
?string
Where the button goes — a path (/about-us) or full URL.
?bool
Open button in new tab.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\MediaTextBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\MediaTextBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of MediaTextWidgetMediaTextFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show MediaTextWidgetMediaTextFontOverridesItem (Fetchski\AttractCmsLaravel\Data\MediaTextWidgetMediaTextFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of MediaTextWidgetMediaTextFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show MediaTextWidgetMediaTextFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\MediaTextWidgetMediaTextFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\MediaTextCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\MediaTextCtaSize|string|null
Button size. One of small, normal, large.
Enums\MediaTextCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\MediaTextCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\MediaTextCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\MediaTextCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\MediaTextCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show DeviceMockWidget (Fetchski\AttractCmsLaravel\Data\DeviceMockWidget)
A device-mock widget: its type and its own fields. A field left out takes its default.
Enums\DeviceMockWidgetType|string
required
Required. The widget’s type: always device-mock. One of device-mock.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
Enums\DeviceMockArrangement|string|null
Which devices to show. Duo overlaps a phone on the corner of a desktop browser; Trio adds a TV behind them (on narrow screens Trio drops the TV and shows as a Duo). Each device used gets its own screen tab. One of duo, trio, desktop, phone, tv.
Enums\DeviceMockTextPlacement|string|null
Where the eyebrow / heading / intro / button sit. Left or right puts the text in a column beside the devices (stacked above them on narrow screens); None shows the devices only. One of above, left, right, none.
Enums\DeviceMockSize|string|null
How large the devices render within the section. One of compact, normal, large.
Enums\DeviceMockBrowserRatio|string|null
The browser window’s content area. Match your desktop captures. One of 16:10, 16:9.
?string
The address shown in the browser toolbar — decoration only, not a link.
?bool
Adds a time / signal / battery bar across the top of the phone screen. Leave off for native phone screenshots — they already include the real status bar.
?string
Status bar time.
?bool
Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.
?bool
A small label above the heading (e.g. “Product tour”).
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\DeviceMockEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\DeviceMockEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional. Leave empty to show just the devices.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\DeviceMockHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
Enums\DeviceMockHeadingSize|string|null
Heading size. One of small, normal, large, xlarge, xxlarge.
?string
Optional short paragraph under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\DeviceMockIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold, extrabold.
Enums\DeviceMockIntroSize|string|null
Intro size. One of small, normal, large, xlarge, xxlarge.
?string
A short line shown under the devices.
Enums\DeviceMockTvMediaType|string|null
A still screenshot, or a short looping screen recording. One of image, video.
Collection<int, array<string, mixed>>|null
Use a native-resolution 16:9 capture of the screen with NO device frame (the frame is drawn for you) — e.g. 1920 × 1080 or 3840 × 2160. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.
Collection<int, array<string, mixed>>|null
Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution 16:9 capture of the screen with NO device frame (the frame is drawn for you) — e.g. 1920 × 1080 or 3840 × 2160. The related video documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.
Enums\DeviceMockTvFit|string|null
Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of cover, contain.
Enums\DeviceMockTvAnchor|string|null
Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of top, center, bottom.
Enums\DeviceMockDesktopMediaType|string|null
A still screenshot, or a short looping screen recording. One of image, video.
Collection<int, array<string, mixed>>|null
Use a native-resolution capture of the page content only — no browser toolbar and no device frame (both are drawn for you). 16:10 (e.g. 2880 × 1800) or 16:9 (e.g. 2560 × 1440), matching the “Desktop screen shape” setting. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.
Collection<int, array<string, mixed>>|null
Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution capture of the page content only — no browser toolbar and no device frame (both are drawn for you). 16:10 (e.g. 2880 × 1800) or 16:9 (e.g. 2560 × 1440), matching the “Desktop screen shape” setting. The related video documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.
Enums\DeviceMockDesktopFit|string|null
Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of cover, contain.
Enums\DeviceMockDesktopAnchor|string|null
Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of top, center, bottom.
Enums\DeviceMockPhoneMediaType|string|null
A still screenshot, or a short looping screen recording. One of image, video.
Collection<int, array<string, mixed>>|null
Use a native-resolution portrait screenshot with NO device frame (the frame is drawn for you) — e.g. 1179 × 2556 or 1290 × 2796 (about 9:19.5). The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.
Collection<int, array<string, mixed>>|null
Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution portrait screenshot with NO device frame (the frame is drawn for you) — e.g. 1179 × 2556 or 1290 × 2796 (about 9:19.5). The related video documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.
Enums\DeviceMockPhoneFit|string|null
Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of cover, contain.
Enums\DeviceMockPhoneAnchor|string|null
Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of top, center, bottom.
Enums\DeviceMockBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\DeviceMockBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of DeviceMockWidgetDeviceMockFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show DeviceMockWidgetDeviceMockFontOverridesItem (Fetchski\AttractCmsLaravel\Data\DeviceMockWidgetDeviceMockFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\DeviceMockCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\DeviceMockCtaSize|string|null
Button size. One of small, normal, large.
Enums\DeviceMockCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\DeviceMockCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\DeviceMockCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\DeviceMockCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\DeviceMockCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show TeamWidget (Fetchski\AttractCmsLaravel\Data\TeamWidget)
A team widget: its type and its own fields. A field left out takes its default.
Enums\TeamWidgetType|string
required
Required. The widget’s type: always team. One of team.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\TeamEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\TeamEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional. Leave empty to show just the team.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold, extrabold.
Enums\TeamIntroSize|string|null
Intro size. One of small, normal, large, xlarge.
Enums\TeamAlign|string|null
Header alignment. One of center, left.
?bool
Show only members you have flagged “Featured” in the Team Members manager — e.g. a short leadership row on the home page.
?int
The most members to show, in the manager’s sort order. 1 to 50.
Enums\TeamLayout|string|null
Grid: a tidy multi-row grid (the full team page). Carousel: a continuous auto-scrolling marquee (needs site animations enabled — falls back to the grid when they are off). Spotlight: featured members large on top, the rest in a smaller grid. List: wide rows with the full bio. Scatter: a playful arrangement with varied spacing so the cards float freely. One of grid, carousel, spotlight, list, scatter.
Enums\TeamColumns|string|null
How many cards per row. Auto fits as many as comfortably fit (the Scatter layout composes on three columns when set to Auto). One of auto, 2, 3, 4.
Enums\TeamSpotlightHeroes|string|null
How many members lead the section at full size. Members flagged “Featured” fill the spots first, in the manager’s sort order; any extra featured members join the rows below. One of 1, 2.
Enums\TeamSpotlightColumns|string|null
How many of the remaining members sit on each row under the featured spots. One of 2, 3, 4, 5.
Enums\TeamSpeed|string|null
How fast the carousel auto-scrolls. One of vslow, slow, normal, fast.
Enums\TeamDirection|string|null
Scroll direction. One of left, right.
Enums\TeamScatter|string|null
How far the cards drift from a tidy grid. Subtle keeps a loose grid; Wild pushes the offsets to their playful maximum. One of subtle, playful, wild.
Enums\TeamGap|string|null
Gap between cards. One of tight, normal, roomy.
Enums\TeamCardLayout|string|null
Portrait: the photo on top, name/role/bio below — the classic team card. Overlay: a full-bleed photo with a solid color panel over its lower edge holding the name and role. Profile: a horizontal bar — avatar left, name/role/tagline right. Roster: minimal — just the avatar, name and role. (The List section layout always uses its own wide row.) One of portrait, overlay, profile, roster.
Enums\TeamPhotoAspect|string|null
The photo’s aspect ratio on the photo-led card layouts. One of square, portrait, tall.
Enums\TeamAvatarShape|string|null
The photo’s outline. Squircle is a soft superellipse-style corner (approximated with heavy rounding). One of circle, rounded, squircle, square.
Enums\TeamAvatarSize|string|null
Avatar size. One of small, medium, large, xlarge.
Enums\TeamAvatarBorder|string|null
A ring around the photo in the avatar color. One of none, hairline, thin, bold.
Enums\TeamAvatarTreatment|string|null
A flat color accent behind the photo. Panel offsets a solid block behind it; Halo draws a soft concentric disc. Both use the avatar color. One of none, panel, halo.
?string
Colors the border and the backdrop treatment. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
?bool
Show role / title.
?bool
Shown on the Portrait and Profile cards and the List rows. The Overlay and Roster layouts stay bio-free by design.
?bool
The member’s one-liner, shown on the Profile and Roster cards and the List rows.
?bool
Cross-fades to a member’s alternate photo on hover (set per member; does nothing for members without one, and stays off for visitors who prefer reduced motion).
Enums\TeamCardStyle|string|null
The card treatment. Outline (the default) is a plaque frame — a framed-portrait look; Raised is a quiet lit card; Luxe a frosted glass panel; Ticket/Bracket/Inlay are the graphic showstoppers. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, inlay.
Enums\TeamCardStyleRadius|string|null
Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large.
?string
Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamCardHover|string|null
What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight.
Enums\TeamCardAlign|string|null
How the name, role and bio align inside each card (the Profile card and List rows are always left-aligned beside the avatar). One of center, left.
?string
Optional — the lettered-avatar fallback background and the role color default. Leave empty to use the brand accent. (The icon row has its own colors on the Social links tab.)
?string
Optional light-theme override. Falls back to the dark-theme color.
?string
The solid panel over the photo on the Overlay card. Leave empty to use the card color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamNameSize|string|null
Name size. One of small, normal, large, xlarge.
Enums\TeamNameWeight|string|null
Name weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamRoleSize|string|null
Role size. One of small, normal, large, xlarge.
Enums\TeamRoleWeight|string|null
Role weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to use the accent color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamBioSize|string|null
Bio size. One of small, normal, large, xlarge.
Enums\TeamBioWeight|string|null
Bio weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamBioClamp|string|null
Cap each bio at this many lines (the rest is truncated with an ellipsis) so one long bio can’t blow up the card height. The List layout always shows the full bio. One of none, 2, 3, 4, 6.
?string
Optional — leave empty to use the faint text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
?bool
The member’s social profile icons (set per member in the Team Members manager).
?bool
Off by default — turns each member’s email and phone (when set) into icon links. Only enable when you want those details public.
Enums\TeamSocialVariant|string|null
Icon style. One of bare, outline, solid.
Enums\TeamSocialSize|string|null
Icon size. One of small, normal, large, xlarge.
Enums\TeamSocialSpacing|string|null
Gap between the icons. One of tight, normal, loose.
Enums\TeamSocialHover|string|null
Hover to each platform’s own brand color, or to the site accent (or a chosen hover color). One of brand, accent.
?string
Resting icon color. Leave empty for the muted default.
?string
Optional light-theme override. Falls back to the dark-theme color, then the muted default.
?string
Used when “Hover color” is Accent / custom. Leave empty for the site accent.
?string
Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\TeamBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\TeamBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of TeamWidgetTeamFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show TeamWidgetTeamFontOverridesItem (Fetchski\AttractCmsLaravel\Data\TeamWidgetTeamFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of TeamWidgetTeamFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show TeamWidgetTeamFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\TeamWidgetTeamFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\TeamCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\TeamCtaSize|string|null
Button size. One of small, normal, large.
Enums\TeamCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\TeamCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\TeamCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\TeamCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\TeamCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show FaqWidget (Fetchski\AttractCmsLaravel\Data\FaqWidget)
A faq widget: its type and its own fields. A field left out takes its default.
Enums\FaqWidgetType|string
required
Required. The widget’s type: always faq. One of faq.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\FaqEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\FaqEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional. Leave empty to show just the questions.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold, extrabold.
Enums\FaqIntroSize|string|null
Intro size. One of small, normal, large, xlarge.
Enums\FaqAlign|string|null
The Split layout always sets its header column left. One of center, left.
?bool
Show only questions you have flagged “Featured” in the FAQs manager — e.g. a short top-questions block on the home page, linking out to the full FAQ page.
?int
The most questions to show, in the manager’s sort order. Raise it for a full FAQ page. 1 to 50.
Collection<int, array<string, mixed>>|null
Optional filter. Leave empty to show questions from every category. Manage the list under FAQ Categories. The related faq-category documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document; a document the site can’t find is left out.
Enums\FaqGroupBy|string|null
By category renders a subheading per FAQ category, in the order picked in the category filter (or, with no filter, the FAQ Categories sort order); questions without a category are listed last. One of none, category.
Enums\FaqLayout|string|null
Accordion: a single centered column of collapsing questions — the classic FAQ. Split: the header (and button) sit in a left column with the accordion beside them. Two columns: the accordion flows across two columns. Open panels: every answer visible in a card grid — no collapsing. One of accordion, split, columns, panels.
Enums\FaqPanelColumns|string|null
How many open panels sit per row (they stack on small screens). One of 1, 2, 3.
Enums\FaqOpenMode|string|null
One at a time closes the previous answer when a new one opens; Independent lets visitors hold several open. One of single, multiple.
?bool
Starts the section with the first answer expanded so the block never reads as an empty list of rows.
Enums\FaqMarker|string|null
The disclosure marker on each question. Plus rotates into a close mark; Chevron flips. One of plus, chevron.
Enums\FaqGap|string|null
Space between questions. One of tight, normal, roomy.
?bool
Adds this section’s questions to the page’s schema.org FAQPage markup so search engines can read them (all FAQ sections on a page share one FAQPage block). Costs nothing when on; turn off only to exclude these questions.
Enums\FaqCardStyle|string|null
The question-row treatment. Plain (the default) is the classic divided list — hairlines between questions. Any other style turns each question into a card: Raised is a quiet lit card, Outline a framed row, Luxe frosted glass; Ticket/Bracket/Inlay are the graphic showstoppers. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay.
Enums\FaqCardStyleRadius|string|null
Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large.
?string
Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqCardStyleForgeScope|string|null
Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame.
Enums\FaqCardStyleForgeWeight|string|null
Thickness of the Forge corner mark / colored frame. One of fine, medium, bold.
Enums\FaqCardHover|string|null
What a question row does on hover. None (the default) keeps the accordion calm — the open/close motion is the interaction. The card effects (Lift/Glow/…) suit the card styles; the cursor-tracked ones need site animations on. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight.
?string
Optional — colors the toggle icon and the open question’s highlight. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqQuestionSize|string|null
Question size. One of small, normal, large, xlarge.
Enums\FaqQuestionWeight|string|null
Question weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqAnswerSize|string|null
Answer size. One of small, normal, large, xlarge.
Enums\FaqAnswerWeight|string|null
Answer weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqGroupHeadingWeight|string|null
Category heading weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\FaqBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of FaqWidgetFaqFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show FaqWidgetFaqFontOverridesItem (Fetchski\AttractCmsLaravel\Data\FaqWidgetFaqFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of FaqWidgetFaqFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show FaqWidgetFaqFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\FaqWidgetFaqFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\FaqCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\FaqCtaSize|string|null
Button size. One of small, normal, large.
Enums\FaqCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\FaqCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\FaqCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\FaqCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\FaqCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show ServiceMapWidget (Fetchski\AttractCmsLaravel\Data\ServiceMapWidget)
A service-map widget: its type and its own fields. A field left out takes its default.
Enums\ServiceMapWidgetType|string
required
Required. The widget’s type: always service-map. One of service-map.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\ServiceMapEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\ServiceMapEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Heading.
?string
Optional. Leave empty for the standard ink color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\ServiceMapHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional short paragraph under the heading. The data source’s own description (service days etc.) shows in the result panel, not here.
Enums\ServiceMapIntroSize|string|null
Intro size. One of small, normal, large, xlarge.
Enums\ServiceMapHeight|string|null
Map height. One of compact, standard, tall.
Enums\ServiceMapTheme|string|null
Curated light/dark basemap pairs — each follows the visitor’s theme toggle. “Site palette” derives the basemap from this site’s own colors. One of palette, classic, silver, retro.
Enums\ServiceMapFrameRadius|string|null
Map corner radius. One of square, slight, rounded, large.
?string
Optional. Leave empty for the standard hairline — set it to match a colored border on the zone cards.
?string
Optional light-theme override. Falls back to the dark-theme color.
?string
Optional soft glow around the map frame — pairs with a glowing zone-card style. Leave empty for none.
?string
Optional light-theme override. Falls back to the dark-theme color.
?bool
On pages with this section, upgrades the business structured data from the compact site-wide form to the full detail: every public place name, every zip code, and area boundaries. Costs visitors nothing; turn off to keep this page at the compact site-wide form. (Requires structured data on in Site settings → SEO; demo map data is never published.)
?bool
The legend card overlaid on the map. The zone cards below the map always carry the same information for screen readers and when the map can’t load.
Enums\ServiceMapKeySwatchSize|string|null
Key swatch size. One of small, medium, large.
Enums\ServiceMapKeyJustify|string|null
Key text justification. One of left, center, right.
Enums\ServiceMapKeyTextSize|string|null
Key text size. One of small, normal, large, xlarge.
Enums\ServiceMapKeyTextWeight|string|null
Key text weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional. Leave empty for the standard ink color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\ServiceMapKeyRadius|string|null
Key corner radius. One of square, slight, rounded, large.
?string
Optional. Leave empty for the standard hairline — set it to match the map frame or the zone cards.
?string
Optional light-theme override. Falls back to the dark-theme color.
?string
Optional soft glow around the key card. Leave empty for none.
?string
Optional light-theme override. Falls back to the dark-theme color.
?bool
The zone/pricing cards under the map. Turning this off hides them visually — they stay in the page for screen readers and no-JavaScript visitors (the map itself isn’t accessible).
Enums\ServiceMapCardStyle|string|null
The card surface. Raised is a quiet lit card; Luxe is a frosted glass panel; Outline is a double-rule plaque frame; Plain has no chrome; Poster frames the card with an accent keyline; Spine embeds a color rail along the top; Tint washes the card in the accent color. Showstoppers: Ticket punches notches into the sides, Bracket draws only corner marks, Forge is a machined plate with an engraved frame, Press is a punched index card with a margin rule, Inlay recesses the content into a well. One of raised, luxe, outline, plain, poster, edge, tint, inlay.
Enums\ServiceMapCardStyleRadius|string|null
Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large.
?string
Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\ServiceMapCardsHover|string|null
What a card does on hover. Lift/Pop/Press/Glow/Outline are instant CSS effects; Sheen sweeps a soft light across; Tilt, Magnetic and Spotlight follow the cursor (these need site animations on — visitors who prefer reduced motion see the resting card). Pick a different one per section so a page feels varied, not cookie-cutter. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight.
Enums\ServiceMapCardsSwatchSize|string|null
Card swatch size. One of small, medium, large.
Enums\ServiceMapCardsJustify|string|null
Card text justification. One of left, center, right.
Enums\ServiceMapCardsNameWeight|string|null
Zone name weight. One of normal, medium, semibold, bold, extrabold.
Enums\ServiceMapCardsTextSize|string|null
Card text size. One of small, normal, large, xlarge.
?string
Optional. Colors the zone names; supporting copy stays muted. Leave empty for the standard ink color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\ServiceMapCardsSubSize|string|null
The price and detail lines under each zone name — sized relative to the card text size. One of small, normal, large, xlarge.
Enums\ServiceMapCardsSubWeight|string|null
Supporting text weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional. Leave empty for the standard muted color.
?string
Optional light-theme override. Falls back to the dark-theme color.
?string
Optional label shown instead of “$0” wherever a zone has no fee (key, cards, results). Clear it to show the plain price — $0 doesn’t always mean included.
A list of ServiceMapWidgetServiceMapZoneOverridesItem. Per-zone display overrides, matched by the zone name the data source provides. Rename a zone, replace its price text, or hide it entirely — the underlying data is never changed.
Show ServiceMapWidgetServiceMapZoneOverridesItem (Fetchski\AttractCmsLaravel\Data\ServiceMapWidgetServiceMapZoneOverridesItem)
string
required
Required. Case-insensitive match against the zone name in the map data.
?string
The row’s id, unique in its array.
?string
Optional replacement name shown everywhere this zone appears.
?string
Optional replacement for the price text (e.g. “Included”, “Call us”). Overrides the zero-price label too.
?bool
The zone stays on the map and in search results — it just leaves the key and cards.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?bool
Show the “check your area” search.
?string
Search label.
?string
Search placeholder.
Enums\ServiceMapSearchJustify|string|null
Positions the search box and button above the map. One of left, center, right.
Enums\ServiceMapSearchInputRadius|string|null
Same radius scale as the buttons, so the box and button can match. One of pill, rounded, slight, square.
?bool
Google address autocomplete under the search box (needs the Places API enabled on the key — see the setup guide in Connections → Google Maps). ZIP-only typing never triggers suggestions when the data source is zip-based.
?string
Shown when a searched location doesn’t fall in any zone (or the premium radius).
?string
Leave empty for “Check”. The button’s look is configured in the Search button tab.
Enums\ServiceMapSearchButtonVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\ServiceMapSearchButtonSize|string|null
Button size. One of small, normal, large.
Enums\ServiceMapSearchButtonRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\ServiceMapSearchButtonStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\ServiceMapSearchButtonAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
Enums\ServiceMapPanelPlacement|string|null
Popup placement. One of center, corner.
Enums\ServiceMapPanelLook|string|null
Popup style. One of overlay, solid.
?bool
Repeats the searched ZIP code or address at the top of the result popup.
?bool
Looks up the locality for a searched ZIP code (one extra Geocoding API call per search) and shows it beside the searched value.
Enums\ServiceMapPanelTextSize|string|null
Popup text size. One of small, normal, large, xlarge.
Enums\ServiceMapPanelTitleWeight|string|null
Popup title weight. One of normal, medium, semibold, bold, extrabold.
?bool
When the data carries a premium (distance-priced) service, include it in search results and the zone cards. Sources without their own premium block use the pricing set in Service area map → Areas and pricing.
?bool
Needs a premium range limit (miles) — with no limit there is no ring to draw.
?string
Premium estimate note.
?string
Shown when a distance estimate isn’t possible (e.g. the Distance Matrix API isn’t enabled on the key).
Collection<int, array<string, mixed>>|null
Optional logo/pin image for the business marker. Leave empty for a simple accent-color pin. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
Collection<int, array<string, mixed>>|null
Optional light-theme variant. Falls back to the dark-theme image. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Accessible name + hover title for the marker. Leave empty to use the business name from Site settings.
Enums\ServiceMapMarkerSize|string|null
Marker size. One of small, medium, large.
?bool
The business marker gently bobs in place. Automatically disabled for visitors who prefer reduced motion.
?bool
Adds the business location (named by its label in Service area map → Your location) as the FIRST entry of the map key and zone cards.
Enums\ServiceMapBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\ServiceMapBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of ServiceMapWidgetServiceMapFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show ServiceMapWidgetServiceMapFontOverridesItem (Fetchski\AttractCmsLaravel\Data\ServiceMapWidgetServiceMapFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of ServiceMapWidgetServiceMapFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show ServiceMapWidgetServiceMapFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\ServiceMapWidgetServiceMapFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show BlogPreviewWidget (Fetchski\AttractCmsLaravel\Data\BlogPreviewWidget)
A blog-preview widget: its type and its own fields. A field left out takes its default.
Enums\BlogPreviewWidgetType|string
required
Required. The widget’s type: always blog-preview. One of blog-preview.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
Heading.
?string
Subheading.
Enums\BlogCardImageAspect|string|null
Aspect ratio of the featured image. Choose “Hidden” for text-only cards. One of 16/10, 4/3, 3/2, 1/1, none.
Enums\BlogCardImageHover|string|null
Image hover. One of zoom, none.
?bool
Use the featured image as the full card background, with the title and meta overlaid on a dark scrim. Posts with no image fall back to a normal card.
Enums\BlogCardPreset|string|null
The card surface. Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. (On image-led cards the photo covers the top edge.) One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay.
Enums\BlogCardPresetRadius|string|null
Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large.
?string
Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\BlogCardPresetForgeScope|string|null
Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame.
Enums\BlogCardPresetForgeWeight|string|null
Thickness of the Forge corner mark / colored frame. One of fine, medium, bold.
Enums\BlogCardHover|string|null
What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt (3-D + glare), Magnetic and Spotlight follow the cursor (need site animations on). The Hover color below tints these. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight.
?string
Border / shadow / glow color on hover. Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the accent.
?bool
Show category.
Enums\BlogCardCategoryStyle|string|null
How the category badge uses its color (set per category under Blog Categories). Filled = colored background; Outline = colored border + text; Minimal = colored text only. One of filled, outline, minimal.
?bool
Show date.
?bool
Show excerpt.
Enums\BlogCardExcerptLines|string|null
How many lines of the excerpt to show before truncating. One of 2, 3, 4, none.
?bool
Show author.
?bool
Show “Read post” link.
Enums\BlogCardReadMorePlacement|string|null
Auto puts it on the right of horizontal cards (list / compact / featured) and below the text on grid cards. Or force one placement everywhere. One of auto, below, right.
?string
Optional. Overrides the “Read post” link color. Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the accent.
?string
Optional. Color of the “Read post” link when the card is hovered. Leave empty to use the accent color.
?string
Optional light-theme override. Falls back to the dark-theme hover color, then the accent.
?string
Optional. Overrides the card title color. Leave empty to track the theme’s text color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the theme default.
Enums\BlogCardTitleWeight|string|null
Title weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional. Title color when the card is hovered. Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme hover color, then the accent.
?string
Optional. Overrides the excerpt text color. Leave empty for the muted default.
?string
Optional light-theme override. Falls back to the dark-theme color, then the muted default.
Enums\BlogCardTextWeight|string|null
Excerpt weight. One of normal, medium, semibold, bold.
?string
Date / meta line color. Leave empty for the faint default.
?string
Optional light-theme override. Falls back to the dark-theme color, then the faint default.
Enums\BlogBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\BlogBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of BlogPreviewWidgetBlogFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show BlogPreviewWidgetBlogFontOverridesItem (Fetchski\AttractCmsLaravel\Data\BlogPreviewWidgetBlogFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of BlogPreviewWidgetBlogFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show BlogPreviewWidgetBlogFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\BlogPreviewWidgetBlogFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\BlogCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\BlogCtaSize|string|null
Button size. One of small, normal, large.
Enums\BlogCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\BlogCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\BlogCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\BlogCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\BlogCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show CookieDeclarationWidget (Fetchski\AttractCmsLaravel\Data\CookieDeclarationWidget)
A cookie-declaration widget: its type and its own fields. A field left out takes its default.
Enums\CookieDeclarationWidgetType|string
required
Required. The widget’s type: always cookie-declaration. One of cookie-declaration.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
Eyebrow.
?string
Heading.
?string
Introduction.
?bool
A short block naming what this visitor has allowed, with a button that reopens the preferences panel. Withdrawal has to be as easy as consent, so leave this on unless the page offers another way.
?bool
Provider, type, duration and domain per entry. Off leaves the plain-language disclosures alone, which reads better but tells a technical reader less.
Enums\CookieDeclLayout|string|null
Layout. One of stacked, compact.
Enums\CookieDeclBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\CookieDeclBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of CookieDeclarationWidgetCookieDeclFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show CookieDeclarationWidgetCookieDeclFontOverridesItem (Fetchski\AttractCmsLaravel\Data\CookieDeclarationWidgetCookieDeclFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show RichTextWidget (Fetchski\AttractCmsLaravel\Data\RichTextWidget)
A @apostrophecms/rich-text widget: its type and its own fields. A field left out takes its default.
Enums\RichTextWidgetType|string
required
Required. The widget’s type: always @apostrophecms/rich-text. One of @apostrophecms/rich-text.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
The text as HTML, e.g. <h2>Our story</h2><p>It began with <strong>one</strong> idea.</p>. The site keeps the tags and styles this area’s editor offers (paragraphs, headings, bold, italic, links, lists…) and removes the rest.
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show GoogleReviewsWidget (Fetchski\AttractCmsLaravel\Data\GoogleReviewsWidget)
A google-reviews widget: its type and its own fields. A field left out takes its default.
Enums\GoogleReviewsWidgetType|string
required
Required. The widget’s type: always google-reviews. One of google-reviews.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\ReviewsEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\ReviewsEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional. Leave empty to show just the reviews.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold, extrabold.
Enums\ReviewsIntroSize|string|null
Intro size. One of small, normal, large, xlarge.
Enums\ReviewsAlign|string|null
Header alignment. One of center, left.
Enums\ReviewsMinRating|string|null
Only show reviews at or above this star rating. One of 0, 3, 4, 5.
?bool
Show only reviews you have flagged “Featured” in the Google Reviews manager — hand-curate exactly which appear.
?int
The most reviews to show (newest first). 1 to 30.
Enums\ReviewsLayout|string|null
Animated carousel: a continuous, auto-scrolling marquee of cards (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered, Pinterest-style grid that hugs each review’s length. One of carousel, grid, masonry.
Enums\ReviewsColumns|string|null
How many cards per row (grid) or columns (masonry). Auto fits as many as comfortably fit. One of auto, 2, 3, 4.
Enums\ReviewsSpeed|string|null
How fast the carousel auto-scrolls. The review carousel runs on its own (gentler) speed scale than the logos/footer marquees so two never scroll in lockstep. One of vslow, slow, normal, fast.
Enums\ReviewsDirection|string|null
Scroll direction. One of left, right.
Enums\ReviewsGap|string|null
Gap between cards. One of tight, normal, roomy.
?bool
Show the reviewer’s Google avatar (falls back to a lettered initial when missing or anonymous).
?bool
Show star rating.
?bool
Show review date.
?bool
Include the business’s public reply beneath a review when there is one.
?bool
A small Google attribution lockup under the section — recommended when showing Google reviews.
Enums\ReviewsCardStyle|string|null
The card surface. Raised is a quiet lit card; Luxe is a frosted glass panel; Outline is a double-rule plaque frame; Plain has no chrome; Poster frames the card with an accent keyline; Spine embeds a color rail along the top; Tint washes the card in the accent color. Showstoppers: Ticket punches notches into the sides, Bracket draws only corner marks, Forge is a machined plate with an engraved frame, Press is a punched index card with a margin rule, Inlay recesses the content into a well. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay.
Enums\ReviewsCardStyleRadius|string|null
Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large.
?string
Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsCardStyleForgeScope|string|null
Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame.
Enums\ReviewsCardStyleForgeWeight|string|null
Thickness of the Forge corner mark / colored frame. One of fine, medium, bold.
Enums\ReviewsCardHover|string|null
What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight.
Enums\ReviewsCardWidth|string|null
Sets the carousel card width and the minimum card width in the grid/masonry layouts. One of narrow, normal, wide.
Enums\ReviewsCardHeight|string|null
Auto hugs the content; the taller presets give every card a consistent minimum height (grid + carousel). The masonry layout ignores this and staggers card heights itself. One of auto, medium, tall.
Enums\ReviewsCardAlign|string|null
How the avatar, name, stars and text align inside each card. One of left, center, right.
?string
Optional — leave empty to use a warm amber. Applies in both themes.
?string
Optional — background of the lettered fallback avatar. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsNameSize|string|null
Name size. One of small, normal, large, xlarge.
Enums\ReviewsNameWeight|string|null
Name weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsDateSize|string|null
Date size. One of small, normal, large, xlarge.
Enums\ReviewsDateWeight|string|null
Date weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to use the faint text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsTextSize|string|null
Review text size. One of small, normal, large, xlarge.
Enums\ReviewsTextWeight|string|null
Review text weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsTextClamp|string|null
Cap each review at this many lines (the rest is truncated with an ellipsis) so one very long review can’t blow up the card height — important once real, lengthy reviews come in. Choose “Full text” to never truncate. Short reviews are unaffected. One of none, 4, 6, 8, 12.
Enums\ReviewsBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\ReviewsBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of GoogleReviewsWidgetReviewsFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show GoogleReviewsWidgetReviewsFontOverridesItem (Fetchski\AttractCmsLaravel\Data\GoogleReviewsWidgetReviewsFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\ReviewsCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\ReviewsCtaSize|string|null
Button size. One of small, normal, large.
Enums\ReviewsCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\ReviewsCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\ReviewsCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\ReviewsCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\ReviewsCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show TestimonialsWidget (Fetchski\AttractCmsLaravel\Data\TestimonialsWidget)
A testimonials widget: its type and its own fields. A field left out takes its default.
Enums\TestimonialsWidgetType|string
required
Required. The widget’s type: always testimonials. One of testimonials.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\TestimonialsEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\TestimonialsEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional. Leave empty to show just the testimonials.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold, extrabold.
Enums\TestimonialsIntroSize|string|null
Intro size. One of small, normal, large, xlarge.
Enums\TestimonialsAlign|string|null
Header alignment. One of center, left.
?bool
Show only testimonials you have flagged “Featured” in the Testimonials manager — hand-curate exactly which appear.
?int
The most testimonials to show (featured first). 1 to 30.
Enums\TestimonialsLayout|string|null
Animated carousel: a continuous, auto-scrolling marquee of cards (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered, Pinterest-style grid that hugs each quote’s length. One of carousel, grid, masonry.
Enums\TestimonialsColumns|string|null
How many cards per row (grid) or columns (masonry). Auto fits as many as comfortably fit. One of auto, 2, 3, 4.
Enums\TestimonialsSpeed|string|null
How fast the carousel auto-scrolls. One of vslow, slow, normal, fast.
Enums\TestimonialsDirection|string|null
Scroll direction. One of left, right.
Enums\TestimonialsGap|string|null
Gap between cards. One of tight, normal, roomy.
Enums\TestimonialsCardLayout|string|null
Quote-led: a large quotation mark over the quote, with the author in a footer (the classic testimonial look). Accent bar: the quote beside a bold accent bar. Classic: the author on top (photo + name), then the quote — like a review card. One of quote, bar, classic.
?bool
The oversized “ glyph on the quote-led and accent-bar layouts.
?bool
Show the author’s photo (falls back to a lettered initial when none is set).
?bool
Show author role / context.
?bool
Off by default — a testimonial usually leads with the quote. Turn on to show each testimonial’s star rating.
?string
The text for a testimonial’s optional “Source link” (set per testimonial in the Testimonials manager). Shown only on testimonials that have a link.
Enums\TestimonialsCardStyle|string|null
The card treatment. Spine (the default) embeds a color rail along the top; Raised is a quiet lit card; Luxe a frosted glass panel; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay.
Enums\TestimonialsCardStyleRadius|string|null
Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large.
?string
Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsCardStyleForgeScope|string|null
Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame.
Thickness of the Forge corner mark / colored frame. One of fine, medium, bold.
Enums\TestimonialsCardHover|string|null
What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight.
Enums\TestimonialsCardWidth|string|null
Sets the carousel card width and the minimum card width in the grid/masonry layouts. One of narrow, normal, wide.
Enums\TestimonialsCardHeight|string|null
Auto hugs the content; the taller presets give every card a consistent minimum height (grid + carousel). The masonry layout ignores this and staggers card heights itself. One of auto, medium, tall.
Enums\TestimonialsCardAlign|string|null
How the quote and author align inside each card. One of left, center, right.
?string
Optional — leave empty to use a warm amber. Applies in both themes (only when ratings are shown).
?string
Optional — the quotation mark, the accent bar, and the lettered-avatar background. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsNameSize|string|null
Name size. One of small, normal, large, xlarge.
Enums\TestimonialsNameWeight|string|null
Name weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsTitleSize|string|null
Role size. One of small, normal, large, xlarge.
Enums\TestimonialsTitleWeight|string|null
Role weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to use the faint text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsQuoteSize|string|null
Quote size. One of small, normal, large, xlarge.
Enums\TestimonialsQuoteWeight|string|null
Quote weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to use the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsQuoteClamp|string|null
Cap each quote at this many lines (the rest is truncated with an ellipsis) so one very long testimonial can’t blow up the card height. Choose “Full text” to never truncate. Short quotes are unaffected. One of none, 4, 6, 8, 12.
Enums\TestimonialsBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\TestimonialsBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of TestimonialsWidgetTestimonialsFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show TestimonialsWidgetTestimonialsFontOverridesItem (Fetchski\AttractCmsLaravel\Data\TestimonialsWidgetTestimonialsFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\TestimonialsCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\TestimonialsCtaSize|string|null
Button size. One of small, normal, large.
Enums\TestimonialsCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\TestimonialsCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\TestimonialsCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\TestimonialsCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\TestimonialsCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show InstagramFeedWidget (Fetchski\AttractCmsLaravel\Data\InstagramFeedWidget)
A instagram-feed widget: its type and its own fields. A field left out takes its default.
Enums\InstagramFeedWidgetType|string
required
Required. The widget’s type: always instagram-feed. One of instagram-feed.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\InstagramEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\InstagramEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional. Leave empty to show just the feed.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\InstagramHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\InstagramIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold, extrabold.
Enums\InstagramIntroSize|string|null
Intro size. One of small, normal, large, xlarge.
Enums\InstagramAlign|string|null
Header alignment. One of center, left.
?bool
Show only posts you have flagged “Featured” in the Instagram Posts manager — hand-curate exactly which appear.
?int
The most posts to show (newest first). 1 to 30.
Enums\InstagramMediaFilter|string|null
Filter this feed by media type. “Photos” keeps image and album posts; “Videos & reels” keeps only video posts. This is per-feed display only — it doesn’t change what gets synced. One of all, photos, videos.
Enums\InstagramLayout|string|null
Carousel: a continuous, auto-scrolling marquee strip (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered grid that hugs each image’s shape. Mosaic Photo Wall: an edge-to-edge, gap-free photo wall where rows are scaled to a common height (like Flickr / Google Photos) — the richest option for photos. One of carousel, grid, masonry, justified.
Enums\InstagramColumns|string|null
How many tiles per row (grid) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout.) One of auto, 2, 3, 4, 5.
Enums\InstagramJustifiedHeight|string|null
The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of compact, normal, tall.
?bool
For feeds where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.
Enums\InstagramSpeed|string|null
How fast the carousel auto-scrolls. The feed runs on its own speed scale so two marquees on a page never scroll in lockstep. One of vslow, slow, normal, fast.
Enums\InstagramDirection|string|null
Scroll direction. One of left, right.
Enums\InstagramGap|string|null
Gap between tiles. One of tight, normal, roomy.
Enums\InstagramAspect|string|null
Crop each image to a consistent shape. “Original” keeps each image’s own ratio (best with the masonry layout). One of square, portrait, landscape, original.
Enums\InstagramCardWidth|string|null
Sets the carousel tile width and the minimum tile width in the grid/masonry layouts. One of narrow, normal, wide.
Enums\InstagramRadius|string|null
Corner radius. One of none, slight, rounded.
Enums\InstagramCardHover|string|null
What a tile does on hover. Lift/Glow are best for image tiles; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight.
?bool
A small corner glyph marking a video, reel, or carousel album.
?bool
A corner Instagram glyph on each tile — the one opt-in link out to the post (opens in a new tab). The tile itself opens the on-site lightbox.
?bool
A small heart + like count in the bottom corner of each tile. Off by default. (A post whose account hides like counts on Instagram shows nothing.)
Enums\InstagramGlyphSize|string|null
Size of the corner glyph, the video/reel badge, and the play affordance on video tiles. All three options are larger than the old fixed size. One of small, medium, large.
?bool
Off by default (the classic image-only grid). When on, choose where the caption appears below.
Enums\InstagramCaptionMode|string|null
Caption placement. One of below, hover.
?string
Optional — color of the corner glyph + the hover wash. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
?string
Optional — color of the like heart on the tiles and in the lightbox. Leave empty to use the brand coral.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\InstagramCaptionClamp|string|null
Cap each caption at this many lines so a long caption can’t blow up the tile. One of none, 1, 2, 3, 4.
Enums\InstagramCaptionSize|string|null
Caption size. One of small, normal, large, xlarge.
Enums\InstagramCaptionWeight|string|null
Caption weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional — leave empty to use the muted text color (below mode) / white (hover mode).
?string
Optional light-theme override. Falls back to the dark-theme color.
?bool
Show the post’s like count in the lightbox. (An account that hides like counts on Instagram reports none — then nothing shows.)
Enums\InstagramCommentsDisplay|string|null
How comments appear in the lightbox. “Count only” shows just the total. “Full list” shows the actual comments — requires “Fetch post comments” in Connections → Instagram to be on so the comment text is synced. One of none, count, list.
?bool
Show each commenter’s Instagram handle next to their comment. Turn off for a cleaner, anonymous list of just the comment text.
?bool
The opt-in outbound link in the lightbox. Turn it off to keep visitors fully on your site (the corner glyph on each tile is a separate setting).
Enums\InstagramBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\InstagramBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of InstagramFeedWidgetInstagramFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show InstagramFeedWidgetInstagramFontOverridesItem (Fetchski\AttractCmsLaravel\Data\InstagramFeedWidgetInstagramFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of InstagramFeedWidgetInstagramFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show InstagramFeedWidgetInstagramFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\InstagramFeedWidgetInstagramFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\InstagramCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\InstagramCtaSize|string|null
Button size. One of small, normal, large.
Enums\InstagramCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\InstagramCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\InstagramCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\InstagramCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\InstagramCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show GalleryPreviewWidget (Fetchski\AttractCmsLaravel\Data\GalleryPreviewWidget)
A gallery-preview widget: its type and its own fields. A field left out takes its default.
Enums\GalleryPreviewWidgetType|string
required
Required. The widget’s type: always gallery-preview. One of gallery-preview.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\GalleryEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\GalleryEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional. Leave empty to show just the photos.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold, extrabold.
Enums\GalleryIntroSize|string|null
Intro size. One of small, normal, large, xlarge.
Enums\GalleryAlign|string|null
Header alignment. One of center, left.
Enums\GallerySource|string|null
Album: a curated set you pick and order by hand — best for a designed page. Folder: automatically shows every image filed in a media-library folder (newest first) — best for bulk collections you organize in the media manager. Feed: a set that refreshes itself on a schedule from an external photo store, so the gallery shows different photos over time. One of album, folder, feed.
Collection<int, array<string, mixed>>|null
The Photo Album to display. Create and fill albums in the Photo Albums manager. The related photo-album documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
Collection<int, array<string, mixed>>|null
The media-library folder to display. Every image filed in it (and its subfolders, if enabled) is shown, newest first. The related image-folder documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Also show images filed in folders inside the selected folder.
Collection<int, array<string, mixed>>|null
The Photo Feed to display. This gallery stays pointed at the feed while the feed replaces its photos on its own schedule. Create and configure feeds in the Photo Feeds manager. The related photo-feed documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?int
Cap the teaser to this many photos. 0 shows everything in the selected source (folder photos are newest-first). 0 to 200.
Enums\GalleryLayout|string|null
Mosaic Photo Wall: an edge-to-edge wall where rows are scaled to a common height (like Flickr / Google Photos), cropped around each photo’s focal point — the richest option. Masonry: a staggered grid that hugs each photo’s shape. Grid: a tidy, uniform grid. Spotlight: every group of eight opens on an oversized lead photo, sides alternating on wide screens. Shaped Tiles: a portrait grid whose tiles cycle through slab, arch and orb shapes. Scrolling Banner: one edge-to-edge row that drifts sideways forever, so a long album reads as a ribbon of photos rather than a block — the option for a band between two sections rather than a gallery page. Panorama Wall: several rows, far wider than the screen, traveling sideways at slightly different speeds — and the visitor can push it along or against with a drag or a trackpad swipe. Vertical Ribbon: a band of columns running down the page instead of across it, neighboring columns traveling opposite ways, so the section reads as a moving curtain of photographs. One of justified, masonry, grid, spotlight, shaped, banner, panorama, ribbon.
Enums\GalleryColumns|string|null
How many tiles per row (grid, shaped tiles) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout; Spotlight sets its own pattern.) One of auto, 2, 3, 4, 5.
Enums\GalleryJustifiedHeight|string|null
The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of compact, normal, tall.
Enums\GalleryBannerHeight|string|null
How tall the moving row stands. Each photo keeps its own shape, so a taller banner shows wider photos and fewer of them at once. One of short, normal, tall.
Enums\GalleryBannerSpeed|string|null
How fast the row drifts. It also surges briefly with the page’s own scrolling, then settles back — so the band reacts to the visitor instead of ignoring them. One of slow, normal, fast.
Enums\GalleryBannerDirection|string|null
Banner direction. One of left, right.
?bool
Fades the row out at both ends so photos scroll in and out instead of being cut off by a hard edge.
Enums\GalleryPanoramaRows|string|null
How many rows of photos the wall is dealt across. Photos go into the rows in turn, so consecutive shots land in different rows rather than stacking up together. Deep walls want a big set — a row needs at least three photos of its own, so a small album quietly uses fewer, fuller rows than you pick here. One of 2, 3, 4, 5, 6, 7, 8.
Enums\GalleryPanoramaHeight|string|null
How tall each row stands, so the wall’s total depth is this times the number of rows — an eight-row Tall panorama fills a screen and then some. Each photo keeps its own shape, so taller rows show wider photos and fewer of them. One of short, normal, tall.
Enums\GalleryPanoramaSpeed|string|null
How fast the wall travels. Each row takes a slightly different share of this, so the rows shear gently against each other and the block reads as depth rather than as one sliding sheet. It also surges briefly with the page’s own scrolling, then settles back. One of slow, normal, fast.
Enums\GalleryPanoramaDirection|string|null
Travel direction. One of left, right.
?bool
Dragging the wall (or swiping sideways on a trackpad or phone) pushes it along or against its travel, and it glides back into its own pace when let go. Vertical scrolling always still scrolls the page. Needs site animations on in Site design → Motion.
?bool
Fades the rows out at both ends so photos travel in and out instead of being cut off by a hard edge.
Enums\GalleryRibbonColumns|string|null
How many columns of photos the band is dealt across. Photos go into the columns in turn, so consecutive shots land in different columns rather than stacking up together. Narrow screens show fewer columns than you pick here (two on a phone, three on a tablet) — because photos in a 50-pixel sliver are not photos. A column needs at least three photos of its own, so a small album quietly uses fewer, fuller columns. One of 2, 3, 4, 5, 6.
Enums\GalleryRibbonHeight|string|null
How tall the band stands — the window the columns travel through, not the columns themselves, which are always far taller than it. Each photo keeps its own shape and fills its column’s width, so the columns show more photos at once the taller the band is. One of short, normal, tall.
Enums\GalleryRibbonSpeed|string|null
How fast the columns travel. Each takes a slightly different share of this, so the band reads as a weave rather than as one sheet sliding. Slower than the sideways layouts at every setting on purpose: this moves along the same axis the visitor scrolls in, where the same speed feels far more urgent. It also surges briefly with the page’s own scrolling, then settles back. One of slow, normal, fast.
Enums\GalleryRibbonDirection|string|null
Which way the first column travels. With alternating columns on (below), its neighbors go the other way. One of up, down.
?bool
Send neighboring columns opposite ways, which is what makes the band read as a weave. Turn it off and the whole band travels one way together — quieter, and closer to a conventional scrolling wall.
?bool
Fades the columns out at the top and bottom so photos travel in and out instead of being cut off by a hard edge.
?bool
For albums where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.
Enums\GalleryGap|string|null
Gap between tiles. One of tight, normal, roomy.
Enums\GalleryRadius|string|null
Corner radius. One of none, slight, rounded.
Enums\GalleryCardStyle|string|null
The tile surface. Raised floats each photo on a soft shadow (default); Plain is a clean edge-to-edge wall; Luxe / Outline / Poster frame it; Ticket / Bracket / Forge / Press add graphic structure. The photo fills the tile, so fill-based looks (Tint, Inlay) read as their frame + elevation. On the Shaped Tiles layout the structural looks (Ticket / Bracket / Forge / Press) fall back to their plain surface — their rectangular marks can’t follow an arch or orb. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay.
?string
Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryCardStyleForgeScope|string|null
Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame.
Enums\GalleryCardStyleForgeWeight|string|null
Thickness of the Forge corner mark / colored frame. One of fine, medium, bold.
Enums\GalleryCardHover|string|null
What a tile does on hover, on top of the surface above. Glow (default) / Lift read best on photo tiles; Press collapses a Poster offset; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight.
?bool
Overlay each photo’s alt text on hover. Off by default (a clean photo wall). The caption always shows in the lightbox.
Enums\GalleryCaptionSize|string|null
Caption size. One of small, normal, large, xlarge.
Enums\GalleryCaptionWeight|string|null
Caption weight. One of normal, medium, semibold, bold, extrabold.
?bool
Clicking a photo opens it full-size in an on-site lightbox (with previous / next). Turn off for a purely decorative wall that doesn’t enlarge.
?string
Optional — color of the hover wash / glow. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryDrift|string|null
A very slow pan-and-zoom on every photo, each tile on its own rhythm, so the wall stays quietly alive instead of holding perfectly still. Off by default: a still gallery costs nothing to keep on screen, and this runs continuously for as long as the page is open. Turn it on if you also switch on “Rotate photos automatically” below — a photo changing on a wall that is otherwise frozen reads as a glitch. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of off, subtle, bold.
Enums\GalleryParallax|string|null
Sets every photo at its own depth: as the page scrolls, some slide with it and some against it, so the wall has layers instead of being one flat plane. It only moves while the visitor scrolls — nothing happens when the page is still. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of off, subtle, bold.
Enums\GalleryShuffle|string|null
Every so often two photos trade places on the wall, gliding past each other into their new squares. Nothing resizes and nothing else on the wall moves — the grid’s squares are identical, so the photos simply swap seats. It holds still while a visitor’s pointer or keyboard is anywhere in the gallery, so nothing ever moves out from under a click. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of off, calm, steady, lively.
?int
Two photos swap with each other; three or more pass their seats along in a ring, so more of the wall is moving at once. Higher numbers read as the wall dealing itself a new hand rather than as two photos changing places. 2 to 6.
?bool
Photos fade out a few at a time and are replaced from the rest of the source, so the gallery keeps changing while a visitor watches. Needs more photos in the source than are on screen — set “Maximum photos” above to less than the source holds. Set “Ambient drift” above to Subtle as well: a photo changing on a wall that is otherwise perfectly still reads as a glitch rather than as movement. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion.
Enums\GalleryRotateStyle|string|null
Cross-fade: the next photo dissolves over the old one as it eases in — the quietest change. Fade through a color: the tile also dips towards a flat color while the photos dissolve, so it reads as “phasing out” without ever going blank. Slide in: the next photo travels in over the old one, which drifts the same way behind it. Zoom through: the next photo settles out of a slight enlargement. Soften through: the photo blurs out of focus and the next one comes back into it. Wipe across: a clean edge travels over the tile, leaving the next photo behind it. Turn over: the tile turns like a card and comes back showing the next photo — the boldest of the seven. One of cross, veil, push, scale, blur, wipe, turn.
Enums\GalleryRotateOrder|string|null
Scattered spreads the changes over the whole wall, never twice in the same corner and never the same tile twice in a row. The other three move through the wall in a set direction, so the changes read as one gesture crossing the gallery rather than as separate events. One of scatter, wave, columns, rows.
?string
Optional — leave empty to dip through the page background, which suits both themes. Set white for a brighter bloom, or the brand accent for a bolder pulse. The dip never reaches full strength, so the photo always shows through.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryRotatePace|string|null
The gap between one group of changes and the next. The real timing is deliberately uneven around this figure so the wall never feels metronomic. One of calm, steady, lively, rapid.
?int
How many tiles change per group. They never start on the same frame — each one follows the one before it by a beat, so a group reads as a ripple rather than a blink. 1 is the calmest; higher numbers keep more of the wall in motion. 1 to 6.
Enums\GalleryRotateFade|string|null
The length of one change, from the old photo to the new. Longer reads as a gentle phase; shorter as a snap — and short changes are the ones that read as choppy, so lean long. One of quick, normal, slow, lingering.
?int
How many photos beyond the ones on screen to send to the browser for the rotation to draw from — the bigger this is, the longer the gallery goes before a visitor sees a repeat. Retired photos go back to the end of the queue, so it cycles the whole reserve and then starts over. Cheap to raise: a reserved photo is a few URLs, well under 100 bytes once the page is compressed, and its image file is only fetched when it is about to appear. 0 to 500.
Enums\GalleryBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\GalleryBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of GalleryPreviewWidgetGalleryFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show GalleryPreviewWidgetGalleryFontOverridesItem (Fetchski\AttractCmsLaravel\Data\GalleryPreviewWidgetGalleryFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\GalleryCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\GalleryCtaSize|string|null
Button size. One of small, normal, large.
Enums\GalleryCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\GalleryCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\GalleryCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\GalleryCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\GalleryCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show GalleryFullWidget (Fetchski\AttractCmsLaravel\Data\GalleryFullWidget)
A gallery-full widget: its type and its own fields. A field left out takes its default.
Enums\GalleryFullWidgetType|string
required
Required. The widget’s type: always gallery-full. One of gallery-full.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\GalleryEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\GalleryEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional. Leave empty to show just the photos.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold, extrabold.
Enums\GalleryIntroSize|string|null
Intro size. One of small, normal, large, xlarge.
Enums\GalleryAlign|string|null
Header alignment. One of center, left.
Enums\GallerySource|string|null
Album: a curated set you pick and order by hand — best for a designed page. Folder: automatically shows every image filed in a media-library folder (newest first) — best for bulk collections you organize in the media manager. Feed: a set that refreshes itself on a schedule from an external photo store, so the gallery shows different photos over time. One of album, folder, feed.
Collection<int, array<string, mixed>>|null
The Photo Album to display. Create and fill albums in the Photo Albums manager. The related photo-album documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
Collection<int, array<string, mixed>>|null
The media-library folder to display. Every image filed in it (and its subfolders, if enabled) is shown, newest first. The related image-folder documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Also show images filed in folders inside the selected folder.
Collection<int, array<string, mixed>>|null
The Photo Feed to display. This gallery stays pointed at the feed while the feed replaces its photos on its own schedule. Create and configure feeds in the Photo Feeds manager. The related photo-feed documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?int
The most photos to show. 0 (default) shows everything in the selected source (folder photos are newest-first). 0 to 200.
Enums\GalleryLayout|string|null
Mosaic Photo Wall: an edge-to-edge wall where rows are scaled to a common height (like Flickr / Google Photos), cropped around each photo’s focal point — the richest option. Masonry: a staggered grid that hugs each photo’s shape. Grid: a tidy, uniform grid. Spotlight: every group of eight opens on an oversized lead photo, sides alternating on wide screens. Shaped Tiles: a portrait grid whose tiles cycle through slab, arch and orb shapes. Scrolling Banner: one edge-to-edge row that drifts sideways forever, so a long album reads as a ribbon of photos rather than a block — the option for a band between two sections rather than a gallery page. Panorama Wall: several rows, far wider than the screen, traveling sideways at slightly different speeds — and the visitor can push it along or against with a drag or a trackpad swipe. Vertical Ribbon: a band of columns running down the page instead of across it, neighboring columns traveling opposite ways, so the section reads as a moving curtain of photographs. One of justified, masonry, grid, spotlight, shaped, banner, panorama, ribbon.
Enums\GalleryColumns|string|null
How many tiles per row (grid, shaped tiles) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout; Spotlight sets its own pattern.) One of auto, 2, 3, 4, 5.
Enums\GalleryJustifiedHeight|string|null
The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of compact, normal, tall.
Enums\GalleryBannerHeight|string|null
How tall the moving row stands. Each photo keeps its own shape, so a taller banner shows wider photos and fewer of them at once. One of short, normal, tall.
Enums\GalleryBannerSpeed|string|null
How fast the row drifts. It also surges briefly with the page’s own scrolling, then settles back — so the band reacts to the visitor instead of ignoring them. One of slow, normal, fast.
Enums\GalleryBannerDirection|string|null
Banner direction. One of left, right.
?bool
Fades the row out at both ends so photos scroll in and out instead of being cut off by a hard edge.
Enums\GalleryPanoramaRows|string|null
How many rows of photos the wall is dealt across. Photos go into the rows in turn, so consecutive shots land in different rows rather than stacking up together. Deep walls want a big set — a row needs at least three photos of its own, so a small album quietly uses fewer, fuller rows than you pick here. One of 2, 3, 4, 5, 6, 7, 8.
Enums\GalleryPanoramaHeight|string|null
How tall each row stands, so the wall’s total depth is this times the number of rows — an eight-row Tall panorama fills a screen and then some. Each photo keeps its own shape, so taller rows show wider photos and fewer of them. One of short, normal, tall.
Enums\GalleryPanoramaSpeed|string|null
How fast the wall travels. Each row takes a slightly different share of this, so the rows shear gently against each other and the block reads as depth rather than as one sliding sheet. It also surges briefly with the page’s own scrolling, then settles back. One of slow, normal, fast.
Enums\GalleryPanoramaDirection|string|null
Travel direction. One of left, right.
?bool
Dragging the wall (or swiping sideways on a trackpad or phone) pushes it along or against its travel, and it glides back into its own pace when let go. Vertical scrolling always still scrolls the page. Needs site animations on in Site design → Motion.
?bool
Fades the rows out at both ends so photos travel in and out instead of being cut off by a hard edge.
Enums\GalleryRibbonColumns|string|null
How many columns of photos the band is dealt across. Photos go into the columns in turn, so consecutive shots land in different columns rather than stacking up together. Narrow screens show fewer columns than you pick here (two on a phone, three on a tablet) — because photos in a 50-pixel sliver are not photos. A column needs at least three photos of its own, so a small album quietly uses fewer, fuller columns. One of 2, 3, 4, 5, 6.
Enums\GalleryRibbonHeight|string|null
How tall the band stands — the window the columns travel through, not the columns themselves, which are always far taller than it. Each photo keeps its own shape and fills its column’s width, so the columns show more photos at once the taller the band is. One of short, normal, tall.
Enums\GalleryRibbonSpeed|string|null
How fast the columns travel. Each takes a slightly different share of this, so the band reads as a weave rather than as one sheet sliding. Slower than the sideways layouts at every setting on purpose: this moves along the same axis the visitor scrolls in, where the same speed feels far more urgent. It also surges briefly with the page’s own scrolling, then settles back. One of slow, normal, fast.
Enums\GalleryRibbonDirection|string|null
Which way the first column travels. With alternating columns on (below), its neighbors go the other way. One of up, down.
?bool
Send neighboring columns opposite ways, which is what makes the band read as a weave. Turn it off and the whole band travels one way together — quieter, and closer to a conventional scrolling wall.
?bool
Fades the columns out at the top and bottom so photos travel in and out instead of being cut off by a hard edge.
?bool
For albums where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.
Enums\GalleryGap|string|null
Gap between tiles. One of tight, normal, roomy.
Enums\GalleryRadius|string|null
Corner radius. One of none, slight, rounded.
Enums\GalleryCardStyle|string|null
The tile surface. Raised floats each photo on a soft shadow (default); Plain is a clean edge-to-edge wall; Luxe / Outline / Poster frame it; Ticket / Bracket / Forge / Press add graphic structure. The photo fills the tile, so fill-based looks (Tint, Inlay) read as their frame + elevation. On the Shaped Tiles layout the structural looks (Ticket / Bracket / Forge / Press) fall back to their plain surface — their rectangular marks can’t follow an arch or orb. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay.
?string
Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryCardStyleForgeScope|string|null
Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame.
Enums\GalleryCardStyleForgeWeight|string|null
Thickness of the Forge corner mark / colored frame. One of fine, medium, bold.
Enums\GalleryCardHover|string|null
What a tile does on hover, on top of the surface above. Glow (default) / Lift read best on photo tiles; Press collapses a Poster offset; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight.
?bool
Overlay each photo’s alt text on hover. Off by default (a clean photo wall). The caption always shows in the lightbox.
Enums\GalleryCaptionSize|string|null
Caption size. One of small, normal, large, xlarge.
Enums\GalleryCaptionWeight|string|null
Caption weight. One of normal, medium, semibold, bold, extrabold.
?bool
Clicking a photo opens it full-size in an on-site lightbox (with previous / next). Turn off for a purely decorative wall that doesn’t enlarge.
?string
Optional — color of the hover wash / glow. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryDrift|string|null
A very slow pan-and-zoom on every photo, each tile on its own rhythm, so the wall stays quietly alive instead of holding perfectly still. Off by default: a still gallery costs nothing to keep on screen, and this runs continuously for as long as the page is open. Turn it on if you also switch on “Rotate photos automatically” below — a photo changing on a wall that is otherwise frozen reads as a glitch. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of off, subtle, bold.
Enums\GalleryParallax|string|null
Sets every photo at its own depth: as the page scrolls, some slide with it and some against it, so the wall has layers instead of being one flat plane. It only moves while the visitor scrolls — nothing happens when the page is still. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of off, subtle, bold.
Enums\GalleryShuffle|string|null
Every so often two photos trade places on the wall, gliding past each other into their new squares. Nothing resizes and nothing else on the wall moves — the grid’s squares are identical, so the photos simply swap seats. It holds still while a visitor’s pointer or keyboard is anywhere in the gallery, so nothing ever moves out from under a click. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of off, calm, steady, lively.
?int
Two photos swap with each other; three or more pass their seats along in a ring, so more of the wall is moving at once. Higher numbers read as the wall dealing itself a new hand rather than as two photos changing places. 2 to 6.
?bool
Photos fade out a few at a time and are replaced from the rest of the source, so the gallery keeps changing while a visitor watches. Needs more photos in the source than are on screen — set “Maximum photos” above to less than the source holds. Set “Ambient drift” above to Subtle as well: a photo changing on a wall that is otherwise perfectly still reads as a glitch rather than as movement. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion.
Enums\GalleryRotateStyle|string|null
Cross-fade: the next photo dissolves over the old one as it eases in — the quietest change. Fade through a color: the tile also dips towards a flat color while the photos dissolve, so it reads as “phasing out” without ever going blank. Slide in: the next photo travels in over the old one, which drifts the same way behind it. Zoom through: the next photo settles out of a slight enlargement. Soften through: the photo blurs out of focus and the next one comes back into it. Wipe across: a clean edge travels over the tile, leaving the next photo behind it. Turn over: the tile turns like a card and comes back showing the next photo — the boldest of the seven. One of cross, veil, push, scale, blur, wipe, turn.
Enums\GalleryRotateOrder|string|null
Scattered spreads the changes over the whole wall, never twice in the same corner and never the same tile twice in a row. The other three move through the wall in a set direction, so the changes read as one gesture crossing the gallery rather than as separate events. One of scatter, wave, columns, rows.
?string
Optional — leave empty to dip through the page background, which suits both themes. Set white for a brighter bloom, or the brand accent for a bolder pulse. The dip never reaches full strength, so the photo always shows through.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryRotatePace|string|null
The gap between one group of changes and the next. The real timing is deliberately uneven around this figure so the wall never feels metronomic. One of calm, steady, lively, rapid.
?int
How many tiles change per group. They never start on the same frame — each one follows the one before it by a beat, so a group reads as a ripple rather than a blink. 1 is the calmest; higher numbers keep more of the wall in motion. 1 to 6.
Enums\GalleryRotateFade|string|null
The length of one change, from the old photo to the new. Longer reads as a gentle phase; shorter as a snap — and short changes are the ones that read as choppy, so lean long. One of quick, normal, slow, lingering.
?int
How many photos beyond the ones on screen to send to the browser for the rotation to draw from — the bigger this is, the longer the gallery goes before a visitor sees a repeat. Retired photos go back to the end of the queue, so it cycles the whole reserve and then starts over. Cheap to raise: a reserved photo is a few URLs, well under 100 bytes once the page is compressed, and its image file is only fetched when it is about to appear. 0 to 500.
Enums\GalleryBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\GalleryBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of GalleryFullWidgetGalleryFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show GalleryFullWidgetGalleryFontOverridesItem (Fetchski\AttractCmsLaravel\Data\GalleryFullWidgetGalleryFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of GalleryFullWidgetGalleryFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show GalleryFullWidgetGalleryFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\GalleryFullWidgetGalleryFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\GalleryCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\GalleryCtaSize|string|null
Button size. One of small, normal, large.
Enums\GalleryCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\GalleryCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\GalleryCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\GalleryCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\GalleryCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show PricingWidget (Fetchski\AttractCmsLaravel\Data\PricingWidget)
A pricing widget: its type and its own fields. A field left out takes its default.
Enums\PricingWidgetType|string
required
Required. The widget’s type: always pricing. One of pricing.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
?bool
A small label above the heading (e.g. “Pricing”).
?string
Eyebrow.
?string
Optional — leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\PricingEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\PricingEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Optional. Leave empty to show just the cards.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\PricingHeadingWeight|string|null
Heading weight. One of normal, medium, semibold, bold, extrabold.
Enums\PricingHeadingSize|string|null
Heading size. One of small, normal, large, xlarge, xxlarge.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\PricingIntroWeight|string|null
Intro weight. One of normal, medium, semibold, bold, extrabold.
Enums\PricingIntroSize|string|null
Intro size. One of small, normal, large, xlarge, xxlarge.
Enums\PricingColumns|string|null
Auto fits as many as comfortably fit and works for any number of cards. Or lock a maximum per row. One of auto, 2, 3, 4.
Enums\PricingGap|string|null
Gap between cards. One of tight, normal, roomy.
Enums\PricingCardStyle|string|null
The base treatment for every tier (a highlighted tier always gets its own bold framed look). Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay.
Enums\PricingCardStyleRadius|string|null
Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large.
?string
Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\PricingCardStyleForgeScope|string|null
Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame.
Enums\PricingCardStyleForgeWeight|string|null
Thickness of the Forge corner mark / colored frame. One of fine, medium, bold.
Enums\PricingAlign|string|null
Aligns the section header and the text inside each card. One of center, left.
?bool
Stretch every card to the tallest one and pin each button to the bottom, so the cards line up even with uneven feature lists.
?bool
A check (included) or cross (not included) before each feature. Off = a plain list.
Enums\PricingCardHover|string|null
How a card reacts to the pointer. Rise floats it up on an accent underglow; Selection ring previews the highlighted look + tints the price; Spotlight washes accent light over the price; Checklist lights up the ✓ marks one-by-one; Tilt is a 3-D parallax that only runs when site animations are on. One of none, rise, ring, spotlight, checklist, tilt.
?string
Border / glow / spotlight / checkmark color on hover. Leave empty to use the highlight accent (then the site accent).
?string
Optional light-theme override. Falls back to the dark-theme hover accent.
Enums\PricingEntrance|string|null
How the cards animate in as they scroll into view. Featured-led makes the highlighted tier settle last with a little emphasis (draws the eye to the recommended plan); Simple stagger fades them in evenly. Only plays when site animations are on (Site design → Motion) — otherwise the cards are simply shown. One of featured, stagger, none.
Enums\PricingNameSize|string|null
Size of each card’s name / title. One of small, normal, large, xlarge, xxlarge.
Enums\PricingPriceSize|string|null
Size of the price amount (the period and price note scale with it). One of small, normal, large, xlarge, xxlarge.
Enums\PricingDescSize|string|null
Size of each card’s description blurb. One of small, normal, large, xlarge, xxlarge.
Enums\PricingFeatureSize|string|null
Size of the feature list text (notes and check marks scale with it). One of small, normal, large, xlarge, xxlarge.
?string
Ribbon text shown on a highlighted tier that doesn’t set its own badge. Each tier can override it (or badge a non-highlighted tier) below. Leave empty for no automatic badge.
?string
Color for the highlighted tier’s border + ring and each tier’s badge. Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme accent.
A list of PricingWidgetPricingTiersItem. Each card is one tier / package / service. Toggle “Highlight” on the one you want to stand out.
Show PricingWidgetPricingTiersItem (Fetchski\AttractCmsLaravel\Data\PricingWidgetPricingTiersItem)
string
required
Required. Tier / package / service name — e.g. “Starter”, “Studio”, “Agency”.
?string
The row’s id, unique in its array.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\IconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
?string
Optional — leave empty to use the design’s own color rhythm.
Enums\IconAnimation|string|null
Icon animation. One of none, fa-beat, fa-bounce, fa-fade, fa-beat-fade, fa-flip, fa-shake, fa-spin.
Enums\IconSize|string|null
Relative to the component’s base icon size. One of default, sm, lg, xl, 2xl, 2x, 3x, 4x, 5x.
Enums\IconGap|string|null
Breathing room below the icon, before the card name. One of none, small, normal, large, xlarge.
?string
A small ribbon on the card, e.g. “Best value”, “Limited spots”. Overrides the default highlight badge for this tier; works on any tier, highlighted or not. Empty on a highlighted tier falls back to the section’s “Default highlight badge”.
?bool
Emphasize this tier — accent border + ring, a subtle lift, and the Featured button look.
Enums\TextAlign|string|null
How this card’s text lines up. Normal = the section default (a centered section keeps the feature list left-aligned, as now). Center also centers the feature list; Left / Right align everything that way. One of normal, left, center, right.
?string
Free text, so it fits any model — “$45", "From $200”, “Custom”, “Call for quote”.
?string
Shown after the price, e.g. ”/ month”, “per night”, “per session”. Leave empty for a flat price.
?string
A small line under the price, e.g. “per seat”, “billed annually”, ”+ tax”.
A list of PricingWidgetPricingTiersItemFeaturesItem. The bullet list of what’s included.
Show PricingWidgetPricingTiersItemFeaturesItem (Fetchski\AttractCmsLaravel\Data\PricingWidgetPricingTiersItemFeaturesItem)
string
required
Required. Feature.
?string
The row’s id, unique in its array.
?bool
On = a check mark; off = a crossed-out / muted line (e.g. a feature this tier lacks).
?string
A small qualifier shown after the feature, e.g. “up to 5”, “add-on”.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
This card’s button text. Leave empty to use the shared button label (set in the Pricing · Buttons tab); clear it everywhere to hide the button.
?string
Where the button goes — a path (/contact-us) or full URL. Leave empty to inherit the shared button link.
?bool
Open button in new tab.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\PricingBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\PricingBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of PricingWidgetPricingFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show PricingWidgetPricingFontOverridesItem (Fetchski\AttractCmsLaravel\Data\PricingWidgetPricingFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of PricingWidgetPricingFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show PricingWidgetPricingFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\PricingWidgetPricingFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\PricingFeaturedCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\PricingFeaturedCtaSize|string|null
Button size. One of small, normal, large.
Enums\PricingFeaturedCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\PricingFeaturedCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\PricingFeaturedCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\PricingFeaturedCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\PricingFeaturedCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\PricingCtaVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\PricingCtaSize|string|null
Button size. One of small, normal, large.
Enums\PricingCtaRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\PricingCtaStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\PricingCtaAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\PricingCtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\PricingCtaIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show NewsletterWidget (Fetchski\AttractCmsLaravel\Data\NewsletterWidget)
A newsletter widget: its type and its own fields. A field left out takes its default.
Enums\NewsletterWidgetType|string
required
Required. The widget’s type: always newsletter. One of newsletter.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
Collection<int, array<string, mixed>>|null
The Form (Forms manager) that receives these submissions and routes them — configure its destinations on the form’s Actions tab. Create one if you have not yet. The related @apostrophecms/form documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Show eyebrow.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\NewsletterEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\NewsletterEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Heading.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\NewsletterHeadingWeight|string|null
Weight. One of normal, medium, semibold, bold, extrabold.
Enums\NewsletterHeadingSize|string|null
Size. One of small, normal, large, xlarge, xxlarge.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\NewsletterIntroWeight|string|null
Weight. One of normal, medium, semibold, bold, extrabold.
Enums\NewsletterIntroSize|string|null
Size. One of small, normal, large, xlarge, xxlarge.
Enums\NewsletterBand|string|null
Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of plain, raised, accent.
?string
The accent band color. Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\NewsletterAlign|string|null
Alignment. One of center, left.
Enums\NewsletterLayout|string|null
Inline puts the field + button on one row (stacks on small screens); Stacked always stacks them. One of inline, stacked.
Enums\NewsletterWidth|string|null
Content width. One of narrow, normal, wide.
?bool
Collect a name.
?string
Name label.
?string
Name placeholder.
?string
Email label.
?string
Email placeholder.
?bool
Optional opt-in checkbox (e.g. for GDPR-style explicit consent).
?string
Consent statement.
?string
A small line under the form, e.g. an unsubscribe note.
?string
Success message.
?string
Error message.
Enums\NewsletterBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\NewsletterBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of NewsletterWidgetNewsletterFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show NewsletterWidgetNewsletterFontOverridesItem (Fetchski\AttractCmsLaravel\Data\NewsletterWidgetNewsletterFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of NewsletterWidgetNewsletterFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show NewsletterWidgetNewsletterFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\NewsletterWidgetNewsletterFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
Enums\NewsletterSubmitVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\NewsletterSubmitSize|string|null
Button size. One of small, normal, large.
Enums\NewsletterSubmitRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\NewsletterSubmitStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\NewsletterSubmitAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\NewsletterSubmitIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\NewsletterSubmitIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show SmsSignupWidget (Fetchski\AttractCmsLaravel\Data\SmsSignupWidget)
A sms-signup widget: its type and its own fields. A field left out takes its default.
Enums\SmsSignupWidgetType|string
required
Required. The widget’s type: always sms-signup. One of sms-signup.
string
required
Required. Shown beside a required checkbox; the form shows only once this is filled in. Be specific about what they are agreeing to. The brand name is added automatically from Site settings.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
Collection<int, array<string, mixed>>|null
The Form (Forms manager) that receives these SMS opt-ins and routes them — configure its destinations on the form’s Actions tab. The related @apostrophecms/form documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Show eyebrow.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\SmsSignupEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\SmsSignupEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Heading.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\SmsSignupHeadingWeight|string|null
Weight. One of normal, medium, semibold, bold, extrabold.
Enums\SmsSignupHeadingSize|string|null
Size. One of small, normal, large, xlarge, xxlarge.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\SmsSignupIntroWeight|string|null
Weight. One of normal, medium, semibold, bold, extrabold.
Enums\SmsSignupIntroSize|string|null
Size. One of small, normal, large, xlarge, xxlarge.
Enums\SmsSignupBand|string|null
Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of plain, raised, accent.
?string
The accent band color. Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\SmsSignupAlign|string|null
Alignment. One of center, left.
Enums\SmsSignupLayout|string|null
Inline puts the field + button on one row (stacks on small screens); Stacked always stacks them. One of inline, stacked.
Enums\SmsSignupWidth|string|null
Content width. One of narrow, normal, wide.
?bool
Collect a name.
?string
Name label.
?string
Name placeholder.
?string
Phone label.
?string
Phone placeholder.
?string
Carrier-compliance fine print shown under the form.
?string
Optional — linked from the fine print.
?string
Optional — linked from the fine print.
?string
Success message.
?string
Error message.
Enums\SmsSignupBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\SmsSignupBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of SmsSignupWidgetSmsSignupFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show SmsSignupWidgetSmsSignupFontOverridesItem (Fetchski\AttractCmsLaravel\Data\SmsSignupWidgetSmsSignupFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
Enums\SmsSignupSubmitVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\SmsSignupSubmitSize|string|null
Button size. One of small, normal, large.
Enums\SmsSignupSubmitRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\SmsSignupSubmitStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\SmsSignupSubmitAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\SmsSignupSubmitIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\SmsSignupSubmitIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show FormRenderWidget (Fetchski\AttractCmsLaravel\Data\FormRenderWidget)
A form-render widget: its type and its own fields. A field left out takes its default.
Enums\FormRenderWidgetType|string
required
Required. The widget’s type: always form-render. One of form-render.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
Collection<int, array<string, mixed>>|null
The form to show here. Build and edit the form itself in the Forms manager (create one there first if needed). The related @apostrophecms/form documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Off: the form renders with the styling saved on the form itself. On: the styling below replaces it here only — the form’s fields and other placements are unaffected.
A list of FormRenderWidgetFormFontOverridesItem. Optional. Set part of this form in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show FormRenderWidgetFormFontOverridesItem (Fetchski\AttractCmsLaravel\Data\FormRenderWidgetFormFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of FormRenderWidgetFormFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show FormRenderWidgetFormFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\FormRenderWidgetFormFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?bool
Show eyebrow.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\FormEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\FormEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
?string
Heading.
?string
Optional — leave empty to track the theme text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\FormHeadingWeight|string|null
Weight. One of normal, medium, semibold, bold, extrabold.
Enums\FormHeadingSize|string|null
Size. One of small, normal, large, xlarge, xxlarge.
?string
Optional short sentence under the heading.
?string
Optional — leave empty to use the muted text color.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\FormIntroWeight|string|null
Weight. One of normal, medium, semibold, bold, extrabold.
Enums\FormIntroSize|string|null
Size. One of small, normal, large, xlarge, xxlarge.
Enums\FormBand|string|null
Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of plain, raised, accent.
?string
The accent band color. Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\FormAlign|string|null
Alignment of the section header (the form fields stay left-aligned for legibility). One of center, left.
Enums\FormWidth|string|null
Content width. One of narrow, normal, wide.
Enums\FormLabelGap|string|null
Vertical space between each field’s label and its input. One of compact, normal, roomy, spacious.
Enums\FormBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\FormBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
?string
The visible button text. Leave empty to hide the button.
Enums\FormSubmitVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\FormSubmitSize|string|null
Button size. One of small, normal, large.
Enums\FormSubmitRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\FormSubmitStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\FormSubmitAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\FormSubmitIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\FormSubmitIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Show FinalCtaWidget (Fetchski\AttractCmsLaravel\Data\FinalCtaWidget)
A final-cta widget: its type and its own fields. A field left out takes its default.
Enums\FinalCtaWidgetType|string
required
Required. The widget’s type: always final-cta. One of final-cta.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
Enums\CtaAlign|string|null
Content alignment. One of center, left.
?bool
Show eyebrow / kicker.
?string
Small label shown above the title.
?string
Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\CtaEyebrowWeight|string|null
Eyebrow weight. One of normal, medium, semibold, bold, extrabold.
Enums\CtaEyebrowSize|string|null
Eyebrow size. One of small, normal, large, xlarge.
Enums\CtaIconPlacement|string|null
An optional Font Awesome icon above the headline. One of none, top.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\CtaIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
?string
Optional — leave empty to use the design’s own color rhythm.
Enums\CtaIconAnimation|string|null
Icon animation. One of none, fa-beat, fa-bounce, fa-fade, fa-beat-fade, fa-flip, fa-shake, fa-spin.
Enums\CtaIconSize|string|null
Relative to the component’s base icon size. One of default, sm, lg, xl, 2xl, 2x, 3x, 4x, 5x.
Enums\CtaIconTilt|string|null
A slight rotation for a more playful look. One of none, left, right.
?string
Headline.
?string
Optional. Overrides the headline color. Leave empty for the on-accent (legible-on-band) default.
?string
Optional light-theme override. Falls back to the dark-theme color, then the on-accent default.
Enums\CtaHeadlineWeight|string|null
Headline weight. One of normal, medium, semibold, bold, extrabold.
?string
Supporting copy.
?string
Optional. Overrides the supporting-copy color. Leave empty for the softened on-accent default.
?string
Optional light-theme override. Falls back to the dark-theme color, then the softened on-accent default.
Enums\CtaBodyWeight|string|null
Body weight. One of normal, medium, semibold, bold.
Enums\CtaBackgroundType|string|null
Solid keeps the loud color block; Image places a photo behind the text with a readability overlay. One of solid, image.
?string
The solid band color (and the fallback behind a background image). Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the accent.
?ImageArea
An ImageArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first ImageArea above.
?string
Scrim over the image to keep the text readable. Leave empty to use the accent color.
?string
Optional light-theme override. Falls back to the dark-theme overlay, then the accent.
?float
Overlay opacity (%). 0 to 100.
?bool
The two large outlined circles on the band.
?string
Drawn at a low opacity. Leave empty to use the on-accent (white-ish) default.
A list of FinalCtaWidgetCtaFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show FinalCtaWidgetCtaFontOverridesItem (Fetchski\AttractCmsLaravel\Data\FinalCtaWidgetCtaFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of FinalCtaWidgetCtaFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show FinalCtaWidgetCtaFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\FinalCtaWidgetCtaFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\CtaPrimaryVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\CtaPrimarySize|string|null
Button size. One of small, normal, large.
Enums\CtaPrimaryRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\CtaPrimaryStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\CtaPrimaryAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\CtaPrimaryIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\CtaPrimaryIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?string
The visible button text. Leave empty to hide the button.
?string
Where the button goes — a path (/blog) or full URL.
?bool
Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\CtaSecondaryVariant|string|null
Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\CtaSecondarySize|string|null
Button size. One of small, normal, large.
Enums\CtaSecondaryRadius|string|null
Corner radius. One of pill, rounded, slight, square.
?string
Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional light-theme override. Falls back to the dark-theme hover color.
Enums\CtaSecondaryStyle|string|null
The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\CtaSecondaryAnimation|string|null
Hover motion. One of lift, scale, lift-scale, none.
?string
Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\CtaSecondaryIconFamily|string|null
Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\CtaSecondaryIconPosition|string|null
Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?string
Optional. Leave it out and the site uses "sparkles". Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\ComingSoonIconFamily|string|null
Optional. Leave it out and the site uses "classic-regular". Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional — leave empty to use the design’s own color rhythm.
Enums\ComingSoonIconAnimation|string|null
Optional. Leave it out and the site uses "none". Icon animation. One of none, fa-beat, fa-bounce, fa-fade, fa-beat-fade, fa-flip, fa-shake, fa-spin.
Enums\ComingSoonIconSize|string|null
Optional. Leave it out and the site uses "5x". Relative to the component’s base icon size. One of default, sm, lg, xl, 2xl, 2x, 3x, 4x, 5x.
?string
Optional. Leave it out and the site uses "". Optional. Shown under the icon while this page has no content. Leave empty for a tasteful default line.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional. Color of the ”← back” link at the top of every post. Leave empty to use the site accent color.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\BackLinkWeight|string|null
Optional. Leave it out and the site uses "semibold". Back link weight. One of normal, medium, semibold, bold, extrabold.
Enums\BackLinkSize|string|null
Optional. Leave it out and the site uses "normal". Back link size. One of small, normal, large, xlarge.
SectionsArea|array<string, mixed>|null
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. A new document starts with page-header.
BlogListArea|array<string, mixed>|null
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. A new document starts with blog-list.
Show BlogListArea (Fetchski\AttractCmsLaravel\Data\BlogListArea)
Enums\AfterContentAreaMetaType|string|null
Always area. One of area.
?string
The area’s id, set by the site: leave it out when you write one.
Collection<int, BlogListWidget>|null
A list of BlogListWidget. The widgets, top to bottom. Each is an object with its type and that widget’s own fields; _id and metaType may be left out (the site sets them). At most 1 items.
Show BlogListWidget (Fetchski\AttractCmsLaravel\Data\BlogListWidget)
A blog-list widget: its type and its own fields. A field left out takes its default.
Enums\BlogListWidgetType|string
required
Required. The widget’s type: always blog-list. One of blog-list.
?string
The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Always widget. One of widget.
Enums\BlogLayout|string|null
How posts are arranged. One of card, list, compact, featured, masonry.
Enums\BlogColumns|string|null
Applies to the Card grid and Masonry layouts. One of auto, 2, 3.
Enums\BlogEntrance|string|null
How posts animate in as they scroll into view. Only plays when site animations are on (Site design → Motion) — otherwise the posts are simply shown. In the Featured + grid layout the banner rises first, then the grid staggers in. One of stagger, none.
Enums\BlogCardImageAspect|string|null
Aspect ratio of the featured image. Choose “Hidden” for text-only cards. One of 16/10, 4/3, 3/2, 1/1, none.
Enums\BlogCardImageHover|string|null
Image hover. One of zoom, none.
?bool
Use the featured image as the full card background, with the title and meta overlaid on a dark scrim. Posts with no image fall back to a normal card.
Enums\BlogCardPreset|string|null
The card surface. Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. (On image-led cards the photo covers the top edge.) One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay.
Enums\BlogCardPresetRadius|string|null
Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large.
?string
Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Optional light-theme override. Falls back to the dark-theme color.
Enums\BlogCardPresetForgeScope|string|null
Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame.
Enums\BlogCardPresetForgeWeight|string|null
Thickness of the Forge corner mark / colored frame. One of fine, medium, bold.
Enums\BlogCardHover|string|null
What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt (3-D + glare), Magnetic and Spotlight follow the cursor (need site animations on). The Hover color below tints these. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight.
?string
Border / shadow / glow color on hover. Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the accent.
?bool
Show category.
Enums\BlogCardCategoryStyle|string|null
How the category badge uses its color (set per category under Blog Categories). Filled = colored background; Outline = colored border + text; Minimal = colored text only. One of filled, outline, minimal.
?bool
Show date.
?bool
Show excerpt.
Enums\BlogCardExcerptLines|string|null
How many lines of the excerpt to show before truncating. One of 2, 3, 4, none.
?bool
Show author.
?bool
Show “Read post” link.
Enums\BlogCardReadMorePlacement|string|null
Auto puts it on the right of horizontal cards (list / compact / featured) and below the text on grid cards. Or force one placement everywhere. One of auto, below, right.
?string
Optional. Overrides the “Read post” link color. Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the accent.
?string
Optional. Color of the “Read post” link when the card is hovered. Leave empty to use the accent color.
?string
Optional light-theme override. Falls back to the dark-theme hover color, then the accent.
?string
Optional. Overrides the card title color. Leave empty to track the theme’s text color.
?string
Optional light-theme override. Falls back to the dark-theme color, then the theme default.
Enums\BlogCardTitleWeight|string|null
Title weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional. Title color when the card is hovered. Leave empty to use the site accent color.
?string
Optional light-theme override. Falls back to the dark-theme hover color, then the accent.
?string
Optional. Overrides the excerpt text color. Leave empty for the muted default.
?string
Optional light-theme override. Falls back to the dark-theme color, then the muted default.
Enums\BlogCardTextWeight|string|null
Excerpt weight. One of normal, medium, semibold, bold.
?string
Date / meta line color. Leave empty for the faint default.
?string
Optional light-theme override. Falls back to the dark-theme color, then the faint default.
Enums\BlogBg|string|null
The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (dark theme)” is set to Custom color.
Enums\BlogBgLight|string|null
“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom.
?string
Used when “Section background (light theme)” is set to Custom color.
A list of BlogListWidgetBlogFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show BlogListWidgetBlogFontOverridesItem (Fetchski\AttractCmsLaravel\Data\BlogListWidgetBlogFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of BlogListWidgetBlogFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show BlogListWidgetBlogFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\BlogListWidgetBlogFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
?CustomCSS
A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
SectionsArea|array<string, mixed>|null
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.
?string
Optional. Leave it out and the site uses "Back to all posts". The visible button text. Leave empty to hide the button.
Enums\BackButtonVariant|string|null
Optional. Leave it out and the site uses "outline". Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link.
Enums\BackButtonSize|string|null
Optional. Leave it out and the site uses "normal". Button size. One of small, normal, large.
Enums\BackButtonRadius|string|null
Optional. Leave it out and the site uses "slight". Corner radius. One of pill, rounded, slight, square.
?string
Optional. Leave it out and the site uses "--fetchski-accent". Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Optional. Leave it out and the site uses "--fetchski-ink". The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme label color.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\BackButtonStyle|string|null
Optional. Leave it out and the site uses "sweep". The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\BackButtonAnimation|string|null
Optional. Leave it out and the site uses "lift-scale". Hover motion. One of lift, scale, lift-scale, none.
?string
Optional. Leave it out and the site uses "arrow-left". Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\BackButtonIconFamily|string|null
Optional. Leave it out and the site uses "classic-regular". Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard.
Enums\BackButtonIconPosition|string|null
Optional. Leave it out and the site uses "before". Which side of the label the icon sits on (when an icon name is set). One of before, after.
?bool
Optional. Leave it out and the site uses false. The icon slides toward its side on hover (e.g. an arrow edges outward).
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional. Set part of every post in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). An individual post can replace this on its own Fonts tab. At most 4 items.
Show PagePostFontOverridesItem (Fetchski\AttractCmsLaravel\Data\PagePostFontOverridesItem)
?string
The row’s id, unique in its array.
Enums\Target|string|null
Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code.
Enums\Source|string|null
Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload.
Enums\Slot|string|null
Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent.
Enums\Curated|string|null
Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak.
Enums\CdnProvider|string|null
Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare.
?string
Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
A list of PagePostFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show PagePostFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\PagePostFontOverridesItemUploadsItem)
array<string, mixed>
required
Required. File attachment reference.
?string
The row’s id, unique in its array.
Enums\Weight|string|null
Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900.
Enums\Style|string|null
Style. One of normal, italic.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\Fallback|string|null
Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono.
array<string, mixed>
Optional: any keys not listed above, by their wire names; they are sent with the rest.
Enums\PostTextSize|string|null
Optional. Leave it out and the site uses "normal". Body text size. One of small, normal, large, xlarge.
Enums\PostTextWeight|string|null
Optional. Leave it out and the site uses "normal". Body text weight. One of normal, medium, semibold.
Enums\PostContentWidth|string|null
Optional. Leave it out and the site uses "normal". Reading measure — how wide the article column gets. Posts that contain section widgets open to Full width automatically so the widgets have room. One of narrow, normal, wide, xwide, full.
Enums\PostLineHeight|string|null
Optional. Leave it out and the site uses "normal". Line height. One of tight, normal, relaxed.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Links, the blockquote rule, and heading accents. Leave empty to use the site link color.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme color, then the link color.
Enums\PostHeadingWeight|string|null
Optional. Leave it out and the site uses "bold". Heading weight. One of normal, medium, semibold, bold, extrabold.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional. Overrides in-article heading color. Leave empty to track the theme’s text color.
?string
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme color, then the theme default.
PostCustomCSS|array<string, mixed>|null
Optional. Leave it out (or pass null) and it isn’t sent: the site’s default applies. CSS for every blog post’s page: the title band, the article and its parts. It wins over Site design → Custom CSS → Blog post.
Show PostCustomCSS (Fetchski\AttractCmsLaravel\Data\PostCustomCSS)
array<string, string>|null
The CSS typed into each part slot, by slot name.
?string
The compiled CSS (read only: rebuilt from slots).
?string
The site’s check mark for css (read only).
Returns
A Page (Fetchski\AttractCmsLaravel\Data\Page). A page: the fields every page has, and each page type’s own (type says which page type it is; a field belongs only to the page types that define it). Read its properties ($page->id): each says whether the site always sends it. The example answer is the site’s wire JSON: some keys differ from the property names (_id → id, _ancestors → ancestors, _children → children …).
string
Always sent. Unique document identifier, may include mode and locale (e.g., “id:en:published”)
string
Always sent. Base document ID without mode/locale qualifiers.
string
Always sent. Document locale code.
CarbonImmutable
Always sent. Page last update timestamp. Format: an ISO 8601 date and time.
string
Always sent. URL slug for the page.
string
Always sent. Full hierarchical path in the page tree.
int
Always sent. Depth level in the page tree (0 = root level)
Always sent. Page visibility setting. One of public, loginRequired, private; a newer site may send others, so keep a fallback.
string
Always sent. Page type module name.
string
Always sent. Page title. At most 100 characters.
Enums\AposMode|string|null
Sometimes sent:null when the site leaves it out. Document mode (draft or published) One of draft, published; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Whether the page is archived.
?CarbonImmutable
Sometimes sent:null when the site leaves it out. Page creation timestamp. Format: an ISO 8601 date and time.
?string
Sometimes sent:null when the site leaves it out. Sortable version of the page title.
?int
Sometimes sent:null when the site leaves it out. Sort order within parent page.
?bool
Sometimes sent:null when the site leaves it out. Whether page is orphaned (not in tree structure)
Collection<int, string>|null
Sometimes sent:null when the site leaves it out. Array of parking lot configurations if page is parked.
?MainArea
Sometimes sent:null when the site leaves it out. A MainArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.
Show MainArea (Fetchski\AttractCmsLaravel\Data\MainArea)
Enums\AfterContentAreaMetaType|string|null
Sometimes sent:null when the site leaves it out. Always area. One of area; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The area’s id, set by the site: leave it out when you write one.
Sometimes sent:null when the site leaves it out. A list of MainAreaItem. The widgets, top to bottom. Each is an object with its type and that widget’s own fields; _id and metaType may be left out (the site sets them).
Show MainAreaItem (Fetchski\AttractCmsLaravel\Data\MainAreaItem)
A widget in an area that takes @apostrophecms/rich-text, @apostrophecms/image, @apostrophecms/video: the one its type names.
Show RichTextWidget (Fetchski\AttractCmsLaravel\Data\RichTextWidget)
A @apostrophecms/rich-text widget: its type and its own fields. A field left out takes its default.
Enums\RichTextWidgetType|string
Always sent. The widget’s type: always @apostrophecms/rich-text. One of @apostrophecms/rich-text; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The text as HTML, e.g. <h2>Our story</h2><p>It began with <strong>one</strong> idea.</p>. The site keeps the tags and styles this area’s editor offers (paragraphs, headings, bold, italic, links, lists…) and removes the rest.
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot.
Show CustomCSS (Fetchski\AttractCmsLaravel\Data\CustomCSS)
array<string, string>|null
Sometimes sent:null when the site leaves it out. The CSS typed into each part slot, by slot name.
?string
Sometimes sent:null when the site leaves it out. The compiled CSS (read only: rebuilt from slots).
?string
Sometimes sent:null when the site leaves it out. The site’s check mark for css (read only).
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show ImageWidget (Fetchski\AttractCmsLaravel\Data\ImageWidget)
A @apostrophecms/image widget: its type and its own fields. A field left out takes its default.
Enums\ImageWidgetType|string
Always sent. The widget’s type: always @apostrophecms/image. One of @apostrophecms/image; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Sometimes sent:null when the site leaves it out. Caption.
Enums\LinkTo|string|null
Sometimes sent:null when the site leaves it out. Link To… One of none, @apostrophecms/any-page-type, _url; a newer site may send others, so keep a fallback.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. The related @apostrophecms/any-page-type documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Sometimes sent:null when the site leaves it out. apostrophe:linkHrefHelp When set, a URL; empty or null when not.
?string
Sometimes sent:null when the site leaves it out. Link Title.
?string
Sometimes sent:null when the site leaves it out. If empty, the title of the related document will be used.
Collection<int, Enums\LinkTarget|string>|null
Sometimes sent:null when the site leaves it out. Link Target. Each one of _blank.
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show VideoWidget (Fetchski\AttractCmsLaravel\Data\VideoWidget)
A @apostrophecms/video widget: its type and its own fields. A field left out takes its default.
Enums\VideoWidgetType|string
Always sent. The widget’s type: always @apostrophecms/video. One of @apostrophecms/video; a newer site may send others, so keep a fallback.
array<string, mixed>
Always sent. Enter the URL for a media source you wish to embed (e.g., YouTube, Vimeo, or other hosted video URL).
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Collection<int, Page>|null
Sometimes sent:null when the site leaves it out. A list of Page. The page’s ancestors, from the home page down (each without its own _ancestors and _children).
Show Page (Fetchski\AttractCmsLaravel\Data\Page)
A page: the fields every page has, and each page type’s own (type says which page type it is; a field belongs only to the page types that define it).
string
Always sent. Unique document identifier, may include mode and locale (e.g., “id:en:published”)
string
Always sent. Base document ID without mode/locale qualifiers.
string
Always sent. Document locale code.
CarbonImmutable
Always sent. Page last update timestamp. Format: an ISO 8601 date and time.
string
Always sent. URL slug for the page.
string
Always sent. Full hierarchical path in the page tree.
int
Always sent. Depth level in the page tree (0 = root level)
Always sent. Page visibility setting. One of public, loginRequired, private; a newer site may send others, so keep a fallback.
string
Always sent. Page type module name.
string
Always sent. Page title. At most 100 characters.
Enums\AposMode|string|null
Sometimes sent:null when the site leaves it out. Document mode (draft or published) One of draft, published; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Whether the page is archived.
?CarbonImmutable
Sometimes sent:null when the site leaves it out. Page creation timestamp. Format: an ISO 8601 date and time.
?string
Sometimes sent:null when the site leaves it out. Sortable version of the page title.
?int
Sometimes sent:null when the site leaves it out. Sort order within parent page.
?bool
Sometimes sent:null when the site leaves it out. Whether page is orphaned (not in tree structure)
Collection<int, string>|null
Sometimes sent:null when the site leaves it out. Array of parking lot configurations if page is parked.
?MainArea
Sometimes sent:null when the site leaves it out. A MainArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first MainArea above.
Collection<int, Page>|null
Sometimes sent:null when the site leaves it out. A list of Page. The page’s ancestors, from the home page down (each without its own _ancestors and _children). Its fields are listed under the first Page above.
Collection<int, Page>|null
Sometimes sent:null when the site leaves it out. A list of Page. Its child pages, each with its own _children where the request asked for more levels. Its fields are listed under the first Page above.
?string
Sometimes sent:null when the site leaves it out. Full URL to the page. Format: an absolute URL.
?bool
Sometimes sent:null when the site leaves it out. Whether current user can edit this page.
?bool
Sometimes sent:null when the site leaves it out. Whether current user can publish this page.
?string
Sometimes sent:null when the site leaves it out. The _id of the piece/page that was copied to create this document (only present if created via _copyingId)
?Page
Sometimes sent:null when the site leaves it out. A Page. A page: the fields every page has, and each page type’s own (type says which page type it is; a field belongs only to the page types that define it). Its fields are listed under the first Page above.
?Page
Sometimes sent:null when the site leaves it out. A Page. A page: the fields every page has, and each page type’s own (type says which page type it is; a field belongs only to the page types that define it). Its fields are listed under the first Page above.
?string
Sometimes sent:null when the site leaves it out. The draft’s preview share key, while its share link is on: the link is the draft’s _url with aposShareKey and aposShareId (the draft’s _id) in its query. Absent otherwise, and on published documents.
?string
Sometimes sent:null when the site leaves it out. An ISO 8601 date and time, e.g. 2026-10-21T14:30:00.000Z.
?string
Sometimes sent:null when the site leaves it out. An ISO 8601 date and time, e.g. 2026-10-21T14:30:00.000Z.
?string
Sometimes sent:null when the site leaves it out. Overrides the document title in the browser tab and search results. Leave blank to use the regular title.
?string
Sometimes sent:null when the site leaves it out. Shown in search results and link previews. Aim for 150–160 characters.
?ImageArea
Sometimes sent:null when the site leaves it out. An ImageArea. Used for Open Graph / social link previews. Recommended 1200×630. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.
Show ImageArea (Fetchski\AttractCmsLaravel\Data\ImageArea)
Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.
Enums\AfterContentAreaMetaType|string|null
Sometimes sent:null when the site leaves it out. Always area. One of area; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The area’s id, set by the site: leave it out when you write one.
Collection<int, ImageWidget>|null
Sometimes sent:null when the site leaves it out. A list of ImageWidget. The widgets, top to bottom. Each is an object with its type and that widget’s own fields; _id and metaType may be left out (the site sets them). At most 1 items. Its fields are listed under the first ImageWidget above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Collection<int, PagePageFontOverridesItem>|null
Sometimes sent:null when the site leaves it out. A list of PagePageFontOverridesItem. Optional. Set part of this page in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). Individual sections can still override this for themselves. At most 4 items.
Show PagePageFontOverridesItem (Fetchski\AttractCmsLaravel\Data\PagePageFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of PagePageFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show PagePageFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\PagePageFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\FooterMarqueeMode|string|null
Sometimes sent:null when the site leaves it out. The ribbon of phrases scrolling across the top of the footer. Its phrases and the site-wide default are set in Site design → Footer: Marquee. One of inherit, on, off; a newer site may send others, so keep a fallback.
?SectionsArea
Sometimes sent:null when the site leaves it out. A SectionsArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. A new document starts with page-header.
Show SectionsArea (Fetchski\AttractCmsLaravel\Data\SectionsArea)
Enums\AfterContentAreaMetaType|string|null
Sometimes sent:null when the site leaves it out. Always area. One of area; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The area’s id, set by the site: leave it out when you write one.
Sometimes sent:null when the site leaves it out. A list of SectionsAreaItem. The widgets, top to bottom. Each is an object with its type and that widget’s own fields; _id and metaType may be left out (the site sets them).
Show SectionsAreaItem (Fetchski\AttractCmsLaravel\Data\SectionsAreaItem)
A widget in an area that takes page-header, hero, @apostrophecms/layout, intro, feature, stats, logos, steps, media-text, device-mock, team, faq, service-map, blog-preview, cookie-declaration, @apostrophecms/rich-text, google-reviews, testimonials, instagram-feed, gallery-preview, gallery-full, pricing, newsletter, sms-signup, form-render, final-cta: the one its type names.
Show PageHeaderWidget (Fetchski\AttractCmsLaravel\Data\PageHeaderWidget)
A page-header widget: its type and its own fields. A field left out takes its default.
Enums\PageHeaderWidgetType|string
Always sent. The widget’s type: always page-header. One of page-header; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show the page title (the usual case). Set it only when the visible heading should read differently from the page’s title in navigation, search results and breadcrumbs.
Enums\EyebrowMode|string|null
Sometimes sent:null when the site leaves it out. The small label above the title. One of business, custom, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Eyebrow text.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\EyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\EyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TitleWeight|string|null
Sometimes sent:null when the site leaves it out. Title weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\TitleSize|string|null
Sometimes sent:null when the site leaves it out. Title size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional intro shown under the page title.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\LeadWeight|string|null
Sometimes sent:null when the site leaves it out. Lead weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\LeadSize|string|null
Sometimes sent:null when the site leaves it out. Lead size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\PageHeaderBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\PageHeaderBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
?ImageArea
Sometimes sent:null when the site leaves it out. An ImageArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first ImageArea above.
?string
Sometimes sent:null when the site leaves it out. Scrim behind the text over a background image (only applies when one is set). Leave empty to use the dark surface color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme overlay, then the light surface color.
?float
Sometimes sent:null when the site leaves it out. Overlay opacity (%). 0 to 100.
Sometimes sent:null when the site leaves it out. A list of PageHeaderWidgetPageHeaderFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show PageHeaderWidgetPageHeaderFontOverridesItem (Fetchski\AttractCmsLaravel\Data\PageHeaderWidgetPageHeaderFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\PageHeaderPrimaryCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\PageHeaderPrimaryCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\PageHeaderPrimaryCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\PageHeaderPrimaryCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\PageHeaderPrimaryCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\PageHeaderPrimaryCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\PageHeaderSecondaryCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\PageHeaderSecondaryCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\PageHeaderSecondaryCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\PageHeaderSecondaryCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\PageHeaderSecondaryCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show HeroWidget (Fetchski\AttractCmsLaravel\Data\HeroWidget)
A hero widget: its type and its own fields. A field left out takes its default.
Enums\HeroWidgetType|string
Always sent. The widget’s type: always hero. One of hero; a newer site may send others, so keep a fallback.
string
Always sent. Headline.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
Enums\HeroAlign|string|null
Sometimes sent:null when the site leaves it out. Content alignment. One of left, center; a newer site may send others, so keep a fallback.
Enums\HeroHeight|string|null
Sometimes sent:null when the site leaves it out. Full fills the screen (home pages); Compact is a short banner for interior pages. One of full, tall, compact; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Giant outlined word above the headline (same treatment as the footer wordmark). Reveals on hover.
?string
Sometimes sent:null when the site leaves it out. Keep it short — one word reads best at display size. Leave empty to use the business name.
Enums\HeroGhostSize|string|null
Sometimes sent:null when the site leaves it out. Ghost wordmark size. One of display, large, medium; a newer site may send others, so keep a fallback.
Enums\HeroGhostFill|string|null
Sometimes sent:null when the site leaves it out. Outlined letters that fill on hover one at a time, all at once, or always-solid (no ghost effect). One of letter, word, solid; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the wordmark fill + outline tint in the dark theme. Leave empty to track the theme’s text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override — handy over a fixed video/photo background that doesn’t switch with the theme. Falls back to the dark-theme color, then the theme default.
?bool
Sometimes sent:null when the site leaves it out. A small line (optional icon + business name) above the headline. Off by default when the ghost wordmark carries the brand.
?bool
Sometimes sent:null when the site leaves it out. Show eyebrow / kicker.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\HeroEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\HeroEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\HeroEyebrowPlacement|string|null
Sometimes sent:null when the site leaves it out. Eyebrow placement. One of top, belowHeadline, aboveCta; a newer site may send others, so keep a fallback.
Enums\HeroHeadlineFill|string|null
Sometimes sent:null when the site leaves it out. Solid is the standard headline. The outline options give the headline the same ghost treatment as the wordmark, filling on hover. (The accent sticker word stays solid.) One of solid, letter, word; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the headline color in the dark theme. Leave empty to track the theme’s text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the theme default.
?bool
Sometimes sent:null when the site leaves it out. Wraps the final headline word in the solid accent “sticker”. Turn off for a plain headline.
Enums\HeroStickerStyle|string|null
Sometimes sent:null when the site leaves it out. Dual layers a colored offset shadow behind the patch; single is one flat color. One of dual, single; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Patch background. Leave empty to use the site primary/accent color.
?string
Sometimes sent:null when the site leaves it out. Offset-shadow layer. Leave empty to use the site secondary color.
?bool
Sometimes sent:null when the site leaves it out. Hovering either the wordmark or the headline fills both at once. Only available when both are set to fill the whole word/headline on hover.
?bool
Sometimes sent:null when the site leaves it out. A bold social hashtag (e.g. #behindthescenes) with its own placement, fill, and optional pill background.
?string
Sometimes sent:null when the site leaves it out. Include the # — e.g. #behindthescenes.
Enums\HeroHashtagPlacement|string|null
Sometimes sent:null when the site leaves it out. Hashtag placement. One of aboveGhost, aboveHeadline, belowHeadline, aboveCta; a newer site may send others, so keep a fallback.
Enums\HeroHashtagSize|string|null
Sometimes sent:null when the site leaves it out. Smaller than the headline, but still a prominent element. One of large, medium, small; a newer site may send others, so keep a fallback.
Enums\HeroHashtagFill|string|null
Sometimes sent:null when the site leaves it out. Solid color, or the same outlined “ghost” treatment as the headline that fills on hover. (Ignored when the Solid pill background is used.) One of solid, letter, word; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional text color (or outline tint). Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the accent.
Enums\HeroHashtagBackground|string|null
Sometimes sent:null when the site leaves it out. An optional patch behind the hashtag — a softer take on the headline sticker. One of none, solid, outline; a newer site may send others, so keep a fallback.
Enums\HeroHashtagBgShape|string|null
Sometimes sent:null when the site leaves it out. Rounded pill or a squared patch like the headline sticker. One of pill, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Patch fill (solid) or border + text (outline). Leave empty to use the site accent color.
Enums\HeroHashtagTilt|string|null
Sometimes sent:null when the site leaves it out. A slight rotation, like the headline sticker. Works with or without a background. One of none, left, right; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Intro copy.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the intro text color. Leave empty for the muted default.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the muted default.
Enums\HeroIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold; a newer site may send others, so keep a fallback.
Enums\HeroIconPlacement|string|null
Sometimes sent:null when the site leaves it out. Where to place an optional Font Awesome icon. One of none, lockup, aboveHeadline, aboveGhost; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\HeroIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.
Enums\HeroIconAnimation|string|null
Sometimes sent:null when the site leaves it out. Icon animation. One of none, fa-beat, fa-bounce, fa-fade, fa-beat-fade, fa-flip, fa-shake, fa-spin; a newer site may send others, so keep a fallback.
Enums\HeroBackgroundType|string|null
Sometimes sent:null when the site leaves it out. Background type. One of gradient, image, video; a newer site may send others, so keep a fallback.
?ImageArea
Sometimes sent:null when the site leaves it out. An ImageArea. Used when background type is Image, and as the poster/fallback for Video. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first ImageArea above.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. Pick from the Videos library (⌘K → Videos). Short, muted loop; reduced-motion visitors get the fallback image instead. The related video documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Sometimes sent:null when the site leaves it out. Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.
Sometimes sent:null when the site leaves it out. A list of HeroWidgetHeroFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show HeroWidgetHeroFontOverridesItem (Fetchski\AttractCmsLaravel\Data\HeroWidgetHeroFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of HeroWidgetHeroFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show HeroWidgetHeroFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\HeroWidgetHeroFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\HeroPrimaryCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\HeroPrimaryCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\HeroPrimaryCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\HeroPrimaryCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\HeroPrimaryCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\HeroPrimaryCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\HeroPrimaryCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\HeroSecondaryCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\HeroSecondaryCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\HeroSecondaryCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\HeroSecondaryCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\HeroSecondaryCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\HeroSecondaryCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\HeroSecondaryCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show LayoutWidget (Fetchski\AttractCmsLaravel\Data\LayoutWidget)
A @apostrophecms/layout widget: its type and its own fields. A field left out takes its default.
Enums\LayoutWidgetType|string
Always sent. The widget’s type: always @apostrophecms/layout. One of @apostrophecms/layout; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?LayoutColumnArea
Sometimes sent:null when the site leaves it out. A LayoutColumnArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area.
Show LayoutColumnArea (Fetchski\AttractCmsLaravel\Data\LayoutColumnArea)
Enums\AfterContentAreaMetaType|string|null
Sometimes sent:null when the site leaves it out. Always area. One of area; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The area’s id, set by the site: leave it out when you write one.
Collection<int, LayoutColumnWidget>|null
Sometimes sent:null when the site leaves it out. A list of LayoutColumnWidget. The widgets, top to bottom. Each is an object with its type and that widget’s own fields; _id and metaType may be left out (the site sets them).
Show LayoutColumnWidget (Fetchski\AttractCmsLaravel\Data\LayoutColumnWidget)
A @apostrophecms/layout-column widget: its type and its own fields. A field left out takes its default.
Enums\LayoutColumnWidgetType|string
Always sent. The widget’s type: always @apostrophecms/layout-column. One of @apostrophecms/layout-column; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?int
Sometimes sent:null when the site leaves it out. Colstart.
?int
Sometimes sent:null when the site leaves it out. Colspan.
?int
Sometimes sent:null when the site leaves it out. Rowstart.
?int
Sometimes sent:null when the site leaves it out. Rowspan.
?int
Sometimes sent:null when the site leaves it out. Order.
?LayoutColumnContentArea
Sometimes sent:null when the site leaves it out. A LayoutColumnContentArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first LayoutColumnContentArea above.
?bool
Sometimes sent:null when the site leaves it out. Visible on tablet.
?bool
Sometimes sent:null when the site leaves it out. Visible on mobile.
Enums\Justify|string|null
Sometimes sent:null when the site leaves it out. Horizontal alignment. One of stretch, start, end, center; a newer site may send others, so keep a fallback.
Enums\Align|string|null
Sometimes sent:null when the site leaves it out. Vertical alignment. One of stretch, start, end, center; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show IntroWidget (Fetchski\AttractCmsLaravel\Data\IntroWidget)
A intro widget: its type and its own fields. A field left out takes its default.
Enums\IntroWidgetType|string
Always sent. The widget’s type: always intro. One of intro; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\IntroEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\IntroEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Headline.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the headline color. Leave empty to track the theme’s text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.
Enums\IntroHeadlineWeight|string|null
Sometimes sent:null when the site leaves it out. Headline weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Body copy.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the body text color. Leave empty for the muted default.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.
Enums\IntroBodyWeight|string|null
Sometimes sent:null when the site leaves it out. Body weight. One of normal, medium, semibold, bold; a newer site may send others, so keep a fallback.
Enums\IntroPhotoPlacement|string|null
Sometimes sent:null when the site leaves it out. Where the optional photo sits. Left/right place it beside the text; Full background fills the whole section behind the text (with a readability overlay). One of none, left, right, background; a newer site may send others, so keep a fallback.
?ImageArea
Sometimes sent:null when the site leaves it out. An ImageArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first ImageArea above.
Enums\IntroPhotoCorners|string|null
Sometimes sent:null when the site leaves it out. Photo corners. One of rounded, squared; a newer site may send others, so keep a fallback.
Enums\IntroPhotoFrame|string|null
Sometimes sent:null when the site leaves it out. Border draws a frame around the photo; Offset adds a refined offset accent frame behind it. One of none, border, offset; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Border / offset-frame color. Leave empty to use the site accent color.
Enums\IntroPhotoTilt|string|null
Sometimes sent:null when the site leaves it out. A slight rotation for a more playful look. One of none, left, right; a newer site may send others, so keep a fallback.
Enums\IntroPhotoHover|string|null
Sometimes sent:null when the site leaves it out. Photo hover effect. One of none, lift, zoom, tilt, glow, lift-glow, zoom-glow; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Scrim behind the text over a full-background photo. Leave empty to use the dark surface color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme overlay, then the light surface color.
?float
Sometimes sent:null when the site leaves it out. Overlay opacity (%). 0 to 100.
Enums\IntroBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\IntroBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of IntroWidgetIntroFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show IntroWidgetIntroFontOverridesItem (Fetchski\AttractCmsLaravel\Data\IntroWidgetIntroFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of IntroWidgetIntroFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show IntroWidgetIntroFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\IntroWidgetIntroFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show FeatureWidget (Fetchski\AttractCmsLaravel\Data\FeatureWidget)
A feature widget: its type and its own fields. A field left out takes its default.
Enums\FeatureWidgetType|string
Always sent. The widget’s type: always feature. One of feature; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
Enums\FeatureColumns|string|null
Sometimes sent:null when the site leaves it out. Auto fits as many as comfortably fit and works for any number of cards. Or lock a maximum per row. One of auto, 2, 3, 4; a newer site may send others, so keep a fallback.
Enums\FeatureGap|string|null
Sometimes sent:null when the site leaves it out. Gap between cards. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
Enums\FeatureCardSize|string|null
Sometimes sent:null when the site leaves it out. Scales padding, icon, title, and the index numeral together. One of small, medium, large; a newer site may send others, so keep a fallback.
Enums\FeatureCardStyle|string|null
Sometimes sent:null when the site leaves it out. The card treatment. Poster (the default) frames the card with an accent keyline; Raised is a quiet lit card; Luxe a frosted glass panel; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay; a newer site may send others, so keep a fallback.
Enums\FeatureCardStyleRadius|string|null
Sometimes sent:null when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\FeatureCardStyleForgeScope|string|null
Sometimes sent:null when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame; a newer site may send others, so keep a fallback.
Enums\FeatureCardStyleForgeWeight|string|null
Sometimes sent:null when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of fine, medium, bold; a newer site may send others, so keep a fallback.
Enums\FeatureCardHover|string|null
Sometimes sent:null when the site leaves it out. How a card reacts on hover. Pop is the lift + hard offset shadow; Glow is a soft accent halo. One of none, lift, pop, glow, border; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Border / shadow / glow color on hover. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
?bool
Sometimes sent:null when the site leaves it out. A big outlined numeral on each card (01, 02, …). Great for step-by-step sequences; turn off when the cards aren’t ordered.
Enums\FeatureNumberFill|string|null
Sometimes sent:null when the site leaves it out. Same treatment as the hero ghost text: all numbers solid, outlined and filling on hover, or always outlined. One of solid, hover, outline; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Tints the numeral fill + outline. Leave empty to track the theme’s text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the card title color. Leave empty to track the theme’s text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.
Enums\FeatureTitleWeight|string|null
Sometimes sent:null when the site leaves it out. Title weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the card text color. Leave empty for the muted default.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.
Enums\FeatureTextWeight|string|null
Sometimes sent:null when the site leaves it out. Text weight. One of normal, medium, semibold, bold; a newer site may send others, so keep a fallback.
Sometimes sent:null when the site leaves it out. A list of FeatureWidgetFeatureCardsItem. Feature cards.
Show FeatureWidgetFeatureCardsItem (Fetchski\AttractCmsLaravel\Data\FeatureWidgetFeatureCardsItem)
string
Always sent. Title.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\IconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.
Enums\IconAnimation|string|null
Sometimes sent:null when the site leaves it out. Icon animation. One of none, fa-beat, fa-bounce, fa-fade, fa-beat-fade, fa-flip, fa-shake, fa-spin; a newer site may send others, so keep a fallback.
Enums\IconSize|string|null
Sometimes sent:null when the site leaves it out. Relative to the component’s base icon size. One of default, sm, lg, xl, 2xl, 2x, 3x, 4x, 5x; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Text.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\FeatureBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\FeatureBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of FeatureWidgetFeatureFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show FeatureWidgetFeatureFontOverridesItem (Fetchski\AttractCmsLaravel\Data\FeatureWidgetFeatureFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of FeatureWidgetFeatureFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show FeatureWidgetFeatureFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\FeatureWidgetFeatureFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show StatsWidget (Fetchski\AttractCmsLaravel\Data\StatsWidget)
A stats widget: its type and its own fields. A field left out takes its default.
Enums\StatsWidgetType|string
Always sent. The widget’s type: always stats. One of stats; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. A small label above the heading (e.g. “By the numbers”).
?string
Sometimes sent:null when the site leaves it out. Eyebrow.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\StatsEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\StatsEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show just the numbers.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\StatsHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\StatsColumns|string|null
Sometimes sent:null when the site leaves it out. Auto fits as many as comfortably fit and works for any number of stats. Or lock a maximum per row. One of auto, 2, 3, 4; a newer site may send others, so keep a fallback.
Enums\StatsGap|string|null
Sometimes sent:null when the site leaves it out. Gap between stats. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
Enums\StatsSize|string|null
Sometimes sent:null when the site leaves it out. The baseline scale for the whole stat (value / icon / label / description stay proportional). Fine-tune any single element with its own size control below. One of small, medium, large; a newer site may send others, so keep a fallback.
Enums\StatsAlign|string|null
Sometimes sent:null when the site leaves it out. Alignment. One of center, left; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. A hairline rule between each stat — the classic “by the numbers” rail.
?bool
Sometimes sent:null when the site leaves it out. Numbers tick up from zero when the band scrolls into view. Non-numeric values and reduced-motion visitors simply show the final value.
Enums\StatsIconSize|string|null
Sometimes sent:null when the site leaves it out. Size of the icon above each number, independent of the overall stat size. One of auto, sm, md, lg, xl, xxl; a newer site may send others, so keep a fallback.
Enums\StatsIconGap|string|null
Sometimes sent:null when the site leaves it out. Space between the icon and the number below it. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
Enums\StatsValueSize|string|null
Sometimes sent:null when the site leaves it out. Value size. One of auto, xs, sm, md, lg, xl; a newer site may send others, so keep a fallback.
Enums\StatsValueWeight|string|null
Sometimes sent:null when the site leaves it out. Value weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The big numeral. Optional — leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\StatsLabelSize|string|null
Sometimes sent:null when the site leaves it out. Label size. One of auto, xs, sm, md, lg, xl; a newer site may send others, so keep a fallback.
Enums\StatsLabelWeight|string|null
Sometimes sent:null when the site leaves it out. Label weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\StatsDescriptionSize|string|null
Sometimes sent:null when the site leaves it out. Description size. One of auto, xs, sm, md, lg, xl; a newer site may send others, so keep a fallback.
Enums\StatsDescriptionWeight|string|null
Sometimes sent:null when the site leaves it out. Description weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Collection<int, StatsWidgetStatsItem>|null
Sometimes sent:null when the site leaves it out. A list of StatsWidgetStatsItem. Stats.
Show StatsWidgetStatsItem (Fetchski\AttractCmsLaravel\Data\StatsWidgetStatsItem)
string
Always sent. The number, e.g. 500, 4.9, 12 — symbols go in the prefix/suffix so the count-up animates the number alone.
string
Always sent. Label.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
?string
Sometimes sent:null when the site leaves it out. Optional Font Awesome icon shown above the number (e.g. star, bolt, chart-line). Leave empty for no icon.
Enums\IconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.
?string
Sometimes sent:null when the site leaves it out. Optional, shown before the number (e.g. $, ~, >). Kept out of the count-up.
?string
Sometimes sent:null when the site leaves it out. Optional, shown after the number (e.g. +, %, k, yrs, ★).
?string
Sometimes sent:null when the site leaves it out. Optional small text under the label.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\StatsBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\StatsBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of StatsWidgetStatsFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show StatsWidgetStatsFontOverridesItem (Fetchski\AttractCmsLaravel\Data\StatsWidgetStatsFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of StatsWidgetStatsFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show StatsWidgetStatsFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\StatsWidgetStatsFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\StatsCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\StatsCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\StatsCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\StatsCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\StatsCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\StatsCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\StatsCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show LogosWidget (Fetchski\AttractCmsLaravel\Data\LogosWidget)
A logos widget: its type and its own fields. A field left out takes its default.
Enums\LogosWidgetType|string
Always sent. The widget’s type: always logos. One of logos; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. A small label above the heading (e.g. “Trusted by”).
?string
Sometimes sent:null when the site leaves it out. Eyebrow.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\LogosEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\LogosEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show just the logos.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\LogosHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\LogosIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\LogosDisplay|string|null
Sometimes sent:null when the site leaves it out. A slow scrolling ribbon (marquee) or a calm static grid. One of marquee, grid; a newer site may send others, so keep a fallback.
Enums\LogosSpeed|string|null
Sometimes sent:null when the site leaves it out. Marquee speed. One of slow, normal, fast; a newer site may send others, so keep a fallback.
Enums\LogosDirection|string|null
Sometimes sent:null when the site leaves it out. Marquee direction. One of left, right; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.
Enums\LogosColumns|string|null
Sometimes sent:null when the site leaves it out. Auto fits as many as comfortably fit and works for any number of logos. Or lock a maximum per row. One of auto, 3, 4, 5, 6; a newer site may send others, so keep a fallback.
Enums\LogosGap|string|null
Sometimes sent:null when the site leaves it out. Gap between logos. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
Enums\LogosSize|string|null
Sometimes sent:null when the site leaves it out. The height each logo is scaled to (width follows the logo’s aspect ratio). One of small, medium, large; a newer site may send others, so keep a fallback.
Enums\LogosAlign|string|null
Sometimes sent:null when the site leaves it out. Aligns the eyebrow / heading / intro (and the grid when there are few logos). One of center, left; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Sets every logo on a raised, bordered card. Off = logos sit straight on the background.
?bool
Sometimes sent:null when the site leaves it out. Mutes the logos to grayscale and dims them, returning to full color on hover — the classic logo-wall look.
Collection<int, LogosWidgetLogosItem>|null
Sometimes sent:null when the site leaves it out. A list of LogosWidgetLogosItem. Logos.
Show LogosWidgetLogosItem (Fetchski\AttractCmsLaravel\Data\LogosWidgetLogosItem)
Collection<int, array<string, mixed>>
Always sent. Pick a logo from the Images library. A transparent PNG or an SVG works best. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
string
Always sent. Company / partner / certification name — used as the image alt text and the link title.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
?string
Sometimes sent:null when the site leaves it out. Make this logo a link, e.g. to the partner’s site. Opens in a new tab for external URLs.
?bool
Sometimes sent:null when the site leaves it out. For dark / black logos that would vanish on the dark theme — flips them to light. Leave off for full-color or white logos.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\LogosBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\LogosBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of LogosWidgetLogosFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show LogosWidgetLogosFontOverridesItem (Fetchski\AttractCmsLaravel\Data\LogosWidgetLogosFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of LogosWidgetLogosFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show LogosWidgetLogosFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\LogosWidgetLogosFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\LogosCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\LogosCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\LogosCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\LogosCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\LogosCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\LogosCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\LogosCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show StepsWidget (Fetchski\AttractCmsLaravel\Data\StepsWidget)
A steps widget: its type and its own fields. A field left out takes its default.
Enums\StepsWidgetType|string
Always sent. The widget’s type: always steps. One of steps; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. A small label above the heading (e.g. “How it works”).
?string
Sometimes sent:null when the site leaves it out. Eyebrow.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\StepsEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\StepsEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show just the steps.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\StepsHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\StepsHeadingSize|string|null
Sometimes sent:null when the site leaves it out. Heading size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\StepsIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\StepsIntroSize|string|null
Sometimes sent:null when the site leaves it out. Intro size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
Enums\StepsLayout|string|null
Sometimes sent:null when the site leaves it out. Horizontal lays the steps across a row (marker on top); Vertical stacks them as a classic timeline (marker on the left). One of horizontal, vertical; a newer site may send others, so keep a fallback.
Enums\StepsColumns|string|null
Sometimes sent:null when the site leaves it out. Horizontal only. Auto fits as many as comfortably fit and works for any number of steps. Or lock a maximum per row. One of auto, 2, 3, 4; a newer site may send others, so keep a fallback.
Enums\StepsGap|string|null
Sometimes sent:null when the site leaves it out. Gap between steps. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
Enums\StepsAlign|string|null
Sometimes sent:null when the site leaves it out. Horizontal only — aligns the section header and each step’s text. (Vertical is always left-aligned beside its marker.) One of center, left; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. A line linking the step markers into a timeline (down the markers when vertical, across them when horizontal).
Enums\StepsCardStyle|string|null
Sometimes sent:null when the site leaves it out. Plain keeps the connector-linked timeline (just marker + text, no card). Every other style boxes each step — Raised is a quiet lit card, Luxe a frosted glass panel, Outline a plaque frame, Spine adds a color rail, Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay; a newer site may send others, so keep a fallback.
Enums\StepsCardStyleRadius|string|null
Sometimes sent:null when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\StepsCardStyleForgeScope|string|null
Sometimes sent:null when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame; a newer site may send others, so keep a fallback.
Enums\StepsCardStyleForgeWeight|string|null
Sometimes sent:null when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of fine, medium, bold; a newer site may send others, so keep a fallback.
Enums\StepsCardHover|string|null
Sometimes sent:null when the site leaves it out. What a boxed step does on hover (applies when Step style is not Plain). Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight; a newer site may send others, so keep a fallback.
Enums\StepsMarker|string|null
Sometimes sent:null when the site leaves it out. Number auto-counts 1, 2, 3…; Icon shows each step’s icon (falling back to the number when a step has none); None hides the marker badge. One of number, icon, none; a newer site may send others, so keep a fallback.
Enums\StepsMarkerStyle|string|null
Sometimes sent:null when the site leaves it out. Soft is a tinted accent badge; Filled is a solid accent badge; Outline is a bordered badge. One of soft, filled, outline; a newer site may send others, so keep a fallback.
Enums\StepsMarkerShape|string|null
Sometimes sent:null when the site leaves it out. Marker shape. One of circle, rounded, square; a newer site may send others, so keep a fallback.
Enums\StepsMarkerSize|string|null
Sometimes sent:null when the site leaves it out. Marker size. One of small, medium, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Color for the marker badge and the connector line. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme accent.
Enums\StepsTitleSize|string|null
Sometimes sent:null when the site leaves it out. Title size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
Enums\StepsTitleWeight|string|null
Sometimes sent:null when the site leaves it out. Title weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\StepsBodySize|string|null
Sometimes sent:null when the site leaves it out. Body size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
Enums\StepsBodyWeight|string|null
Sometimes sent:null when the site leaves it out. Body weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Collection<int, StepsWidgetStepsItemsItem>|null
Sometimes sent:null when the site leaves it out. A list of StepsWidgetStepsItemsItem. Each item is one step in the process. They render in this order; the number marker counts automatically.
Show StepsWidgetStepsItemsItem (Fetchski\AttractCmsLaravel\Data\StepsWidgetStepsItemsItem)
string
Always sent. Title.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
?string
Sometimes sent:null when the site leaves it out. Optional Font Awesome icon for this step (e.g. calendar-check, circle-check, gear). Shown in the marker when the section marker is set to “Icon”; otherwise the step is numbered.
Enums\IconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.
?string
Sometimes sent:null when the site leaves it out. Overrides the auto number for this step’s marker, e.g. “01” or “A”. Leave empty to auto-count.
?string
Sometimes sent:null when the site leaves it out. Optional description under the title.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\StepsBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\StepsBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of StepsWidgetStepsFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show StepsWidgetStepsFontOverridesItem (Fetchski\AttractCmsLaravel\Data\StepsWidgetStepsFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of StepsWidgetStepsFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show StepsWidgetStepsFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\StepsWidgetStepsFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\StepsCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\StepsCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\StepsCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\StepsCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\StepsCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\StepsCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\StepsCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show MediaTextWidget (Fetchski\AttractCmsLaravel\Data\MediaTextWidget)
A media-text widget: its type and its own fields. A field left out takes its default.
Enums\MediaTextWidgetType|string
Always sent. The widget’s type: always media-text. One of media-text; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. A small label above the section heading (e.g. “Why us”).
?string
Sometimes sent:null when the site leaves it out. Eyebrow.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\MediaTextEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\MediaTextEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional section heading above the blocks. Leave empty to show just the blocks.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\MediaTextHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\MediaTextHeadingSize|string|null
Sometimes sent:null when the site leaves it out. Heading size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\MediaTextIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\MediaTextIntroSize|string|null
Sometimes sent:null when the site leaves it out. Intro size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
Enums\MediaTextAlign|string|null
Sometimes sent:null when the site leaves it out. Aligns the section header and the text inside each block. (Side-by-side rows usually read best left-aligned.) One of left, center; a newer site may send others, so keep a fallback.
Enums\MediaTextRatio|string|null
Sometimes sent:null when the site leaves it out. For media-left / media-right rows: how the two columns share the width. One of balanced, media, text; a newer site may send others, so keep a fallback.
Enums\MediaTextVAlign|string|null
Sometimes sent:null when the site leaves it out. For media-left / media-right rows: how the text lines up against the media. One of center, top; a newer site may send others, so keep a fallback.
Enums\MediaTextMediaRatio|string|null
Sometimes sent:null when the site leaves it out. Aspect ratio of the media frame. Auto keeps an image at its natural shape (videos and embeds always use a ratio). One of auto, landscape, standard, square, portrait, wide; a newer site may send others, so keep a fallback.
Enums\MediaTextMediaRadius|string|null
Sometimes sent:null when the site leaves it out. Media corners. One of large, rounded, slight, square; a newer site may send others, so keep a fallback.
Enums\MediaTextGap|string|null
Sometimes sent:null when the site leaves it out. Gap between blocks. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. A hairline rule between blocks.
?string
Sometimes sent:null when the site leaves it out. Each block’s eyebrow color. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\MediaTextBlockEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Block eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\MediaTextBlockHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Block heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\MediaTextBlockHeadingSize|string|null
Sometimes sent:null when the site leaves it out. Block heading size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\MediaTextBodyWeight|string|null
Sometimes sent:null when the site leaves it out. Block body weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\MediaTextBodySize|string|null
Sometimes sent:null when the site leaves it out. Block body size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
Sometimes sent:null when the site leaves it out. A list of MediaTextWidgetMediaTextBlocksItem. Each block is one media + text row. They render top to bottom in this order; alternate “Media left” / “Media right” for a classic zig-zag.
Show MediaTextWidgetMediaTextBlocksItem (Fetchski\AttractCmsLaravel\Data\MediaTextWidgetMediaTextBlocksItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Layout|string|null
Sometimes sent:null when the site leaves it out. Media left / right place the media beside the text; Stacked puts media above the text; Full-bleed runs the media edge-to-edge with the text below. One of media-left, media-right, stacked, full; a newer site may send others, so keep a fallback.
Sometimes sent:null when the site leaves it out. Pick where the media comes from. “None” makes this a text-only block. One of image, video, embed, none; a newer site may send others, so keep a fallback.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. Pick an image from the Images library. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Sometimes sent:null when the site leaves it out. Describe the image for screen readers and SEO. Leave empty to use the library image’s own alt text. Set to a single space for a purely decorative image.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. Pick a clip from the Videos library (⌘K → Videos). The related video documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Sometimes sent:null when the site leaves it out. Play automatically as a muted, looping background clip (a pause button is shown, and reduced-motion visitors get the poster image). Off = a normal video with play controls.
Sometimes sent:null when the site leaves it out. A small label above the block heading.
?string
Sometimes sent:null when the site leaves it out. The block’s headline.
?string
Sometimes sent:null when the site leaves it out. A paragraph or two. Leave a blank line between paragraphs.
?string
Sometimes sent:null when the site leaves it out. This block’s button text. Leave empty (with no link) to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/about-us) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Open button in new tab.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\MediaTextBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\MediaTextBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of MediaTextWidgetMediaTextFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show MediaTextWidgetMediaTextFontOverridesItem (Fetchski\AttractCmsLaravel\Data\MediaTextWidgetMediaTextFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of MediaTextWidgetMediaTextFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show MediaTextWidgetMediaTextFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\MediaTextWidgetMediaTextFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\MediaTextCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\MediaTextCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\MediaTextCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\MediaTextCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\MediaTextCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\MediaTextCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\MediaTextCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show DeviceMockWidget (Fetchski\AttractCmsLaravel\Data\DeviceMockWidget)
A device-mock widget: its type and its own fields. A field left out takes its default.
Enums\DeviceMockWidgetType|string
Always sent. The widget’s type: always device-mock. One of device-mock; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
Enums\DeviceMockArrangement|string|null
Sometimes sent:null when the site leaves it out. Which devices to show. Duo overlaps a phone on the corner of a desktop browser; Trio adds a TV behind them (on narrow screens Trio drops the TV and shows as a Duo). Each device used gets its own screen tab. One of duo, trio, desktop, phone, tv; a newer site may send others, so keep a fallback.
Enums\DeviceMockTextPlacement|string|null
Sometimes sent:null when the site leaves it out. Where the eyebrow / heading / intro / button sit. Left or right puts the text in a column beside the devices (stacked above them on narrow screens); None shows the devices only. One of above, left, right, none; a newer site may send others, so keep a fallback.
Enums\DeviceMockSize|string|null
Sometimes sent:null when the site leaves it out. How large the devices render within the section. One of compact, normal, large; a newer site may send others, so keep a fallback.
Enums\DeviceMockBrowserRatio|string|null
Sometimes sent:null when the site leaves it out. The browser window’s content area. Match your desktop captures. One of 16:10, 16:9; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The address shown in the browser toolbar — decoration only, not a link.
?bool
Sometimes sent:null when the site leaves it out. Adds a time / signal / battery bar across the top of the phone screen. Leave off for native phone screenshots — they already include the real status bar.
?string
Sometimes sent:null when the site leaves it out. Status bar time.
?bool
Sometimes sent:null when the site leaves it out. Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.
?bool
Sometimes sent:null when the site leaves it out. A small label above the heading (e.g. “Product tour”).
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\DeviceMockEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\DeviceMockEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show just the devices.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\DeviceMockHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\DeviceMockHeadingSize|string|null
Sometimes sent:null when the site leaves it out. Heading size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short paragraph under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\DeviceMockIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\DeviceMockIntroSize|string|null
Sometimes sent:null when the site leaves it out. Intro size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. A short line shown under the devices.
Enums\DeviceMockTvMediaType|string|null
Sometimes sent:null when the site leaves it out. A still screenshot, or a short looping screen recording. One of image, video; a newer site may send others, so keep a fallback.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. Use a native-resolution 16:9 capture of the screen with NO device frame (the frame is drawn for you) — e.g. 1920 × 1080 or 3840 × 2160. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Sometimes sent:null when the site leaves it out. Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution 16:9 capture of the screen with NO device frame (the frame is drawn for you) — e.g. 1920 × 1080 or 3840 × 2160. The related video documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Sometimes sent:null when the site leaves it out. Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.
Enums\DeviceMockTvFit|string|null
Sometimes sent:null when the site leaves it out. Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of cover, contain; a newer site may send others, so keep a fallback.
Enums\DeviceMockTvAnchor|string|null
Sometimes sent:null when the site leaves it out. Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of top, center, bottom; a newer site may send others, so keep a fallback.
Enums\DeviceMockDesktopMediaType|string|null
Sometimes sent:null when the site leaves it out. A still screenshot, or a short looping screen recording. One of image, video; a newer site may send others, so keep a fallback.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. Use a native-resolution capture of the page content only — no browser toolbar and no device frame (both are drawn for you). 16:10 (e.g. 2880 × 1800) or 16:9 (e.g. 2560 × 1440), matching the “Desktop screen shape” setting. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Sometimes sent:null when the site leaves it out. Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution capture of the page content only — no browser toolbar and no device frame (both are drawn for you). 16:10 (e.g. 2880 × 1800) or 16:9 (e.g. 2560 × 1440), matching the “Desktop screen shape” setting. The related video documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Sometimes sent:null when the site leaves it out. Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.
Enums\DeviceMockDesktopFit|string|null
Sometimes sent:null when the site leaves it out. Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of cover, contain; a newer site may send others, so keep a fallback.
Enums\DeviceMockDesktopAnchor|string|null
Sometimes sent:null when the site leaves it out. Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of top, center, bottom; a newer site may send others, so keep a fallback.
Enums\DeviceMockPhoneMediaType|string|null
Sometimes sent:null when the site leaves it out. A still screenshot, or a short looping screen recording. One of image, video; a newer site may send others, so keep a fallback.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. Use a native-resolution portrait screenshot with NO device frame (the frame is drawn for you) — e.g. 1179 × 2556 or 1290 × 2796 (about 9:19.5). The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Sometimes sent:null when the site leaves it out. Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution portrait screenshot with NO device frame (the frame is drawn for you) — e.g. 1179 × 2556 or 1290 × 2796 (about 9:19.5). The related video documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Sometimes sent:null when the site leaves it out. Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.
Enums\DeviceMockPhoneFit|string|null
Sometimes sent:null when the site leaves it out. Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of cover, contain; a newer site may send others, so keep a fallback.
Enums\DeviceMockPhoneAnchor|string|null
Sometimes sent:null when the site leaves it out. Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of top, center, bottom; a newer site may send others, so keep a fallback.
Enums\DeviceMockBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\DeviceMockBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of DeviceMockWidgetDeviceMockFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show DeviceMockWidgetDeviceMockFontOverridesItem (Fetchski\AttractCmsLaravel\Data\DeviceMockWidgetDeviceMockFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\DeviceMockCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\DeviceMockCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\DeviceMockCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\DeviceMockCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\DeviceMockCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\DeviceMockCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\DeviceMockCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show TeamWidget (Fetchski\AttractCmsLaravel\Data\TeamWidget)
A team widget: its type and its own fields. A field left out takes its default.
Enums\TeamWidgetType|string
Always sent. The widget’s type: always team. One of team; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\TeamEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\TeamEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show just the team.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\TeamIntroSize|string|null
Sometimes sent:null when the site leaves it out. Intro size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\TeamAlign|string|null
Sometimes sent:null when the site leaves it out. Header alignment. One of center, left; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Show only members you have flagged “Featured” in the Team Members manager — e.g. a short leadership row on the home page.
?int
Sometimes sent:null when the site leaves it out. The most members to show, in the manager’s sort order. 1 to 50.
Enums\TeamLayout|string|null
Sometimes sent:null when the site leaves it out. Grid: a tidy multi-row grid (the full team page). Carousel: a continuous auto-scrolling marquee (needs site animations enabled — falls back to the grid when they are off). Spotlight: featured members large on top, the rest in a smaller grid. List: wide rows with the full bio. Scatter: a playful arrangement with varied spacing so the cards float freely. One of grid, carousel, spotlight, list, scatter; a newer site may send others, so keep a fallback.
Enums\TeamColumns|string|null
Sometimes sent:null when the site leaves it out. How many cards per row. Auto fits as many as comfortably fit (the Scatter layout composes on three columns when set to Auto). One of auto, 2, 3, 4; a newer site may send others, so keep a fallback.
Enums\TeamSpotlightHeroes|string|null
Sometimes sent:null when the site leaves it out. How many members lead the section at full size. Members flagged “Featured” fill the spots first, in the manager’s sort order; any extra featured members join the rows below. One of 1, 2; a newer site may send others, so keep a fallback.
Enums\TeamSpotlightColumns|string|null
Sometimes sent:null when the site leaves it out. How many of the remaining members sit on each row under the featured spots. One of 2, 3, 4, 5; a newer site may send others, so keep a fallback.
Enums\TeamSpeed|string|null
Sometimes sent:null when the site leaves it out. How fast the carousel auto-scrolls. One of vslow, slow, normal, fast; a newer site may send others, so keep a fallback.
Enums\TeamDirection|string|null
Sometimes sent:null when the site leaves it out. Scroll direction. One of left, right; a newer site may send others, so keep a fallback.
Enums\TeamScatter|string|null
Sometimes sent:null when the site leaves it out. How far the cards drift from a tidy grid. Subtle keeps a loose grid; Wild pushes the offsets to their playful maximum. One of subtle, playful, wild; a newer site may send others, so keep a fallback.
Enums\TeamGap|string|null
Sometimes sent:null when the site leaves it out. Gap between cards. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
Enums\TeamCardLayout|string|null
Sometimes sent:null when the site leaves it out. Portrait: the photo on top, name/role/bio below — the classic team card. Overlay: a full-bleed photo with a solid color panel over its lower edge holding the name and role. Profile: a horizontal bar — avatar left, name/role/tagline right. Roster: minimal — just the avatar, name and role. (The List section layout always uses its own wide row.) One of portrait, overlay, profile, roster; a newer site may send others, so keep a fallback.
Enums\TeamPhotoAspect|string|null
Sometimes sent:null when the site leaves it out. The photo’s aspect ratio on the photo-led card layouts. One of square, portrait, tall; a newer site may send others, so keep a fallback.
Enums\TeamAvatarShape|string|null
Sometimes sent:null when the site leaves it out. The photo’s outline. Squircle is a soft superellipse-style corner (approximated with heavy rounding). One of circle, rounded, squircle, square; a newer site may send others, so keep a fallback.
Enums\TeamAvatarSize|string|null
Sometimes sent:null when the site leaves it out. Avatar size. One of small, medium, large, xlarge; a newer site may send others, so keep a fallback.
Enums\TeamAvatarBorder|string|null
Sometimes sent:null when the site leaves it out. A ring around the photo in the avatar color. One of none, hairline, thin, bold; a newer site may send others, so keep a fallback.
Enums\TeamAvatarTreatment|string|null
Sometimes sent:null when the site leaves it out. A flat color accent behind the photo. Panel offsets a solid block behind it; Halo draws a soft concentric disc. Both use the avatar color. One of none, panel, halo; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the border and the backdrop treatment. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
?bool
Sometimes sent:null when the site leaves it out. Show role / title.
?bool
Sometimes sent:null when the site leaves it out. Shown on the Portrait and Profile cards and the List rows. The Overlay and Roster layouts stay bio-free by design.
?bool
Sometimes sent:null when the site leaves it out. The member’s one-liner, shown on the Profile and Roster cards and the List rows.
?bool
Sometimes sent:null when the site leaves it out. Cross-fades to a member’s alternate photo on hover (set per member; does nothing for members without one, and stays off for visitors who prefer reduced motion).
Enums\TeamCardStyle|string|null
Sometimes sent:null when the site leaves it out. The card treatment. Outline (the default) is a plaque frame — a framed-portrait look; Raised is a quiet lit card; Luxe a frosted glass panel; Ticket/Bracket/Inlay are the graphic showstoppers. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, inlay; a newer site may send others, so keep a fallback.
Enums\TeamCardStyleRadius|string|null
Sometimes sent:null when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamCardHover|string|null
Sometimes sent:null when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight; a newer site may send others, so keep a fallback.
Enums\TeamCardAlign|string|null
Sometimes sent:null when the site leaves it out. How the name, role and bio align inside each card (the Profile card and List rows are always left-aligned beside the avatar). One of center, left; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — the lettered-avatar fallback background and the role color default. Leave empty to use the brand accent. (The icon row has its own colors on the Social links tab.)
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
?string
Sometimes sent:null when the site leaves it out. The solid panel over the photo on the Overlay card. Leave empty to use the card color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamNameSize|string|null
Sometimes sent:null when the site leaves it out. Name size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\TeamNameWeight|string|null
Sometimes sent:null when the site leaves it out. Name weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamRoleSize|string|null
Sometimes sent:null when the site leaves it out. Role size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\TeamRoleWeight|string|null
Sometimes sent:null when the site leaves it out. Role weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamBioSize|string|null
Sometimes sent:null when the site leaves it out. Bio size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\TeamBioWeight|string|null
Sometimes sent:null when the site leaves it out. Bio weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TeamBioClamp|string|null
Sometimes sent:null when the site leaves it out. Cap each bio at this many lines (the rest is truncated with an ellipsis) so one long bio can’t blow up the card height. The List layout always shows the full bio. One of none, 2, 3, 4, 6; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the faint text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
?bool
Sometimes sent:null when the site leaves it out. The member’s social profile icons (set per member in the Team Members manager).
?bool
Sometimes sent:null when the site leaves it out. Off by default — turns each member’s email and phone (when set) into icon links. Only enable when you want those details public.
Enums\TeamSocialVariant|string|null
Sometimes sent:null when the site leaves it out. Icon style. One of bare, outline, solid; a newer site may send others, so keep a fallback.
Enums\TeamSocialSize|string|null
Sometimes sent:null when the site leaves it out. Icon size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\TeamSocialSpacing|string|null
Sometimes sent:null when the site leaves it out. Gap between the icons. One of tight, normal, loose; a newer site may send others, so keep a fallback.
Enums\TeamSocialHover|string|null
Sometimes sent:null when the site leaves it out. Hover to each platform’s own brand color, or to the site accent (or a chosen hover color). One of brand, accent; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Resting icon color. Leave empty for the muted default.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.
?string
Sometimes sent:null when the site leaves it out. Used when “Hover color” is Accent / custom. Leave empty for the site accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\TeamBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\TeamBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of TeamWidgetTeamFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show TeamWidgetTeamFontOverridesItem (Fetchski\AttractCmsLaravel\Data\TeamWidgetTeamFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of TeamWidgetTeamFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show TeamWidgetTeamFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\TeamWidgetTeamFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\TeamCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\TeamCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\TeamCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\TeamCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\TeamCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\TeamCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\TeamCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show FaqWidget (Fetchski\AttractCmsLaravel\Data\FaqWidget)
A faq widget: its type and its own fields. A field left out takes its default.
Enums\FaqWidgetType|string
Always sent. The widget’s type: always faq. One of faq; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\FaqEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\FaqEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show just the questions.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\FaqIntroSize|string|null
Sometimes sent:null when the site leaves it out. Intro size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\FaqAlign|string|null
Sometimes sent:null when the site leaves it out. The Split layout always sets its header column left. One of center, left; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Show only questions you have flagged “Featured” in the FAQs manager — e.g. a short top-questions block on the home page, linking out to the full FAQ page.
?int
Sometimes sent:null when the site leaves it out. The most questions to show, in the manager’s sort order. Raise it for a full FAQ page. 1 to 50.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. Optional filter. Leave empty to show questions from every category. Manage the list under FAQ Categories. The related faq-category documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document; a document the site can’t find is left out.
Enums\FaqGroupBy|string|null
Sometimes sent:null when the site leaves it out. By category renders a subheading per FAQ category, in the order picked in the category filter (or, with no filter, the FAQ Categories sort order); questions without a category are listed last. One of none, category; a newer site may send others, so keep a fallback.
Enums\FaqLayout|string|null
Sometimes sent:null when the site leaves it out. Accordion: a single centered column of collapsing questions — the classic FAQ. Split: the header (and button) sit in a left column with the accordion beside them. Two columns: the accordion flows across two columns. Open panels: every answer visible in a card grid — no collapsing. One of accordion, split, columns, panels; a newer site may send others, so keep a fallback.
Enums\FaqPanelColumns|string|null
Sometimes sent:null when the site leaves it out. How many open panels sit per row (they stack on small screens). One of 1, 2, 3; a newer site may send others, so keep a fallback.
Enums\FaqOpenMode|string|null
Sometimes sent:null when the site leaves it out. One at a time closes the previous answer when a new one opens; Independent lets visitors hold several open. One of single, multiple; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Starts the section with the first answer expanded so the block never reads as an empty list of rows.
Enums\FaqMarker|string|null
Sometimes sent:null when the site leaves it out. The disclosure marker on each question. Plus rotates into a close mark; Chevron flips. One of plus, chevron; a newer site may send others, so keep a fallback.
Enums\FaqGap|string|null
Sometimes sent:null when the site leaves it out. Space between questions. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Adds this section’s questions to the page’s schema.org FAQPage markup so search engines can read them (all FAQ sections on a page share one FAQPage block). Costs nothing when on; turn off only to exclude these questions.
Enums\FaqCardStyle|string|null
Sometimes sent:null when the site leaves it out. The question-row treatment. Plain (the default) is the classic divided list — hairlines between questions. Any other style turns each question into a card: Raised is a quiet lit card, Outline a framed row, Luxe frosted glass; Ticket/Bracket/Inlay are the graphic showstoppers. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay; a newer site may send others, so keep a fallback.
Enums\FaqCardStyleRadius|string|null
Sometimes sent:null when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqCardStyleForgeScope|string|null
Sometimes sent:null when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame; a newer site may send others, so keep a fallback.
Enums\FaqCardStyleForgeWeight|string|null
Sometimes sent:null when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of fine, medium, bold; a newer site may send others, so keep a fallback.
Enums\FaqCardHover|string|null
Sometimes sent:null when the site leaves it out. What a question row does on hover. None (the default) keeps the accordion calm — the open/close motion is the interaction. The card effects (Lift/Glow/…) suit the card styles; the cursor-tracked ones need site animations on. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — colors the toggle icon and the open question’s highlight. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqQuestionSize|string|null
Sometimes sent:null when the site leaves it out. Question size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\FaqQuestionWeight|string|null
Sometimes sent:null when the site leaves it out. Question weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqAnswerSize|string|null
Sometimes sent:null when the site leaves it out. Answer size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\FaqAnswerWeight|string|null
Sometimes sent:null when the site leaves it out. Answer weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqGroupHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Category heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\FaqBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\FaqBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of FaqWidgetFaqFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show FaqWidgetFaqFontOverridesItem (Fetchski\AttractCmsLaravel\Data\FaqWidgetFaqFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of FaqWidgetFaqFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show FaqWidgetFaqFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\FaqWidgetFaqFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\FaqCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\FaqCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\FaqCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\FaqCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\FaqCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\FaqCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\FaqCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show ServiceMapWidget (Fetchski\AttractCmsLaravel\Data\ServiceMapWidget)
A service-map widget: its type and its own fields. A field left out takes its default.
Enums\ServiceMapWidgetType|string
Always sent. The widget’s type: always service-map. One of service-map; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\ServiceMapEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\ServiceMapEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Heading.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty for the standard ink color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\ServiceMapHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short paragraph under the heading. The data source’s own description (service days etc.) shows in the result panel, not here.
Enums\ServiceMapIntroSize|string|null
Sometimes sent:null when the site leaves it out. Intro size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\ServiceMapHeight|string|null
Sometimes sent:null when the site leaves it out. Map height. One of compact, standard, tall; a newer site may send others, so keep a fallback.
Enums\ServiceMapTheme|string|null
Sometimes sent:null when the site leaves it out. Curated light/dark basemap pairs — each follows the visitor’s theme toggle. “Site palette” derives the basemap from this site’s own colors. One of palette, classic, silver, retro; a newer site may send others, so keep a fallback.
Enums\ServiceMapFrameRadius|string|null
Sometimes sent:null when the site leaves it out. Map corner radius. One of square, slight, rounded, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty for the standard hairline — set it to match a colored border on the zone cards.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
?string
Sometimes sent:null when the site leaves it out. Optional soft glow around the map frame — pairs with a glowing zone-card style. Leave empty for none.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
?bool
Sometimes sent:null when the site leaves it out. On pages with this section, upgrades the business structured data from the compact site-wide form to the full detail: every public place name, every zip code, and area boundaries. Costs visitors nothing; turn off to keep this page at the compact site-wide form. (Requires structured data on in Site settings → SEO; demo map data is never published.)
?bool
Sometimes sent:null when the site leaves it out. The legend card overlaid on the map. The zone cards below the map always carry the same information for screen readers and when the map can’t load.
Enums\ServiceMapKeySwatchSize|string|null
Sometimes sent:null when the site leaves it out. Key swatch size. One of small, medium, large; a newer site may send others, so keep a fallback.
Enums\ServiceMapKeyJustify|string|null
Sometimes sent:null when the site leaves it out. Key text justification. One of left, center, right; a newer site may send others, so keep a fallback.
Enums\ServiceMapKeyTextSize|string|null
Sometimes sent:null when the site leaves it out. Key text size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\ServiceMapKeyTextWeight|string|null
Sometimes sent:null when the site leaves it out. Key text weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty for the standard ink color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\ServiceMapKeyRadius|string|null
Sometimes sent:null when the site leaves it out. Key corner radius. One of square, slight, rounded, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty for the standard hairline — set it to match the map frame or the zone cards.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
?string
Sometimes sent:null when the site leaves it out. Optional soft glow around the key card. Leave empty for none.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
?bool
Sometimes sent:null when the site leaves it out. The zone/pricing cards under the map. Turning this off hides them visually — they stay in the page for screen readers and no-JavaScript visitors (the map itself isn’t accessible).
Enums\ServiceMapCardStyle|string|null
Sometimes sent:null when the site leaves it out. The card surface. Raised is a quiet lit card; Luxe is a frosted glass panel; Outline is a double-rule plaque frame; Plain has no chrome; Poster frames the card with an accent keyline; Spine embeds a color rail along the top; Tint washes the card in the accent color. Showstoppers: Ticket punches notches into the sides, Bracket draws only corner marks, Forge is a machined plate with an engraved frame, Press is a punched index card with a margin rule, Inlay recesses the content into a well. One of raised, luxe, outline, plain, poster, edge, tint, inlay; a newer site may send others, so keep a fallback.
Enums\ServiceMapCardStyleRadius|string|null
Sometimes sent:null when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\ServiceMapCardsHover|string|null
Sometimes sent:null when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant CSS effects; Sheen sweeps a soft light across; Tilt, Magnetic and Spotlight follow the cursor (these need site animations on — visitors who prefer reduced motion see the resting card). Pick a different one per section so a page feels varied, not cookie-cutter. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight; a newer site may send others, so keep a fallback.
Enums\ServiceMapCardsSwatchSize|string|null
Sometimes sent:null when the site leaves it out. Card swatch size. One of small, medium, large; a newer site may send others, so keep a fallback.
Enums\ServiceMapCardsJustify|string|null
Sometimes sent:null when the site leaves it out. Card text justification. One of left, center, right; a newer site may send others, so keep a fallback.
Enums\ServiceMapCardsNameWeight|string|null
Sometimes sent:null when the site leaves it out. Zone name weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\ServiceMapCardsTextSize|string|null
Sometimes sent:null when the site leaves it out. Card text size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Colors the zone names; supporting copy stays muted. Leave empty for the standard ink color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\ServiceMapCardsSubSize|string|null
Sometimes sent:null when the site leaves it out. The price and detail lines under each zone name — sized relative to the card text size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\ServiceMapCardsSubWeight|string|null
Sometimes sent:null when the site leaves it out. Supporting text weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty for the standard muted color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
?string
Sometimes sent:null when the site leaves it out. Optional label shown instead of “$0” wherever a zone has no fee (key, cards, results). Clear it to show the plain price — $0 doesn’t always mean included.
Sometimes sent:null when the site leaves it out. A list of ServiceMapWidgetServiceMapZoneOverridesItem. Per-zone display overrides, matched by the zone name the data source provides. Rename a zone, replace its price text, or hide it entirely — the underlying data is never changed.
Show ServiceMapWidgetServiceMapZoneOverridesItem (Fetchski\AttractCmsLaravel\Data\ServiceMapWidgetServiceMapZoneOverridesItem)
string
Always sent. Case-insensitive match against the zone name in the map data.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
?string
Sometimes sent:null when the site leaves it out. Optional replacement name shown everywhere this zone appears.
?string
Sometimes sent:null when the site leaves it out. Optional replacement for the price text (e.g. “Included”, “Call us”). Overrides the zero-price label too.
?bool
Sometimes sent:null when the site leaves it out. The zone stays on the map and in search results — it just leaves the key and cards.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?bool
Sometimes sent:null when the site leaves it out. Show the “check your area” search.
?string
Sometimes sent:null when the site leaves it out. Search label.
?string
Sometimes sent:null when the site leaves it out. Search placeholder.
Enums\ServiceMapSearchJustify|string|null
Sometimes sent:null when the site leaves it out. Positions the search box and button above the map. One of left, center, right; a newer site may send others, so keep a fallback.
Enums\ServiceMapSearchInputRadius|string|null
Sometimes sent:null when the site leaves it out. Same radius scale as the buttons, so the box and button can match. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Google address autocomplete under the search box (needs the Places API enabled on the key — see the setup guide in Connections → Google Maps). ZIP-only typing never triggers suggestions when the data source is zip-based.
?string
Sometimes sent:null when the site leaves it out. Shown when a searched location doesn’t fall in any zone (or the premium radius).
?string
Sometimes sent:null when the site leaves it out. Leave empty for “Check”. The button’s look is configured in the Search button tab.
Enums\ServiceMapSearchButtonVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\ServiceMapSearchButtonSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\ServiceMapSearchButtonRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\ServiceMapSearchButtonStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\ServiceMapSearchButtonAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
Enums\ServiceMapPanelPlacement|string|null
Sometimes sent:null when the site leaves it out. Popup placement. One of center, corner; a newer site may send others, so keep a fallback.
Enums\ServiceMapPanelLook|string|null
Sometimes sent:null when the site leaves it out. Popup style. One of overlay, solid; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Repeats the searched ZIP code or address at the top of the result popup.
?bool
Sometimes sent:null when the site leaves it out. Looks up the locality for a searched ZIP code (one extra Geocoding API call per search) and shows it beside the searched value.
Enums\ServiceMapPanelTextSize|string|null
Sometimes sent:null when the site leaves it out. Popup text size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\ServiceMapPanelTitleWeight|string|null
Sometimes sent:null when the site leaves it out. Popup title weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. When the data carries a premium (distance-priced) service, include it in search results and the zone cards. Sources without their own premium block use the pricing set in Service area map → Areas and pricing.
?bool
Sometimes sent:null when the site leaves it out. Needs a premium range limit (miles) — with no limit there is no ring to draw.
?string
Sometimes sent:null when the site leaves it out. Premium estimate note.
?string
Sometimes sent:null when the site leaves it out. Shown when a distance estimate isn’t possible (e.g. the Distance Matrix API isn’t enabled on the key).
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. Optional logo/pin image for the business marker. Leave empty for a simple accent-color pin. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. Optional light-theme variant. Falls back to the dark-theme image. The related @apostrophecms/image documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?string
Sometimes sent:null when the site leaves it out. Accessible name + hover title for the marker. Leave empty to use the business name from Site settings.
Enums\ServiceMapMarkerSize|string|null
Sometimes sent:null when the site leaves it out. Marker size. One of small, medium, large; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The business marker gently bobs in place. Automatically disabled for visitors who prefer reduced motion.
?bool
Sometimes sent:null when the site leaves it out. Adds the business location (named by its label in Service area map → Your location) as the FIRST entry of the map key and zone cards.
Enums\ServiceMapBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\ServiceMapBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of ServiceMapWidgetServiceMapFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show ServiceMapWidgetServiceMapFontOverridesItem (Fetchski\AttractCmsLaravel\Data\ServiceMapWidgetServiceMapFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of ServiceMapWidgetServiceMapFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show ServiceMapWidgetServiceMapFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\ServiceMapWidgetServiceMapFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show BlogPreviewWidget (Fetchski\AttractCmsLaravel\Data\BlogPreviewWidget)
A blog-preview widget: its type and its own fields. A field left out takes its default.
Enums\BlogPreviewWidgetType|string
Always sent. The widget’s type: always blog-preview. One of blog-preview; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Heading.
?string
Sometimes sent:null when the site leaves it out. Subheading.
Enums\BlogCardImageAspect|string|null
Sometimes sent:null when the site leaves it out. Aspect ratio of the featured image. Choose “Hidden” for text-only cards. One of 16/10, 4/3, 3/2, 1/1, none; a newer site may send others, so keep a fallback.
Enums\BlogCardImageHover|string|null
Sometimes sent:null when the site leaves it out. Image hover. One of zoom, none; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Use the featured image as the full card background, with the title and meta overlaid on a dark scrim. Posts with no image fall back to a normal card.
Enums\BlogCardPreset|string|null
Sometimes sent:null when the site leaves it out. The card surface. Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. (On image-led cards the photo covers the top edge.) One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay; a newer site may send others, so keep a fallback.
Enums\BlogCardPresetRadius|string|null
Sometimes sent:null when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\BlogCardPresetForgeScope|string|null
Sometimes sent:null when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame; a newer site may send others, so keep a fallback.
Enums\BlogCardPresetForgeWeight|string|null
Sometimes sent:null when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of fine, medium, bold; a newer site may send others, so keep a fallback.
Enums\BlogCardHover|string|null
Sometimes sent:null when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt (3-D + glare), Magnetic and Spotlight follow the cursor (need site animations on). The Hover color below tints these. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Border / shadow / glow color on hover. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
?bool
Sometimes sent:null when the site leaves it out. Show category.
Enums\BlogCardCategoryStyle|string|null
Sometimes sent:null when the site leaves it out. How the category badge uses its color (set per category under Blog Categories). Filled = colored background; Outline = colored border + text; Minimal = colored text only. One of filled, outline, minimal; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Show date.
?bool
Sometimes sent:null when the site leaves it out. Show excerpt.
Enums\BlogCardExcerptLines|string|null
Sometimes sent:null when the site leaves it out. How many lines of the excerpt to show before truncating. One of 2, 3, 4, none; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Show author.
?bool
Sometimes sent:null when the site leaves it out. Show “Read post” link.
Enums\BlogCardReadMorePlacement|string|null
Sometimes sent:null when the site leaves it out. Auto puts it on the right of horizontal cards (list / compact / featured) and below the text on grid cards. Or force one placement everywhere. One of auto, below, right; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the “Read post” link color. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
?string
Sometimes sent:null when the site leaves it out. Optional. Color of the “Read post” link when the card is hovered. Leave empty to use the accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color, then the accent.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the card title color. Leave empty to track the theme’s text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.
Enums\BlogCardTitleWeight|string|null
Sometimes sent:null when the site leaves it out. Title weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Title color when the card is hovered. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color, then the accent.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the excerpt text color. Leave empty for the muted default.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.
Enums\BlogCardTextWeight|string|null
Sometimes sent:null when the site leaves it out. Excerpt weight. One of normal, medium, semibold, bold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Date / meta line color. Leave empty for the faint default.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the faint default.
Enums\BlogBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\BlogBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of BlogPreviewWidgetBlogFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show BlogPreviewWidgetBlogFontOverridesItem (Fetchski\AttractCmsLaravel\Data\BlogPreviewWidgetBlogFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of BlogPreviewWidgetBlogFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show BlogPreviewWidgetBlogFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\BlogPreviewWidgetBlogFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\BlogCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\BlogCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\BlogCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\BlogCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\BlogCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\BlogCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\BlogCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show CookieDeclarationWidget (Fetchski\AttractCmsLaravel\Data\CookieDeclarationWidget)
A cookie-declaration widget: its type and its own fields. A field left out takes its default.
Enums\CookieDeclarationWidgetType|string
Always sent. The widget’s type: always cookie-declaration. One of cookie-declaration; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Eyebrow.
?string
Sometimes sent:null when the site leaves it out. Heading.
?string
Sometimes sent:null when the site leaves it out. Introduction.
?bool
Sometimes sent:null when the site leaves it out. A short block naming what this visitor has allowed, with a button that reopens the preferences panel. Withdrawal has to be as easy as consent, so leave this on unless the page offers another way.
?bool
Sometimes sent:null when the site leaves it out. Provider, type, duration and domain per entry. Off leaves the plain-language disclosures alone, which reads better but tells a technical reader less.
Enums\CookieDeclLayout|string|null
Sometimes sent:null when the site leaves it out. Layout. One of stacked, compact; a newer site may send others, so keep a fallback.
Enums\CookieDeclBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\CookieDeclBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of CookieDeclarationWidgetCookieDeclFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show CookieDeclarationWidgetCookieDeclFontOverridesItem (Fetchski\AttractCmsLaravel\Data\CookieDeclarationWidgetCookieDeclFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show RichTextWidget (Fetchski\AttractCmsLaravel\Data\RichTextWidget)
A @apostrophecms/rich-text widget: its type and its own fields. A field left out takes its default.
Enums\RichTextWidgetType|string
Always sent. The widget’s type: always @apostrophecms/rich-text. One of @apostrophecms/rich-text; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The text as HTML, e.g. <h2>Our story</h2><p>It began with <strong>one</strong> idea.</p>. The site keeps the tags and styles this area’s editor offers (paragraphs, headings, bold, italic, links, lists…) and removes the rest.
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show GoogleReviewsWidget (Fetchski\AttractCmsLaravel\Data\GoogleReviewsWidget)
A google-reviews widget: its type and its own fields. A field left out takes its default.
Enums\GoogleReviewsWidgetType|string
Always sent. The widget’s type: always google-reviews. One of google-reviews; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\ReviewsEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\ReviewsEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show just the reviews.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\ReviewsIntroSize|string|null
Sometimes sent:null when the site leaves it out. Intro size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\ReviewsAlign|string|null
Sometimes sent:null when the site leaves it out. Header alignment. One of center, left; a newer site may send others, so keep a fallback.
Enums\ReviewsMinRating|string|null
Sometimes sent:null when the site leaves it out. Only show reviews at or above this star rating. One of 0, 3, 4, 5; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Show only reviews you have flagged “Featured” in the Google Reviews manager — hand-curate exactly which appear.
?int
Sometimes sent:null when the site leaves it out. The most reviews to show (newest first). 1 to 30.
Enums\ReviewsLayout|string|null
Sometimes sent:null when the site leaves it out. Animated carousel: a continuous, auto-scrolling marquee of cards (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered, Pinterest-style grid that hugs each review’s length. One of carousel, grid, masonry; a newer site may send others, so keep a fallback.
Enums\ReviewsColumns|string|null
Sometimes sent:null when the site leaves it out. How many cards per row (grid) or columns (masonry). Auto fits as many as comfortably fit. One of auto, 2, 3, 4; a newer site may send others, so keep a fallback.
Enums\ReviewsSpeed|string|null
Sometimes sent:null when the site leaves it out. How fast the carousel auto-scrolls. The review carousel runs on its own (gentler) speed scale than the logos/footer marquees so two never scroll in lockstep. One of vslow, slow, normal, fast; a newer site may send others, so keep a fallback.
Enums\ReviewsDirection|string|null
Sometimes sent:null when the site leaves it out. Scroll direction. One of left, right; a newer site may send others, so keep a fallback.
Enums\ReviewsGap|string|null
Sometimes sent:null when the site leaves it out. Gap between cards. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Show the reviewer’s Google avatar (falls back to a lettered initial when missing or anonymous).
?bool
Sometimes sent:null when the site leaves it out. Show star rating.
?bool
Sometimes sent:null when the site leaves it out. Show review date.
?bool
Sometimes sent:null when the site leaves it out. Include the business’s public reply beneath a review when there is one.
?bool
Sometimes sent:null when the site leaves it out. A small Google attribution lockup under the section — recommended when showing Google reviews.
Enums\ReviewsCardStyle|string|null
Sometimes sent:null when the site leaves it out. The card surface. Raised is a quiet lit card; Luxe is a frosted glass panel; Outline is a double-rule plaque frame; Plain has no chrome; Poster frames the card with an accent keyline; Spine embeds a color rail along the top; Tint washes the card in the accent color. Showstoppers: Ticket punches notches into the sides, Bracket draws only corner marks, Forge is a machined plate with an engraved frame, Press is a punched index card with a margin rule, Inlay recesses the content into a well. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay; a newer site may send others, so keep a fallback.
Enums\ReviewsCardStyleRadius|string|null
Sometimes sent:null when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsCardStyleForgeScope|string|null
Sometimes sent:null when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame; a newer site may send others, so keep a fallback.
Enums\ReviewsCardStyleForgeWeight|string|null
Sometimes sent:null when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of fine, medium, bold; a newer site may send others, so keep a fallback.
Enums\ReviewsCardHover|string|null
Sometimes sent:null when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight; a newer site may send others, so keep a fallback.
Enums\ReviewsCardWidth|string|null
Sometimes sent:null when the site leaves it out. Sets the carousel card width and the minimum card width in the grid/masonry layouts. One of narrow, normal, wide; a newer site may send others, so keep a fallback.
Enums\ReviewsCardHeight|string|null
Sometimes sent:null when the site leaves it out. Auto hugs the content; the taller presets give every card a consistent minimum height (grid + carousel). The masonry layout ignores this and staggers card heights itself. One of auto, medium, tall; a newer site may send others, so keep a fallback.
Enums\ReviewsCardAlign|string|null
Sometimes sent:null when the site leaves it out. How the avatar, name, stars and text align inside each card. One of left, center, right; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use a warm amber. Applies in both themes.
?string
Sometimes sent:null when the site leaves it out. Optional — background of the lettered fallback avatar. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsNameSize|string|null
Sometimes sent:null when the site leaves it out. Name size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\ReviewsNameWeight|string|null
Sometimes sent:null when the site leaves it out. Name weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsDateSize|string|null
Sometimes sent:null when the site leaves it out. Date size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\ReviewsDateWeight|string|null
Sometimes sent:null when the site leaves it out. Date weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the faint text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsTextSize|string|null
Sometimes sent:null when the site leaves it out. Review text size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\ReviewsTextWeight|string|null
Sometimes sent:null when the site leaves it out. Review text weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\ReviewsTextClamp|string|null
Sometimes sent:null when the site leaves it out. Cap each review at this many lines (the rest is truncated with an ellipsis) so one very long review can’t blow up the card height — important once real, lengthy reviews come in. Choose “Full text” to never truncate. Short reviews are unaffected. One of none, 4, 6, 8, 12; a newer site may send others, so keep a fallback.
Enums\ReviewsBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\ReviewsBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of GoogleReviewsWidgetReviewsFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show GoogleReviewsWidgetReviewsFontOverridesItem (Fetchski\AttractCmsLaravel\Data\GoogleReviewsWidgetReviewsFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\ReviewsCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\ReviewsCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\ReviewsCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\ReviewsCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\ReviewsCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\ReviewsCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\ReviewsCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show TestimonialsWidget (Fetchski\AttractCmsLaravel\Data\TestimonialsWidget)
A testimonials widget: its type and its own fields. A field left out takes its default.
Enums\TestimonialsWidgetType|string
Always sent. The widget’s type: always testimonials. One of testimonials; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\TestimonialsEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\TestimonialsEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show just the testimonials.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\TestimonialsIntroSize|string|null
Sometimes sent:null when the site leaves it out. Intro size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\TestimonialsAlign|string|null
Sometimes sent:null when the site leaves it out. Header alignment. One of center, left; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Show only testimonials you have flagged “Featured” in the Testimonials manager — hand-curate exactly which appear.
?int
Sometimes sent:null when the site leaves it out. The most testimonials to show (featured first). 1 to 30.
Enums\TestimonialsLayout|string|null
Sometimes sent:null when the site leaves it out. Animated carousel: a continuous, auto-scrolling marquee of cards (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered, Pinterest-style grid that hugs each quote’s length. One of carousel, grid, masonry; a newer site may send others, so keep a fallback.
Enums\TestimonialsColumns|string|null
Sometimes sent:null when the site leaves it out. How many cards per row (grid) or columns (masonry). Auto fits as many as comfortably fit. One of auto, 2, 3, 4; a newer site may send others, so keep a fallback.
Enums\TestimonialsSpeed|string|null
Sometimes sent:null when the site leaves it out. How fast the carousel auto-scrolls. One of vslow, slow, normal, fast; a newer site may send others, so keep a fallback.
Enums\TestimonialsDirection|string|null
Sometimes sent:null when the site leaves it out. Scroll direction. One of left, right; a newer site may send others, so keep a fallback.
Enums\TestimonialsGap|string|null
Sometimes sent:null when the site leaves it out. Gap between cards. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
Enums\TestimonialsCardLayout|string|null
Sometimes sent:null when the site leaves it out. Quote-led: a large quotation mark over the quote, with the author in a footer (the classic testimonial look). Accent bar: the quote beside a bold accent bar. Classic: the author on top (photo + name), then the quote — like a review card. One of quote, bar, classic; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The oversized “ glyph on the quote-led and accent-bar layouts.
?bool
Sometimes sent:null when the site leaves it out. Show the author’s photo (falls back to a lettered initial when none is set).
?bool
Sometimes sent:null when the site leaves it out. Show author role / context.
?bool
Sometimes sent:null when the site leaves it out. Off by default — a testimonial usually leads with the quote. Turn on to show each testimonial’s star rating.
?string
Sometimes sent:null when the site leaves it out. The text for a testimonial’s optional “Source link” (set per testimonial in the Testimonials manager). Shown only on testimonials that have a link.
Enums\TestimonialsCardStyle|string|null
Sometimes sent:null when the site leaves it out. The card treatment. Spine (the default) embeds a color rail along the top; Raised is a quiet lit card; Luxe a frosted glass panel; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay; a newer site may send others, so keep a fallback.
Enums\TestimonialsCardStyleRadius|string|null
Sometimes sent:null when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsCardStyleForgeScope|string|null
Sometimes sent:null when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame; a newer site may send others, so keep a fallback.
Sometimes sent:null when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of fine, medium, bold; a newer site may send others, so keep a fallback.
Enums\TestimonialsCardHover|string|null
Sometimes sent:null when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight; a newer site may send others, so keep a fallback.
Enums\TestimonialsCardWidth|string|null
Sometimes sent:null when the site leaves it out. Sets the carousel card width and the minimum card width in the grid/masonry layouts. One of narrow, normal, wide; a newer site may send others, so keep a fallback.
Enums\TestimonialsCardHeight|string|null
Sometimes sent:null when the site leaves it out. Auto hugs the content; the taller presets give every card a consistent minimum height (grid + carousel). The masonry layout ignores this and staggers card heights itself. One of auto, medium, tall; a newer site may send others, so keep a fallback.
Enums\TestimonialsCardAlign|string|null
Sometimes sent:null when the site leaves it out. How the quote and author align inside each card. One of left, center, right; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use a warm amber. Applies in both themes (only when ratings are shown).
?string
Sometimes sent:null when the site leaves it out. Optional — the quotation mark, the accent bar, and the lettered-avatar background. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsNameSize|string|null
Sometimes sent:null when the site leaves it out. Name size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\TestimonialsNameWeight|string|null
Sometimes sent:null when the site leaves it out. Name weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsTitleSize|string|null
Sometimes sent:null when the site leaves it out. Role size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\TestimonialsTitleWeight|string|null
Sometimes sent:null when the site leaves it out. Role weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the faint text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsQuoteSize|string|null
Sometimes sent:null when the site leaves it out. Quote size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\TestimonialsQuoteWeight|string|null
Sometimes sent:null when the site leaves it out. Quote weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\TestimonialsQuoteClamp|string|null
Sometimes sent:null when the site leaves it out. Cap each quote at this many lines (the rest is truncated with an ellipsis) so one very long testimonial can’t blow up the card height. Choose “Full text” to never truncate. Short quotes are unaffected. One of none, 4, 6, 8, 12; a newer site may send others, so keep a fallback.
Enums\TestimonialsBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\TestimonialsBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of TestimonialsWidgetTestimonialsFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show TestimonialsWidgetTestimonialsFontOverridesItem (Fetchski\AttractCmsLaravel\Data\TestimonialsWidgetTestimonialsFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\TestimonialsCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\TestimonialsCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\TestimonialsCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\TestimonialsCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\TestimonialsCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\TestimonialsCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\TestimonialsCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show InstagramFeedWidget (Fetchski\AttractCmsLaravel\Data\InstagramFeedWidget)
A instagram-feed widget: its type and its own fields. A field left out takes its default.
Enums\InstagramFeedWidgetType|string
Always sent. The widget’s type: always instagram-feed. One of instagram-feed; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\InstagramEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\InstagramEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show just the feed.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\InstagramHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\InstagramIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\InstagramIntroSize|string|null
Sometimes sent:null when the site leaves it out. Intro size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\InstagramAlign|string|null
Sometimes sent:null when the site leaves it out. Header alignment. One of center, left; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Show only posts you have flagged “Featured” in the Instagram Posts manager — hand-curate exactly which appear.
?int
Sometimes sent:null when the site leaves it out. The most posts to show (newest first). 1 to 30.
Enums\InstagramMediaFilter|string|null
Sometimes sent:null when the site leaves it out. Filter this feed by media type. “Photos” keeps image and album posts; “Videos & reels” keeps only video posts. This is per-feed display only — it doesn’t change what gets synced. One of all, photos, videos; a newer site may send others, so keep a fallback.
Enums\InstagramLayout|string|null
Sometimes sent:null when the site leaves it out. Carousel: a continuous, auto-scrolling marquee strip (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered grid that hugs each image’s shape. Mosaic Photo Wall: an edge-to-edge, gap-free photo wall where rows are scaled to a common height (like Flickr / Google Photos) — the richest option for photos. One of carousel, grid, masonry, justified; a newer site may send others, so keep a fallback.
Enums\InstagramColumns|string|null
Sometimes sent:null when the site leaves it out. How many tiles per row (grid) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout.) One of auto, 2, 3, 4, 5; a newer site may send others, so keep a fallback.
Enums\InstagramJustifiedHeight|string|null
Sometimes sent:null when the site leaves it out. The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of compact, normal, tall; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. For feeds where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.
Enums\InstagramSpeed|string|null
Sometimes sent:null when the site leaves it out. How fast the carousel auto-scrolls. The feed runs on its own speed scale so two marquees on a page never scroll in lockstep. One of vslow, slow, normal, fast; a newer site may send others, so keep a fallback.
Enums\InstagramDirection|string|null
Sometimes sent:null when the site leaves it out. Scroll direction. One of left, right; a newer site may send others, so keep a fallback.
Enums\InstagramGap|string|null
Sometimes sent:null when the site leaves it out. Gap between tiles. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
Enums\InstagramAspect|string|null
Sometimes sent:null when the site leaves it out. Crop each image to a consistent shape. “Original” keeps each image’s own ratio (best with the masonry layout). One of square, portrait, landscape, original; a newer site may send others, so keep a fallback.
Enums\InstagramCardWidth|string|null
Sometimes sent:null when the site leaves it out. Sets the carousel tile width and the minimum tile width in the grid/masonry layouts. One of narrow, normal, wide; a newer site may send others, so keep a fallback.
Enums\InstagramRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of none, slight, rounded; a newer site may send others, so keep a fallback.
Enums\InstagramCardHover|string|null
Sometimes sent:null when the site leaves it out. What a tile does on hover. Lift/Glow are best for image tiles; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. A small corner glyph marking a video, reel, or carousel album.
?bool
Sometimes sent:null when the site leaves it out. A corner Instagram glyph on each tile — the one opt-in link out to the post (opens in a new tab). The tile itself opens the on-site lightbox.
?bool
Sometimes sent:null when the site leaves it out. A small heart + like count in the bottom corner of each tile. Off by default. (A post whose account hides like counts on Instagram shows nothing.)
Enums\InstagramGlyphSize|string|null
Sometimes sent:null when the site leaves it out. Size of the corner glyph, the video/reel badge, and the play affordance on video tiles. All three options are larger than the old fixed size. One of small, medium, large; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Off by default (the classic image-only grid). When on, choose where the caption appears below.
Enums\InstagramCaptionMode|string|null
Sometimes sent:null when the site leaves it out. Caption placement. One of below, hover; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — color of the corner glyph + the hover wash. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
?string
Sometimes sent:null when the site leaves it out. Optional — color of the like heart on the tiles and in the lightbox. Leave empty to use the brand coral.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\InstagramCaptionClamp|string|null
Sometimes sent:null when the site leaves it out. Cap each caption at this many lines so a long caption can’t blow up the tile. One of none, 1, 2, 3, 4; a newer site may send others, so keep a fallback.
Enums\InstagramCaptionSize|string|null
Sometimes sent:null when the site leaves it out. Caption size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\InstagramCaptionWeight|string|null
Sometimes sent:null when the site leaves it out. Caption weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color (below mode) / white (hover mode).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
?bool
Sometimes sent:null when the site leaves it out. Show the post’s like count in the lightbox. (An account that hides like counts on Instagram reports none — then nothing shows.)
Enums\InstagramCommentsDisplay|string|null
Sometimes sent:null when the site leaves it out. How comments appear in the lightbox. “Count only” shows just the total. “Full list” shows the actual comments — requires “Fetch post comments” in Connections → Instagram to be on so the comment text is synced. One of none, count, list; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Show each commenter’s Instagram handle next to their comment. Turn off for a cleaner, anonymous list of just the comment text.
?bool
Sometimes sent:null when the site leaves it out. The opt-in outbound link in the lightbox. Turn it off to keep visitors fully on your site (the corner glyph on each tile is a separate setting).
Enums\InstagramBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\InstagramBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of InstagramFeedWidgetInstagramFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show InstagramFeedWidgetInstagramFontOverridesItem (Fetchski\AttractCmsLaravel\Data\InstagramFeedWidgetInstagramFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of InstagramFeedWidgetInstagramFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show InstagramFeedWidgetInstagramFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\InstagramFeedWidgetInstagramFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\InstagramCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\InstagramCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\InstagramCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\InstagramCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\InstagramCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\InstagramCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\InstagramCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show GalleryPreviewWidget (Fetchski\AttractCmsLaravel\Data\GalleryPreviewWidget)
A gallery-preview widget: its type and its own fields. A field left out takes its default.
Enums\GalleryPreviewWidgetType|string
Always sent. The widget’s type: always gallery-preview. One of gallery-preview; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\GalleryEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\GalleryEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show just the photos.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\GalleryIntroSize|string|null
Sometimes sent:null when the site leaves it out. Intro size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\GalleryAlign|string|null
Sometimes sent:null when the site leaves it out. Header alignment. One of center, left; a newer site may send others, so keep a fallback.
Enums\GallerySource|string|null
Sometimes sent:null when the site leaves it out. Album: a curated set you pick and order by hand — best for a designed page. Folder: automatically shows every image filed in a media-library folder (newest first) — best for bulk collections you organize in the media manager. Feed: a set that refreshes itself on a schedule from an external photo store, so the gallery shows different photos over time. One of album, folder, feed; a newer site may send others, so keep a fallback.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. The Photo Album to display. Create and fill albums in the Photo Albums manager. The related photo-album documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. The media-library folder to display. Every image filed in it (and its subfolders, if enabled) is shown, newest first. The related image-folder documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Sometimes sent:null when the site leaves it out. Also show images filed in folders inside the selected folder.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. The Photo Feed to display. This gallery stays pointed at the feed while the feed replaces its photos on its own schedule. Create and configure feeds in the Photo Feeds manager. The related photo-feed documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?int
Sometimes sent:null when the site leaves it out. Cap the teaser to this many photos. 0 shows everything in the selected source (folder photos are newest-first). 0 to 200.
Enums\GalleryLayout|string|null
Sometimes sent:null when the site leaves it out. Mosaic Photo Wall: an edge-to-edge wall where rows are scaled to a common height (like Flickr / Google Photos), cropped around each photo’s focal point — the richest option. Masonry: a staggered grid that hugs each photo’s shape. Grid: a tidy, uniform grid. Spotlight: every group of eight opens on an oversized lead photo, sides alternating on wide screens. Shaped Tiles: a portrait grid whose tiles cycle through slab, arch and orb shapes. Scrolling Banner: one edge-to-edge row that drifts sideways forever, so a long album reads as a ribbon of photos rather than a block — the option for a band between two sections rather than a gallery page. Panorama Wall: several rows, far wider than the screen, traveling sideways at slightly different speeds — and the visitor can push it along or against with a drag or a trackpad swipe. Vertical Ribbon: a band of columns running down the page instead of across it, neighboring columns traveling opposite ways, so the section reads as a moving curtain of photographs. One of justified, masonry, grid, spotlight, shaped, banner, panorama, ribbon; a newer site may send others, so keep a fallback.
Enums\GalleryColumns|string|null
Sometimes sent:null when the site leaves it out. How many tiles per row (grid, shaped tiles) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout; Spotlight sets its own pattern.) One of auto, 2, 3, 4, 5; a newer site may send others, so keep a fallback.
Enums\GalleryJustifiedHeight|string|null
Sometimes sent:null when the site leaves it out. The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of compact, normal, tall; a newer site may send others, so keep a fallback.
Enums\GalleryBannerHeight|string|null
Sometimes sent:null when the site leaves it out. How tall the moving row stands. Each photo keeps its own shape, so a taller banner shows wider photos and fewer of them at once. One of short, normal, tall; a newer site may send others, so keep a fallback.
Enums\GalleryBannerSpeed|string|null
Sometimes sent:null when the site leaves it out. How fast the row drifts. It also surges briefly with the page’s own scrolling, then settles back — so the band reacts to the visitor instead of ignoring them. One of slow, normal, fast; a newer site may send others, so keep a fallback.
Enums\GalleryBannerDirection|string|null
Sometimes sent:null when the site leaves it out. Banner direction. One of left, right; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Fades the row out at both ends so photos scroll in and out instead of being cut off by a hard edge.
Enums\GalleryPanoramaRows|string|null
Sometimes sent:null when the site leaves it out. How many rows of photos the wall is dealt across. Photos go into the rows in turn, so consecutive shots land in different rows rather than stacking up together. Deep walls want a big set — a row needs at least three photos of its own, so a small album quietly uses fewer, fuller rows than you pick here. One of 2, 3, 4, 5, 6, 7, 8; a newer site may send others, so keep a fallback.
Enums\GalleryPanoramaHeight|string|null
Sometimes sent:null when the site leaves it out. How tall each row stands, so the wall’s total depth is this times the number of rows — an eight-row Tall panorama fills a screen and then some. Each photo keeps its own shape, so taller rows show wider photos and fewer of them. One of short, normal, tall; a newer site may send others, so keep a fallback.
Enums\GalleryPanoramaSpeed|string|null
Sometimes sent:null when the site leaves it out. How fast the wall travels. Each row takes a slightly different share of this, so the rows shear gently against each other and the block reads as depth rather than as one sliding sheet. It also surges briefly with the page’s own scrolling, then settles back. One of slow, normal, fast; a newer site may send others, so keep a fallback.
Enums\GalleryPanoramaDirection|string|null
Sometimes sent:null when the site leaves it out. Travel direction. One of left, right; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Dragging the wall (or swiping sideways on a trackpad or phone) pushes it along or against its travel, and it glides back into its own pace when let go. Vertical scrolling always still scrolls the page. Needs site animations on in Site design → Motion.
?bool
Sometimes sent:null when the site leaves it out. Fades the rows out at both ends so photos travel in and out instead of being cut off by a hard edge.
Enums\GalleryRibbonColumns|string|null
Sometimes sent:null when the site leaves it out. How many columns of photos the band is dealt across. Photos go into the columns in turn, so consecutive shots land in different columns rather than stacking up together. Narrow screens show fewer columns than you pick here (two on a phone, three on a tablet) — because photos in a 50-pixel sliver are not photos. A column needs at least three photos of its own, so a small album quietly uses fewer, fuller columns. One of 2, 3, 4, 5, 6; a newer site may send others, so keep a fallback.
Enums\GalleryRibbonHeight|string|null
Sometimes sent:null when the site leaves it out. How tall the band stands — the window the columns travel through, not the columns themselves, which are always far taller than it. Each photo keeps its own shape and fills its column’s width, so the columns show more photos at once the taller the band is. One of short, normal, tall; a newer site may send others, so keep a fallback.
Enums\GalleryRibbonSpeed|string|null
Sometimes sent:null when the site leaves it out. How fast the columns travel. Each takes a slightly different share of this, so the band reads as a weave rather than as one sheet sliding. Slower than the sideways layouts at every setting on purpose: this moves along the same axis the visitor scrolls in, where the same speed feels far more urgent. It also surges briefly with the page’s own scrolling, then settles back. One of slow, normal, fast; a newer site may send others, so keep a fallback.
Enums\GalleryRibbonDirection|string|null
Sometimes sent:null when the site leaves it out. Which way the first column travels. With alternating columns on (below), its neighbors go the other way. One of up, down; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Send neighboring columns opposite ways, which is what makes the band read as a weave. Turn it off and the whole band travels one way together — quieter, and closer to a conventional scrolling wall.
?bool
Sometimes sent:null when the site leaves it out. Fades the columns out at the top and bottom so photos travel in and out instead of being cut off by a hard edge.
?bool
Sometimes sent:null when the site leaves it out. For albums where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.
Enums\GalleryGap|string|null
Sometimes sent:null when the site leaves it out. Gap between tiles. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
Enums\GalleryRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of none, slight, rounded; a newer site may send others, so keep a fallback.
Enums\GalleryCardStyle|string|null
Sometimes sent:null when the site leaves it out. The tile surface. Raised floats each photo on a soft shadow (default); Plain is a clean edge-to-edge wall; Luxe / Outline / Poster frame it; Ticket / Bracket / Forge / Press add graphic structure. The photo fills the tile, so fill-based looks (Tint, Inlay) read as their frame + elevation. On the Shaped Tiles layout the structural looks (Ticket / Bracket / Forge / Press) fall back to their plain surface — their rectangular marks can’t follow an arch or orb. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryCardStyleForgeScope|string|null
Sometimes sent:null when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame; a newer site may send others, so keep a fallback.
Enums\GalleryCardStyleForgeWeight|string|null
Sometimes sent:null when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of fine, medium, bold; a newer site may send others, so keep a fallback.
Enums\GalleryCardHover|string|null
Sometimes sent:null when the site leaves it out. What a tile does on hover, on top of the surface above. Glow (default) / Lift read best on photo tiles; Press collapses a Poster offset; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Overlay each photo’s alt text on hover. Off by default (a clean photo wall). The caption always shows in the lightbox.
Enums\GalleryCaptionSize|string|null
Sometimes sent:null when the site leaves it out. Caption size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\GalleryCaptionWeight|string|null
Sometimes sent:null when the site leaves it out. Caption weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Clicking a photo opens it full-size in an on-site lightbox (with previous / next). Turn off for a purely decorative wall that doesn’t enlarge.
?string
Sometimes sent:null when the site leaves it out. Optional — color of the hover wash / glow. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryDrift|string|null
Sometimes sent:null when the site leaves it out. A very slow pan-and-zoom on every photo, each tile on its own rhythm, so the wall stays quietly alive instead of holding perfectly still. Off by default: a still gallery costs nothing to keep on screen, and this runs continuously for as long as the page is open. Turn it on if you also switch on “Rotate photos automatically” below — a photo changing on a wall that is otherwise frozen reads as a glitch. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of off, subtle, bold; a newer site may send others, so keep a fallback.
Enums\GalleryParallax|string|null
Sometimes sent:null when the site leaves it out. Sets every photo at its own depth: as the page scrolls, some slide with it and some against it, so the wall has layers instead of being one flat plane. It only moves while the visitor scrolls — nothing happens when the page is still. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of off, subtle, bold; a newer site may send others, so keep a fallback.
Enums\GalleryShuffle|string|null
Sometimes sent:null when the site leaves it out. Every so often two photos trade places on the wall, gliding past each other into their new squares. Nothing resizes and nothing else on the wall moves — the grid’s squares are identical, so the photos simply swap seats. It holds still while a visitor’s pointer or keyboard is anywhere in the gallery, so nothing ever moves out from under a click. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of off, calm, steady, lively; a newer site may send others, so keep a fallback.
?int
Sometimes sent:null when the site leaves it out. Two photos swap with each other; three or more pass their seats along in a ring, so more of the wall is moving at once. Higher numbers read as the wall dealing itself a new hand rather than as two photos changing places. 2 to 6.
?bool
Sometimes sent:null when the site leaves it out. Photos fade out a few at a time and are replaced from the rest of the source, so the gallery keeps changing while a visitor watches. Needs more photos in the source than are on screen — set “Maximum photos” above to less than the source holds. Set “Ambient drift” above to Subtle as well: a photo changing on a wall that is otherwise perfectly still reads as a glitch rather than as movement. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion.
Enums\GalleryRotateStyle|string|null
Sometimes sent:null when the site leaves it out. Cross-fade: the next photo dissolves over the old one as it eases in — the quietest change. Fade through a color: the tile also dips towards a flat color while the photos dissolve, so it reads as “phasing out” without ever going blank. Slide in: the next photo travels in over the old one, which drifts the same way behind it. Zoom through: the next photo settles out of a slight enlargement. Soften through: the photo blurs out of focus and the next one comes back into it. Wipe across: a clean edge travels over the tile, leaving the next photo behind it. Turn over: the tile turns like a card and comes back showing the next photo — the boldest of the seven. One of cross, veil, push, scale, blur, wipe, turn; a newer site may send others, so keep a fallback.
Enums\GalleryRotateOrder|string|null
Sometimes sent:null when the site leaves it out. Scattered spreads the changes over the whole wall, never twice in the same corner and never the same tile twice in a row. The other three move through the wall in a set direction, so the changes read as one gesture crossing the gallery rather than as separate events. One of scatter, wave, columns, rows; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to dip through the page background, which suits both themes. Set white for a brighter bloom, or the brand accent for a bolder pulse. The dip never reaches full strength, so the photo always shows through.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryRotatePace|string|null
Sometimes sent:null when the site leaves it out. The gap between one group of changes and the next. The real timing is deliberately uneven around this figure so the wall never feels metronomic. One of calm, steady, lively, rapid; a newer site may send others, so keep a fallback.
?int
Sometimes sent:null when the site leaves it out. How many tiles change per group. They never start on the same frame — each one follows the one before it by a beat, so a group reads as a ripple rather than a blink. 1 is the calmest; higher numbers keep more of the wall in motion. 1 to 6.
Enums\GalleryRotateFade|string|null
Sometimes sent:null when the site leaves it out. The length of one change, from the old photo to the new. Longer reads as a gentle phase; shorter as a snap — and short changes are the ones that read as choppy, so lean long. One of quick, normal, slow, lingering; a newer site may send others, so keep a fallback.
?int
Sometimes sent:null when the site leaves it out. How many photos beyond the ones on screen to send to the browser for the rotation to draw from — the bigger this is, the longer the gallery goes before a visitor sees a repeat. Retired photos go back to the end of the queue, so it cycles the whole reserve and then starts over. Cheap to raise: a reserved photo is a few URLs, well under 100 bytes once the page is compressed, and its image file is only fetched when it is about to appear. 0 to 500.
Enums\GalleryBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\GalleryBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of GalleryPreviewWidgetGalleryFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show GalleryPreviewWidgetGalleryFontOverridesItem (Fetchski\AttractCmsLaravel\Data\GalleryPreviewWidgetGalleryFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\GalleryCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\GalleryCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\GalleryCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\GalleryCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\GalleryCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\GalleryCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\GalleryCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show GalleryFullWidget (Fetchski\AttractCmsLaravel\Data\GalleryFullWidget)
A gallery-full widget: its type and its own fields. A field left out takes its default.
Enums\GalleryFullWidgetType|string
Always sent. The widget’s type: always gallery-full. One of gallery-full; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\GalleryEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\GalleryEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show just the photos.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\GalleryIntroSize|string|null
Sometimes sent:null when the site leaves it out. Intro size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\GalleryAlign|string|null
Sometimes sent:null when the site leaves it out. Header alignment. One of center, left; a newer site may send others, so keep a fallback.
Enums\GallerySource|string|null
Sometimes sent:null when the site leaves it out. Album: a curated set you pick and order by hand — best for a designed page. Folder: automatically shows every image filed in a media-library folder (newest first) — best for bulk collections you organize in the media manager. Feed: a set that refreshes itself on a schedule from an external photo store, so the gallery shows different photos over time. One of album, folder, feed; a newer site may send others, so keep a fallback.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. The Photo Album to display. Create and fill albums in the Photo Albums manager. The related photo-album documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. The media-library folder to display. Every image filed in it (and its subfolders, if enabled) is shown, newest first. The related image-folder documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Sometimes sent:null when the site leaves it out. Also show images filed in folders inside the selected folder.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. The Photo Feed to display. This gallery stays pointed at the feed while the feed replaces its photos on its own schedule. Create and configure feeds in the Photo Feeds manager. The related photo-feed documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?int
Sometimes sent:null when the site leaves it out. The most photos to show. 0 (default) shows everything in the selected source (folder photos are newest-first). 0 to 200.
Enums\GalleryLayout|string|null
Sometimes sent:null when the site leaves it out. Mosaic Photo Wall: an edge-to-edge wall where rows are scaled to a common height (like Flickr / Google Photos), cropped around each photo’s focal point — the richest option. Masonry: a staggered grid that hugs each photo’s shape. Grid: a tidy, uniform grid. Spotlight: every group of eight opens on an oversized lead photo, sides alternating on wide screens. Shaped Tiles: a portrait grid whose tiles cycle through slab, arch and orb shapes. Scrolling Banner: one edge-to-edge row that drifts sideways forever, so a long album reads as a ribbon of photos rather than a block — the option for a band between two sections rather than a gallery page. Panorama Wall: several rows, far wider than the screen, traveling sideways at slightly different speeds — and the visitor can push it along or against with a drag or a trackpad swipe. Vertical Ribbon: a band of columns running down the page instead of across it, neighboring columns traveling opposite ways, so the section reads as a moving curtain of photographs. One of justified, masonry, grid, spotlight, shaped, banner, panorama, ribbon; a newer site may send others, so keep a fallback.
Enums\GalleryColumns|string|null
Sometimes sent:null when the site leaves it out. How many tiles per row (grid, shaped tiles) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout; Spotlight sets its own pattern.) One of auto, 2, 3, 4, 5; a newer site may send others, so keep a fallback.
Enums\GalleryJustifiedHeight|string|null
Sometimes sent:null when the site leaves it out. The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of compact, normal, tall; a newer site may send others, so keep a fallback.
Enums\GalleryBannerHeight|string|null
Sometimes sent:null when the site leaves it out. How tall the moving row stands. Each photo keeps its own shape, so a taller banner shows wider photos and fewer of them at once. One of short, normal, tall; a newer site may send others, so keep a fallback.
Enums\GalleryBannerSpeed|string|null
Sometimes sent:null when the site leaves it out. How fast the row drifts. It also surges briefly with the page’s own scrolling, then settles back — so the band reacts to the visitor instead of ignoring them. One of slow, normal, fast; a newer site may send others, so keep a fallback.
Enums\GalleryBannerDirection|string|null
Sometimes sent:null when the site leaves it out. Banner direction. One of left, right; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Fades the row out at both ends so photos scroll in and out instead of being cut off by a hard edge.
Enums\GalleryPanoramaRows|string|null
Sometimes sent:null when the site leaves it out. How many rows of photos the wall is dealt across. Photos go into the rows in turn, so consecutive shots land in different rows rather than stacking up together. Deep walls want a big set — a row needs at least three photos of its own, so a small album quietly uses fewer, fuller rows than you pick here. One of 2, 3, 4, 5, 6, 7, 8; a newer site may send others, so keep a fallback.
Enums\GalleryPanoramaHeight|string|null
Sometimes sent:null when the site leaves it out. How tall each row stands, so the wall’s total depth is this times the number of rows — an eight-row Tall panorama fills a screen and then some. Each photo keeps its own shape, so taller rows show wider photos and fewer of them. One of short, normal, tall; a newer site may send others, so keep a fallback.
Enums\GalleryPanoramaSpeed|string|null
Sometimes sent:null when the site leaves it out. How fast the wall travels. Each row takes a slightly different share of this, so the rows shear gently against each other and the block reads as depth rather than as one sliding sheet. It also surges briefly with the page’s own scrolling, then settles back. One of slow, normal, fast; a newer site may send others, so keep a fallback.
Enums\GalleryPanoramaDirection|string|null
Sometimes sent:null when the site leaves it out. Travel direction. One of left, right; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Dragging the wall (or swiping sideways on a trackpad or phone) pushes it along or against its travel, and it glides back into its own pace when let go. Vertical scrolling always still scrolls the page. Needs site animations on in Site design → Motion.
?bool
Sometimes sent:null when the site leaves it out. Fades the rows out at both ends so photos travel in and out instead of being cut off by a hard edge.
Enums\GalleryRibbonColumns|string|null
Sometimes sent:null when the site leaves it out. How many columns of photos the band is dealt across. Photos go into the columns in turn, so consecutive shots land in different columns rather than stacking up together. Narrow screens show fewer columns than you pick here (two on a phone, three on a tablet) — because photos in a 50-pixel sliver are not photos. A column needs at least three photos of its own, so a small album quietly uses fewer, fuller columns. One of 2, 3, 4, 5, 6; a newer site may send others, so keep a fallback.
Enums\GalleryRibbonHeight|string|null
Sometimes sent:null when the site leaves it out. How tall the band stands — the window the columns travel through, not the columns themselves, which are always far taller than it. Each photo keeps its own shape and fills its column’s width, so the columns show more photos at once the taller the band is. One of short, normal, tall; a newer site may send others, so keep a fallback.
Enums\GalleryRibbonSpeed|string|null
Sometimes sent:null when the site leaves it out. How fast the columns travel. Each takes a slightly different share of this, so the band reads as a weave rather than as one sheet sliding. Slower than the sideways layouts at every setting on purpose: this moves along the same axis the visitor scrolls in, where the same speed feels far more urgent. It also surges briefly with the page’s own scrolling, then settles back. One of slow, normal, fast; a newer site may send others, so keep a fallback.
Enums\GalleryRibbonDirection|string|null
Sometimes sent:null when the site leaves it out. Which way the first column travels. With alternating columns on (below), its neighbors go the other way. One of up, down; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Send neighboring columns opposite ways, which is what makes the band read as a weave. Turn it off and the whole band travels one way together — quieter, and closer to a conventional scrolling wall.
?bool
Sometimes sent:null when the site leaves it out. Fades the columns out at the top and bottom so photos travel in and out instead of being cut off by a hard edge.
?bool
Sometimes sent:null when the site leaves it out. For albums where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.
Enums\GalleryGap|string|null
Sometimes sent:null when the site leaves it out. Gap between tiles. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
Enums\GalleryRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of none, slight, rounded; a newer site may send others, so keep a fallback.
Enums\GalleryCardStyle|string|null
Sometimes sent:null when the site leaves it out. The tile surface. Raised floats each photo on a soft shadow (default); Plain is a clean edge-to-edge wall; Luxe / Outline / Poster frame it; Ticket / Bracket / Forge / Press add graphic structure. The photo fills the tile, so fill-based looks (Tint, Inlay) read as their frame + elevation. On the Shaped Tiles layout the structural looks (Ticket / Bracket / Forge / Press) fall back to their plain surface — their rectangular marks can’t follow an arch or orb. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryCardStyleForgeScope|string|null
Sometimes sent:null when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame; a newer site may send others, so keep a fallback.
Enums\GalleryCardStyleForgeWeight|string|null
Sometimes sent:null when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of fine, medium, bold; a newer site may send others, so keep a fallback.
Enums\GalleryCardHover|string|null
Sometimes sent:null when the site leaves it out. What a tile does on hover, on top of the surface above. Glow (default) / Lift read best on photo tiles; Press collapses a Poster offset; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Overlay each photo’s alt text on hover. Off by default (a clean photo wall). The caption always shows in the lightbox.
Enums\GalleryCaptionSize|string|null
Sometimes sent:null when the site leaves it out. Caption size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\GalleryCaptionWeight|string|null
Sometimes sent:null when the site leaves it out. Caption weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Clicking a photo opens it full-size in an on-site lightbox (with previous / next). Turn off for a purely decorative wall that doesn’t enlarge.
?string
Sometimes sent:null when the site leaves it out. Optional — color of the hover wash / glow. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryDrift|string|null
Sometimes sent:null when the site leaves it out. A very slow pan-and-zoom on every photo, each tile on its own rhythm, so the wall stays quietly alive instead of holding perfectly still. Off by default: a still gallery costs nothing to keep on screen, and this runs continuously for as long as the page is open. Turn it on if you also switch on “Rotate photos automatically” below — a photo changing on a wall that is otherwise frozen reads as a glitch. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of off, subtle, bold; a newer site may send others, so keep a fallback.
Enums\GalleryParallax|string|null
Sometimes sent:null when the site leaves it out. Sets every photo at its own depth: as the page scrolls, some slide with it and some against it, so the wall has layers instead of being one flat plane. It only moves while the visitor scrolls — nothing happens when the page is still. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of off, subtle, bold; a newer site may send others, so keep a fallback.
Enums\GalleryShuffle|string|null
Sometimes sent:null when the site leaves it out. Every so often two photos trade places on the wall, gliding past each other into their new squares. Nothing resizes and nothing else on the wall moves — the grid’s squares are identical, so the photos simply swap seats. It holds still while a visitor’s pointer or keyboard is anywhere in the gallery, so nothing ever moves out from under a click. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of off, calm, steady, lively; a newer site may send others, so keep a fallback.
?int
Sometimes sent:null when the site leaves it out. Two photos swap with each other; three or more pass their seats along in a ring, so more of the wall is moving at once. Higher numbers read as the wall dealing itself a new hand rather than as two photos changing places. 2 to 6.
?bool
Sometimes sent:null when the site leaves it out. Photos fade out a few at a time and are replaced from the rest of the source, so the gallery keeps changing while a visitor watches. Needs more photos in the source than are on screen — set “Maximum photos” above to less than the source holds. Set “Ambient drift” above to Subtle as well: a photo changing on a wall that is otherwise perfectly still reads as a glitch rather than as movement. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion.
Enums\GalleryRotateStyle|string|null
Sometimes sent:null when the site leaves it out. Cross-fade: the next photo dissolves over the old one as it eases in — the quietest change. Fade through a color: the tile also dips towards a flat color while the photos dissolve, so it reads as “phasing out” without ever going blank. Slide in: the next photo travels in over the old one, which drifts the same way behind it. Zoom through: the next photo settles out of a slight enlargement. Soften through: the photo blurs out of focus and the next one comes back into it. Wipe across: a clean edge travels over the tile, leaving the next photo behind it. Turn over: the tile turns like a card and comes back showing the next photo — the boldest of the seven. One of cross, veil, push, scale, blur, wipe, turn; a newer site may send others, so keep a fallback.
Enums\GalleryRotateOrder|string|null
Sometimes sent:null when the site leaves it out. Scattered spreads the changes over the whole wall, never twice in the same corner and never the same tile twice in a row. The other three move through the wall in a set direction, so the changes read as one gesture crossing the gallery rather than as separate events. One of scatter, wave, columns, rows; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to dip through the page background, which suits both themes. Set white for a brighter bloom, or the brand accent for a bolder pulse. The dip never reaches full strength, so the photo always shows through.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\GalleryRotatePace|string|null
Sometimes sent:null when the site leaves it out. The gap between one group of changes and the next. The real timing is deliberately uneven around this figure so the wall never feels metronomic. One of calm, steady, lively, rapid; a newer site may send others, so keep a fallback.
?int
Sometimes sent:null when the site leaves it out. How many tiles change per group. They never start on the same frame — each one follows the one before it by a beat, so a group reads as a ripple rather than a blink. 1 is the calmest; higher numbers keep more of the wall in motion. 1 to 6.
Enums\GalleryRotateFade|string|null
Sometimes sent:null when the site leaves it out. The length of one change, from the old photo to the new. Longer reads as a gentle phase; shorter as a snap — and short changes are the ones that read as choppy, so lean long. One of quick, normal, slow, lingering; a newer site may send others, so keep a fallback.
?int
Sometimes sent:null when the site leaves it out. How many photos beyond the ones on screen to send to the browser for the rotation to draw from — the bigger this is, the longer the gallery goes before a visitor sees a repeat. Retired photos go back to the end of the queue, so it cycles the whole reserve and then starts over. Cheap to raise: a reserved photo is a few URLs, well under 100 bytes once the page is compressed, and its image file is only fetched when it is about to appear. 0 to 500.
Enums\GalleryBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\GalleryBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of GalleryFullWidgetGalleryFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show GalleryFullWidgetGalleryFontOverridesItem (Fetchski\AttractCmsLaravel\Data\GalleryFullWidgetGalleryFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of GalleryFullWidgetGalleryFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show GalleryFullWidgetGalleryFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\GalleryFullWidgetGalleryFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\GalleryCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\GalleryCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\GalleryCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\GalleryCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\GalleryCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\GalleryCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\GalleryCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show PricingWidget (Fetchski\AttractCmsLaravel\Data\PricingWidget)
A pricing widget: its type and its own fields. A field left out takes its default.
Enums\PricingWidgetType|string
Always sent. The widget’s type: always pricing. One of pricing; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. A small label above the heading (e.g. “Pricing”).
?string
Sometimes sent:null when the site leaves it out. Eyebrow.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\PricingEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\PricingEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Leave empty to show just the cards.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\PricingHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\PricingHeadingSize|string|null
Sometimes sent:null when the site leaves it out. Heading size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\PricingIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Intro weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\PricingIntroSize|string|null
Sometimes sent:null when the site leaves it out. Intro size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
Enums\PricingColumns|string|null
Sometimes sent:null when the site leaves it out. Auto fits as many as comfortably fit and works for any number of cards. Or lock a maximum per row. One of auto, 2, 3, 4; a newer site may send others, so keep a fallback.
Enums\PricingGap|string|null
Sometimes sent:null when the site leaves it out. Gap between cards. One of tight, normal, roomy; a newer site may send others, so keep a fallback.
Enums\PricingCardStyle|string|null
Sometimes sent:null when the site leaves it out. The base treatment for every tier (a highlighted tier always gets its own bold framed look). Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay; a newer site may send others, so keep a fallback.
Enums\PricingCardStyleRadius|string|null
Sometimes sent:null when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\PricingCardStyleForgeScope|string|null
Sometimes sent:null when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame; a newer site may send others, so keep a fallback.
Enums\PricingCardStyleForgeWeight|string|null
Sometimes sent:null when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of fine, medium, bold; a newer site may send others, so keep a fallback.
Enums\PricingAlign|string|null
Sometimes sent:null when the site leaves it out. Aligns the section header and the text inside each card. One of center, left; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Stretch every card to the tallest one and pin each button to the bottom, so the cards line up even with uneven feature lists.
?bool
Sometimes sent:null when the site leaves it out. A check (included) or cross (not included) before each feature. Off = a plain list.
Enums\PricingCardHover|string|null
Sometimes sent:null when the site leaves it out. How a card reacts to the pointer. Rise floats it up on an accent underglow; Selection ring previews the highlighted look + tints the price; Spotlight washes accent light over the price; Checklist lights up the ✓ marks one-by-one; Tilt is a 3-D parallax that only runs when site animations are on. One of none, rise, ring, spotlight, checklist, tilt; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Border / glow / spotlight / checkmark color on hover. Leave empty to use the highlight accent (then the site accent).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover accent.
Enums\PricingEntrance|string|null
Sometimes sent:null when the site leaves it out. How the cards animate in as they scroll into view. Featured-led makes the highlighted tier settle last with a little emphasis (draws the eye to the recommended plan); Simple stagger fades them in evenly. Only plays when site animations are on (Site design → Motion) — otherwise the cards are simply shown. One of featured, stagger, none; a newer site may send others, so keep a fallback.
Enums\PricingNameSize|string|null
Sometimes sent:null when the site leaves it out. Size of each card’s name / title. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
Enums\PricingPriceSize|string|null
Sometimes sent:null when the site leaves it out. Size of the price amount (the period and price note scale with it). One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
Enums\PricingDescSize|string|null
Sometimes sent:null when the site leaves it out. Size of each card’s description blurb. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
Enums\PricingFeatureSize|string|null
Sometimes sent:null when the site leaves it out. Size of the feature list text (notes and check marks scale with it). One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Ribbon text shown on a highlighted tier that doesn’t set its own badge. Each tier can override it (or badge a non-highlighted tier) below. Leave empty for no automatic badge.
?string
Sometimes sent:null when the site leaves it out. Color for the highlighted tier’s border + ring and each tier’s badge. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme accent.
Sometimes sent:null when the site leaves it out. A list of PricingWidgetPricingTiersItem. Each card is one tier / package / service. Toggle “Highlight” on the one you want to stand out.
Show PricingWidgetPricingTiersItem (Fetchski\AttractCmsLaravel\Data\PricingWidgetPricingTiersItem)
string
Always sent. Tier / package / service name — e.g. “Starter”, “Studio”, “Agency”.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\IconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.
Enums\IconAnimation|string|null
Sometimes sent:null when the site leaves it out. Icon animation. One of none, fa-beat, fa-bounce, fa-fade, fa-beat-fade, fa-flip, fa-shake, fa-spin; a newer site may send others, so keep a fallback.
Enums\IconSize|string|null
Sometimes sent:null when the site leaves it out. Relative to the component’s base icon size. One of default, sm, lg, xl, 2xl, 2x, 3x, 4x, 5x; a newer site may send others, so keep a fallback.
Enums\IconGap|string|null
Sometimes sent:null when the site leaves it out. Breathing room below the icon, before the card name. One of none, small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. A small ribbon on the card, e.g. “Best value”, “Limited spots”. Overrides the default highlight badge for this tier; works on any tier, highlighted or not. Empty on a highlighted tier falls back to the section’s “Default highlight badge”.
?bool
Sometimes sent:null when the site leaves it out. Emphasize this tier — accent border + ring, a subtle lift, and the Featured button look.
Enums\TextAlign|string|null
Sometimes sent:null when the site leaves it out. How this card’s text lines up. Normal = the section default (a centered section keeps the feature list left-aligned, as now). Center also centers the feature list; Left / Right align everything that way. One of normal, left, center, right; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Free text, so it fits any model — “$45", "From $200”, “Custom”, “Call for quote”.
?string
Sometimes sent:null when the site leaves it out. Shown after the price, e.g. ”/ month”, “per night”, “per session”. Leave empty for a flat price.
?string
Sometimes sent:null when the site leaves it out. A small line under the price, e.g. “per seat”, “billed annually”, ”+ tax”.
?string
Sometimes sent:null when the site leaves it out. A short blurb under the name.
Sometimes sent:null when the site leaves it out. A list of PricingWidgetPricingTiersItemFeaturesItem. The bullet list of what’s included.
Show PricingWidgetPricingTiersItemFeaturesItem (Fetchski\AttractCmsLaravel\Data\PricingWidgetPricingTiersItemFeaturesItem)
string
Always sent. Feature.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
?bool
Sometimes sent:null when the site leaves it out. On = a check mark; off = a crossed-out / muted line (e.g. a feature this tier lacks).
?string
Sometimes sent:null when the site leaves it out. A small qualifier shown after the feature, e.g. “up to 5”, “add-on”.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. This card’s button text. Leave empty to use the shared button label (set in the Pricing · Buttons tab); clear it everywhere to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/contact-us) or full URL. Leave empty to inherit the shared button link.
?bool
Sometimes sent:null when the site leaves it out. Open button in new tab.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\PricingBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\PricingBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of PricingWidgetPricingFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show PricingWidgetPricingFontOverridesItem (Fetchski\AttractCmsLaravel\Data\PricingWidgetPricingFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of PricingWidgetPricingFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show PricingWidgetPricingFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\PricingWidgetPricingFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\PricingFeaturedCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\PricingFeaturedCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\PricingFeaturedCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\PricingFeaturedCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\PricingFeaturedCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\PricingFeaturedCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\PricingFeaturedCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\PricingCtaVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\PricingCtaSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\PricingCtaRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\PricingCtaStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\PricingCtaAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\PricingCtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\PricingCtaIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show NewsletterWidget (Fetchski\AttractCmsLaravel\Data\NewsletterWidget)
A newsletter widget: its type and its own fields. A field left out takes its default.
Enums\NewsletterWidgetType|string
Always sent. The widget’s type: always newsletter. One of newsletter; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. The Form (Forms manager) that receives these submissions and routes them — configure its destinations on the form’s Actions tab. Create one if you have not yet. The related @apostrophecms/form documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Sometimes sent:null when the site leaves it out. Show eyebrow.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\NewsletterEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\NewsletterEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\NewsletterHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\NewsletterHeadingSize|string|null
Sometimes sent:null when the site leaves it out. Size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\NewsletterIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\NewsletterIntroSize|string|null
Sometimes sent:null when the site leaves it out. Size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
Enums\NewsletterBand|string|null
Sometimes sent:null when the site leaves it out. Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of plain, raised, accent; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The accent band color. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\NewsletterAlign|string|null
Sometimes sent:null when the site leaves it out. Alignment. One of center, left; a newer site may send others, so keep a fallback.
Enums\NewsletterLayout|string|null
Sometimes sent:null when the site leaves it out. Inline puts the field + button on one row (stacks on small screens); Stacked always stacks them. One of inline, stacked; a newer site may send others, so keep a fallback.
Enums\NewsletterWidth|string|null
Sometimes sent:null when the site leaves it out. Content width. One of narrow, normal, wide; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Collect a name.
?string
Sometimes sent:null when the site leaves it out. Name label.
?string
Sometimes sent:null when the site leaves it out. Name placeholder.
?string
Sometimes sent:null when the site leaves it out. Email label.
?string
Sometimes sent:null when the site leaves it out. Email placeholder.
?bool
Sometimes sent:null when the site leaves it out. Optional opt-in checkbox (e.g. for GDPR-style explicit consent).
?string
Sometimes sent:null when the site leaves it out. Consent statement.
?string
Sometimes sent:null when the site leaves it out. A small line under the form, e.g. an unsubscribe note.
?string
Sometimes sent:null when the site leaves it out. Success message.
?string
Sometimes sent:null when the site leaves it out. Error message.
Enums\NewsletterBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\NewsletterBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of NewsletterWidgetNewsletterFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show NewsletterWidgetNewsletterFontOverridesItem (Fetchski\AttractCmsLaravel\Data\NewsletterWidgetNewsletterFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of NewsletterWidgetNewsletterFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show NewsletterWidgetNewsletterFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\NewsletterWidgetNewsletterFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
Enums\NewsletterSubmitVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\NewsletterSubmitSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\NewsletterSubmitRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\NewsletterSubmitStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\NewsletterSubmitAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\NewsletterSubmitIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\NewsletterSubmitIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show SmsSignupWidget (Fetchski\AttractCmsLaravel\Data\SmsSignupWidget)
A sms-signup widget: its type and its own fields. A field left out takes its default.
Enums\SmsSignupWidgetType|string
Always sent. The widget’s type: always sms-signup. One of sms-signup; a newer site may send others, so keep a fallback.
string
Always sent. Shown beside a required checkbox; the form shows only once this is filled in. Be specific about what they are agreeing to. The brand name is added automatically from Site settings.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. The Form (Forms manager) that receives these SMS opt-ins and routes them — configure its destinations on the form’s Actions tab. The related @apostrophecms/form documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Sometimes sent:null when the site leaves it out. Show eyebrow.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\SmsSignupEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\SmsSignupEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\SmsSignupHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\SmsSignupHeadingSize|string|null
Sometimes sent:null when the site leaves it out. Size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\SmsSignupIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\SmsSignupIntroSize|string|null
Sometimes sent:null when the site leaves it out. Size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
Enums\SmsSignupBand|string|null
Sometimes sent:null when the site leaves it out. Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of plain, raised, accent; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The accent band color. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\SmsSignupAlign|string|null
Sometimes sent:null when the site leaves it out. Alignment. One of center, left; a newer site may send others, so keep a fallback.
Enums\SmsSignupLayout|string|null
Sometimes sent:null when the site leaves it out. Inline puts the field + button on one row (stacks on small screens); Stacked always stacks them. One of inline, stacked; a newer site may send others, so keep a fallback.
Enums\SmsSignupWidth|string|null
Sometimes sent:null when the site leaves it out. Content width. One of narrow, normal, wide; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Collect a name.
?string
Sometimes sent:null when the site leaves it out. Name label.
?string
Sometimes sent:null when the site leaves it out. Name placeholder.
?string
Sometimes sent:null when the site leaves it out. Phone label.
?string
Sometimes sent:null when the site leaves it out. Phone placeholder.
?string
Sometimes sent:null when the site leaves it out. Carrier-compliance fine print shown under the form.
?string
Sometimes sent:null when the site leaves it out. Optional — linked from the fine print.
?string
Sometimes sent:null when the site leaves it out. Optional — linked from the fine print.
?string
Sometimes sent:null when the site leaves it out. Success message.
?string
Sometimes sent:null when the site leaves it out. Error message.
Enums\SmsSignupBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\SmsSignupBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of SmsSignupWidgetSmsSignupFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show SmsSignupWidgetSmsSignupFontOverridesItem (Fetchski\AttractCmsLaravel\Data\SmsSignupWidgetSmsSignupFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
Enums\SmsSignupSubmitVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\SmsSignupSubmitSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\SmsSignupSubmitRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\SmsSignupSubmitStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\SmsSignupSubmitAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\SmsSignupSubmitIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\SmsSignupSubmitIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show FormRenderWidget (Fetchski\AttractCmsLaravel\Data\FormRenderWidget)
A form-render widget: its type and its own fields. A field left out takes its default.
Enums\FormRenderWidgetType|string
Always sent. The widget’s type: always form-render. One of form-render; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
Collection<int, array<string, mixed>>|null
Sometimes sent:null when the site leaves it out. The form to show here. Build and edit the form itself in the Forms manager (create one there first if needed). The related @apostrophecms/form documents, in order (empty when none). To set it, send a list of { "_id": "…" }, one per document (one at most); a document the site can’t find is left out. At most 1 items.
?bool
Sometimes sent:null when the site leaves it out. Off: the form renders with the styling saved on the form itself. On: the styling below replaces it here only — the form’s fields and other placements are unaffected.
Sometimes sent:null when the site leaves it out. A list of FormRenderWidgetFormFontOverridesItem. Optional. Set part of this form in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show FormRenderWidgetFormFontOverridesItem (Fetchski\AttractCmsLaravel\Data\FormRenderWidgetFormFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of FormRenderWidgetFormFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show FormRenderWidgetFormFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\FormRenderWidgetFormFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?bool
Sometimes sent:null when the site leaves it out. Show eyebrow.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\FormEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\FormEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to track the theme text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\FormHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\FormHeadingSize|string|null
Sometimes sent:null when the site leaves it out. Size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional short sentence under the heading.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the muted text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\FormIntroWeight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\FormIntroSize|string|null
Sometimes sent:null when the site leaves it out. Size. One of small, normal, large, xlarge, xxlarge; a newer site may send others, so keep a fallback.
Enums\FormBand|string|null
Sometimes sent:null when the site leaves it out. Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of plain, raised, accent; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The accent band color. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\FormAlign|string|null
Sometimes sent:null when the site leaves it out. Alignment of the section header (the form fields stay left-aligned for legibility). One of center, left; a newer site may send others, so keep a fallback.
Enums\FormWidth|string|null
Sometimes sent:null when the site leaves it out. Content width. One of narrow, normal, wide; a newer site may send others, so keep a fallback.
Enums\FormLabelGap|string|null
Sometimes sent:null when the site leaves it out. Vertical space between each field’s label and its input. One of compact, normal, roomy, spacious; a newer site may send others, so keep a fallback.
Enums\FormBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\FormBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
Enums\FormSubmitVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\FormSubmitSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\FormSubmitRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\FormSubmitStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\FormSubmitAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\FormSubmitIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\FormSubmitIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Show FinalCtaWidget (Fetchski\AttractCmsLaravel\Data\FinalCtaWidget)
A final-cta widget: its type and its own fields. A field left out takes its default.
Enums\FinalCtaWidgetType|string
Always sent. The widget’s type: always final-cta. One of final-cta; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
Enums\CtaAlign|string|null
Sometimes sent:null when the site leaves it out. Content alignment. One of center, left; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Show eyebrow / kicker.
?string
Sometimes sent:null when the site leaves it out. Small label shown above the title.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.
Enums\CtaEyebrowWeight|string|null
Sometimes sent:null when the site leaves it out. Eyebrow weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\CtaEyebrowSize|string|null
Sometimes sent:null when the site leaves it out. Eyebrow size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\CtaIconPlacement|string|null
Sometimes sent:null when the site leaves it out. An optional Font Awesome icon above the headline. One of none, top; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\CtaIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.
Enums\CtaIconAnimation|string|null
Sometimes sent:null when the site leaves it out. Icon animation. One of none, fa-beat, fa-bounce, fa-fade, fa-beat-fade, fa-flip, fa-shake, fa-spin; a newer site may send others, so keep a fallback.
Enums\CtaIconSize|string|null
Sometimes sent:null when the site leaves it out. Relative to the component’s base icon size. One of default, sm, lg, xl, 2xl, 2x, 3x, 4x, 5x; a newer site may send others, so keep a fallback.
Enums\CtaIconTilt|string|null
Sometimes sent:null when the site leaves it out. A slight rotation for a more playful look. One of none, left, right; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Headline.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the headline color. Leave empty for the on-accent (legible-on-band) default.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the on-accent default.
Enums\CtaHeadlineWeight|string|null
Sometimes sent:null when the site leaves it out. Headline weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Supporting copy.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the supporting-copy color. Leave empty for the softened on-accent default.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the softened on-accent default.
Enums\CtaBodyWeight|string|null
Sometimes sent:null when the site leaves it out. Body weight. One of normal, medium, semibold, bold; a newer site may send others, so keep a fallback.
Enums\CtaBackgroundType|string|null
Sometimes sent:null when the site leaves it out. Solid keeps the loud color block; Image places a photo behind the text with a readability overlay. One of solid, image; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The solid band color (and the fallback behind a background image). Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
?ImageArea
Sometimes sent:null when the site leaves it out. An ImageArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first ImageArea above.
?string
Sometimes sent:null when the site leaves it out. Scrim over the image to keep the text readable. Leave empty to use the accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme overlay, then the accent.
?float
Sometimes sent:null when the site leaves it out. Overlay opacity (%). 0 to 100.
?bool
Sometimes sent:null when the site leaves it out. The two large outlined circles on the band.
?string
Sometimes sent:null when the site leaves it out. Drawn at a low opacity. Leave empty to use the on-accent (white-ish) default.
Sometimes sent:null when the site leaves it out. A list of FinalCtaWidgetCtaFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show FinalCtaWidgetCtaFontOverridesItem (Fetchski\AttractCmsLaravel\Data\FinalCtaWidgetCtaFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of FinalCtaWidgetCtaFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show FinalCtaWidgetCtaFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\FinalCtaWidgetCtaFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\CtaPrimaryVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\CtaPrimarySize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\CtaPrimaryRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\CtaPrimaryStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\CtaPrimaryAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\CtaPrimaryIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\CtaPrimaryIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
?string
Sometimes sent:null when the site leaves it out. Where the button goes — a path (/blog) or full URL.
?bool
Sometimes sent:null when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).
Enums\CtaSecondaryVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\CtaSecondarySize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\CtaSecondaryRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\CtaSecondaryStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\CtaSecondaryAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\CtaSecondaryIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\CtaSecondaryIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\ComingSoonIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.
Enums\ComingSoonIconAnimation|string|null
Sometimes sent:null when the site leaves it out. Icon animation. One of none, fa-beat, fa-bounce, fa-fade, fa-beat-fade, fa-flip, fa-shake, fa-spin; a newer site may send others, so keep a fallback.
Enums\ComingSoonIconSize|string|null
Sometimes sent:null when the site leaves it out. Relative to the component’s base icon size. One of default, sm, lg, xl, 2xl, 2x, 3x, 4x, 5x; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Shown under the icon while this page has no content. Leave empty for a tasteful default line.
?string
Sometimes sent:null when the site leaves it out. Optional. Color of the ”← back” link at the top of every post. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\BackLinkWeight|string|null
Sometimes sent:null when the site leaves it out. Back link weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\BackLinkSize|string|null
Sometimes sent:null when the site leaves it out. Back link size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?SectionsArea
Sometimes sent:null when the site leaves it out. A SectionsArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. A new document starts with page-header. Its fields are listed under the first SectionsArea above.
?BlogListArea
Sometimes sent:null when the site leaves it out. A BlogListArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. A new document starts with blog-list.
Show BlogListArea (Fetchski\AttractCmsLaravel\Data\BlogListArea)
Enums\AfterContentAreaMetaType|string|null
Sometimes sent:null when the site leaves it out. Always area. One of area; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The area’s id, set by the site: leave it out when you write one.
Collection<int, BlogListWidget>|null
Sometimes sent:null when the site leaves it out. A list of BlogListWidget. The widgets, top to bottom. Each is an object with its type and that widget’s own fields; _id and metaType may be left out (the site sets them). At most 1 items.
Show BlogListWidget (Fetchski\AttractCmsLaravel\Data\BlogListWidget)
A blog-list widget: its type and its own fields. A field left out takes its default.
Enums\BlogListWidgetType|string
Always sent. The widget’s type: always blog-list. One of blog-list; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.
Enums\MetaType|string|null
Sometimes sent:null when the site leaves it out. Always widget. One of widget; a newer site may send others, so keep a fallback.
Enums\BlogLayout|string|null
Sometimes sent:null when the site leaves it out. How posts are arranged. One of card, list, compact, featured, masonry; a newer site may send others, so keep a fallback.
Enums\BlogColumns|string|null
Sometimes sent:null when the site leaves it out. Applies to the Card grid and Masonry layouts. One of auto, 2, 3; a newer site may send others, so keep a fallback.
Enums\BlogEntrance|string|null
Sometimes sent:null when the site leaves it out. How posts animate in as they scroll into view. Only plays when site animations are on (Site design → Motion) — otherwise the posts are simply shown. In the Featured + grid layout the banner rises first, then the grid staggers in. One of stagger, none; a newer site may send others, so keep a fallback.
Enums\BlogCardImageAspect|string|null
Sometimes sent:null when the site leaves it out. Aspect ratio of the featured image. Choose “Hidden” for text-only cards. One of 16/10, 4/3, 3/2, 1/1, none; a newer site may send others, so keep a fallback.
Enums\BlogCardImageHover|string|null
Sometimes sent:null when the site leaves it out. Image hover. One of zoom, none; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Use the featured image as the full card background, with the title and meta overlaid on a dark scrim. Posts with no image fall back to a normal card.
Enums\BlogCardPreset|string|null
Sometimes sent:null when the site leaves it out. The card surface. Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. (On image-led cards the photo covers the top edge.) One of raised, luxe, outline, plain, poster, edge, tint, ticket, bracket, forge, press, inlay; a newer site may send others, so keep a fallback.
Enums\BlogCardPresetRadius|string|null
Sometimes sent:null when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of default, square, slight, rounded, large; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.
Enums\BlogCardPresetForgeScope|string|null
Sometimes sent:null when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of corner, frame; a newer site may send others, so keep a fallback.
Enums\BlogCardPresetForgeWeight|string|null
Sometimes sent:null when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of fine, medium, bold; a newer site may send others, so keep a fallback.
Enums\BlogCardHover|string|null
Sometimes sent:null when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt (3-D + glare), Magnetic and Spotlight follow the cursor (need site animations on). The Hover color below tints these. One of none, lift, pop, press, glow, border, sheen, tilt, magnetic, spotlight; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Border / shadow / glow color on hover. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
?bool
Sometimes sent:null when the site leaves it out. Show category.
Enums\BlogCardCategoryStyle|string|null
Sometimes sent:null when the site leaves it out. How the category badge uses its color (set per category under Blog Categories). Filled = colored background; Outline = colored border + text; Minimal = colored text only. One of filled, outline, minimal; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Show date.
?bool
Sometimes sent:null when the site leaves it out. Show excerpt.
Enums\BlogCardExcerptLines|string|null
Sometimes sent:null when the site leaves it out. How many lines of the excerpt to show before truncating. One of 2, 3, 4, none; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. Show author.
?bool
Sometimes sent:null when the site leaves it out. Show “Read post” link.
Enums\BlogCardReadMorePlacement|string|null
Sometimes sent:null when the site leaves it out. Auto puts it on the right of horizontal cards (list / compact / featured) and below the text on grid cards. Or force one placement everywhere. One of auto, below, right; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the “Read post” link color. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
?string
Sometimes sent:null when the site leaves it out. Optional. Color of the “Read post” link when the card is hovered. Leave empty to use the accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color, then the accent.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the card title color. Leave empty to track the theme’s text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.
Enums\BlogCardTitleWeight|string|null
Sometimes sent:null when the site leaves it out. Title weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Title color when the card is hovered. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color, then the accent.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides the excerpt text color. Leave empty for the muted default.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.
Enums\BlogCardTextWeight|string|null
Sometimes sent:null when the site leaves it out. Excerpt weight. One of normal, medium, semibold, bold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Date / meta line color. Leave empty for the faint default.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the faint default.
Enums\BlogBg|string|null
Sometimes sent:null when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.
Enums\BlogBgLight|string|null
Sometimes sent:null when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of inherit, transparent, surface, raised, sunken, hill, accent-soft, custom; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.
Sometimes sent:null when the site leaves it out. A list of BlogListWidgetBlogFontOverridesItem. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.
Show BlogListWidgetBlogFontOverridesItem (Fetchski\AttractCmsLaravel\Data\BlogListWidgetBlogFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of BlogListWidgetBlogFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show BlogListWidgetBlogFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\BlogListWidgetBlogFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?CustomCSS
Sometimes sent:null when the site leaves it out. A CustomCSS. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like &:hover, @media (width >= 48rem) and [data-theme=“light”] & work inside a slot. Its fields are listed under the first CustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
?SectionsArea
Sometimes sent:null when the site leaves it out. A SectionsArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first SectionsArea above.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
Enums\BackButtonVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\BackButtonSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\BackButtonRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\BackButtonStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\BackButtonAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\BackButtonIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\BackButtonIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
Collection<int, PagePostFontOverridesItem>|null
Sometimes sent:null when the site leaves it out. A list of PagePostFontOverridesItem. Optional. Set part of every post in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). An individual post can replace this on its own Fonts tab. At most 4 items.
Show PagePostFontOverridesItem (Fetchski\AttractCmsLaravel\Data\PagePostFontOverridesItem)
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Target|string|null
Sometimes sent:null when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of all, heading, body, eyebrow, button, code; a newer site may send others, so keep a fallback.
Enums\Source|string|null
Sometimes sent:null when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of slot, curated, cdn, upload; a newer site may send others, so keep a fallback.
Enums\Slot|string|null
Sometimes sent:null when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of display, body, accent; a newer site may send others, so keep a fallback.
Enums\Curated|string|null
Sometimes sent:null when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of archivo, bricolage-grotesque, clash-display, courier-prime, dm-mono, dm-sans, fira-code, fraunces, general-sans, ibm-plex-mono, ibm-plex-sans, inconsolata, inter, jetbrains-mono, karla, lora, manrope, nunito-sans, outfit, playfair-display, public-sans, red-hat-mono, satoshi, sentient, sora, source-code-pro, source-sans-3, source-serif-4, space-grotesk, space-mono, spline-sans-mono, supreme, switzer, syne, ubuntu-mono, unbounded, victor-mono, work-sans, zodiak; a newer site may send others, so keep a fallback.
Enums\CdnProvider|string|null
Sometimes sent:null when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of bunny, fontshare; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.
?string
Sometimes sent:null when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.
Sometimes sent:null when the site leaves it out. A list of PagePostFontOverridesItemUploadsItem. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.
Show PagePostFontOverridesItemUploadsItem (Fetchski\AttractCmsLaravel\Data\PagePostFontOverridesItemUploadsItem)
array<string, mixed>
Always sent. File attachment reference.
?string
Sometimes sent:null when the site leaves it out. The row’s id, unique in its array.
Enums\Weight|string|null
Sometimes sent:null when the site leaves it out. Weight. One of 100, 200, 300, 400, 500, 600, 700, 800, 900; a newer site may send others, so keep a fallback.
Enums\Style|string|null
Sometimes sent:null when the site leaves it out. Style. One of normal, italic; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\Fallback|string|null
Sometimes sent:null when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of sans, serif, mono; a newer site may send others, so keep a fallback.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Enums\PostTextSize|string|null
Sometimes sent:null when the site leaves it out. Body text size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\PostTextWeight|string|null
Sometimes sent:null when the site leaves it out. Body text weight. One of normal, medium, semibold; a newer site may send others, so keep a fallback.
Enums\PostContentWidth|string|null
Sometimes sent:null when the site leaves it out. Reading measure — how wide the article column gets. Posts that contain section widgets open to Full width automatically so the widgets have room. One of narrow, normal, wide, xwide, full; a newer site may send others, so keep a fallback.
Enums\PostLineHeight|string|null
Sometimes sent:null when the site leaves it out. Line height. One of tight, normal, relaxed; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Links, the blockquote rule, and heading accents. Leave empty to use the site link color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the link color.
Enums\PostHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides in-article heading color. Leave empty to track the theme’s text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.
?PostCustomCSS
Sometimes sent:null when the site leaves it out. A PostCustomCSS. CSS for every blog post’s page: the title band, the article and its parts. It wins over Site design → Custom CSS → Blog post.
Show PostCustomCSS (Fetchski\AttractCmsLaravel\Data\PostCustomCSS)
array<string, string>|null
Sometimes sent:null when the site leaves it out. The CSS typed into each part slot, by slot name.
?string
Sometimes sent:null when the site leaves it out. The compiled CSS (read only: rebuilt from slots).
?string
Sometimes sent:null when the site leaves it out. The site’s check mark for css (read only).
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Collection<int, Page>|null
Sometimes sent:null when the site leaves it out. A list of Page. Its child pages, each with its own _children where the request asked for more levels. Its fields are listed under the first Page above.
?string
Sometimes sent:null when the site leaves it out. Full URL to the page. Format: an absolute URL.
?bool
Sometimes sent:null when the site leaves it out. Whether current user can edit this page.
?bool
Sometimes sent:null when the site leaves it out. Whether current user can publish this page.
?string
Sometimes sent:null when the site leaves it out. The _id of the piece/page that was copied to create this document (only present if created via _copyingId)
?Page
Sometimes sent:null when the site leaves it out. A Page. A page: the fields every page has, and each page type’s own (type says which page type it is; a field belongs only to the page types that define it). Its fields are listed under the first Page above.
?Page
Sometimes sent:null when the site leaves it out. A Page. A page: the fields every page has, and each page type’s own (type says which page type it is; a field belongs only to the page types that define it). Its fields are listed under the first Page above.
?string
Sometimes sent:null when the site leaves it out. The draft’s preview share key, while its share link is on: the link is the draft’s _url with aposShareKey and aposShareId (the draft’s _id) in its query. Absent otherwise, and on published documents.
?string
Sometimes sent:null when the site leaves it out. An ISO 8601 date and time, e.g. 2026-10-21T14:30:00.000Z.
?string
Sometimes sent:null when the site leaves it out. An ISO 8601 date and time, e.g. 2026-10-21T14:30:00.000Z.
?string
Sometimes sent:null when the site leaves it out. Overrides the document title in the browser tab and search results. Leave blank to use the regular title.
?string
Sometimes sent:null when the site leaves it out. Shown in search results and link previews. Aim for 150–160 characters.
?ImageArea
Sometimes sent:null when the site leaves it out. An ImageArea. Used for Open Graph / social link previews. Recommended 1200×630. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first ImageArea above.
Collection<int, PagePageFontOverridesItem>|null
Sometimes sent:null when the site leaves it out. A list of PagePageFontOverridesItem. Optional. Set part of this page in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). Individual sections can still override this for themselves. At most 4 items. Its fields are listed under the first PagePageFontOverridesItem above.
Enums\FooterMarqueeMode|string|null
Sometimes sent:null when the site leaves it out. The ribbon of phrases scrolling across the top of the footer. Its phrases and the site-wide default are set in Site design → Footer: Marquee. One of inherit, on, off; a newer site may send others, so keep a fallback.
?SectionsArea
Sometimes sent:null when the site leaves it out. A SectionsArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. A new document starts with page-header. Its fields are listed under the first SectionsArea above.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\ComingSoonIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.
Enums\ComingSoonIconAnimation|string|null
Sometimes sent:null when the site leaves it out. Icon animation. One of none, fa-beat, fa-bounce, fa-fade, fa-beat-fade, fa-flip, fa-shake, fa-spin; a newer site may send others, so keep a fallback.
Enums\ComingSoonIconSize|string|null
Sometimes sent:null when the site leaves it out. Relative to the component’s base icon size. One of default, sm, lg, xl, 2xl, 2x, 3x, 4x, 5x; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Shown under the icon while this page has no content. Leave empty for a tasteful default line.
?string
Sometimes sent:null when the site leaves it out. Optional. Color of the ”← back” link at the top of every post. Leave empty to use the site accent color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.
Enums\BackLinkWeight|string|null
Sometimes sent:null when the site leaves it out. Back link weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
Enums\BackLinkSize|string|null
Sometimes sent:null when the site leaves it out. Back link size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
?SectionsArea
Sometimes sent:null when the site leaves it out. A SectionsArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. A new document starts with page-header. Its fields are listed under the first SectionsArea above.
?BlogListArea
Sometimes sent:null when the site leaves it out. A BlogListArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. A new document starts with blog-list. Its fields are listed under the first BlogListArea above.
?SectionsArea
Sometimes sent:null when the site leaves it out. A SectionsArea. Widgets, top to bottom: send { "items": [ … ] }, one object per widget with its type. Writing it replaces the whole area. Its fields are listed under the first SectionsArea above.
?string
Sometimes sent:null when the site leaves it out. The visible button text. Leave empty to hide the button.
Enums\BackButtonVariant|string|null
Sometimes sent:null when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of solid, outline, soft, link; a newer site may send others, so keep a fallback.
Enums\BackButtonSize|string|null
Sometimes sent:null when the site leaves it out. Button size. One of small, normal, large; a newer site may send others, so keep a fallback.
Enums\BackButtonRadius|string|null
Sometimes sent:null when the site leaves it out. Corner radius. One of pill, rounded, slight, square; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)
?string
Sometimes sent:null when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.
?string
Sometimes sent:null when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.
Enums\BackButtonStyle|string|null
Sometimes sent:null when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of none, single, dual, glow, sweep, thicken; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.
Enums\BackButtonAnimation|string|null
Sometimes sent:null when the site leaves it out. Hover motion. One of lift, scale, lift-scale, none; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.
Enums\BackButtonIconFamily|string|null
Sometimes sent:null when the site leaves it out. Icon family. One of classic-regular, duotone-regular, brands, jelly, jelly-duo, whiteboard; a newer site may send others, so keep a fallback.
Enums\BackButtonIconPosition|string|null
Sometimes sent:null when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of before, after; a newer site may send others, so keep a fallback.
?bool
Sometimes sent:null when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).
Collection<int, PagePostFontOverridesItem>|null
Sometimes sent:null when the site leaves it out. A list of PagePostFontOverridesItem. Optional. Set part of every post in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). An individual post can replace this on its own Fonts tab. At most 4 items. Its fields are listed under the first PagePostFontOverridesItem above.
Enums\PostTextSize|string|null
Sometimes sent:null when the site leaves it out. Body text size. One of small, normal, large, xlarge; a newer site may send others, so keep a fallback.
Enums\PostTextWeight|string|null
Sometimes sent:null when the site leaves it out. Body text weight. One of normal, medium, semibold; a newer site may send others, so keep a fallback.
Enums\PostContentWidth|string|null
Sometimes sent:null when the site leaves it out. Reading measure — how wide the article column gets. Posts that contain section widgets open to Full width automatically so the widgets have room. One of narrow, normal, wide, xwide, full; a newer site may send others, so keep a fallback.
Enums\PostLineHeight|string|null
Sometimes sent:null when the site leaves it out. Line height. One of tight, normal, relaxed; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Links, the blockquote rule, and heading accents. Leave empty to use the site link color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the link color.
Enums\PostHeadingWeight|string|null
Sometimes sent:null when the site leaves it out. Heading weight. One of normal, medium, semibold, bold, extrabold; a newer site may send others, so keep a fallback.
?string
Sometimes sent:null when the site leaves it out. Optional. Overrides in-article heading color. Leave empty to track the theme’s text color.
?string
Sometimes sent:null when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.
?PostCustomCSS
Sometimes sent:null when the site leaves it out. A PostCustomCSS. CSS for every blog post’s page: the title band, the article and its parts. It wins over Site design → Custom CSS → Blog post. Its fields are listed under the first PostCustomCSS above.
array<string, mixed>
Always there:[] when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list ({}, {"0": …}) is a stdClass, so it is sent back as an object.
Errors
Nothing to catch: the SDK retries what is safe, and Laravel logs and renders the rest (see Errors and testing).
400
The site refused what was sent: errors() lists each field’s problem, siteMessage() the first.Retried first: No. Read:errors() (field → messages), siteMessage().
401
The API key is missing or refused (malformed, revoked, expired), or a signature its signing mode needs is missing or stale.Retried first: No. Read:siteMessage(), errorName(), data().
403
The key may not do this: a scope it lacks, or an address outside its allowlist. siteMessage() names it.Retried first: No. Read:siteMessage(), errorName(), data().
500
The site failed. Its logs say why.Retried first: No: a write may have landed. Read:siteMessage(), errorName(), data().
no answer
No answer: DNS, a refused connection, TLS, or the timeout (15 s per attempt by default).Retried first: Only when nothing reached the site (neverConnected()); never after a timeout, when it may have landed. Read:reason(), neverConnected().
not sent
The client refused to send it (e.g. a path segment of ..); the site never saw it.Retried first: No. Read:reason() (what to change).
any other
Any other status, or a success whose JSON doesn’t match this SDK version’s types (update the SDK).Retried first: No. Read:reason(), status().
setup
Attract::site('acme') named a slug that isn’t under sites in config/fetchski-attract.php.Retried first: No: nothing was sent. Read:getMessage(), $e->slug.
setup
The site’s config entry is wrong: no url, a malformed api_key, a key filed under another slug, or no default site.Retried first: No: nothing was sent. Read:getMessage() (what to fix).
Behavior
Access: an API key with content:pages:write (or a master above it: content:pages:all, content:all, admin:all). In published mode (the default) it goes live too, so the key also needs content:pages:publish (or a master above it); send aposMode=draft to change only the draft. A signed-in person may call it as far as their own permissions allow; anyone else gets 403.
Rate limit: the key’s own writes-per-minute limit, set when the key is created (default 120); over it, 429 with Retry-After. The client waits and retries for you; you see RateLimited only if that runs out.
Retries: a write is sent again only after a 429 (refused before it acted) or when it never reached the site. After a timeout or a 5xx it may have landed: check before you send it again.
Timeout: 15 s per attempt by default; raise timeout in config/fetchski-attract.php for longer.
Test it
It calls the route above with the SDK faked: the fake answers every call with a valid example, so nothing leaves your machine and no config or key is needed. Save it as tests/Feature/CreatePageTest.php, then run your tests:
tests/Feature/CreatePageTest.php
<?phpdeclare(strict_types=1);namespace Tests\Feature;use App\Models\User;use Fetchski\AttractCmsLaravel\Facades\Attract;use Illuminate\Foundation\Testing\RefreshDatabase;use Tests\TestCase;final class CreatePageTest extends TestCase{ use RefreshDatabase; public function test_create_page(): void { Attract::fake(); $this->actingAs(User::factory()->create()) ->postJson('/page') ->assertOk(); Attract::assertCalled('pages.createPage'); }}
Terminal
php artisan test
Answer with your own values: fake pages.createPage with Page::factory()->make([...]), the fields you give over a valid example.
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Fetchski Attract Docs","colors":{"primary":"#16a34a","light":"#22c55e","dark":"#15803d"},"logo":{"light":"https://mintcdn.com/fetchski-attract-api/mn9qfQRsqaASh7UE/logo/light.svg?fit=max\u0026auto=format\u0026n=mn9qfQRsqaASh7UE\u0026q=85\u0026s=66db13e248b70a44a5ff5f6990d4cb63","dark":"https://mintcdn.com/fetchski-attract-api/mn9qfQRsqaASh7UE/logo/dark.svg?fit=max\u0026auto=format\u0026n=mn9qfQRsqaASh7UE\u0026q=85\u0026s=86904ba8d47714303521b2dcd5aa2a50","href":"/"},"favicon":"https://mintcdn.com/fetchski-attract-api/mn9qfQRsqaASh7UE/favicon.svg?fit=max\u0026auto=format\u0026n=mn9qfQRsqaASh7UE\u0026q=85\u0026s=fd4f2c0615961c9e01c9762b98c8999f","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["bash","typescript","php"]}},"appearance":{"default":"dark"},"background":{"color":{"light":"#ffffff","dark":"#0b0e13"}},"search":{"prompt":"Search the docs…"},"seo":{"metatags":{"robots":"noindex, nofollow"}},"fonts":{"family":"Inter"},"icons":{"library":"fontawesome"},"styling":{"codeblocks":"dark","latex":true},"contextual":{"options":["copy","view"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"fetchski-attract-api","hasAudioNarration":false,"actualSubdomain":"fetchski-attract-api","customDomains":["docs.fetchski-attract.com"],"gitSource":{"type":"github","owner":"fetchski","repo":"fetchski_cms_astro_monorepo","deployBranch":"main","contentDirectory":"docs/attract","isPrivate":true,"mountPath":"","label":"","_id":"6adb9c232f0947a18a27541d"},"entitlements":{},"buildId":"6af6df04bd8b0362cdec74ff","clientVersion":"0.0.4131","searchFilterCounts":[{"language":"default","tag":"Media","count":953},{"language":"default","tag":"Content","count":863},{"language":"default","tag":"Publishing","count":720},{"language":"default","tag":"API reference","count":484},{"language":"default","tag":"Laravel","count":472},{"language":"default","tag":"TypeScript","count":470},{"language":"default","tag":"AdonisJS","count":469},{"language":"default","tag":"Batch jobs","count":364},{"language":"default","tag":"Pages \u0026 Site","count":224},{"language":"default","tag":"Forms","count":168}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@media (min-width: 1280px){:root{--content-width: 52rem}}@media (min-width: 1600px){:root{--content-width: 60rem}}@media (min-width: 1920px){:root{--content-width: 68rem}}@media (min-width: 1024px) and (max-width: 1919px){#content-container{padding-left:2rem;padding-right:2rem}div:has(>#content-area){padding-left:0}#table-of-contents{width:14rem}}html[data-page-mode=\"wide\"] #content-area{max-width:84rem}@media (min-width: 1024px){#navbar .nav-tabs{position:fixed;left:15rem;top:0;height:6rem}}@media (min-width: 1024px) and (max-width: 1599px){#navbar .nav-tabs{gap:0}#navbar .nav-tabs .nav-tabs-item{gap:0.375rem;font-size:0.9375rem;padding-inline:0.5rem}#navbar .nav-tabs .nav-tabs-item svg,#navbar .nav-tabs .nav-tabs-item img{width:1.0625rem;height:1.0625rem}}@media (min-width: 1024px) and (max-width: 1199px){#navbar .nav-tabs .nav-tabs-item svg,#navbar .nav-tabs .nav-tabs-item img{display:none}}@media (min-width: 1024px) and (max-width: 1319px){div:has(>#search-bar-entry){width:3rem!important}#search-bar-entry{justify-content:center;padding:0!important}#search-bar-entry>div>:not(svg),#search-bar-entry>:not(div){display:none}}.mdx-content{font-size:1.0625rem;line-height:1.8}@media (min-width: 1024px){.mdx-content{font-size:1.25rem;line-height:1.85}#page-title{font-size:2.875rem;line-height:1.15}#page-title+*,#header .prose{font-size:1.375rem}#sidebar-content a{font-size:1.125rem}.toc-item{font-size:1rem}}.mdx-content>[data-as=\"p\"],.mdx-content>p{margin-top:0;margin-bottom:1.75rem}.mdx-content>h2{margin-top:3.5rem;margin-bottom:1.25rem;padding-top:2rem;border-top:1px solid rgb(0 0 0 / 0.08);font-size:1.875rem;letter-spacing:-0.01em}.dark .mdx-content>h2{border-top-color:rgb(255 255 255 / 0.08)}.mdx-content>h2:first-child{margin-top:0;padding-top:0;border-top:0}.mdx-content>h3{margin-top:2.75rem;margin-bottom:1.125rem;font-size:1.4375rem}.mdx-content>h4{margin-top:2rem;margin-bottom:0.75rem}.mdx-content li{margin-top:0.625rem;margin-bottom:0.625rem}.mdx-content>ul,.mdx-content>ol{margin-bottom:1.75rem}.mdx-content :not(pre)>code{font-size:0.875em;padding:0.125rem 0.375rem;overflow-wrap:anywhere}.mdx-content table{font-size:1.0625rem;line-height:1.7}.mdx-content th,.mdx-content td{padding:0.875rem 1.5rem 0.875rem 0!important;vertical-align:top}.mdx-content th{padding-top:0.25rem!important}.mdx-content th:last-child,.mdx-content td:last-child{padding-right:0!important}.mdx-content td>code:only-child{white-space:nowrap}pre{max-height:36rem;overflow:auto}.mdx-content pre code{font-size:0.9375rem;line-height:1.75}.mdx-content>.code-block,.mdx-content>.code-group{margin-top:1.5rem;margin-bottom:2rem}.mdx-content .columns{column-gap:1.25rem;row-gap:0.5rem;margin-top:1.75rem;margin-bottom:2.25rem}.mdx-content .card{border-radius:1rem}.mdx-content .card [data-component-part=\"card-content-container\"]{padding:1.5rem 1.75rem}.mdx-content [data-component-part=\"card-title\"]{font-size:1.25rem}.mdx-content [data-component-part=\"card-content\"]{font-size:1.0625rem;line-height:1.7}.mdx-content .callout{margin-top:2rem;margin-bottom:2.25rem;padding:1.25rem 1.75rem;font-size:1.125rem;line-height:1.75}.mdx-content .steps{margin-top:1.75rem;margin-bottom:2.25rem}.mdx-content .step{padding-bottom:0.75rem}.mdx-content .accordion-group,.mdx-content>.accordion{margin-top:1.75rem;margin-bottom:2.25rem}.mdx-content .tabs{margin-top:1.75rem;margin-bottom:2.25rem}.mdx-content .tabs [role=\"tabpanel\"]{padding-top:0.375rem;padding-right:0.375rem;padding-bottom:0.375rem}.mdx-content [data-component-name=\"mermaid-container\"]{--im-node-fill: #ecfdf3;--im-node-stroke: #16a34a;--im-node-text: #0b3a1f;--im-cluster-fill: rgb(22 163 74 / 0.04);--im-cluster-stroke: rgb(22 163 74 / 0.35);--im-edge: #64748b;--im-label-bg: #ffffff;margin-top:1.75rem;margin-bottom:2.25rem;padding:2rem 1.5rem;border:1px solid rgb(0 0 0 / 0.08);border-radius:1rem;background:rgb(0 0 0 / 0.015)}.dark .mdx-content [data-component-name=\"mermaid-container\"]{--im-node-fill: #0b2e1a;--im-node-stroke: #22c55e;--im-node-text: #e7fbef;--im-cluster-fill: rgb(34 197 94 / 0.05);--im-cluster-stroke: rgb(34 197 94 / 0.35);--im-edge: #94a3b8;--im-label-bg: #0f1214;border-color:rgb(255 255 255 / 0.08);background:rgb(255 255 255 / 0.02)}.mdx-content [data-component-name=\"mermaid-container\"] svg[id^=\"mermaid\"]{display:block;margin-left:auto;margin-right:auto}.mdx-content [data-component-name=\"mermaid-container\"] .node rect,.mdx-content [data-component-name=\"mermaid-container\"] .node polygon,.mdx-content [data-component-name=\"mermaid-container\"] .node circle,.mdx-content [data-component-name=\"mermaid-container\"] .node path{fill:var(--im-node-fill)!important;stroke:var(--im-node-stroke)!important;stroke-width:1.5px!important}.mdx-content [data-component-name=\"mermaid-container\"] .node rect{rx:8px;ry:8px}.mdx-content [data-component-name=\"mermaid-container\"] .nodeLabel,.mdx-content [data-component-name=\"mermaid-container\"] .node .label{color:var(--im-node-text)!important;fill:var(--im-node-text)!important}.mdx-content [data-component-name=\"mermaid-container\"] .cluster rect{fill:var(--im-cluster-fill)!important;stroke:var(--im-cluster-stroke)!important;stroke-dasharray:6 4;rx:12px;ry:12px}.mdx-content [data-component-name=\"mermaid-container\"] .cluster-label .nodeLabel,.mdx-content [data-component-name=\"mermaid-container\"] .cluster .nodeLabel{color:var(--im-node-stroke)!important}.mdx-content [data-component-name=\"mermaid-container\"] .flowchart-link,.mdx-content [data-component-name=\"mermaid-container\"] .edgePath path{stroke:var(--im-edge)!important;stroke-width:1.5px!important}.mdx-content [data-component-name=\"mermaid-container\"] marker path,.mdx-content [data-component-name=\"mermaid-container\"] .arrowheadPath{fill:var(--im-edge)!important;stroke:var(--im-edge)!important}.mdx-content [data-component-name=\"mermaid-container\"] .edgeLabel,.mdx-content [data-component-name=\"mermaid-container\"] .edgeLabel p,.mdx-content [data-component-name=\"mermaid-container\"] .labelBkg{background-color:var(--im-label-bg)!important;color:var(--im-edge)!important}.mdx-content [data-component-name=\"mermaid-container\"] rect.actor{fill:var(--im-node-fill)!important;stroke:var(--im-node-stroke)!important;stroke-width:1.5px!important;rx:8px;ry:8px}.mdx-content [data-component-name=\"mermaid-container\"] text.actor>tspan,.mdx-content [data-component-name=\"mermaid-container\"] text.actor{fill:var(--im-node-text)!important}.mdx-content [data-component-name=\"mermaid-container\"] .actor-line{stroke:var(--im-cluster-stroke)!important}.mdx-content [data-component-name=\"mermaid-container\"] .messageLine0,.mdx-content [data-component-name=\"mermaid-container\"] .messageLine1{stroke:var(--im-edge)!important;stroke-width:1.5px!important}.mdx-content [data-component-name=\"mermaid-container\"] #arrowhead path,.mdx-content [data-component-name=\"mermaid-container\"] #crosshead path{fill:var(--im-edge)!important;stroke:var(--im-edge)!important}.mdx-content [data-component-name=\"mermaid-container\"] .note{fill:var(--im-cluster-fill)!important;stroke:var(--im-cluster-stroke)!important}.mdx-content .field .prose-sm{font-size:1.0625rem;line-height:1.8}@media (min-width: 1024px){.mdx-content .field .prose-sm{font-size:1.125rem}}.mdx-content .field{padding-top:1.25rem;padding-bottom:1.25rem}:root{--fa-accent: 22 163 74;--fa-ink: 15 23 42;--fa-button: 21 128 61;--fa-button-hover: 22 101 52;--fa-on-button: 255 255 255}.dark{--fa-accent: 34 197 94;--fa-ink: 255 255 255;--fa-button: 34 197 94;--fa-button-hover: 74 222 128;--fa-on-button: 5 46 22}.mdx-content .card{transition:border-color 150ms ease,\n background-color 150ms ease}.mdx-content a.card:hover,.mdx-content .card:has(a:hover){border-color:rgb(var(--fa-accent) / 0.45);background-color:rgb(var(--fa-accent) / 0.06)}.mdx-content .card [data-component-part=\"card-icon\"]{display:flex;width:1.75rem;height:1.75rem;margin-bottom:1rem}.mdx-content .card [data-component-part=\"card-icon\"] svg{width:1.75rem;height:1.75rem;mask-size:contain;background-color:rgb(var(--fa-accent))!important}.mdx-content .card [data-component-part=\"card-content-container\"].flex [data-component-part=\"card-icon\"]{margin-bottom:0}html[data-page-mode=\"wide\"] #header{display:none}.fa-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0, 1fr);gap:3rem;align-items:center;overflow:hidden;margin:-1.5rem 0 3.5rem;padding:3.5rem 3rem;border:1px solid rgb(var(--fa-accent) / 0.2);border-radius:1.5rem;background-color:rgb(var(--fa-accent) / 0.025);background-image:radial-gradient(\n 55% 75% at 82% 50%,\n rgb(var(--fa-accent) / 0.16),\n transparent 70%\n )}.fa-hero::before{content:'';position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgb(var(--fa-accent) / 0.1) 1px, transparent 1px),\n linear-gradient(90deg, rgb(var(--fa-accent) / 0.1) 1px, transparent 1px);background-size:2rem 2rem;background-position:-1px -1px;mask-image:radial-gradient(80% 90% at 85% 40%, #000 20%, transparent 75%);pointer-events:none}.fa-hero::after{content:'';position:absolute;top:0;right:10%;left:10%;height:1px;background:linear-gradient(\n 90deg,\n transparent,\n rgb(var(--fa-accent) / 0.8),\n transparent\n );pointer-events:none}@media (min-width: 1536px){.fa-hero{grid-template-columns:minmax(0, 0.85fr) minmax(0, 1.15fr);padding:4rem 3.5rem}}.fa-hero-code>.code-group,.fa-hero-code>.code-block{margin:0;border-color:rgb(var(--fa-accent) / 0.25);box-shadow:0 1px 0 rgb(255 255 255 / 0.04) inset,\n 0 30px 60px -24px rgb(0 0 0 / 0.55),\n 0 0 0 6px rgb(var(--fa-accent) / 0.06)}.mdx-content .fa-hero-code pre code{font-size:0.8125rem}.mdx-content .fa-hero .fa-hero-mark{margin:0 0 1.75rem}.mdx-content .fa-hero .fa-hero-mark img{display:block;width:auto;height:4rem;margin:0;border-radius:0}.mdx-content .fa-hero .fa-hero-mark .fa-hero-mark-dark,.dark .mdx-content .fa-hero .fa-hero-mark .fa-hero-mark-light{display:none}.dark .mdx-content .fa-hero .fa-hero-mark .fa-hero-mark-dark{display:block}.fa-hero h1{max-width:40rem;margin:0;font-size:3.25rem;font-weight:700;line-height:1.06;letter-spacing:-0.035em;text-wrap:balance}.fa-hero h1 .fa-hero-accent{color:rgb(var(--fa-accent))}.mdx-content .fa-hero-lede{max-width:34rem;margin:1.5rem 0 2.25rem;font-size:1.1875rem;line-height:1.7;opacity:0.78;text-wrap:pretty}.fa-hero-actions{display:flex;flex-wrap:wrap;gap:0.75rem}.mdx-content .fa-hero-facts{display:flex;flex-wrap:wrap;gap:0.5rem 1.5rem;margin-top:2rem;font-size:0.9375rem;opacity:0.8}.mdx-content .fa-hero-facts>span{display:inline-flex;align-items:center;gap:0.5rem}.mdx-content .fa-hero-facts>span::before{content:'';flex:none;width:1rem;height:1rem;background:rgb(var(--fa-accent));mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")\n center / contain no-repeat}.fa-button{display:inline-flex;align-items:center;gap:0.5rem;height:2.75rem;padding:0 1.125rem;border:1px solid transparent;border-radius:0.625rem;font-size:0.9375rem;font-weight:600;letter-spacing:-0.005em;text-decoration:none!important;transition:background-color 150ms ease,\n border-color 150ms ease,\n box-shadow 150ms ease,\n transform 150ms ease}.fa-button-primary{border-color:rgb(var(--fa-button) / 1);background:rgb(var(--fa-button));box-shadow:inset 0 1px 0 rgb(255 255 255 / 0.25),\n 0 8px 20px -10px rgb(var(--fa-button) / 0.9);color:rgb(var(--fa-on-button))!important}.fa-button-primary::after{content:'';width:1rem;height:1rem;background:currentcolor;mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h9.5M8.5 4l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")\n center / contain no-repeat;transition:transform 150ms ease}.fa-button-primary:hover{background:rgb(var(--fa-button-hover));box-shadow:inset 0 1px 0 rgb(255 255 255 / 0.25),\n 0 10px 24px -10px rgb(var(--fa-button) / 1)}.fa-button-primary:hover::after{transform:translateX(2px)}.fa-button-secondary{border-color:rgb(var(--fa-ink) / 0.16);background:rgb(var(--fa-ink) / 0.03);color:inherit!important}.fa-button-secondary:hover{border-color:rgb(var(--fa-accent) / 0.55);background:rgb(var(--fa-accent) / 0.08)}.fa-button:active{transform:translateY(1px)}.fa-button:focus-visible{outline:2px solid rgb(var(--fa-accent));outline-offset:3px}@media (prefers-reduced-motion: reduce){.fa-button,.fa-button-primary::after{transition:none}.fa-button:active,.fa-button-primary:hover::after{transform:none}}@media (max-width: 767px){.fa-hero{padding:2.5rem 1.5rem}.fa-hero h1{font-size:2.25rem}}#sidebar-content a,#sidebar-content li>button{gap:0.875rem;padding-top:0.625rem;padding-right:0.5rem;padding-bottom:0.625rem;font-size:1.125rem;line-height:1.45}#sidebar-content li+li{margin-top:0.25rem}#sidebar-content li>button>div:nth-child(2){min-width:0}#sidebar-content li>button>div:last-child{width:1.25rem;margin-left:auto;justify-content:center}#sidebar-content li>ul{margin:0.25rem 0 0.25rem 1.25rem;padding-left:0.375rem;border-left:1px solid rgb(0 0 0 / 0.1)}.dark #sidebar-content li>ul{border-left-color:rgb(255 255 255 / 0.1)}#sidebar-content li>ul>li>:is(a,button){padding-left:0.75rem!important;font-size:1.0625rem}#sidebar-content .sidebar-group-header{margin-bottom:0.625rem;font-size:0.875rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:color-mix(in srgb, rgb(var(--fa-accent)) 72%, black)}.dark #sidebar-content .sidebar-group-header{color:rgb(var(--fa-accent))}#sidebar-content div:has(>.sidebar-group-header)+div:has(>.sidebar-group-header){margin-top:2.25rem}#sidebar-content a svg,#sidebar-content a img,#sidebar-content li>button>div:first-child svg,#sidebar-content li>button>div:first-child img{width:1.375rem;height:1.375rem}#sidebar-content .sidebar-group-header svg{width:1rem;height:1rem}.nav-tabs-item{gap:0.625rem;font-size:1.0625rem}.nav-tabs-item svg,.nav-tabs-item img{width:1.3125rem;height:1.3125rem}.nav-tabs-item[href^=\"/typescript\"] svg{background-color:#d4b106}.dark .nav-tabs-item[href^=\"/typescript\"] svg{background-color:#f7df1e}.nav-tabs-item[href^=\"/laravel\"] svg{background-color:#ff2d20}.nav-tabs-item[href^=\"/adonisjs\"] svg{background-color:#5a45ff}.dark .nav-tabs-item[href^=\"/adonisjs\"] svg{background-color:#8b7dff}li[data-group-tag]>button svg[style*=\"/brands/js.svg\"]{background-color:#d4b106}.dark li[data-group-tag]>button svg[style*=\"/brands/js.svg\"]{background-color:#f7df1e}li[data-group-tag]>button svg[style*=\"/brands/laravel.svg\"]{background-color:#ff2d20}#sidebar-content img[src$=\"/n8n.png\"]{transform:scale(1.35)}@media (min-width: 1024px){:root{--mintlify-slot-header-height: 6rem;--sidebar-width: 26rem}#navbar{height:6rem}#sidebar-content{top:6rem}#navbar div:has(img.nav-logo){height:100%}img.nav-logo{height:3.5rem;margin-left:0.5rem}div:has(>#search-bar-entry){position:fixed;top:1.5rem;right:7rem;z-index:40;width:clamp(11rem, calc(100vw - var(--sidebar-width) - 45rem), 24rem)}#search-bar-entry{height:3rem;padding-left:1.125rem;border-radius:0.875rem;font-size:1.0625rem}#search-bar-entry svg{width:1.125rem;height:1.125rem}}[data-switch=\"pill\"]{width:auto!important;height:auto!important;padding:0.3125rem;gap:0.25rem}.switch-option{width:2.125rem!important;height:2.125rem!important}.switch-option svg{width:1.125rem;height:1.125rem}.mdx-content .accordion-group{display:grid;gap:0.75rem;overflow:visible;border:0;border-color:transparent;border-radius:0;background:none}.mdx-content details.accordion{margin:0 0 0.75rem;border-color:transparent;border-radius:1rem!important;outline:1px solid rgb(var(--fa-ink) / 0.1);outline-offset:-1px;overflow:hidden;transition:outline-color 150ms ease,\n box-shadow 150ms ease}.mdx-content .accordion-group>details.accordion{margin:0}.mdx-content details.accordion:hover{outline-color:rgb(var(--fa-accent) / 0.35)}.mdx-content details.accordion[open]{outline-color:rgb(var(--fa-accent) / 0.45);box-shadow:inset 3px 0 0 rgb(var(--fa-accent))}.mdx-content [data-component-part=\"accordion-button\"]{gap:1rem;padding:1rem 1.25rem 1rem 1.5rem;border-radius:0!important;transition:background-color 150ms ease}.mdx-content [data-component-part=\"accordion-button\"]:hover{background:rgb(var(--fa-accent) / 0.05)}.mdx-content [data-component-part=\"accordion-button\"]:focus-visible{outline:2px solid rgb(var(--fa-accent));outline-offset:-2px}.mdx-content [data-component-part=\"accordion-caret-right\"]{order:3;width:2rem;height:2rem;border-radius:999px;background:rgb(var(--fa-ink) / 0.06);transition:background-color 150ms ease}.mdx-content [data-component-part=\"accordion-caret-right\"] svg{width:0.875rem;height:0.875rem}.mdx-content details.accordion[open] [data-component-part=\"accordion-caret-right\"]{background:rgb(var(--fa-accent) / 0.15)}.mdx-content details.accordion[open] [data-component-part=\"accordion-caret-right\"] svg{color:rgb(var(--fa-accent))}.mdx-content [data-component-part=\"accordion-icon\"]{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem}.mdx-content [data-component-part=\"accordion-icon\"] svg{width:1.25rem;height:1.25rem;background-color:rgb(var(--fa-accent))!important}.mdx-content [data-component-part=\"accordion-title\"]{font-size:1.1875rem}.mdx-content [data-component-part=\"accordion-content\"]{max-width:none;padding:1.5rem 2rem 1.75rem 1.5rem;border-top:1px solid rgb(var(--fa-ink) / 0.08);font-size:1.125rem;line-height:1.95}@media (min-width: 768px){.mdx-content details.accordion:has(>summary [data-component-part=\"accordion-icon\"])>[data-component-part=\"accordion-content\"]{padding-left:3.75rem}}.mdx-content [data-component-part=\"accordion-content\"]>[data-as=\"p\"],.mdx-content [data-component-part=\"accordion-content\"]>p{display:block;max-width:46rem;margin:0 0 1.25rem}.mdx-content [data-component-part=\"accordion-content\"]>:last-child{margin-bottom:0}@media (prefers-reduced-motion: reduce){.mdx-content details.accordion,.mdx-content [data-component-part=\"accordion-button\"],.mdx-content [data-component-part=\"accordion-caret-right\"]{transition:none}}[data-badge=\"true\"]{--fa-badge: 100 116 139;padding:0.125rem 0.5rem;border-radius:0.5rem;background:rgb(var(--fa-badge) / 0.14)!important;box-shadow:inset 0 0 0 1px rgb(var(--fa-badge) / 0.32);color:rgb(var(--fa-badge))!important;font-variant-numeric:tabular-nums}[data-badge=\"true\"][data-color=\"red\"]{--fa-badge: 239 68 68}[data-badge=\"true\"][data-color=\"orange\"]{--fa-badge: 245 130 32}[data-badge=\"true\"][data-color=\"yellow\"]{--fa-badge: 214 160 20}[data-badge=\"true\"][data-color=\"green\"]{--fa-badge: 22 163 74}[data-badge=\"true\"][data-color=\"blue\"]{--fa-badge: 17 145 240}.dark [data-badge=\"true\"][data-color=\"red\"]{--fa-badge: 248 113 113}.dark [data-badge=\"true\"][data-color=\"orange\"]{--fa-badge: 251 158 75}.dark [data-badge=\"true\"][data-color=\"yellow\"]{--fa-badge: 250 204 21}.dark [data-badge=\"true\"][data-color=\"green\"]{--fa-badge: 74 222 128}.dark [data-badge=\"true\"][data-color=\"blue\"]{--fa-badge: 62 165 245}.dark [data-badge=\"true\"][data-color=\"gray\"]{--fa-badge: 161 161 170}.mdx-content td [data-badge=\"true\"]+[data-badge=\"true\"]{margin-left:0.375rem}.mdx-content :is([data-as=\"p\"],p,li,td,blockquote),#header .prose,#page-title+*{color:rgb(38 43 52)}.dark .mdx-content :is([data-as=\"p\"],p,li,td,blockquote),.dark #header .prose,.dark #page-title+*{color:rgb(222 226 232)}.mdx-content :is(th,strong){font-weight:600}#sidebar-content a,#sidebar-content li>button{color:rgb(70 76 88)}.dark #sidebar-content a,.dark #sidebar-content li>button{color:rgb(196 201 210)}.toc-item a{color:inherit}.mdx-content [data-component-part=\"callout-content\"]{font-size:1.125rem;line-height:1.75}.mdx-content [data-component-part=\"callout-icon\"]{width:1.25rem;margin-top:0.25rem}.mdx-content [data-component-part=\"step-title\"]{font-size:1.25rem}.mdx-content [data-component-part=\"step-content\"],.mdx-content [data-component-part=\"tab-content\"]{font-size:1.125rem;line-height:1.85}.mdx-content [data-component-part=\"step-number\"]{margin-left:calc(0.5px - 1.125rem)}.mdx-content [data-component-part=\"step-indicator\"]{width:2.25rem;height:2.25rem;background-color:transparent;color:rgb(var(--fa-accent));font-size:1.25rem;font-weight:600}.mdx-content [data-component-part=\"step-indicator\"] svg{width:1.5rem;height:1.5rem;background-color:rgb(var(--fa-accent))!important}.mdx-content [data-component-part=\"tab-button\"]{font-size:1rem}.mdx-content [data-component-part=\"code-block-header\"],.mdx-content [data-component-part=\"code-block-header-filename\"]{font-size:0.875rem}.mdx-content [data-component-part=\"code-group-tab-bar\"]{font-size:0.9375rem}.mdx-content [data-component-part=\"field-name\"]{font-size:1.0625rem}.mdx-content [data-component-part=\"field-meta\"],.mdx-content [data-component-part=\"field-info-pill\"],.mdx-content [data-component-part=\"field-required-pill\"]{font-size:0.875rem}.mdx-content [data-component-part=\"expandable-button\"]{font-size:1rem}[data-component-part=\"pagination-title\"]{font-size:1.125rem}[data-component-part=\"pagination-label\"]{font-size:0.9375rem}.mdx-content>.multi-view-item{max-width:none;font-size:inherit;line-height:inherit}.multi-view-item>[data-as=\"p\"],.multi-view-item>p{margin-top:0;margin-bottom:1.75rem}.multi-view-item>h2{margin-top:3.5rem;margin-bottom:1.25rem;padding-top:2rem;border-top:1px solid rgb(0 0 0 / 0.08);font-size:1.875rem;letter-spacing:-0.01em}.dark .multi-view-item>h2{border-top-color:rgb(255 255 255 / 0.08)}.multi-view-item>h2:first-child{margin-top:0;padding-top:0;border-top:0}.multi-view-item>h3{margin-top:2.75rem;margin-bottom:1.125rem;font-size:1.4375rem}.multi-view-item>ul,.multi-view-item>ol{margin-bottom:1.75rem}.multi-view-item>.code-block,.multi-view-item>.code-group{margin-top:1.5rem;margin-bottom:2rem}#content-container .prose.prose-sm{font-size:1.0625rem;line-height:1.8}#sidebar-content .method-nav-pill{width:2.75rem}#sidebar-content .method-nav-pill>*{padding:0.125rem 0.375rem;font-size:0.6875rem;line-height:1.25rem}#fa-reader-values{margin-top:1.75rem;padding:1.5rem;border:1px solid rgb(var(--fa-ink) / 0.14);border-radius:1rem;background:transparent;font-size:1.0625rem;line-height:1.6;transition:border-color 150ms ease;container:fa-reader / inline-size}#fa-reader-values:hover,#fa-reader-values:focus-within{border-color:rgb(var(--fa-accent) / 0.45)}#fa-reader-values .fa-reader-line{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1rem 1.25rem}#fa-reader-values .fa-reader-toggle{grid-column:1 / -1;justify-self:start}@container fa-reader (min-width: 30rem){#fa-reader-values .fa-reader-line{grid-template-columns:auto 1fr auto}#fa-reader-values .fa-reader-line .fa-reader-toggle{grid-column:auto}}#fa-reader-values .fa-reader-icon{width:4rem;height:4rem;background:url('/logo/attract-glyph-color-a-green-on-light-scalable.svg') center / contain\n no-repeat}.dark #fa-reader-values .fa-reader-icon{background-image:url('/logo/attract-glyph-color-a-green-on-dark-scalable.svg')}#fa-reader-values .fa-reader-copy{min-width:0}#fa-reader-values .fa-reader-copy p{margin:0}#fa-reader-values .fa-reader-title{font-size:1.125rem;font-weight:600;color:rgb(var(--fa-ink))}#fa-reader-values .fa-reader-values{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0.625rem 0.875rem;margin:0.75rem 0 0}#fa-reader-values .fa-reader-values>div{display:contents}#fa-reader-values .fa-reader-values dt{font-weight:500;color:rgb(var(--fa-ink))}#fa-reader-values .fa-reader-values dd{justify-self:start;min-width:0;margin:0}#fa-reader-values code{display:inline-block;padding:0.375rem 0.875rem;border:1px solid rgb(var(--fa-accent) / 0.4);border-radius:0.5rem;background:rgb(var(--fa-ink) / 0.03);color:rgb(var(--fa-ink));font-size:0.95em;font-weight:700;line-height:1.4;overflow-wrap:anywhere}#fa-reader-values button{padding:0.625rem 1.25rem;border:1px solid rgb(var(--fa-ink) / 0.16);border-radius:0.625rem;background:rgb(var(--fa-ink) / 0.03);color:rgb(var(--fa-ink));font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color 150ms ease,\n border-color 150ms ease}#fa-reader-values button:hover{border-color:rgb(var(--fa-accent) / 0.55);background:rgb(var(--fa-accent) / 0.08)}#fa-reader-values button:focus-visible,#fa-reader-values input:focus-visible{outline:2px solid rgb(var(--fa-accent));outline-offset:2px}#fa-reader-values .fa-reader-form{display:grid;grid-template-columns:1fr;gap:1.75rem 1.5rem;margin-top:1.5rem;padding:1.5rem 0.25rem 0.25rem;border-top:1px solid rgb(var(--fa-ink) / 0.1)}@media (min-width: 768px){#fa-reader-values .fa-reader-form{grid-template-columns:1fr 1fr}}#fa-reader-values .fa-reader-form[hidden]{display:none}#fa-reader-values label{display:grid;gap:0.625rem;align-content:start}#fa-reader-values label>span{font-weight:600;color:rgb(var(--fa-ink))}#fa-reader-values label em{font-style:normal;font-weight:400}#fa-reader-values input{width:100%;padding:0.75rem 1rem;border:1px solid rgb(128 128 128 / 0.4);border-radius:0.5rem;background:rgb(128 128 128 / 0.08);color:rgb(var(--fa-ink));font:inherit}#fa-reader-values small{display:block;margin-top:0.5rem;font-size:0.9375rem;line-height:1.6;color:rgb(var(--fa-ink))}#fa-reader-values .fa-reader-error{grid-column:1 / -1;margin:0;color:#dc2626}.dark #fa-reader-values .fa-reader-error{color:#f87171}#fa-reader-values .fa-reader-error:empty{display:none}#fa-reader-values .fa-reader-actions{display:flex;flex-wrap:wrap;grid-column:1 / -1;align-items:center;gap:1rem;padding-top:0.25rem}.mdx-content .n8n-canvas{--n8n-dot: rgb(0 0 0 / 0.12);--n8n-node-bg: #ffffff;--n8n-node-border: rgb(0 0 0 / 0.18);--n8n-line: #94a3b8;margin:1.75rem 0 2.25rem;padding:2rem 0.75rem 1.5rem;overflow-x:auto;border:1px solid rgb(0 0 0 / 0.08);border-radius:1rem;background-color:rgb(0 0 0 / 0.015);background-image:radial-gradient(var(--n8n-dot) 1px, transparent 1px);background-size:18px 18px}.dark .mdx-content .n8n-canvas{--n8n-dot: rgb(255 255 255 / 0.1);--n8n-node-bg: #1b1f24;--n8n-node-border: rgb(255 255 255 / 0.22);--n8n-line: #64748b;border-color:rgb(255 255 255 / 0.08);background-color:rgb(255 255 255 / 0.02)}.mdx-content .n8n-canvas-row{display:flex;align-items:flex-start;justify-content:center;min-width:max-content;margin:0 auto}.mdx-content .n8n-node{display:flex;flex-direction:column;align-items:center;width:7.25rem;text-align:center}.mdx-content .n8n-node-box{display:flex;align-items:center;justify-content:center;width:4.5rem;height:4.5rem;border:2px solid var(--n8n-node-border);border-radius:0.75rem;background:var(--n8n-node-bg);box-shadow:0 1px 3px rgb(0 0 0 / 0.08)}.mdx-content .n8n-node-trigger .n8n-node-box{border-radius:2.25rem 0.75rem 0.75rem 2.25rem}.mdx-content .n8n-node-accent .n8n-node-box{border-color:rgb(var(--fa-accent));box-shadow:0 0 0 4px rgb(var(--fa-accent) / 0.15)}.mdx-content .n8n-node-title{margin-top:0.6rem;font-size:0.95rem;font-weight:600;line-height:1.3}.mdx-content .n8n-node-note{margin-top:0.2rem;font-size:0.8rem;line-height:1.35;opacity:0.7}.mdx-content .n8n-node-box svg{width:1.9rem!important;height:1.9rem!important}.mdx-content .n8n-link{display:flex;flex-direction:column;align-items:center;width:4rem;margin:0 -1.125rem;padding-top:1.1rem}.mdx-content .n8n-link-items{height:1.1rem;font-size:0.75rem;font-weight:600;line-height:1.1rem;white-space:nowrap;color:rgb(var(--fa-accent))}.mdx-content .n8n-link-line{position:relative;width:100%;height:2px;margin-top:0.4rem;background:var(--n8n-line)}.mdx-content .n8n-link-line::after{position:absolute;top:-4px;right:-1px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid var(--n8n-line);content:''}.mdx-content .n8n-canvas figcaption{margin-top:1.25rem;font-size:0.85rem;text-align:center;opacity:0.7}.mdx-content .n8n-signed{margin:1.5rem 0 2rem;padding:1.5rem 1.25rem 1.25rem;overflow-x:auto;border:1px solid rgb(0 0 0 / 0.08);border-radius:1rem}.dark .mdx-content .n8n-signed{border-color:rgb(255 255 255 / 0.08)}.mdx-content .n8n-signed-row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;row-gap:1rem}.mdx-content .n8n-signed-part{display:flex;flex-direction:column;align-items:center;gap:0.5rem}.mdx-content .n8n-signed-value,.mdx-content .n8n-signed-dot{padding:0.35rem 0.55rem;border-radius:0.4rem;font-size:0.95rem;white-space:nowrap}.mdx-content .n8n-signed-dot{padding:0.35rem 0.15rem;background:none;font-weight:700}.mdx-content .n8n-signed-value{min-width:2.5rem;text-align:center;background:rgb(var(--n8n-part) / 0.14);box-shadow:inset 0 0 0 1px rgb(var(--n8n-part) / 0.45)}.mdx-content .n8n-signed-label{font-size:0.75rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:rgb(var(--n8n-part))}.mdx-content .n8n-signed-0{--n8n-part: 37 99 235}.mdx-content .n8n-signed-1{--n8n-part: 22 163 74}.mdx-content .n8n-signed-2{--n8n-part: 217 119 6}.mdx-content .n8n-signed-3{--n8n-part: 219 39 119}.mdx-content .n8n-coming-soon-logos{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.mdx-content .n8n-coming-soon-logos img{width:auto;height:3.5rem;margin:0}.mdx-content .n8n-coming-soon-logos img[class^=\"n8n-mark-\"]{height:4.5rem;margin:-0.5rem}.mdx-content .n8n-coming-soon-logos .n8n-mark-dark,.dark .mdx-content .n8n-coming-soon-logos .n8n-mark-light{display:none}.dark .mdx-content .n8n-coming-soon-logos .n8n-mark-dark{display:block}.mdx-content .n8n-coming-soon-logos span{font-size:1.75rem;font-weight:600;opacity:0.6}.mdx-content .n8n-coming-soon-title{margin:0 0 0.35rem;font-size:1.25rem;font-weight:600;color:rgb(var(--fa-ink))}.mdx-content .n8n-coming-soon-title+*{margin-top:0}"}],"page":{"pagePath":"laravel/reference/pages/create-page","slug":"/laravel/reference/pages/create-page","pageMetadata":{"title":"Create a page","sidebarTitle":"Create","description":"Creates a page.","icon":"plus","href":"/laravel/reference/pages/create-page"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Creates a page.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CodeBlock,Columns,Expandable,Heading,ParamField,ResponseField,Step,Steps,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`in-your-app`,children:`In your app`}),`\n`,_jsxs(_components.p,{children:[`A controller answers a route on your app: it calls `,_jsx(_components.code,{children:`createPage()`}),` and returns the answer.`]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Add the controller`,icon:`file-code`,children:[_jsx(CodeBlock,{filename:`app/Http/Controllers/CreatePageController.php`,numberOfLines:`16`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c?php`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`declare`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(strict_types=`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`namespace`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` App\\\\Http\\\\Controllers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Fetchski\\\\AttractCmsLaravel\\\\Data\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Fetchski\\\\AttractCmsLaravel\\\\Facades\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`final`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` class`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` CreatePageController`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:` __invoke`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(): `}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Page`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`pages`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`()->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`createPage`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`type`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'default-page'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`title`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'About Us'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:`The other values are the example’s: take yours from the request, a form or your database.`})]}),_jsxs(Step,{title:`Add the route`,icon:`route`,children:[_jsx(CodeBlock,{filename:`routes/web.php`,numberOfLines:`4`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` App\\\\Http\\\\Controllers\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`CreatePageController`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Illuminate\\\\Support\\\\Facades\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Route`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Route`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`post`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'/page'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`CreatePageController`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`class`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`)->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`middleware`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'auth'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`It acts with your key’s access, so `,_jsx(_components.code,{children:`auth`}),` lets only your signed-in users reach it.`]})]}),_jsx(Step,{title:`Call it`,icon:`play`,children:_jsxs(_components.p,{children:[`Your own page’s form or script sends `,_jsx(_components.code,{children:`POST /page`}),` (a form adds `,_jsx(_components.code,{children:`@csrf`}),`, as every web route checks it), and gets back its answer as JSON. Test it, below, calls it.`]})})]}),`\n`,_jsxs(Tip,{children:[_jsxs(_components.p,{children:[`To keep the call in an Action instead, this writes `,_jsx(_components.code,{children:`app/Actions/Attract/CreatePage.php`}),` (an invokable Action that calls `,_jsx(_components.code,{children:`createPage()`}),`) and its test under `,_jsx(_components.code,{children:`tests/Feature/Actions/Attract/`}),` (Pest when your app has it):`]}),_jsx(CodeBlock,{filename:`Terminal`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`php`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` artisan`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` make:attract-action`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` pages.createPage`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`call-it-from-the-terminal`,children:`Call it from the terminal`}),`\n`,_jsx(CodeBlock,{filename:`Terminal`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`php`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` artisan`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` attract:call`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` pages.createPage`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` type=default-page`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` 'title=About Us'`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`It calls `,_jsx(_components.code,{children:`createPage()`}),` on your default site and prints its answer as JSON. It writes, so it asks first: add `,_jsx(_components.code,{children:`--force`}),` to skip the question in a script. See `,_jsx(_components.a,{href:`/call-command`,children:`Call any method from the terminal`}),` for every argument type.`]}),`\n`,_jsxs(_components.p,{children:[`Send its `,_jsx(_components.code,{children:`title`}),` and `,_jsx(_components.code,{children:`type`}),` (one of the site’s page types; anything else is refused with the list). It goes in as the last child of the home page unless `,_jsx(_components.code,{children:`_targetId`}),` (a page’s `,_jsx(_components.code,{children:`_id`}),`, or `,_jsx(_components.code,{children:`_home`}),`) and `,_jsx(_components.code,{children:`_position`}),` (`,_jsx(_components.code,{children:`firstChild`}),`, `,_jsx(_components.code,{children:`lastChild`}),`, `,_jsx(_components.code,{children:`before`}),` or `,_jsx(_components.code,{children:`after`}),`) place it. Create it as a draft (`,_jsx(_components.code,{children:`aposMode: draft`}),`), then publish it.`]}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Required parameters`,icon:`asterisk`,defaultOpen:true,id:`required-parameters`,children:[_jsxs(_components.p,{children:[`Named arguments, e.g. `,_jsx(_components.code,{children:`createPage(type: …)`}),`; leave out the optional ones.`]}),_jsx(ParamField,{body:`type`,type:`string`,required:true,id:`param-type`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The page type: one of the site’s page types (the `,_jsx(_components.code,{children:`type`}),` its pages carry). Anything else is refused with the list.`]})}),_jsx(ParamField,{body:`title`,type:`string`,required:true,id:`param-title`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Page title. At most 100 characters.`]})})]}),_jsxs(Accordion,{title:`Optional parameters`,icon:`sliders`,id:`optional-parameters`,children:[_jsx(ParamField,{query:`aposMode`,type:`Enums\\\\AposMode|string|null`,id:`param-apos-mode`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"published\"`}),`. `,_jsx(_components.code,{children:`published`}),` (the default) or `,_jsx(_components.code,{children:`draft`}),`. Drafts need a credential that may see them: an API key with the type’s write scope (`,_jsx(_components.code,{children:`content:\u003ctype>:write`}),`), or a signed-in editor. The public and a key with only the read scope get 403. One of `,_jsx(_components.code,{children:`draft`}),`, `,_jsx(_components.code,{children:`published`}),`.`]})}),_jsx(ParamField,{query:`aposLocale`,type:`?string`,id:`param-apos-locale`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. The locale to read or write, e.g. `,_jsx(_components.code,{children:`en`}),` (default: the site’s default locale).`]})}),_jsx(ParamField,{body:`targetId`,type:`?string`,id:`param-target-id`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. The page to place it beside or under, by `,_jsx(_components.code,{children:`_id`}),` (`,_jsx(_components.code,{children:`_home`}),` and `,_jsx(_components.code,{children:`_archive`}),` work too). Default `,_jsx(_components.code,{children:`_home`}),`.`]})}),_jsx(ParamField,{body:`position`,type:`Enums\\\\Position|string|null`,id:`param-position`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Where, relative to `,_jsx(_components.code,{children:`_targetId`}),`. Default `,_jsx(_components.code,{children:`lastChild`}),`. One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`, `,_jsx(_components.code,{children:`firstChild`}),`, `,_jsx(_components.code,{children:`lastChild`}),`.`]})}),_jsx(ParamField,{body:`copyingId`,type:`?string`,id:`param-copying-id`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Copy this existing page’s fields (by `,_jsx(_components.code,{children:`_id`}),`) into the new one.`]})}),_jsx(ParamField,{body:`slug`,type:`?string`,id:`param-slug`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. URL slug for the page.`]})}),_jsx(ParamField,{body:`orphan`,type:`?bool`,id:`param-orphan`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`false`}),`. Whether page is orphaned (not in tree structure)`]})}),_jsx(ParamField,{body:`visibility`,type:`Enums\\\\FlatPageResponseResultsItemVisibility|string|null`,id:`param-visibility`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"public\"`}),`. Page visibility setting. One of `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`loginRequired`}),`, `,_jsx(_components.code,{children:`private`}),`.`]})}),_jsxs(ParamField,{body:`main`,type:`MainArea|array\u003cstring, mixed>|null`,id:`param-main`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`MainArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MainArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id`,children:_jsx(_components.p,{children:`The area’s id, set by the site: leave it out when you write one.`})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, RichTextWidget|ImageWidget|VideoWidget>|null`,id:`param-items`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`MainAreaItem`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them).`]}),_jsxs(Expandable,{title:`MainAreaItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MainAreaItem)`,children:[_jsxs(_components.p,{children:[`A widget in an area that takes `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`, `,_jsx(_components.code,{children:`@apostrophecms/image`}),`, `,_jsx(_components.code,{children:`@apostrophecms/video`}),`: the one its `,_jsx(_components.code,{children:`type`}),` names.`]}),_jsxs(Expandable,{title:`RichTextWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\RichTextWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\RichTextWidgetType|string`,required:true,id:`param-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-1`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-1`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`content`,type:`?string`,id:`param-content`,children:_jsxs(_components.p,{children:[`The text as HTML, e.g. `,_jsx(_components.code,{children:`\u003ch2>Our story\u003c/h2>\u003cp>It began with \u003cstrong>one\u003c/strong> idea.\u003c/p>`}),`. The site keeps the tags and styles this area’s editor offers (paragraphs, headings, bold, italic, links, lists…) and removes the rest.`]})}),_jsxs(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot.`]}),_jsxs(Expandable,{title:`CustomCSS (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CustomCSS)`,children:[_jsx(ResponseField,{name:`slots`,type:`array\u003cstring, string>|null`,id:`param-slots`,children:_jsx(_components.p,{children:`The CSS typed into each part slot, by slot name.`})}),_jsx(ResponseField,{name:`css`,type:`?string`,id:`param-css`,children:_jsxs(_components.p,{children:[`The compiled CSS (read only: rebuilt from `,_jsx(_components.code,{children:`slots`}),`).`]})}),_jsx(ResponseField,{name:`mark`,type:`?string`,id:`param-mark`,children:_jsxs(_components.p,{children:[`The site’s check mark for `,_jsx(_components.code,{children:`css`}),` (read only).`]})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`ImageWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ImageWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/image`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\ImageWidgetType|string`,required:true,id:`param-type-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/image`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/image`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-2`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-2`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`image`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-image`,children:_jsxs(_components.p,{children:[`The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`caption`,type:`?string`,id:`param-caption`,children:_jsx(_components.p,{children:`Caption.`})}),_jsx(ResponseField,{name:`linkTo`,type:`Enums\\\\LinkTo|string|null`,id:`param-link-to`,children:_jsxs(_components.p,{children:[`Link To… One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`@apostrophecms/any-page-type`}),`, `,_jsx(_components.code,{children:`_url`}),`.`]})}),_jsx(ResponseField,{name:`apostrophecmsAnyPageType`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-apostrophecms-any-page-type`,children:_jsxs(_components.p,{children:[`The related `,_jsx(_components.code,{children:`@apostrophecms/any-page-type`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`linkHref`,type:`?string`,id:`param-link-href`,children:_jsx(_components.p,{children:`apostrophe:linkHrefHelp When set, a URL; empty or null when not.`})}),_jsx(ResponseField,{name:`linkHrefTitle`,type:`?string`,id:`param-link-href-title`,children:_jsx(_components.p,{children:`Link Title.`})}),_jsx(ResponseField,{name:`linkTitle`,type:`?string`,id:`param-link-title`,children:_jsx(_components.p,{children:`If empty, the title of the related document will be used.`})}),_jsx(ResponseField,{name:`linkTarget`,type:`Collection\u003cint, Enums\\\\LinkTarget|string>|null`,id:`param-link-target`,children:_jsxs(_components.p,{children:[`Link Target. Each one of `,_jsx(_components.code,{children:`_blank`}),`.`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-1`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-1`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`VideoWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\VideoWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/video`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\VideoWidgetType|string`,required:true,id:`param-type-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/video`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/video`}),`.`]})}),_jsx(ResponseField,{name:`video`,type:`array\u003cstring, mixed>`,required:true,id:`param-video`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Enter the URL for a media source you wish to embed (e.g., YouTube, Vimeo, or other hosted video URL).`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-3`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-3`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-2`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-2`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-3`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ParamField,{body:`scheduledPublish`,type:`?string`,id:`param-scheduled-publish`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. An ISO 8601 date and time, e.g. `,_jsx(_components.code,{children:`2026-10-21T14:30:00.000Z`}),`.`]})}),_jsx(ParamField,{body:`scheduledUnpublish`,type:`?string`,id:`param-scheduled-unpublish`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. An ISO 8601 date and time, e.g. `,_jsx(_components.code,{children:`2026-10-21T14:30:00.000Z`}),`.`]})}),_jsx(ParamField,{body:`seoTitle`,type:`?string`,id:`param-seo-title`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"\"`}),`. Overrides the document title in the browser tab and search results. Leave blank to use the regular title.`]})}),_jsx(ParamField,{body:`seoDescription`,type:`?string`,id:`param-seo-description`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"\"`}),`. Shown in search results and link previews. Aim for 150–160 characters.`]})}),_jsxs(ParamField,{body:`seoImage`,type:`ImageArea|array\u003cstring, mixed>|null`,id:`param-seo-image`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Used for Open Graph / social link previews. Recommended 1200×630. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`ImageArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ImageArea)`,children:[_jsxs(_components.p,{children:[`Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-4`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-4`,children:_jsx(_components.p,{children:`The area’s id, set by the site: leave it out when you write one.`})}),_jsx(ResponseField,{name:`items`,type:`Collection\u003cint, ImageWidget>|null`,id:`param-items-1`,children:_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`ImageWidget`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them). At most 1 items. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageWidget`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-4`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsxs(ParamField,{body:`pageFontOverrides`,type:`array\u003cint, PagePageFontOverridesItem|array\u003cstring, mixed>>|Collection\u003cint, PagePageFontOverridesItem|array\u003cstring, mixed>>|null`,id:`param-page-font-overrides`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional. Set part of this page in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). Individual sections can still override this for themselves. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePageFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePageFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-5`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PagePageFontOverridesItemUploadsItem>|null`,id:`param-uploads`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PagePageFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePageFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePageFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-6`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-5`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-6`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ParamField,{body:`footerMarqueeMode`,type:`Enums\\\\FooterMarqueeMode|string|null`,id:`param-footer-marquee-mode`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"inherit\"`}),`. The ribbon of phrases scrolling across the top of the footer. Its phrases and the site-wide default are set in Site design → Footer: Marquee. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`on`}),`, `,_jsx(_components.code,{children:`off`}),`.`]})}),_jsxs(ParamField,{body:`sections`,type:`SectionsArea|array\u003cstring, mixed>|null`,id:`param-sections`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`page-header`}),`.`]}),_jsxs(Expandable,{title:`SectionsArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SectionsArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-5`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-7`,children:_jsx(_components.p,{children:`The area’s id, set by the site: leave it out when you write one.`})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, PageHeaderWidget|HeroWidget|LayoutWidget|IntroWidget|FeatureWidget|StatsWidget|LogosWidget|StepsWidget|MediaTextWidget|DeviceMockWidget|TeamWidget|FaqWidget|ServiceMapWidget|BlogPreviewWidget|CookieDeclarationWidget|RichTextWidget|GoogleReviewsWidget|TestimonialsWidget|InstagramFeedWidget|GalleryPreviewWidget|GalleryFullWidget|PricingWidget|NewsletterWidget|SmsSignupWidget|FormRenderWidget|FinalCtaWidget>|null`,id:`param-items-2`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`SectionsAreaItem`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them).`]}),_jsxs(Expandable,{title:`SectionsAreaItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SectionsAreaItem)`,children:[_jsxs(_components.p,{children:[`A widget in an area that takes `,_jsx(_components.code,{children:`page-header`}),`, `,_jsx(_components.code,{children:`hero`}),`, `,_jsx(_components.code,{children:`@apostrophecms/layout`}),`, `,_jsx(_components.code,{children:`intro`}),`, `,_jsx(_components.code,{children:`feature`}),`, `,_jsx(_components.code,{children:`stats`}),`, `,_jsx(_components.code,{children:`logos`}),`, `,_jsx(_components.code,{children:`steps`}),`, `,_jsx(_components.code,{children:`media-text`}),`, `,_jsx(_components.code,{children:`device-mock`}),`, `,_jsx(_components.code,{children:`team`}),`, `,_jsx(_components.code,{children:`faq`}),`, `,_jsx(_components.code,{children:`service-map`}),`, `,_jsx(_components.code,{children:`blog-preview`}),`, `,_jsx(_components.code,{children:`cookie-declaration`}),`, `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`, `,_jsx(_components.code,{children:`google-reviews`}),`, `,_jsx(_components.code,{children:`testimonials`}),`, `,_jsx(_components.code,{children:`instagram-feed`}),`, `,_jsx(_components.code,{children:`gallery-preview`}),`, `,_jsx(_components.code,{children:`gallery-full`}),`, `,_jsx(_components.code,{children:`pricing`}),`, `,_jsx(_components.code,{children:`newsletter`}),`, `,_jsx(_components.code,{children:`sms-signup`}),`, `,_jsx(_components.code,{children:`form-render`}),`, `,_jsx(_components.code,{children:`final-cta`}),`: the one its `,_jsx(_components.code,{children:`type`}),` names.`]}),_jsxs(Expandable,{title:`PageHeaderWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PageHeaderWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`page-header`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\PageHeaderWidgetType|string`,required:true,id:`param-type-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`page-header`}),`. One of `,_jsx(_components.code,{children:`page-header`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-8`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-6`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`headline`,type:`?string`,id:`param-headline`,children:_jsx(_components.p,{children:`Optional. Leave empty to show the page title (the usual case). Set it only when the visible heading should read differently from the page’s title in navigation, search results and breadcrumbs.`})}),_jsx(ResponseField,{name:`eyebrowMode`,type:`Enums\\\\EyebrowMode|string|null`,id:`param-eyebrow-mode`,children:_jsxs(_components.p,{children:[`The small label above the title. One of `,_jsx(_components.code,{children:`business`}),`, `,_jsx(_components.code,{children:`custom`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`eyebrow`,type:`?string`,id:`param-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow text.`})}),_jsx(ResponseField,{name:`eyebrowColor`,type:`?string`,id:`param-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`eyebrowColorLight`,type:`?string`,id:`param-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`eyebrowWeight`,type:`Enums\\\\EyebrowWeight|string|null`,id:`param-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`eyebrowSize`,type:`Enums\\\\EyebrowSize|string|null`,id:`param-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`titleColor`,type:`?string`,id:`param-title-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`titleColorLight`,type:`?string`,id:`param-title-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`titleWeight`,type:`Enums\\\\TitleWeight|string|null`,id:`param-title-weight`,children:_jsxs(_components.p,{children:[`Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`titleSize`,type:`Enums\\\\TitleSize|string|null`,id:`param-title-size`,children:_jsxs(_components.p,{children:[`Title size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`leadText`,type:`?string`,id:`param-lead-text`,children:_jsx(_components.p,{children:`Optional intro shown under the page title.`})}),_jsx(ResponseField,{name:`leadColor`,type:`?string`,id:`param-lead-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`leadColorLight`,type:`?string`,id:`param-lead-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`leadWeight`,type:`Enums\\\\LeadWeight|string|null`,id:`param-lead-weight`,children:_jsxs(_components.p,{children:[`Lead weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`leadSize`,type:`Enums\\\\LeadSize|string|null`,id:`param-lead-size`,children:_jsxs(_components.p,{children:[`Lead size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderBg`,type:`Enums\\\\PageHeaderBg|string|null`,id:`param-page-header-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderBgCustom`,type:`?string`,id:`param-page-header-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`pageHeaderBgLight`,type:`Enums\\\\PageHeaderBgLight|string|null`,id:`param-page-header-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderBgLightCustom`,type:`?string`,id:`param-page-header-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`pageHeaderImage`,type:`?ImageArea`,id:`param-page-header-image`,children:_jsxs(_components.p,{children:[`An `,_jsx(_components.code,{children:`ImageArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`pageHeaderOverlayColor`,type:`?string`,id:`param-page-header-overlay-color`,children:_jsx(_components.p,{children:`Scrim behind the text over a background image (only applies when one is set). Leave empty to use the dark surface color.`})}),_jsx(ResponseField,{name:`pageHeaderOverlayColorLight`,type:`?string`,id:`param-page-header-overlay-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme overlay, then the light surface color.`})}),_jsx(ResponseField,{name:`pageHeaderOverlayOpacity`,type:`?float`,id:`param-page-header-overlay-opacity`,children:_jsx(_components.p,{children:`Overlay opacity (%). 0 to 100.`})}),_jsxs(ResponseField,{name:`pageHeaderFontOverrides`,type:`Collection\u003cint, PageHeaderWidgetPageHeaderFontOverridesItem>|null`,id:`param-page-header-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PageHeaderWidgetPageHeaderFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`PageHeaderWidgetPageHeaderFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PageHeaderWidgetPageHeaderFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-9`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-1`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-1`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-1`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-1`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-1`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-1`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-1`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem>|null`,id:`param-uploads-1`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-10`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-1`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-1`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-7`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-1`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-8`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaLabel`,type:`?string`,id:`param-page-header-primary-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaUrl`,type:`?string`,id:`param-page-header-primary-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaNewTab`,type:`?bool`,id:`param-page-header-primary-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaVariant`,type:`Enums\\\\PageHeaderPrimaryCtaVariant|string|null`,id:`param-page-header-primary-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaSize`,type:`Enums\\\\PageHeaderPrimaryCtaSize|string|null`,id:`param-page-header-primary-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaRadius`,type:`Enums\\\\PageHeaderPrimaryCtaRadius|string|null`,id:`param-page-header-primary-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaColor`,type:`?string`,id:`param-page-header-primary-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaColorLight`,type:`?string`,id:`param-page-header-primary-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaTextColor`,type:`?string`,id:`param-page-header-primary-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaTextColorLight`,type:`?string`,id:`param-page-header-primary-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaHoverColor`,type:`?string`,id:`param-page-header-primary-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaHoverColorLight`,type:`?string`,id:`param-page-header-primary-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaStyle`,type:`Enums\\\\PageHeaderPrimaryCtaStyle|string|null`,id:`param-page-header-primary-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaShadowColor`,type:`?string`,id:`param-page-header-primary-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaShadowColorLight`,type:`?string`,id:`param-page-header-primary-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaAnimation`,type:`Enums\\\\PageHeaderPrimaryCtaAnimation|string|null`,id:`param-page-header-primary-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIcon`,type:`?string`,id:`param-page-header-primary-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIconFamily`,type:`Enums\\\\PageHeaderPrimaryCtaIconFamily|string|null`,id:`param-page-header-primary-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIconPosition`,type:`Enums\\\\PageHeaderPrimaryCtaIconPosition|string|null`,id:`param-page-header-primary-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIconNudge`,type:`?bool`,id:`param-page-header-primary-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaLabel`,type:`?string`,id:`param-page-header-secondary-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaUrl`,type:`?string`,id:`param-page-header-secondary-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaNewTab`,type:`?bool`,id:`param-page-header-secondary-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaVariant`,type:`Enums\\\\PageHeaderSecondaryCtaVariant|string|null`,id:`param-page-header-secondary-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaSize`,type:`Enums\\\\PageHeaderSecondaryCtaSize|string|null`,id:`param-page-header-secondary-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaRadius`,type:`Enums\\\\PageHeaderSecondaryCtaRadius|string|null`,id:`param-page-header-secondary-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaColor`,type:`?string`,id:`param-page-header-secondary-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaColorLight`,type:`?string`,id:`param-page-header-secondary-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaTextColor`,type:`?string`,id:`param-page-header-secondary-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaTextColorLight`,type:`?string`,id:`param-page-header-secondary-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaHoverColor`,type:`?string`,id:`param-page-header-secondary-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaHoverColorLight`,type:`?string`,id:`param-page-header-secondary-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaStyle`,type:`Enums\\\\PageHeaderSecondaryCtaStyle|string|null`,id:`param-page-header-secondary-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaShadowColor`,type:`?string`,id:`param-page-header-secondary-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaShadowColorLight`,type:`?string`,id:`param-page-header-secondary-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaAnimation`,type:`Enums\\\\PageHeaderSecondaryCtaAnimation|string|null`,id:`param-page-header-secondary-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIcon`,type:`?string`,id:`param-page-header-secondary-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIconFamily`,type:`Enums\\\\PageHeaderSecondaryCtaIconFamily|string|null`,id:`param-page-header-secondary-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIconPosition`,type:`Enums\\\\PageHeaderSecondaryCtaIconPosition|string|null`,id:`param-page-header-secondary-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIconNudge`,type:`?bool`,id:`param-page-header-secondary-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-3`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-9`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`HeroWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\HeroWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`hero`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\HeroWidgetType|string`,required:true,id:`param-type-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`hero`}),`. One of `,_jsx(_components.code,{children:`hero`}),`.`]})}),_jsx(ResponseField,{name:`heroHeadline`,type:`string`,required:true,id:`param-hero-headline`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Headline.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-11`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-7`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`heroAlign`,type:`Enums\\\\HeroAlign|string|null`,id:`param-hero-align`,children:_jsxs(_components.p,{children:[`Content alignment. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`.`]})}),_jsx(ResponseField,{name:`heroHeight`,type:`Enums\\\\HeroHeight|string|null`,id:`param-hero-height`,children:_jsxs(_components.p,{children:[`Full fills the screen (home pages); Compact is a short banner for interior pages. One of `,_jsx(_components.code,{children:`full`}),`, `,_jsx(_components.code,{children:`tall`}),`, `,_jsx(_components.code,{children:`compact`}),`.`]})}),_jsx(ResponseField,{name:`heroGhostEnabled`,type:`?bool`,id:`param-hero-ghost-enabled`,children:_jsx(_components.p,{children:`Giant outlined word above the headline (same treatment as the footer wordmark). Reveals on hover.`})}),_jsx(ResponseField,{name:`heroGhostText`,type:`?string`,id:`param-hero-ghost-text`,children:_jsx(_components.p,{children:`Keep it short — one word reads best at display size. Leave empty to use the business name.`})}),_jsx(ResponseField,{name:`heroGhostSize`,type:`Enums\\\\HeroGhostSize|string|null`,id:`param-hero-ghost-size`,children:_jsxs(_components.p,{children:[`Ghost wordmark size. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`medium`}),`.`]})}),_jsx(ResponseField,{name:`heroGhostFill`,type:`Enums\\\\HeroGhostFill|string|null`,id:`param-hero-ghost-fill`,children:_jsxs(_components.p,{children:[`Outlined letters that fill on hover one at a time, all at once, or always-solid (no ghost effect). One of `,_jsx(_components.code,{children:`letter`}),`, `,_jsx(_components.code,{children:`word`}),`, `,_jsx(_components.code,{children:`solid`}),`.`]})}),_jsx(ResponseField,{name:`heroGhostFillColor`,type:`?string`,id:`param-hero-ghost-fill-color`,children:_jsx(_components.p,{children:`Optional. Overrides the wordmark fill + outline tint in the dark theme. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`heroGhostFillColorLight`,type:`?string`,id:`param-hero-ghost-fill-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override — handy over a fixed video/photo background that doesn’t switch with the theme. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`heroLockupEnabled`,type:`?bool`,id:`param-hero-lockup-enabled`,children:_jsx(_components.p,{children:`A small line (optional icon + business name) above the headline. Off by default when the ghost wordmark carries the brand.`})}),_jsx(ResponseField,{name:`heroEyebrowEnabled`,type:`?bool`,id:`param-hero-eyebrow-enabled`,children:_jsx(_components.p,{children:`Show eyebrow / kicker.`})}),_jsx(ResponseField,{name:`heroEyebrow`,type:`?string`,id:`param-hero-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`heroEyebrowColor`,type:`?string`,id:`param-hero-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`heroEyebrowColorLight`,type:`?string`,id:`param-hero-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`heroEyebrowWeight`,type:`Enums\\\\HeroEyebrowWeight|string|null`,id:`param-hero-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`heroEyebrowSize`,type:`Enums\\\\HeroEyebrowSize|string|null`,id:`param-hero-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`heroEyebrowPlacement`,type:`Enums\\\\HeroEyebrowPlacement|string|null`,id:`param-hero-eyebrow-placement`,children:_jsxs(_components.p,{children:[`Eyebrow placement. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`belowHeadline`}),`, `,_jsx(_components.code,{children:`aboveCta`}),`.`]})}),_jsx(ResponseField,{name:`heroHeadlineFill`,type:`Enums\\\\HeroHeadlineFill|string|null`,id:`param-hero-headline-fill`,children:_jsxs(_components.p,{children:[`Solid is the standard headline. The outline options give the headline the same ghost treatment as the wordmark, filling on hover. (The accent sticker word stays solid.) One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`letter`}),`, `,_jsx(_components.code,{children:`word`}),`.`]})}),_jsx(ResponseField,{name:`heroHeadlineFillColor`,type:`?string`,id:`param-hero-headline-fill-color`,children:_jsx(_components.p,{children:`Optional. Overrides the headline color in the dark theme. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`heroHeadlineFillColorLight`,type:`?string`,id:`param-hero-headline-fill-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`heroStickerEnabled`,type:`?bool`,id:`param-hero-sticker-enabled`,children:_jsx(_components.p,{children:`Wraps the final headline word in the solid accent “sticker”. Turn off for a plain headline.`})}),_jsx(ResponseField,{name:`heroStickerStyle`,type:`Enums\\\\HeroStickerStyle|string|null`,id:`param-hero-sticker-style`,children:_jsxs(_components.p,{children:[`Dual layers a colored offset shadow behind the patch; single is one flat color. One of `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`single`}),`.`]})}),_jsx(ResponseField,{name:`heroStickerColor`,type:`?string`,id:`param-hero-sticker-color`,children:_jsx(_components.p,{children:`Patch background. Leave empty to use the site primary/accent color.`})}),_jsx(ResponseField,{name:`heroStickerColorSecondary`,type:`?string`,id:`param-hero-sticker-color-secondary`,children:_jsx(_components.p,{children:`Offset-shadow layer. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`heroLinkHoverFill`,type:`?bool`,id:`param-hero-link-hover-fill`,children:_jsx(_components.p,{children:`Hovering either the wordmark or the headline fills both at once. Only available when both are set to fill the whole word/headline on hover.`})}),_jsx(ResponseField,{name:`heroHashtagEnabled`,type:`?bool`,id:`param-hero-hashtag-enabled`,children:_jsx(_components.p,{children:`A bold social hashtag (e.g. #behindthescenes) with its own placement, fill, and optional pill background.`})}),_jsx(ResponseField,{name:`heroHashtagText`,type:`?string`,id:`param-hero-hashtag-text`,children:_jsx(_components.p,{children:`Include the # — e.g. #behindthescenes.`})}),_jsx(ResponseField,{name:`heroHashtagPlacement`,type:`Enums\\\\HeroHashtagPlacement|string|null`,id:`param-hero-hashtag-placement`,children:_jsxs(_components.p,{children:[`Hashtag placement. One of `,_jsx(_components.code,{children:`aboveGhost`}),`, `,_jsx(_components.code,{children:`aboveHeadline`}),`, `,_jsx(_components.code,{children:`belowHeadline`}),`, `,_jsx(_components.code,{children:`aboveCta`}),`.`]})}),_jsx(ResponseField,{name:`heroHashtagSize`,type:`Enums\\\\HeroHashtagSize|string|null`,id:`param-hero-hashtag-size`,children:_jsxs(_components.p,{children:[`Smaller than the headline, but still a prominent element. One of `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`small`}),`.`]})}),_jsx(ResponseField,{name:`heroHashtagFill`,type:`Enums\\\\HeroHashtagFill|string|null`,id:`param-hero-hashtag-fill`,children:_jsxs(_components.p,{children:[`Solid color, or the same outlined “ghost” treatment as the headline that fills on hover. (Ignored when the Solid pill background is used.) One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`letter`}),`, `,_jsx(_components.code,{children:`word`}),`.`]})}),_jsx(ResponseField,{name:`heroHashtagFillColor`,type:`?string`,id:`param-hero-hashtag-fill-color`,children:_jsx(_components.p,{children:`Optional text color (or outline tint). Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`heroHashtagFillColorLight`,type:`?string`,id:`param-hero-hashtag-fill-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`heroHashtagBackground`,type:`Enums\\\\HeroHashtagBackground|string|null`,id:`param-hero-hashtag-background`,children:_jsxs(_components.p,{children:[`An optional patch behind the hashtag — a softer take on the headline sticker. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`.`]})}),_jsx(ResponseField,{name:`heroHashtagBgShape`,type:`Enums\\\\HeroHashtagBgShape|string|null`,id:`param-hero-hashtag-bg-shape`,children:_jsxs(_components.p,{children:[`Rounded pill or a squared patch like the headline sticker. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`heroHashtagBgColor`,type:`?string`,id:`param-hero-hashtag-bg-color`,children:_jsx(_components.p,{children:`Patch fill (solid) or border + text (outline). Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`heroHashtagTilt`,type:`Enums\\\\HeroHashtagTilt|string|null`,id:`param-hero-hashtag-tilt`,children:_jsxs(_components.p,{children:[`A slight rotation, like the headline sticker. Works with or without a background. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`heroIntro`,type:`?string`,id:`param-hero-intro`,children:_jsx(_components.p,{children:`Intro copy.`})}),_jsx(ResponseField,{name:`heroIntroColor`,type:`?string`,id:`param-hero-intro-color`,children:_jsx(_components.p,{children:`Optional. Overrides the intro text color. Leave empty for the muted default.`})}),_jsx(ResponseField,{name:`heroIntroColorLight`,type:`?string`,id:`param-hero-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the muted default.`})}),_jsx(ResponseField,{name:`heroIntroWeight`,type:`Enums\\\\HeroIntroWeight|string|null`,id:`param-hero-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`heroIconPlacement`,type:`Enums\\\\HeroIconPlacement|string|null`,id:`param-hero-icon-placement`,children:_jsxs(_components.p,{children:[`Where to place an optional Font Awesome icon. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lockup`}),`, `,_jsx(_components.code,{children:`aboveHeadline`}),`, `,_jsx(_components.code,{children:`aboveGhost`}),`.`]})}),_jsx(ResponseField,{name:`heroIcon`,type:`?string`,id:`param-hero-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`heroIconFamily`,type:`Enums\\\\HeroIconFamily|string|null`,id:`param-hero-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`heroIconColor`,type:`?string`,id:`param-hero-icon-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the design’s own color rhythm.`})}),_jsx(ResponseField,{name:`heroIconAnimation`,type:`Enums\\\\HeroIconAnimation|string|null`,id:`param-hero-icon-animation`,children:_jsxs(_components.p,{children:[`Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`.`]})}),_jsx(ResponseField,{name:`heroBackgroundType`,type:`Enums\\\\HeroBackgroundType|string|null`,id:`param-hero-background-type`,children:_jsxs(_components.p,{children:[`Background type. One of `,_jsx(_components.code,{children:`gradient`}),`, `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`.`]})}),_jsx(ResponseField,{name:`heroImage`,type:`?ImageArea`,id:`param-hero-image`,children:_jsxs(_components.p,{children:[`An `,_jsx(_components.code,{children:`ImageArea`}),`. Used when background type is Image, and as the poster/fallback for Video. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`heroVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-hero-video`,children:_jsxs(_components.p,{children:[`Pick from the Videos library (⌘K → Videos). Short, muted loop; reduced-motion visitors get the fallback image instead. The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`heroMotionPause`,type:`?bool`,id:`param-hero-motion-pause`,children:_jsx(_components.p,{children:`Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.`})}),_jsxs(ResponseField,{name:`heroFontOverrides`,type:`Collection\u003cint, HeroWidgetHeroFontOverridesItem>|null`,id:`param-hero-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`HeroWidgetHeroFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`HeroWidgetHeroFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\HeroWidgetHeroFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-12`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-2`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-2`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-2`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-2`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-2`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-2`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-2`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, HeroWidgetHeroFontOverridesItemUploadsItem>|null`,id:`param-uploads-2`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`HeroWidgetHeroFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`HeroWidgetHeroFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\HeroWidgetHeroFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-13`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-2`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-2`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-10`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-2`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-11`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`heroPrimaryCtaLabel`,type:`?string`,id:`param-hero-primary-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaUrl`,type:`?string`,id:`param-hero-primary-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaNewTab`,type:`?bool`,id:`param-hero-primary-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`heroPrimaryCtaVariant`,type:`Enums\\\\HeroPrimaryCtaVariant|string|null`,id:`param-hero-primary-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaSize`,type:`Enums\\\\HeroPrimaryCtaSize|string|null`,id:`param-hero-primary-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaRadius`,type:`Enums\\\\HeroPrimaryCtaRadius|string|null`,id:`param-hero-primary-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaColor`,type:`?string`,id:`param-hero-primary-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaColorLight`,type:`?string`,id:`param-hero-primary-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`heroPrimaryCtaTextColor`,type:`?string`,id:`param-hero-primary-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`heroPrimaryCtaTextColorLight`,type:`?string`,id:`param-hero-primary-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaHoverColor`,type:`?string`,id:`param-hero-primary-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaHoverColorLight`,type:`?string`,id:`param-hero-primary-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaStyle`,type:`Enums\\\\HeroPrimaryCtaStyle|string|null`,id:`param-hero-primary-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaShadowColor`,type:`?string`,id:`param-hero-primary-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaShadowColorLight`,type:`?string`,id:`param-hero-primary-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaAnimation`,type:`Enums\\\\HeroPrimaryCtaAnimation|string|null`,id:`param-hero-primary-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIcon`,type:`?string`,id:`param-hero-primary-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaIconFamily`,type:`Enums\\\\HeroPrimaryCtaIconFamily|string|null`,id:`param-hero-primary-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIconPosition`,type:`Enums\\\\HeroPrimaryCtaIconPosition|string|null`,id:`param-hero-primary-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIconNudge`,type:`?bool`,id:`param-hero-primary-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`heroSecondaryCtaLabel`,type:`?string`,id:`param-hero-secondary-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaUrl`,type:`?string`,id:`param-hero-secondary-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaNewTab`,type:`?bool`,id:`param-hero-secondary-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`heroSecondaryCtaVariant`,type:`Enums\\\\HeroSecondaryCtaVariant|string|null`,id:`param-hero-secondary-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaSize`,type:`Enums\\\\HeroSecondaryCtaSize|string|null`,id:`param-hero-secondary-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaRadius`,type:`Enums\\\\HeroSecondaryCtaRadius|string|null`,id:`param-hero-secondary-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaColor`,type:`?string`,id:`param-hero-secondary-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaColorLight`,type:`?string`,id:`param-hero-secondary-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`heroSecondaryCtaTextColor`,type:`?string`,id:`param-hero-secondary-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`heroSecondaryCtaTextColorLight`,type:`?string`,id:`param-hero-secondary-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaHoverColor`,type:`?string`,id:`param-hero-secondary-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaHoverColorLight`,type:`?string`,id:`param-hero-secondary-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaStyle`,type:`Enums\\\\HeroSecondaryCtaStyle|string|null`,id:`param-hero-secondary-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaShadowColor`,type:`?string`,id:`param-hero-secondary-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaShadowColorLight`,type:`?string`,id:`param-hero-secondary-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaAnimation`,type:`Enums\\\\HeroSecondaryCtaAnimation|string|null`,id:`param-hero-secondary-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIcon`,type:`?string`,id:`param-hero-secondary-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaIconFamily`,type:`Enums\\\\HeroSecondaryCtaIconFamily|string|null`,id:`param-hero-secondary-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIconPosition`,type:`Enums\\\\HeroSecondaryCtaIconPosition|string|null`,id:`param-hero-secondary-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIconNudge`,type:`?bool`,id:`param-hero-secondary-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-4`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-12`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`LayoutWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/layout`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\LayoutWidgetType|string`,required:true,id:`param-type-6`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/layout`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/layout`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-14`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-8`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsxs(ResponseField,{name:`columns`,type:`?LayoutColumnArea`,id:`param-columns`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`LayoutColumnArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`LayoutColumnArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutColumnArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-9`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-15`,children:_jsx(_components.p,{children:`The area’s id, set by the site: leave it out when you write one.`})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, LayoutColumnWidget>|null`,id:`param-items-3`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`LayoutColumnWidget`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them).`]}),_jsxs(Expandable,{title:`LayoutColumnWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutColumnWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/layout-column`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\LayoutColumnWidgetType|string`,required:true,id:`param-type-7`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/layout-column`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/layout-column`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-16`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-10`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`colstart`,type:`?int`,id:`param-colstart`,children:_jsx(_components.p,{children:`Colstart.`})}),_jsx(ResponseField,{name:`colspan`,type:`?int`,id:`param-colspan`,children:_jsx(_components.p,{children:`Colspan.`})}),_jsx(ResponseField,{name:`rowstart`,type:`?int`,id:`param-rowstart`,children:_jsx(_components.p,{children:`Rowstart.`})}),_jsx(ResponseField,{name:`rowspan`,type:`?int`,id:`param-rowspan`,children:_jsx(_components.p,{children:`Rowspan.`})}),_jsx(ResponseField,{name:`order`,type:`?int`,id:`param-order`,children:_jsx(_components.p,{children:`Order.`})}),_jsxs(ResponseField,{name:`content`,type:`?LayoutColumnContentArea`,id:`param-content-1`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`LayoutColumnContentArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`LayoutColumnContentArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutColumnContentArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-11`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-17`,children:_jsx(_components.p,{children:`The area’s id, set by the site: leave it out when you write one.`})}),_jsx(ResponseField,{name:`items`,type:`Collection\u003cint, RichTextWidget|ImageWidget|VideoWidget|IntroWidget|StatsWidget|StepsWidget|PricingWidget|FaqWidget|DeviceMockWidget>|null`,id:`param-items-4`,children:_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`LayoutColumnContentAreaItem`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them). Its fields are listed under the first `,_jsx(_components.code,{children:`LayoutColumnContentAreaItem`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-13`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`showTablet`,type:`?bool`,id:`param-show-tablet`,children:_jsx(_components.p,{children:`Visible on tablet.`})}),_jsx(ResponseField,{name:`showMobile`,type:`?bool`,id:`param-show-mobile`,children:_jsx(_components.p,{children:`Visible on mobile.`})}),_jsx(ResponseField,{name:`justify`,type:`Enums\\\\Justify|string|null`,id:`param-justify`,children:_jsxs(_components.p,{children:[`Horizontal alignment. One of `,_jsx(_components.code,{children:`stretch`}),`, `,_jsx(_components.code,{children:`start`}),`, `,_jsx(_components.code,{children:`end`}),`, `,_jsx(_components.code,{children:`center`}),`.`]})}),_jsx(ResponseField,{name:`align`,type:`Enums\\\\Align|string|null`,id:`param-align`,children:_jsxs(_components.p,{children:[`Vertical alignment. One of `,_jsx(_components.code,{children:`stretch`}),`, `,_jsx(_components.code,{children:`start`}),`, `,_jsx(_components.code,{children:`end`}),`, `,_jsx(_components.code,{children:`center`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-14`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-15`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-5`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-16`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`IntroWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\IntroWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`intro`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\IntroWidgetType|string`,required:true,id:`param-type-8`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`intro`}),`. One of `,_jsx(_components.code,{children:`intro`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-18`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-12`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`introEyebrow`,type:`?string`,id:`param-intro-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`introEyebrowColor`,type:`?string`,id:`param-intro-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`introEyebrowColorLight`,type:`?string`,id:`param-intro-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`introEyebrowWeight`,type:`Enums\\\\IntroEyebrowWeight|string|null`,id:`param-intro-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`introEyebrowSize`,type:`Enums\\\\IntroEyebrowSize|string|null`,id:`param-intro-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`introHeadline`,type:`?string`,id:`param-intro-headline`,children:_jsx(_components.p,{children:`Headline.`})}),_jsx(ResponseField,{name:`introHeadlineColor`,type:`?string`,id:`param-intro-headline-color`,children:_jsx(_components.p,{children:`Optional. Overrides the headline color. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`introHeadlineColorLight`,type:`?string`,id:`param-intro-headline-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`introHeadlineWeight`,type:`Enums\\\\IntroHeadlineWeight|string|null`,id:`param-intro-headline-weight`,children:_jsxs(_components.p,{children:[`Headline weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`introBody`,type:`?string`,id:`param-intro-body`,children:_jsx(_components.p,{children:`Body copy.`})}),_jsx(ResponseField,{name:`introBodyColor`,type:`?string`,id:`param-intro-body-color`,children:_jsx(_components.p,{children:`Optional. Overrides the body text color. Leave empty for the muted default.`})}),_jsx(ResponseField,{name:`introBodyColorLight`,type:`?string`,id:`param-intro-body-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the muted default.`})}),_jsx(ResponseField,{name:`introBodyWeight`,type:`Enums\\\\IntroBodyWeight|string|null`,id:`param-intro-body-weight`,children:_jsxs(_components.p,{children:[`Body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`introPhotoPlacement`,type:`Enums\\\\IntroPhotoPlacement|string|null`,id:`param-intro-photo-placement`,children:_jsxs(_components.p,{children:[`Where the optional photo sits. Left/right place it beside the text; Full background fills the whole section behind the text (with a readability overlay). One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`, `,_jsx(_components.code,{children:`background`}),`.`]})}),_jsx(ResponseField,{name:`introImage`,type:`?ImageArea`,id:`param-intro-image`,children:_jsxs(_components.p,{children:[`An `,_jsx(_components.code,{children:`ImageArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`introPhotoCorners`,type:`Enums\\\\IntroPhotoCorners|string|null`,id:`param-intro-photo-corners`,children:_jsxs(_components.p,{children:[`Photo corners. One of `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`squared`}),`.`]})}),_jsx(ResponseField,{name:`introPhotoFrame`,type:`Enums\\\\IntroPhotoFrame|string|null`,id:`param-intro-photo-frame`,children:_jsxs(_components.p,{children:[`Border draws a frame around the photo; Offset adds a refined offset accent frame behind it. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`offset`}),`.`]})}),_jsx(ResponseField,{name:`introPhotoFrameColor`,type:`?string`,id:`param-intro-photo-frame-color`,children:_jsx(_components.p,{children:`Border / offset-frame color. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`introPhotoTilt`,type:`Enums\\\\IntroPhotoTilt|string|null`,id:`param-intro-photo-tilt`,children:_jsxs(_components.p,{children:[`A slight rotation for a more playful look. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`introPhotoHover`,type:`Enums\\\\IntroPhotoHover|string|null`,id:`param-intro-photo-hover`,children:_jsxs(_components.p,{children:[`Photo hover effect. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`zoom`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`lift-glow`}),`, `,_jsx(_components.code,{children:`zoom-glow`}),`.`]})}),_jsx(ResponseField,{name:`introOverlayColor`,type:`?string`,id:`param-intro-overlay-color`,children:_jsx(_components.p,{children:`Scrim behind the text over a full-background photo. Leave empty to use the dark surface color.`})}),_jsx(ResponseField,{name:`introOverlayColorLight`,type:`?string`,id:`param-intro-overlay-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme overlay, then the light surface color.`})}),_jsx(ResponseField,{name:`introOverlayOpacity`,type:`?float`,id:`param-intro-overlay-opacity`,children:_jsx(_components.p,{children:`Overlay opacity (%). 0 to 100.`})}),_jsx(ResponseField,{name:`introBg`,type:`Enums\\\\IntroBg|string|null`,id:`param-intro-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`introBgCustom`,type:`?string`,id:`param-intro-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`introBgLight`,type:`Enums\\\\IntroBgLight|string|null`,id:`param-intro-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`introBgLightCustom`,type:`?string`,id:`param-intro-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`introFontOverrides`,type:`Collection\u003cint, IntroWidgetIntroFontOverridesItem>|null`,id:`param-intro-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`IntroWidgetIntroFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`IntroWidgetIntroFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\IntroWidgetIntroFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-19`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-3`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-3`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-3`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-3`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-3`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-3`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-3`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, IntroWidgetIntroFontOverridesItemUploadsItem>|null`,id:`param-uploads-3`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`IntroWidgetIntroFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`IntroWidgetIntroFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\IntroWidgetIntroFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-20`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-3`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-3`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-17`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-3`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-18`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-6`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-19`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`FeatureWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`feature`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FeatureWidgetType|string`,required:true,id:`param-type-9`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`feature`}),`. One of `,_jsx(_components.code,{children:`feature`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-21`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-13`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`featureColumns`,type:`Enums\\\\FeatureColumns|string|null`,id:`param-feature-columns`,children:_jsxs(_components.p,{children:[`Auto fits as many as comfortably fit and works for any number of cards. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`featureGap`,type:`Enums\\\\FeatureGap|string|null`,id:`param-feature-gap`,children:_jsxs(_components.p,{children:[`Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`featureCardSize`,type:`Enums\\\\FeatureCardSize|string|null`,id:`param-feature-card-size`,children:_jsxs(_components.p,{children:[`Scales padding, icon, title, and the index numeral together. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`featureCardStyle`,type:`Enums\\\\FeatureCardStyle|string|null`,id:`param-feature-card-style`,children:_jsxs(_components.p,{children:[`The card treatment. Poster (the default) frames the card with an accent keyline; Raised is a quiet lit card; Luxe a frosted glass panel; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`featureCardStyleRadius`,type:`Enums\\\\FeatureCardStyleRadius|string|null`,id:`param-feature-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`featureCardStyleAccentColor`,type:`?string`,id:`param-feature-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`featureCardStyleAccentColorLight`,type:`?string`,id:`param-feature-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`featureCardStyleForgeScope`,type:`Enums\\\\FeatureCardStyleForgeScope|string|null`,id:`param-feature-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`featureCardStyleForgeWeight`,type:`Enums\\\\FeatureCardStyleForgeWeight|string|null`,id:`param-feature-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`featureCardHover`,type:`Enums\\\\FeatureCardHover|string|null`,id:`param-feature-card-hover`,children:_jsxs(_components.p,{children:[`How a card reacts on hover. Pop is the lift + hard offset shadow; Glow is a soft accent halo. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`.`]})}),_jsx(ResponseField,{name:`featureCardHoverColor`,type:`?string`,id:`param-feature-card-hover-color`,children:_jsx(_components.p,{children:`Border / shadow / glow color on hover. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`featureCardHoverColorLight`,type:`?string`,id:`param-feature-card-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`featureNumbering`,type:`?bool`,id:`param-feature-numbering`,children:_jsx(_components.p,{children:`A big outlined numeral on each card (01, 02, …). Great for step-by-step sequences; turn off when the cards aren’t ordered.`})}),_jsx(ResponseField,{name:`featureNumberFill`,type:`Enums\\\\FeatureNumberFill|string|null`,id:`param-feature-number-fill`,children:_jsxs(_components.p,{children:[`Same treatment as the hero ghost text: all numbers solid, outlined and filling on hover, or always outlined. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`hover`}),`, `,_jsx(_components.code,{children:`outline`}),`.`]})}),_jsx(ResponseField,{name:`featureNumberColor`,type:`?string`,id:`param-feature-number-color`,children:_jsx(_components.p,{children:`Optional. Tints the numeral fill + outline. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`featureNumberColorLight`,type:`?string`,id:`param-feature-number-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`featureTitleColor`,type:`?string`,id:`param-feature-title-color`,children:_jsx(_components.p,{children:`Optional. Overrides the card title color. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`featureTitleColorLight`,type:`?string`,id:`param-feature-title-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`featureTitleWeight`,type:`Enums\\\\FeatureTitleWeight|string|null`,id:`param-feature-title-weight`,children:_jsxs(_components.p,{children:[`Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`featureTextColor`,type:`?string`,id:`param-feature-text-color`,children:_jsx(_components.p,{children:`Optional. Overrides the card text color. Leave empty for the muted default.`})}),_jsx(ResponseField,{name:`featureTextColorLight`,type:`?string`,id:`param-feature-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the muted default.`})}),_jsx(ResponseField,{name:`featureTextWeight`,type:`Enums\\\\FeatureTextWeight|string|null`,id:`param-feature-text-weight`,children:_jsxs(_components.p,{children:[`Text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsxs(ResponseField,{name:`featureCards`,type:`Collection\u003cint, FeatureWidgetFeatureCardsItem>|null`,id:`param-feature-cards`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FeatureWidgetFeatureCardsItem`}),`. Feature cards.`]}),_jsxs(Expandable,{title:`FeatureWidgetFeatureCardsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidgetFeatureCardsItem)`,children:[_jsx(ResponseField,{name:`cardTitle`,type:`string`,required:true,id:`param-card-title`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Title.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-22`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the design’s own color rhythm.`})}),_jsx(ResponseField,{name:`iconAnimation`,type:`Enums\\\\IconAnimation|string|null`,id:`param-icon-animation`,children:_jsxs(_components.p,{children:[`Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`.`]})}),_jsx(ResponseField,{name:`iconSize`,type:`Enums\\\\IconSize|string|null`,id:`param-icon-size`,children:_jsxs(_components.p,{children:[`Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`.`]})}),_jsx(ResponseField,{name:`cardText`,type:`?string`,id:`param-card-text`,children:_jsx(_components.p,{children:`Text.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-20`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`featureBg`,type:`Enums\\\\FeatureBg|string|null`,id:`param-feature-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`featureBgCustom`,type:`?string`,id:`param-feature-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`featureBgLight`,type:`Enums\\\\FeatureBgLight|string|null`,id:`param-feature-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`featureBgLightCustom`,type:`?string`,id:`param-feature-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`featureFontOverrides`,type:`Collection\u003cint, FeatureWidgetFeatureFontOverridesItem>|null`,id:`param-feature-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FeatureWidgetFeatureFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FeatureWidgetFeatureFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidgetFeatureFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-23`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-4`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-4`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-4`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-4`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-4`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-4`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-4`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FeatureWidgetFeatureFontOverridesItemUploadsItem>|null`,id:`param-uploads-4`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FeatureWidgetFeatureFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FeatureWidgetFeatureFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidgetFeatureFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-24`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-4`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-4`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-21`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-4`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-22`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-7`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-23`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`StatsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`stats`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\StatsWidgetType|string`,required:true,id:`param-type-10`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`stats`}),`. One of `,_jsx(_components.code,{children:`stats`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-25`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-14`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`statsEyebrowEnabled`,type:`?bool`,id:`param-stats-eyebrow-enabled`,children:_jsx(_components.p,{children:`A small label above the heading (e.g. “By the numbers”).`})}),_jsx(ResponseField,{name:`statsEyebrow`,type:`?string`,id:`param-stats-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow.`})}),_jsx(ResponseField,{name:`statsEyebrowColor`,type:`?string`,id:`param-stats-eyebrow-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`statsEyebrowColorLight`,type:`?string`,id:`param-stats-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`statsEyebrowWeight`,type:`Enums\\\\StatsEyebrowWeight|string|null`,id:`param-stats-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`statsEyebrowSize`,type:`Enums\\\\StatsEyebrowSize|string|null`,id:`param-stats-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`statsHeading`,type:`?string`,id:`param-stats-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the numbers.`})}),_jsx(ResponseField,{name:`statsHeadingColor`,type:`?string`,id:`param-stats-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`statsHeadingColorLight`,type:`?string`,id:`param-stats-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`statsHeadingWeight`,type:`Enums\\\\StatsHeadingWeight|string|null`,id:`param-stats-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`statsColumns`,type:`Enums\\\\StatsColumns|string|null`,id:`param-stats-columns`,children:_jsxs(_components.p,{children:[`Auto fits as many as comfortably fit and works for any number of stats. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`statsGap`,type:`Enums\\\\StatsGap|string|null`,id:`param-stats-gap`,children:_jsxs(_components.p,{children:[`Gap between stats. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`statsSize`,type:`Enums\\\\StatsSize|string|null`,id:`param-stats-size`,children:_jsxs(_components.p,{children:[`The baseline scale for the whole stat (value / icon / label / description stay proportional). Fine-tune any single element with its own size control below. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`statsAlign`,type:`Enums\\\\StatsAlign|string|null`,id:`param-stats-align`,children:_jsxs(_components.p,{children:[`Alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`statsDividers`,type:`?bool`,id:`param-stats-dividers`,children:_jsx(_components.p,{children:`A hairline rule between each stat — the classic “by the numbers” rail.`})}),_jsx(ResponseField,{name:`statsCountUp`,type:`?bool`,id:`param-stats-count-up`,children:_jsx(_components.p,{children:`Numbers tick up from zero when the band scrolls into view. Non-numeric values and reduced-motion visitors simply show the final value.`})}),_jsx(ResponseField,{name:`statsIconSize`,type:`Enums\\\\StatsIconSize|string|null`,id:`param-stats-icon-size`,children:_jsxs(_components.p,{children:[`Size of the icon above each number, independent of the overall stat size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`xxl`}),`.`]})}),_jsx(ResponseField,{name:`statsIconGap`,type:`Enums\\\\StatsIconGap|string|null`,id:`param-stats-icon-gap`,children:_jsxs(_components.p,{children:[`Space between the icon and the number below it. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`statsValueSize`,type:`Enums\\\\StatsValueSize|string|null`,id:`param-stats-value-size`,children:_jsxs(_components.p,{children:[`Value size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`xs`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`.`]})}),_jsx(ResponseField,{name:`statsValueWeight`,type:`Enums\\\\StatsValueWeight|string|null`,id:`param-stats-value-weight`,children:_jsxs(_components.p,{children:[`Value weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`statsValueColor`,type:`?string`,id:`param-stats-value-color`,children:_jsx(_components.p,{children:`The big numeral. Optional — leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`statsValueColorLight`,type:`?string`,id:`param-stats-value-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`statsLabelSize`,type:`Enums\\\\StatsLabelSize|string|null`,id:`param-stats-label-size`,children:_jsxs(_components.p,{children:[`Label size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`xs`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`.`]})}),_jsx(ResponseField,{name:`statsLabelWeight`,type:`Enums\\\\StatsLabelWeight|string|null`,id:`param-stats-label-weight`,children:_jsxs(_components.p,{children:[`Label weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`statsLabelColor`,type:`?string`,id:`param-stats-label-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`statsLabelColorLight`,type:`?string`,id:`param-stats-label-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`statsDescriptionSize`,type:`Enums\\\\StatsDescriptionSize|string|null`,id:`param-stats-description-size`,children:_jsxs(_components.p,{children:[`Description size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`xs`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`.`]})}),_jsx(ResponseField,{name:`statsDescriptionWeight`,type:`Enums\\\\StatsDescriptionWeight|string|null`,id:`param-stats-description-weight`,children:_jsxs(_components.p,{children:[`Description weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`statsDescriptionColor`,type:`?string`,id:`param-stats-description-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`statsDescriptionColorLight`,type:`?string`,id:`param-stats-description-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsxs(ResponseField,{name:`stats`,type:`Collection\u003cint, StatsWidgetStatsItem>|null`,id:`param-stats`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`StatsWidgetStatsItem`}),`. Stats.`]}),_jsxs(Expandable,{title:`StatsWidgetStatsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidgetStatsItem)`,children:[_jsx(ResponseField,{name:`value`,type:`string`,required:true,id:`param-value`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The number, e.g. 500, 4.9, 12 — symbols go in the prefix/suffix so the count-up animates the number alone.`]})}),_jsx(ResponseField,{name:`label`,type:`string`,required:true,id:`param-label`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Label.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-26`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-1`,children:_jsx(_components.p,{children:`Optional Font Awesome icon shown above the number (e.g. star, bolt, chart-line). Leave empty for no icon.`})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-1`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-1`,children:_jsx(_components.p,{children:`Optional — leave empty to use the design’s own color rhythm.`})}),_jsx(ResponseField,{name:`valuePrefix`,type:`?string`,id:`param-value-prefix`,children:_jsx(_components.p,{children:`Optional, shown before the number (e.g. $, ~, >). Kept out of the count-up.`})}),_jsx(ResponseField,{name:`valueSuffix`,type:`?string`,id:`param-value-suffix`,children:_jsx(_components.p,{children:`Optional, shown after the number (e.g. +, %, k, yrs, ★).`})}),_jsx(ResponseField,{name:`description`,type:`?string`,id:`param-description`,children:_jsx(_components.p,{children:`Optional small text under the label.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-24`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`statsBg`,type:`Enums\\\\StatsBg|string|null`,id:`param-stats-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`statsBgCustom`,type:`?string`,id:`param-stats-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`statsBgLight`,type:`Enums\\\\StatsBgLight|string|null`,id:`param-stats-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`statsBgLightCustom`,type:`?string`,id:`param-stats-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`statsFontOverrides`,type:`Collection\u003cint, StatsWidgetStatsFontOverridesItem>|null`,id:`param-stats-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`StatsWidgetStatsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`StatsWidgetStatsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidgetStatsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-27`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-5`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-5`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-5`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-5`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-5`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-5`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-5`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, StatsWidgetStatsFontOverridesItemUploadsItem>|null`,id:`param-uploads-5`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`StatsWidgetStatsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`StatsWidgetStatsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidgetStatsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-28`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-5`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-5`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-25`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-5`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-26`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`statsCtaLabel`,type:`?string`,id:`param-stats-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`statsCtaUrl`,type:`?string`,id:`param-stats-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`statsCtaNewTab`,type:`?bool`,id:`param-stats-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`statsCtaVariant`,type:`Enums\\\\StatsCtaVariant|string|null`,id:`param-stats-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaSize`,type:`Enums\\\\StatsCtaSize|string|null`,id:`param-stats-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaRadius`,type:`Enums\\\\StatsCtaRadius|string|null`,id:`param-stats-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaColor`,type:`?string`,id:`param-stats-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`statsCtaColorLight`,type:`?string`,id:`param-stats-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`statsCtaTextColor`,type:`?string`,id:`param-stats-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`statsCtaTextColorLight`,type:`?string`,id:`param-stats-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`statsCtaHoverColor`,type:`?string`,id:`param-stats-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`statsCtaHoverColorLight`,type:`?string`,id:`param-stats-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`statsCtaStyle`,type:`Enums\\\\StatsCtaStyle|string|null`,id:`param-stats-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaShadowColor`,type:`?string`,id:`param-stats-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`statsCtaShadowColorLight`,type:`?string`,id:`param-stats-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`statsCtaAnimation`,type:`Enums\\\\StatsCtaAnimation|string|null`,id:`param-stats-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaIcon`,type:`?string`,id:`param-stats-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`statsCtaIconFamily`,type:`Enums\\\\StatsCtaIconFamily|string|null`,id:`param-stats-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaIconPosition`,type:`Enums\\\\StatsCtaIconPosition|string|null`,id:`param-stats-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaIconNudge`,type:`?bool`,id:`param-stats-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-8`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-27`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`LogosWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`logos`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\LogosWidgetType|string`,required:true,id:`param-type-11`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`logos`}),`. One of `,_jsx(_components.code,{children:`logos`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-29`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-15`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`logosEyebrowEnabled`,type:`?bool`,id:`param-logos-eyebrow-enabled`,children:_jsx(_components.p,{children:`A small label above the heading (e.g. “Trusted by”).`})}),_jsx(ResponseField,{name:`logosEyebrow`,type:`?string`,id:`param-logos-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow.`})}),_jsx(ResponseField,{name:`logosEyebrowColor`,type:`?string`,id:`param-logos-eyebrow-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`logosEyebrowColorLight`,type:`?string`,id:`param-logos-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`logosEyebrowWeight`,type:`Enums\\\\LogosEyebrowWeight|string|null`,id:`param-logos-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`logosEyebrowSize`,type:`Enums\\\\LogosEyebrowSize|string|null`,id:`param-logos-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`logosHeading`,type:`?string`,id:`param-logos-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the logos.`})}),_jsx(ResponseField,{name:`logosHeadingColor`,type:`?string`,id:`param-logos-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`logosHeadingColorLight`,type:`?string`,id:`param-logos-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`logosHeadingWeight`,type:`Enums\\\\LogosHeadingWeight|string|null`,id:`param-logos-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`logosIntro`,type:`?string`,id:`param-logos-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`logosIntroColor`,type:`?string`,id:`param-logos-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`logosIntroColorLight`,type:`?string`,id:`param-logos-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`logosIntroWeight`,type:`Enums\\\\LogosIntroWeight|string|null`,id:`param-logos-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`logosDisplay`,type:`Enums\\\\LogosDisplay|string|null`,id:`param-logos-display`,children:_jsxs(_components.p,{children:[`A slow scrolling ribbon (marquee) or a calm static grid. One of `,_jsx(_components.code,{children:`marquee`}),`, `,_jsx(_components.code,{children:`grid`}),`.`]})}),_jsx(ResponseField,{name:`logosSpeed`,type:`Enums\\\\LogosSpeed|string|null`,id:`param-logos-speed`,children:_jsxs(_components.p,{children:[`Marquee speed. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`logosDirection`,type:`Enums\\\\LogosDirection|string|null`,id:`param-logos-direction`,children:_jsxs(_components.p,{children:[`Marquee direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`logosMotionPause`,type:`?bool`,id:`param-logos-motion-pause`,children:_jsx(_components.p,{children:`Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.`})}),_jsx(ResponseField,{name:`logosColumns`,type:`Enums\\\\LogosColumns|string|null`,id:`param-logos-columns`,children:_jsxs(_components.p,{children:[`Auto fits as many as comfortably fit and works for any number of logos. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`.`]})}),_jsx(ResponseField,{name:`logosGap`,type:`Enums\\\\LogosGap|string|null`,id:`param-logos-gap`,children:_jsxs(_components.p,{children:[`Gap between logos. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`logosSize`,type:`Enums\\\\LogosSize|string|null`,id:`param-logos-size`,children:_jsxs(_components.p,{children:[`The height each logo is scaled to (width follows the logo’s aspect ratio). One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`logosAlign`,type:`Enums\\\\LogosAlign|string|null`,id:`param-logos-align`,children:_jsxs(_components.p,{children:[`Aligns the eyebrow / heading / intro (and the grid when there are few logos). One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`logosTile`,type:`?bool`,id:`param-logos-tile`,children:_jsx(_components.p,{children:`Sets every logo on a raised, bordered card. Off = logos sit straight on the background.`})}),_jsx(ResponseField,{name:`logosGrayscale`,type:`?bool`,id:`param-logos-grayscale`,children:_jsx(_components.p,{children:`Mutes the logos to grayscale and dims them, returning to full color on hover — the classic logo-wall look.`})}),_jsxs(ResponseField,{name:`logos`,type:`Collection\u003cint, LogosWidgetLogosItem>|null`,id:`param-logos`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`LogosWidgetLogosItem`}),`. Logos.`]}),_jsxs(Expandable,{title:`LogosWidgetLogosItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidgetLogosItem)`,children:[_jsx(ResponseField,{name:`image`,type:`Collection\u003cint, array\u003cstring, mixed>>`,required:true,id:`param-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Pick a logo from the Images library. A transparent PNG or an SVG works best. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`name`,type:`string`,required:true,id:`param-name`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Company / partner / certification name — used as the image alt text and the link title.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-30`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`linkUrl`,type:`?string`,id:`param-link-url`,children:_jsx(_components.p,{children:`Make this logo a link, e.g. to the partner’s site. Opens in a new tab for external URLs.`})}),_jsx(ResponseField,{name:`invertDark`,type:`?bool`,id:`param-invert-dark`,children:_jsx(_components.p,{children:`For dark / black logos that would vanish on the dark theme — flips them to light. Leave off for full-color or white logos.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-28`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`logosBg`,type:`Enums\\\\LogosBg|string|null`,id:`param-logos-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`logosBgCustom`,type:`?string`,id:`param-logos-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`logosBgLight`,type:`Enums\\\\LogosBgLight|string|null`,id:`param-logos-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`logosBgLightCustom`,type:`?string`,id:`param-logos-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`logosFontOverrides`,type:`Collection\u003cint, LogosWidgetLogosFontOverridesItem>|null`,id:`param-logos-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`LogosWidgetLogosFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`LogosWidgetLogosFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidgetLogosFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-31`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-6`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-6`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-6`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-6`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-6`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-6`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-6`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, LogosWidgetLogosFontOverridesItemUploadsItem>|null`,id:`param-uploads-6`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`LogosWidgetLogosFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`LogosWidgetLogosFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidgetLogosFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-6`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-32`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-6`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-6`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-29`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-6`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-30`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`logosCtaLabel`,type:`?string`,id:`param-logos-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`logosCtaUrl`,type:`?string`,id:`param-logos-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`logosCtaNewTab`,type:`?bool`,id:`param-logos-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`logosCtaVariant`,type:`Enums\\\\LogosCtaVariant|string|null`,id:`param-logos-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaSize`,type:`Enums\\\\LogosCtaSize|string|null`,id:`param-logos-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaRadius`,type:`Enums\\\\LogosCtaRadius|string|null`,id:`param-logos-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaColor`,type:`?string`,id:`param-logos-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`logosCtaColorLight`,type:`?string`,id:`param-logos-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`logosCtaTextColor`,type:`?string`,id:`param-logos-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`logosCtaTextColorLight`,type:`?string`,id:`param-logos-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`logosCtaHoverColor`,type:`?string`,id:`param-logos-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`logosCtaHoverColorLight`,type:`?string`,id:`param-logos-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`logosCtaStyle`,type:`Enums\\\\LogosCtaStyle|string|null`,id:`param-logos-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaShadowColor`,type:`?string`,id:`param-logos-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`logosCtaShadowColorLight`,type:`?string`,id:`param-logos-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`logosCtaAnimation`,type:`Enums\\\\LogosCtaAnimation|string|null`,id:`param-logos-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaIcon`,type:`?string`,id:`param-logos-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`logosCtaIconFamily`,type:`Enums\\\\LogosCtaIconFamily|string|null`,id:`param-logos-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaIconPosition`,type:`Enums\\\\LogosCtaIconPosition|string|null`,id:`param-logos-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaIconNudge`,type:`?bool`,id:`param-logos-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-9`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-31`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`StepsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`steps`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\StepsWidgetType|string`,required:true,id:`param-type-12`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`steps`}),`. One of `,_jsx(_components.code,{children:`steps`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-33`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-16`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`stepsEyebrowEnabled`,type:`?bool`,id:`param-steps-eyebrow-enabled`,children:_jsx(_components.p,{children:`A small label above the heading (e.g. “How it works”).`})}),_jsx(ResponseField,{name:`stepsEyebrow`,type:`?string`,id:`param-steps-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow.`})}),_jsx(ResponseField,{name:`stepsEyebrowColor`,type:`?string`,id:`param-steps-eyebrow-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`stepsEyebrowColorLight`,type:`?string`,id:`param-steps-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`stepsEyebrowWeight`,type:`Enums\\\\StepsEyebrowWeight|string|null`,id:`param-steps-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`stepsEyebrowSize`,type:`Enums\\\\StepsEyebrowSize|string|null`,id:`param-steps-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`stepsHeading`,type:`?string`,id:`param-steps-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the steps.`})}),_jsx(ResponseField,{name:`stepsHeadingColor`,type:`?string`,id:`param-steps-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`stepsHeadingColorLight`,type:`?string`,id:`param-steps-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`stepsHeadingWeight`,type:`Enums\\\\StepsHeadingWeight|string|null`,id:`param-steps-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`stepsHeadingSize`,type:`Enums\\\\StepsHeadingSize|string|null`,id:`param-steps-heading-size`,children:_jsxs(_components.p,{children:[`Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`stepsIntro`,type:`?string`,id:`param-steps-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`stepsIntroColor`,type:`?string`,id:`param-steps-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`stepsIntroColorLight`,type:`?string`,id:`param-steps-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`stepsIntroWeight`,type:`Enums\\\\StepsIntroWeight|string|null`,id:`param-steps-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`stepsIntroSize`,type:`Enums\\\\StepsIntroSize|string|null`,id:`param-steps-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`stepsLayout`,type:`Enums\\\\StepsLayout|string|null`,id:`param-steps-layout`,children:_jsxs(_components.p,{children:[`Horizontal lays the steps across a row (marker on top); Vertical stacks them as a classic timeline (marker on the left). One of `,_jsx(_components.code,{children:`horizontal`}),`, `,_jsx(_components.code,{children:`vertical`}),`.`]})}),_jsx(ResponseField,{name:`stepsColumns`,type:`Enums\\\\StepsColumns|string|null`,id:`param-steps-columns`,children:_jsxs(_components.p,{children:[`Horizontal only. Auto fits as many as comfortably fit and works for any number of steps. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`stepsGap`,type:`Enums\\\\StepsGap|string|null`,id:`param-steps-gap`,children:_jsxs(_components.p,{children:[`Gap between steps. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`stepsAlign`,type:`Enums\\\\StepsAlign|string|null`,id:`param-steps-align`,children:_jsxs(_components.p,{children:[`Horizontal only — aligns the section header and each step’s text. (Vertical is always left-aligned beside its marker.) One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`stepsConnector`,type:`?bool`,id:`param-steps-connector`,children:_jsx(_components.p,{children:`A line linking the step markers into a timeline (down the markers when vertical, across them when horizontal).`})}),_jsx(ResponseField,{name:`stepsCardStyle`,type:`Enums\\\\StepsCardStyle|string|null`,id:`param-steps-card-style`,children:_jsxs(_components.p,{children:[`Plain keeps the connector-linked timeline (just marker + text, no card). Every other style boxes each step — Raised is a quiet lit card, Luxe a frosted glass panel, Outline a plaque frame, Spine adds a color rail, Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`stepsCardStyleRadius`,type:`Enums\\\\StepsCardStyleRadius|string|null`,id:`param-steps-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`stepsCardStyleAccentColor`,type:`?string`,id:`param-steps-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`stepsCardStyleAccentColorLight`,type:`?string`,id:`param-steps-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`stepsCardStyleForgeScope`,type:`Enums\\\\StepsCardStyleForgeScope|string|null`,id:`param-steps-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`stepsCardStyleForgeWeight`,type:`Enums\\\\StepsCardStyleForgeWeight|string|null`,id:`param-steps-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`stepsCardHover`,type:`Enums\\\\StepsCardHover|string|null`,id:`param-steps-card-hover`,children:_jsxs(_components.p,{children:[`What a boxed step does on hover (applies when Step style is not Plain). Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`stepsMarker`,type:`Enums\\\\StepsMarker|string|null`,id:`param-steps-marker`,children:_jsxs(_components.p,{children:[`Number auto-counts 1, 2, 3…; Icon shows each step’s icon (falling back to the number when a step has none); None hides the marker badge. One of `,_jsx(_components.code,{children:`number`}),`, `,_jsx(_components.code,{children:`icon`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`stepsMarkerStyle`,type:`Enums\\\\StepsMarkerStyle|string|null`,id:`param-steps-marker-style`,children:_jsxs(_components.p,{children:[`Soft is a tinted accent badge; Filled is a solid accent badge; Outline is a bordered badge. One of `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`filled`}),`, `,_jsx(_components.code,{children:`outline`}),`.`]})}),_jsx(ResponseField,{name:`stepsMarkerShape`,type:`Enums\\\\StepsMarkerShape|string|null`,id:`param-steps-marker-shape`,children:_jsxs(_components.p,{children:[`Marker shape. One of `,_jsx(_components.code,{children:`circle`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`stepsMarkerSize`,type:`Enums\\\\StepsMarkerSize|string|null`,id:`param-steps-marker-size`,children:_jsxs(_components.p,{children:[`Marker size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`stepsAccentColor`,type:`?string`,id:`param-steps-accent-color`,children:_jsx(_components.p,{children:`Color for the marker badge and the connector line. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`stepsAccentColorLight`,type:`?string`,id:`param-steps-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme accent.`})}),_jsx(ResponseField,{name:`stepsTitleSize`,type:`Enums\\\\StepsTitleSize|string|null`,id:`param-steps-title-size`,children:_jsxs(_components.p,{children:[`Title size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`stepsTitleWeight`,type:`Enums\\\\StepsTitleWeight|string|null`,id:`param-steps-title-weight`,children:_jsxs(_components.p,{children:[`Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`stepsTitleColor`,type:`?string`,id:`param-steps-title-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`stepsTitleColorLight`,type:`?string`,id:`param-steps-title-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`stepsBodySize`,type:`Enums\\\\StepsBodySize|string|null`,id:`param-steps-body-size`,children:_jsxs(_components.p,{children:[`Body size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`stepsBodyWeight`,type:`Enums\\\\StepsBodyWeight|string|null`,id:`param-steps-body-weight`,children:_jsxs(_components.p,{children:[`Body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`stepsBodyColor`,type:`?string`,id:`param-steps-body-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`stepsBodyColorLight`,type:`?string`,id:`param-steps-body-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsxs(ResponseField,{name:`stepsItems`,type:`Collection\u003cint, StepsWidgetStepsItemsItem>|null`,id:`param-steps-items`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`StepsWidgetStepsItemsItem`}),`. Each item is one step in the process. They render in this order; the number marker counts automatically.`]}),_jsxs(Expandable,{title:`StepsWidgetStepsItemsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidgetStepsItemsItem)`,children:[_jsx(ResponseField,{name:`title`,type:`string`,required:true,id:`param-title-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Title.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-34`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-2`,children:_jsx(_components.p,{children:`Optional Font Awesome icon for this step (e.g. calendar-check, circle-check, gear). Shown in the marker when the section marker is set to “Icon”; otherwise the step is numbered.`})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-2`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-2`,children:_jsx(_components.p,{children:`Optional — leave empty to use the design’s own color rhythm.`})}),_jsx(ResponseField,{name:`number`,type:`?string`,id:`param-number`,children:_jsx(_components.p,{children:`Overrides the auto number for this step’s marker, e.g. “01” or “A”. Leave empty to auto-count.`})}),_jsx(ResponseField,{name:`body`,type:`?string`,id:`param-body`,children:_jsx(_components.p,{children:`Optional description under the title.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-32`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`stepsBg`,type:`Enums\\\\StepsBg|string|null`,id:`param-steps-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`stepsBgCustom`,type:`?string`,id:`param-steps-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`stepsBgLight`,type:`Enums\\\\StepsBgLight|string|null`,id:`param-steps-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`stepsBgLightCustom`,type:`?string`,id:`param-steps-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`stepsFontOverrides`,type:`Collection\u003cint, StepsWidgetStepsFontOverridesItem>|null`,id:`param-steps-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`StepsWidgetStepsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`StepsWidgetStepsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidgetStepsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-35`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-7`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-7`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-7`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-7`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-7`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-7`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-7`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, StepsWidgetStepsFontOverridesItemUploadsItem>|null`,id:`param-uploads-7`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`StepsWidgetStepsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`StepsWidgetStepsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidgetStepsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-7`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-36`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-7`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-7`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-33`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-7`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-34`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`stepsCtaLabel`,type:`?string`,id:`param-steps-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`stepsCtaUrl`,type:`?string`,id:`param-steps-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`stepsCtaNewTab`,type:`?bool`,id:`param-steps-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`stepsCtaVariant`,type:`Enums\\\\StepsCtaVariant|string|null`,id:`param-steps-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaSize`,type:`Enums\\\\StepsCtaSize|string|null`,id:`param-steps-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaRadius`,type:`Enums\\\\StepsCtaRadius|string|null`,id:`param-steps-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaColor`,type:`?string`,id:`param-steps-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`stepsCtaColorLight`,type:`?string`,id:`param-steps-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`stepsCtaTextColor`,type:`?string`,id:`param-steps-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`stepsCtaTextColorLight`,type:`?string`,id:`param-steps-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`stepsCtaHoverColor`,type:`?string`,id:`param-steps-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`stepsCtaHoverColorLight`,type:`?string`,id:`param-steps-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`stepsCtaStyle`,type:`Enums\\\\StepsCtaStyle|string|null`,id:`param-steps-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaShadowColor`,type:`?string`,id:`param-steps-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`stepsCtaShadowColorLight`,type:`?string`,id:`param-steps-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`stepsCtaAnimation`,type:`Enums\\\\StepsCtaAnimation|string|null`,id:`param-steps-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaIcon`,type:`?string`,id:`param-steps-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`stepsCtaIconFamily`,type:`Enums\\\\StepsCtaIconFamily|string|null`,id:`param-steps-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaIconPosition`,type:`Enums\\\\StepsCtaIconPosition|string|null`,id:`param-steps-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaIconNudge`,type:`?bool`,id:`param-steps-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-10`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-35`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`MediaTextWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`media-text`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\MediaTextWidgetType|string`,required:true,id:`param-type-13`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`media-text`}),`. One of `,_jsx(_components.code,{children:`media-text`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-37`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-17`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowEnabled`,type:`?bool`,id:`param-media-text-eyebrow-enabled`,children:_jsx(_components.p,{children:`A small label above the section heading (e.g. “Why us”).`})}),_jsx(ResponseField,{name:`mediaTextEyebrow`,type:`?string`,id:`param-media-text-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow.`})}),_jsx(ResponseField,{name:`mediaTextEyebrowColor`,type:`?string`,id:`param-media-text-eyebrow-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`mediaTextEyebrowColorLight`,type:`?string`,id:`param-media-text-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`mediaTextEyebrowWeight`,type:`Enums\\\\MediaTextEyebrowWeight|string|null`,id:`param-media-text-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowSize`,type:`Enums\\\\MediaTextEyebrowSize|string|null`,id:`param-media-text-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextHeading`,type:`?string`,id:`param-media-text-heading`,children:_jsx(_components.p,{children:`Optional section heading above the blocks. Leave empty to show just the blocks.`})}),_jsx(ResponseField,{name:`mediaTextHeadingColor`,type:`?string`,id:`param-media-text-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`mediaTextHeadingColorLight`,type:`?string`,id:`param-media-text-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`mediaTextHeadingWeight`,type:`Enums\\\\MediaTextHeadingWeight|string|null`,id:`param-media-text-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextHeadingSize`,type:`Enums\\\\MediaTextHeadingSize|string|null`,id:`param-media-text-heading-size`,children:_jsxs(_components.p,{children:[`Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextIntro`,type:`?string`,id:`param-media-text-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`mediaTextIntroColor`,type:`?string`,id:`param-media-text-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`mediaTextIntroColorLight`,type:`?string`,id:`param-media-text-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`mediaTextIntroWeight`,type:`Enums\\\\MediaTextIntroWeight|string|null`,id:`param-media-text-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextIntroSize`,type:`Enums\\\\MediaTextIntroSize|string|null`,id:`param-media-text-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextAlign`,type:`Enums\\\\MediaTextAlign|string|null`,id:`param-media-text-align`,children:_jsxs(_components.p,{children:[`Aligns the section header and the text inside each block. (Side-by-side rows usually read best left-aligned.) One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextRatio`,type:`Enums\\\\MediaTextRatio|string|null`,id:`param-media-text-ratio`,children:_jsxs(_components.p,{children:[`For media-left / media-right rows: how the two columns share the width. One of `,_jsx(_components.code,{children:`balanced`}),`, `,_jsx(_components.code,{children:`media`}),`, `,_jsx(_components.code,{children:`text`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextVAlign`,type:`Enums\\\\MediaTextVAlign|string|null`,id:`param-media-text-v-align`,children:_jsxs(_components.p,{children:[`For media-left / media-right rows: how the text lines up against the media. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`top`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextMediaRatio`,type:`Enums\\\\MediaTextMediaRatio|string|null`,id:`param-media-text-media-ratio`,children:_jsxs(_components.p,{children:[`Aspect ratio of the media frame. Auto keeps an image at its natural shape (videos and embeds always use a ratio). One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`landscape`}),`, `,_jsx(_components.code,{children:`standard`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextMediaRadius`,type:`Enums\\\\MediaTextMediaRadius|string|null`,id:`param-media-text-media-radius`,children:_jsxs(_components.p,{children:[`Media corners. One of `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextGap`,type:`Enums\\\\MediaTextGap|string|null`,id:`param-media-text-gap`,children:_jsxs(_components.p,{children:[`Gap between blocks. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextDividers`,type:`?bool`,id:`param-media-text-dividers`,children:_jsx(_components.p,{children:`A hairline rule between blocks.`})}),_jsx(ResponseField,{name:`mediaTextBlockEyebrowColor`,type:`?string`,id:`param-media-text-block-eyebrow-color`,children:_jsx(_components.p,{children:`Each block’s eyebrow color. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`mediaTextBlockEyebrowColorLight`,type:`?string`,id:`param-media-text-block-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`mediaTextBlockEyebrowWeight`,type:`Enums\\\\MediaTextBlockEyebrowWeight|string|null`,id:`param-media-text-block-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Block eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingColor`,type:`?string`,id:`param-media-text-block-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingColorLight`,type:`?string`,id:`param-media-text-block-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingWeight`,type:`Enums\\\\MediaTextBlockHeadingWeight|string|null`,id:`param-media-text-block-heading-weight`,children:_jsxs(_components.p,{children:[`Block heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingSize`,type:`Enums\\\\MediaTextBlockHeadingSize|string|null`,id:`param-media-text-block-heading-size`,children:_jsxs(_components.p,{children:[`Block heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextBodyColor`,type:`?string`,id:`param-media-text-body-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`mediaTextBodyColorLight`,type:`?string`,id:`param-media-text-body-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`mediaTextBodyWeight`,type:`Enums\\\\MediaTextBodyWeight|string|null`,id:`param-media-text-body-weight`,children:_jsxs(_components.p,{children:[`Block body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextBodySize`,type:`Enums\\\\MediaTextBodySize|string|null`,id:`param-media-text-body-size`,children:_jsxs(_components.p,{children:[`Block body size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsxs(ResponseField,{name:`mediaTextBlocks`,type:`Collection\u003cint, MediaTextWidgetMediaTextBlocksItem>|null`,id:`param-media-text-blocks`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`MediaTextWidgetMediaTextBlocksItem`}),`. Each block is one media + text row. They render top to bottom in this order; alternate “Media left” / “Media right” for a classic zig-zag.`]}),_jsxs(Expandable,{title:`MediaTextWidgetMediaTextBlocksItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidgetMediaTextBlocksItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-38`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`layout`,type:`Enums\\\\Layout|string|null`,id:`param-layout`,children:_jsxs(_components.p,{children:[`Media left / right place the media beside the text; Stacked puts media above the text; Full-bleed runs the media edge-to-edge with the text below. One of `,_jsx(_components.code,{children:`media-left`}),`, `,_jsx(_components.code,{children:`media-right`}),`, `,_jsx(_components.code,{children:`stacked`}),`, `,_jsx(_components.code,{children:`full`}),`.`]})}),_jsx(ResponseField,{name:`mediaType`,type:`Enums\\\\MediaTextWidgetMediaTextBlocksItemMediaType|string|null`,id:`param-media-type`,children:_jsxs(_components.p,{children:[`Pick where the media comes from. “None” makes this a text-only block. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`, `,_jsx(_components.code,{children:`embed`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`image`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-image-2`,children:_jsxs(_components.p,{children:[`Pick an image from the Images library. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`imageAlt`,type:`?string`,id:`param-image-alt`,children:_jsx(_components.p,{children:`Describe the image for screen readers and SEO. Leave empty to use the library image’s own alt text. Set to a single space for a purely decorative image.`})}),_jsx(ResponseField,{name:`video`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-video-1`,children:_jsxs(_components.p,{children:[`Pick a clip from the Videos library (⌘K → Videos). The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`videoAutoplay`,type:`?bool`,id:`param-video-autoplay`,children:_jsx(_components.p,{children:`Play automatically as a muted, looping background clip (a pause button is shown, and reduced-motion visitors get the poster image). Off = a normal video with play controls.`})}),_jsx(ResponseField,{name:`embedUrl`,type:`?string`,id:`param-embed-url`,children:_jsxs(_components.p,{children:[`Paste a YouTube or Vimeo link, e.g. `,_jsx(_components.a,{href:`https://youtu.be/%E2%80%A6`,children:`https://youtu.be/…`}),` or `,_jsx(_components.a,{href:`https://vimeo.com/%E2%80%A6`,children:`https://vimeo.com/…`}),`.`]})}),_jsx(ResponseField,{name:`eyebrow`,type:`?string`,id:`param-eyebrow-1`,children:_jsx(_components.p,{children:`A small label above the block heading.`})}),_jsx(ResponseField,{name:`heading`,type:`?string`,id:`param-heading`,children:_jsx(_components.p,{children:`The block’s headline.`})}),_jsx(ResponseField,{name:`body`,type:`?string`,id:`param-body-1`,children:_jsx(_components.p,{children:`A paragraph or two. Leave a blank line between paragraphs.`})}),_jsx(ResponseField,{name:`ctaLabel`,type:`?string`,id:`param-cta-label`,children:_jsx(_components.p,{children:`This block’s button text. Leave empty (with no link) to hide the button.`})}),_jsx(ResponseField,{name:`ctaUrl`,type:`?string`,id:`param-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/about-us) or full URL.`})}),_jsx(ResponseField,{name:`ctaNewTab`,type:`?bool`,id:`param-cta-new-tab`,children:_jsx(_components.p,{children:`Open button in new tab.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-36`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`mediaTextBg`,type:`Enums\\\\MediaTextBg|string|null`,id:`param-media-text-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextBgCustom`,type:`?string`,id:`param-media-text-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`mediaTextBgLight`,type:`Enums\\\\MediaTextBgLight|string|null`,id:`param-media-text-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextBgLightCustom`,type:`?string`,id:`param-media-text-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`mediaTextFontOverrides`,type:`Collection\u003cint, MediaTextWidgetMediaTextFontOverridesItem>|null`,id:`param-media-text-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`MediaTextWidgetMediaTextFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`MediaTextWidgetMediaTextFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidgetMediaTextFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-39`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-8`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-8`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-8`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-8`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-8`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-8`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-8`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, MediaTextWidgetMediaTextFontOverridesItemUploadsItem>|null`,id:`param-uploads-8`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`MediaTextWidgetMediaTextFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`MediaTextWidgetMediaTextFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidgetMediaTextFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-8`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-40`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-8`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-8`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-37`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-8`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-38`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`mediaTextCtaVariant`,type:`Enums\\\\MediaTextCtaVariant|string|null`,id:`param-media-text-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaSize`,type:`Enums\\\\MediaTextCtaSize|string|null`,id:`param-media-text-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaRadius`,type:`Enums\\\\MediaTextCtaRadius|string|null`,id:`param-media-text-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaColor`,type:`?string`,id:`param-media-text-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`mediaTextCtaColorLight`,type:`?string`,id:`param-media-text-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`mediaTextCtaTextColor`,type:`?string`,id:`param-media-text-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`mediaTextCtaTextColorLight`,type:`?string`,id:`param-media-text-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`mediaTextCtaHoverColor`,type:`?string`,id:`param-media-text-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`mediaTextCtaHoverColorLight`,type:`?string`,id:`param-media-text-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`mediaTextCtaStyle`,type:`Enums\\\\MediaTextCtaStyle|string|null`,id:`param-media-text-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaShadowColor`,type:`?string`,id:`param-media-text-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`mediaTextCtaShadowColorLight`,type:`?string`,id:`param-media-text-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`mediaTextCtaAnimation`,type:`Enums\\\\MediaTextCtaAnimation|string|null`,id:`param-media-text-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIcon`,type:`?string`,id:`param-media-text-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`mediaTextCtaIconFamily`,type:`Enums\\\\MediaTextCtaIconFamily|string|null`,id:`param-media-text-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIconPosition`,type:`Enums\\\\MediaTextCtaIconPosition|string|null`,id:`param-media-text-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIconNudge`,type:`?bool`,id:`param-media-text-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-11`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-39`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`DeviceMockWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\DeviceMockWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`device-mock`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\DeviceMockWidgetType|string`,required:true,id:`param-type-14`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`device-mock`}),`. One of `,_jsx(_components.code,{children:`device-mock`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-41`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-18`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockArrangement`,type:`Enums\\\\DeviceMockArrangement|string|null`,id:`param-device-mock-arrangement`,children:_jsxs(_components.p,{children:[`Which devices to show. Duo overlaps a phone on the corner of a desktop browser; Trio adds a TV behind them (on narrow screens Trio drops the TV and shows as a Duo). Each device used gets its own screen tab. One of `,_jsx(_components.code,{children:`duo`}),`, `,_jsx(_components.code,{children:`trio`}),`, `,_jsx(_components.code,{children:`desktop`}),`, `,_jsx(_components.code,{children:`phone`}),`, `,_jsx(_components.code,{children:`tv`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockTextPlacement`,type:`Enums\\\\DeviceMockTextPlacement|string|null`,id:`param-device-mock-text-placement`,children:_jsxs(_components.p,{children:[`Where the eyebrow / heading / intro / button sit. Left or right puts the text in a column beside the devices (stacked above them on narrow screens); None shows the devices only. One of `,_jsx(_components.code,{children:`above`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockSize`,type:`Enums\\\\DeviceMockSize|string|null`,id:`param-device-mock-size`,children:_jsxs(_components.p,{children:[`How large the devices render within the section. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockBrowserRatio`,type:`Enums\\\\DeviceMockBrowserRatio|string|null`,id:`param-device-mock-browser-ratio`,children:_jsxs(_components.p,{children:[`The browser window’s content area. Match your desktop captures. One of `,_jsx(_components.code,{children:`16:10`}),`, `,_jsx(_components.code,{children:`16:9`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockBrowserUrl`,type:`?string`,id:`param-device-mock-browser-url`,children:_jsx(_components.p,{children:`The address shown in the browser toolbar — decoration only, not a link.`})}),_jsx(ResponseField,{name:`deviceMockPhoneStatusBar`,type:`?bool`,id:`param-device-mock-phone-status-bar`,children:_jsx(_components.p,{children:`Adds a time / signal / battery bar across the top of the phone screen. Leave off for native phone screenshots — they already include the real status bar.`})}),_jsx(ResponseField,{name:`deviceMockPhoneTime`,type:`?string`,id:`param-device-mock-phone-time`,children:_jsx(_components.p,{children:`Status bar time.`})}),_jsx(ResponseField,{name:`deviceMockMotionPause`,type:`?bool`,id:`param-device-mock-motion-pause`,children:_jsx(_components.p,{children:`Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.`})}),_jsx(ResponseField,{name:`deviceMockEyebrowEnabled`,type:`?bool`,id:`param-device-mock-eyebrow-enabled`,children:_jsx(_components.p,{children:`A small label above the heading (e.g. “Product tour”).`})}),_jsx(ResponseField,{name:`deviceMockEyebrow`,type:`?string`,id:`param-device-mock-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`deviceMockEyebrowColor`,type:`?string`,id:`param-device-mock-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`deviceMockEyebrowColorLight`,type:`?string`,id:`param-device-mock-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`deviceMockEyebrowWeight`,type:`Enums\\\\DeviceMockEyebrowWeight|string|null`,id:`param-device-mock-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockEyebrowSize`,type:`Enums\\\\DeviceMockEyebrowSize|string|null`,id:`param-device-mock-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockHeading`,type:`?string`,id:`param-device-mock-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the devices.`})}),_jsx(ResponseField,{name:`deviceMockHeadingColor`,type:`?string`,id:`param-device-mock-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`deviceMockHeadingColorLight`,type:`?string`,id:`param-device-mock-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`deviceMockHeadingWeight`,type:`Enums\\\\DeviceMockHeadingWeight|string|null`,id:`param-device-mock-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockHeadingSize`,type:`Enums\\\\DeviceMockHeadingSize|string|null`,id:`param-device-mock-heading-size`,children:_jsxs(_components.p,{children:[`Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockIntro`,type:`?string`,id:`param-device-mock-intro`,children:_jsx(_components.p,{children:`Optional short paragraph under the heading.`})}),_jsx(ResponseField,{name:`deviceMockIntroColor`,type:`?string`,id:`param-device-mock-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`deviceMockIntroColorLight`,type:`?string`,id:`param-device-mock-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`deviceMockIntroWeight`,type:`Enums\\\\DeviceMockIntroWeight|string|null`,id:`param-device-mock-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockIntroSize`,type:`Enums\\\\DeviceMockIntroSize|string|null`,id:`param-device-mock-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCaption`,type:`?string`,id:`param-device-mock-caption`,children:_jsx(_components.p,{children:`A short line shown under the devices.`})}),_jsx(ResponseField,{name:`deviceMockTvMediaType`,type:`Enums\\\\DeviceMockTvMediaType|string|null`,id:`param-device-mock-tv-media-type`,children:_jsxs(_components.p,{children:[`A still screenshot, or a short looping screen recording. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockTvImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-tv-image`,children:_jsxs(_components.p,{children:[`Use a native-resolution 16:9 capture of the screen with NO device frame (the frame is drawn for you) — e.g. 1920 × 1080 or 3840 × 2160. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockTvImageAlt`,type:`?string`,id:`param-device-mock-tv-image-alt`,children:_jsx(_components.p,{children:`Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.`})}),_jsx(ResponseField,{name:`deviceMockTvVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-tv-video`,children:_jsxs(_components.p,{children:[`Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution 16:9 capture of the screen with NO device frame (the frame is drawn for you) — e.g. 1920 × 1080 or 3840 × 2160. The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockTvVideoAlt`,type:`?string`,id:`param-device-mock-tv-video-alt`,children:_jsx(_components.p,{children:`Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.`})}),_jsx(ResponseField,{name:`deviceMockTvFit`,type:`Enums\\\\DeviceMockTvFit|string|null`,id:`param-device-mock-tv-fit`,children:_jsxs(_components.p,{children:[`Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of `,_jsx(_components.code,{children:`cover`}),`, `,_jsx(_components.code,{children:`contain`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockTvAnchor`,type:`Enums\\\\DeviceMockTvAnchor|string|null`,id:`param-device-mock-tv-anchor`,children:_jsxs(_components.p,{children:[`Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`bottom`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopMediaType`,type:`Enums\\\\DeviceMockDesktopMediaType|string|null`,id:`param-device-mock-desktop-media-type`,children:_jsxs(_components.p,{children:[`A still screenshot, or a short looping screen recording. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-desktop-image`,children:_jsxs(_components.p,{children:[`Use a native-resolution capture of the page content only — no browser toolbar and no device frame (both are drawn for you). 16:10 (e.g. 2880 × 1800) or 16:9 (e.g. 2560 × 1440), matching the “Desktop screen shape” setting. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopImageAlt`,type:`?string`,id:`param-device-mock-desktop-image-alt`,children:_jsx(_components.p,{children:`Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.`})}),_jsx(ResponseField,{name:`deviceMockDesktopVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-desktop-video`,children:_jsxs(_components.p,{children:[`Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution capture of the page content only — no browser toolbar and no device frame (both are drawn for you). 16:10 (e.g. 2880 × 1800) or 16:9 (e.g. 2560 × 1440), matching the “Desktop screen shape” setting. The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopVideoAlt`,type:`?string`,id:`param-device-mock-desktop-video-alt`,children:_jsx(_components.p,{children:`Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.`})}),_jsx(ResponseField,{name:`deviceMockDesktopFit`,type:`Enums\\\\DeviceMockDesktopFit|string|null`,id:`param-device-mock-desktop-fit`,children:_jsxs(_components.p,{children:[`Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of `,_jsx(_components.code,{children:`cover`}),`, `,_jsx(_components.code,{children:`contain`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopAnchor`,type:`Enums\\\\DeviceMockDesktopAnchor|string|null`,id:`param-device-mock-desktop-anchor`,children:_jsxs(_components.p,{children:[`Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`bottom`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneMediaType`,type:`Enums\\\\DeviceMockPhoneMediaType|string|null`,id:`param-device-mock-phone-media-type`,children:_jsxs(_components.p,{children:[`A still screenshot, or a short looping screen recording. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-phone-image`,children:_jsxs(_components.p,{children:[`Use a native-resolution portrait screenshot with NO device frame (the frame is drawn for you) — e.g. 1179 × 2556 or 1290 × 2796 (about 9:19.5). The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneImageAlt`,type:`?string`,id:`param-device-mock-phone-image-alt`,children:_jsx(_components.p,{children:`Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.`})}),_jsx(ResponseField,{name:`deviceMockPhoneVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-phone-video`,children:_jsxs(_components.p,{children:[`Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution portrait screenshot with NO device frame (the frame is drawn for you) — e.g. 1179 × 2556 or 1290 × 2796 (about 9:19.5). The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneVideoAlt`,type:`?string`,id:`param-device-mock-phone-video-alt`,children:_jsx(_components.p,{children:`Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.`})}),_jsx(ResponseField,{name:`deviceMockPhoneFit`,type:`Enums\\\\DeviceMockPhoneFit|string|null`,id:`param-device-mock-phone-fit`,children:_jsxs(_components.p,{children:[`Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of `,_jsx(_components.code,{children:`cover`}),`, `,_jsx(_components.code,{children:`contain`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneAnchor`,type:`Enums\\\\DeviceMockPhoneAnchor|string|null`,id:`param-device-mock-phone-anchor`,children:_jsxs(_components.p,{children:[`Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`bottom`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockBg`,type:`Enums\\\\DeviceMockBg|string|null`,id:`param-device-mock-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockBgCustom`,type:`?string`,id:`param-device-mock-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`deviceMockBgLight`,type:`Enums\\\\DeviceMockBgLight|string|null`,id:`param-device-mock-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockBgLightCustom`,type:`?string`,id:`param-device-mock-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`deviceMockFontOverrides`,type:`Collection\u003cint, DeviceMockWidgetDeviceMockFontOverridesItem>|null`,id:`param-device-mock-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`DeviceMockWidgetDeviceMockFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`DeviceMockWidgetDeviceMockFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\DeviceMockWidgetDeviceMockFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-42`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-9`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-9`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-9`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-9`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-9`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-9`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-9`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem>|null`,id:`param-uploads-9`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-9`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-43`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-9`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-9`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-40`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-9`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-41`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`deviceMockCtaLabel`,type:`?string`,id:`param-device-mock-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`deviceMockCtaUrl`,type:`?string`,id:`param-device-mock-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`deviceMockCtaNewTab`,type:`?bool`,id:`param-device-mock-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`deviceMockCtaVariant`,type:`Enums\\\\DeviceMockCtaVariant|string|null`,id:`param-device-mock-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaSize`,type:`Enums\\\\DeviceMockCtaSize|string|null`,id:`param-device-mock-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaRadius`,type:`Enums\\\\DeviceMockCtaRadius|string|null`,id:`param-device-mock-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaColor`,type:`?string`,id:`param-device-mock-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`deviceMockCtaColorLight`,type:`?string`,id:`param-device-mock-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`deviceMockCtaTextColor`,type:`?string`,id:`param-device-mock-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`deviceMockCtaTextColorLight`,type:`?string`,id:`param-device-mock-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`deviceMockCtaHoverColor`,type:`?string`,id:`param-device-mock-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`deviceMockCtaHoverColorLight`,type:`?string`,id:`param-device-mock-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`deviceMockCtaStyle`,type:`Enums\\\\DeviceMockCtaStyle|string|null`,id:`param-device-mock-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaShadowColor`,type:`?string`,id:`param-device-mock-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`deviceMockCtaShadowColorLight`,type:`?string`,id:`param-device-mock-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`deviceMockCtaAnimation`,type:`Enums\\\\DeviceMockCtaAnimation|string|null`,id:`param-device-mock-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIcon`,type:`?string`,id:`param-device-mock-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`deviceMockCtaIconFamily`,type:`Enums\\\\DeviceMockCtaIconFamily|string|null`,id:`param-device-mock-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIconPosition`,type:`Enums\\\\DeviceMockCtaIconPosition|string|null`,id:`param-device-mock-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIconNudge`,type:`?bool`,id:`param-device-mock-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-12`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-42`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`TeamWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TeamWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`team`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\TeamWidgetType|string`,required:true,id:`param-type-15`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`team`}),`. One of `,_jsx(_components.code,{children:`team`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-44`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-19`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`teamEyebrow`,type:`?string`,id:`param-team-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`teamEyebrowColor`,type:`?string`,id:`param-team-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`teamEyebrowColorLight`,type:`?string`,id:`param-team-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`teamEyebrowWeight`,type:`Enums\\\\TeamEyebrowWeight|string|null`,id:`param-team-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`teamEyebrowSize`,type:`Enums\\\\TeamEyebrowSize|string|null`,id:`param-team-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamHeading`,type:`?string`,id:`param-team-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the team.`})}),_jsx(ResponseField,{name:`teamHeadingColor`,type:`?string`,id:`param-team-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`teamHeadingColorLight`,type:`?string`,id:`param-team-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamHeadingWeight`,type:`Enums\\\\TeamHeadingWeight|string|null`,id:`param-team-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`teamIntro`,type:`?string`,id:`param-team-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`teamIntroColor`,type:`?string`,id:`param-team-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`teamIntroColorLight`,type:`?string`,id:`param-team-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamIntroWeight`,type:`Enums\\\\TeamIntroWeight|string|null`,id:`param-team-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`teamIntroSize`,type:`Enums\\\\TeamIntroSize|string|null`,id:`param-team-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamAlign`,type:`Enums\\\\TeamAlign|string|null`,id:`param-team-align`,children:_jsxs(_components.p,{children:[`Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`teamFeaturedOnly`,type:`?bool`,id:`param-team-featured-only`,children:_jsx(_components.p,{children:`Show only members you have flagged “Featured” in the Team Members manager — e.g. a short leadership row on the home page.`})}),_jsx(ResponseField,{name:`teamCount`,type:`?int`,id:`param-team-count`,children:_jsx(_components.p,{children:`The most members to show, in the manager’s sort order. 1 to 50.`})}),_jsx(ResponseField,{name:`teamLayout`,type:`Enums\\\\TeamLayout|string|null`,id:`param-team-layout`,children:_jsxs(_components.p,{children:[`Grid: a tidy multi-row grid (the full team page). Carousel: a continuous auto-scrolling marquee (needs site animations enabled — falls back to the grid when they are off). Spotlight: featured members large on top, the rest in a smaller grid. List: wide rows with the full bio. Scatter: a playful arrangement with varied spacing so the cards float freely. One of `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`list`}),`, `,_jsx(_components.code,{children:`scatter`}),`.`]})}),_jsx(ResponseField,{name:`teamColumns`,type:`Enums\\\\TeamColumns|string|null`,id:`param-team-columns`,children:_jsxs(_components.p,{children:[`How many cards per row. Auto fits as many as comfortably fit (the Scatter layout composes on three columns when set to Auto). One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`teamSpotlightHeroes`,type:`Enums\\\\TeamSpotlightHeroes|string|null`,id:`param-team-spotlight-heroes`,children:_jsxs(_components.p,{children:[`How many members lead the section at full size. Members flagged “Featured” fill the spots first, in the manager’s sort order; any extra featured members join the rows below. One of `,_jsx(_components.code,{children:`1`}),`, `,_jsx(_components.code,{children:`2`}),`.`]})}),_jsx(ResponseField,{name:`teamSpotlightColumns`,type:`Enums\\\\TeamSpotlightColumns|string|null`,id:`param-team-spotlight-columns`,children:_jsxs(_components.p,{children:[`How many of the remaining members sit on each row under the featured spots. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`.`]})}),_jsx(ResponseField,{name:`teamSpeed`,type:`Enums\\\\TeamSpeed|string|null`,id:`param-team-speed`,children:_jsxs(_components.p,{children:[`How fast the carousel auto-scrolls. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`teamDirection`,type:`Enums\\\\TeamDirection|string|null`,id:`param-team-direction`,children:_jsxs(_components.p,{children:[`Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`teamScatter`,type:`Enums\\\\TeamScatter|string|null`,id:`param-team-scatter`,children:_jsxs(_components.p,{children:[`How far the cards drift from a tidy grid. Subtle keeps a loose grid; Wild pushes the offsets to their playful maximum. One of `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`playful`}),`, `,_jsx(_components.code,{children:`wild`}),`.`]})}),_jsx(ResponseField,{name:`teamGap`,type:`Enums\\\\TeamGap|string|null`,id:`param-team-gap`,children:_jsxs(_components.p,{children:[`Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`teamCardLayout`,type:`Enums\\\\TeamCardLayout|string|null`,id:`param-team-card-layout`,children:_jsxs(_components.p,{children:[`Portrait: the photo on top, name/role/bio below — the classic team card. Overlay: a full-bleed photo with a solid color panel over its lower edge holding the name and role. Profile: a horizontal bar — avatar left, name/role/tagline right. Roster: minimal — just the avatar, name and role. (The List section layout always uses its own wide row.) One of `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`overlay`}),`, `,_jsx(_components.code,{children:`profile`}),`, `,_jsx(_components.code,{children:`roster`}),`.`]})}),_jsx(ResponseField,{name:`teamPhotoAspect`,type:`Enums\\\\TeamPhotoAspect|string|null`,id:`param-team-photo-aspect`,children:_jsxs(_components.p,{children:[`The photo’s aspect ratio on the photo-led card layouts. One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`teamAvatarShape`,type:`Enums\\\\TeamAvatarShape|string|null`,id:`param-team-avatar-shape`,children:_jsxs(_components.p,{children:[`The photo’s outline. Squircle is a soft superellipse-style corner (approximated with heavy rounding). One of `,_jsx(_components.code,{children:`circle`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`squircle`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`teamAvatarSize`,type:`Enums\\\\TeamAvatarSize|string|null`,id:`param-team-avatar-size`,children:_jsxs(_components.p,{children:[`Avatar size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamAvatarBorder`,type:`Enums\\\\TeamAvatarBorder|string|null`,id:`param-team-avatar-border`,children:_jsxs(_components.p,{children:[`A ring around the photo in the avatar color. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`hairline`}),`, `,_jsx(_components.code,{children:`thin`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`teamAvatarTreatment`,type:`Enums\\\\TeamAvatarTreatment|string|null`,id:`param-team-avatar-treatment`,children:_jsxs(_components.p,{children:[`A flat color accent behind the photo. Panel offsets a solid block behind it; Halo draws a soft concentric disc. Both use the avatar color. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`panel`}),`, `,_jsx(_components.code,{children:`halo`}),`.`]})}),_jsx(ResponseField,{name:`teamAvatarColor`,type:`?string`,id:`param-team-avatar-color`,children:_jsx(_components.p,{children:`Colors the border and the backdrop treatment. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`teamAvatarColorLight`,type:`?string`,id:`param-team-avatar-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamShowRole`,type:`?bool`,id:`param-team-show-role`,children:_jsx(_components.p,{children:`Show role / title.`})}),_jsx(ResponseField,{name:`teamShowBio`,type:`?bool`,id:`param-team-show-bio`,children:_jsx(_components.p,{children:`Shown on the Portrait and Profile cards and the List rows. The Overlay and Roster layouts stay bio-free by design.`})}),_jsx(ResponseField,{name:`teamShowTagline`,type:`?bool`,id:`param-team-show-tagline`,children:_jsx(_components.p,{children:`The member’s one-liner, shown on the Profile and Roster cards and the List rows.`})}),_jsx(ResponseField,{name:`teamHoverPhoto`,type:`?bool`,id:`param-team-hover-photo`,children:_jsx(_components.p,{children:`Cross-fades to a member’s alternate photo on hover (set per member; does nothing for members without one, and stays off for visitors who prefer reduced motion).`})}),_jsx(ResponseField,{name:`teamCardStyle`,type:`Enums\\\\TeamCardStyle|string|null`,id:`param-team-card-style`,children:_jsxs(_components.p,{children:[`The card treatment. Outline (the default) is a plaque frame — a framed-portrait look; Raised is a quiet lit card; Luxe a frosted glass panel; Ticket/Bracket/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`teamCardStyleRadius`,type:`Enums\\\\TeamCardStyleRadius|string|null`,id:`param-team-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`teamCardStyleAccentColor`,type:`?string`,id:`param-team-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`teamCardStyleAccentColorLight`,type:`?string`,id:`param-team-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamCardHover`,type:`Enums\\\\TeamCardHover|string|null`,id:`param-team-card-hover`,children:_jsxs(_components.p,{children:[`What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`teamCardAlign`,type:`Enums\\\\TeamCardAlign|string|null`,id:`param-team-card-align`,children:_jsxs(_components.p,{children:[`How the name, role and bio align inside each card (the Profile card and List rows are always left-aligned beside the avatar). One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`teamAccentColor`,type:`?string`,id:`param-team-accent-color`,children:_jsx(_components.p,{children:`Optional — the lettered-avatar fallback background and the role color default. Leave empty to use the brand accent. (The icon row has its own colors on the Social links tab.)`})}),_jsx(ResponseField,{name:`teamAccentColorLight`,type:`?string`,id:`param-team-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamPanelColor`,type:`?string`,id:`param-team-panel-color`,children:_jsx(_components.p,{children:`The solid panel over the photo on the Overlay card. Leave empty to use the card color.`})}),_jsx(ResponseField,{name:`teamPanelColorLight`,type:`?string`,id:`param-team-panel-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamNameSize`,type:`Enums\\\\TeamNameSize|string|null`,id:`param-team-name-size`,children:_jsxs(_components.p,{children:[`Name size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamNameWeight`,type:`Enums\\\\TeamNameWeight|string|null`,id:`param-team-name-weight`,children:_jsxs(_components.p,{children:[`Name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`teamNameColor`,type:`?string`,id:`param-team-name-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`teamNameColorLight`,type:`?string`,id:`param-team-name-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamRoleSize`,type:`Enums\\\\TeamRoleSize|string|null`,id:`param-team-role-size`,children:_jsxs(_components.p,{children:[`Role size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamRoleWeight`,type:`Enums\\\\TeamRoleWeight|string|null`,id:`param-team-role-weight`,children:_jsxs(_components.p,{children:[`Role weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`teamRoleColor`,type:`?string`,id:`param-team-role-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the accent color.`})}),_jsx(ResponseField,{name:`teamRoleColorLight`,type:`?string`,id:`param-team-role-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamBioSize`,type:`Enums\\\\TeamBioSize|string|null`,id:`param-team-bio-size`,children:_jsxs(_components.p,{children:[`Bio size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamBioWeight`,type:`Enums\\\\TeamBioWeight|string|null`,id:`param-team-bio-weight`,children:_jsxs(_components.p,{children:[`Bio weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`teamBioColor`,type:`?string`,id:`param-team-bio-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`teamBioColorLight`,type:`?string`,id:`param-team-bio-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamBioClamp`,type:`Enums\\\\TeamBioClamp|string|null`,id:`param-team-bio-clamp`,children:_jsxs(_components.p,{children:[`Cap each bio at this many lines (the rest is truncated with an ellipsis) so one long bio can’t blow up the card height. The List layout always shows the full bio. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`6`}),`.`]})}),_jsx(ResponseField,{name:`teamTaglineColor`,type:`?string`,id:`param-team-tagline-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the faint text color.`})}),_jsx(ResponseField,{name:`teamTaglineColorLight`,type:`?string`,id:`param-team-tagline-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamShowSocials`,type:`?bool`,id:`param-team-show-socials`,children:_jsx(_components.p,{children:`The member’s social profile icons (set per member in the Team Members manager).`})}),_jsx(ResponseField,{name:`teamShowContact`,type:`?bool`,id:`param-team-show-contact`,children:_jsx(_components.p,{children:`Off by default — turns each member’s email and phone (when set) into icon links. Only enable when you want those details public.`})}),_jsx(ResponseField,{name:`teamSocialVariant`,type:`Enums\\\\TeamSocialVariant|string|null`,id:`param-team-social-variant`,children:_jsxs(_components.p,{children:[`Icon style. One of `,_jsx(_components.code,{children:`bare`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`solid`}),`.`]})}),_jsx(ResponseField,{name:`teamSocialSize`,type:`Enums\\\\TeamSocialSize|string|null`,id:`param-team-social-size`,children:_jsxs(_components.p,{children:[`Icon size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamSocialSpacing`,type:`Enums\\\\TeamSocialSpacing|string|null`,id:`param-team-social-spacing`,children:_jsxs(_components.p,{children:[`Gap between the icons. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`loose`}),`.`]})}),_jsx(ResponseField,{name:`teamSocialHover`,type:`Enums\\\\TeamSocialHover|string|null`,id:`param-team-social-hover`,children:_jsxs(_components.p,{children:[`Hover to each platform’s own brand color, or to the site accent (or a chosen hover color). One of `,_jsx(_components.code,{children:`brand`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`teamSocialColor`,type:`?string`,id:`param-team-social-color`,children:_jsx(_components.p,{children:`Resting icon color. Leave empty for the muted default.`})}),_jsx(ResponseField,{name:`teamSocialColorLight`,type:`?string`,id:`param-team-social-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the muted default.`})}),_jsx(ResponseField,{name:`teamSocialHoverColor`,type:`?string`,id:`param-team-social-hover-color`,children:_jsx(_components.p,{children:`Used when “Hover color” is Accent / custom. Leave empty for the site accent.`})}),_jsx(ResponseField,{name:`teamSocialHoverColorLight`,type:`?string`,id:`param-team-social-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`teamBg`,type:`Enums\\\\TeamBg|string|null`,id:`param-team-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`teamBgCustom`,type:`?string`,id:`param-team-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`teamBgLight`,type:`Enums\\\\TeamBgLight|string|null`,id:`param-team-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`teamBgLightCustom`,type:`?string`,id:`param-team-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`teamFontOverrides`,type:`Collection\u003cint, TeamWidgetTeamFontOverridesItem>|null`,id:`param-team-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`TeamWidgetTeamFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`TeamWidgetTeamFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TeamWidgetTeamFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-45`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-10`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-10`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-10`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-10`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-10`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-10`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-10`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, TeamWidgetTeamFontOverridesItemUploadsItem>|null`,id:`param-uploads-10`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`TeamWidgetTeamFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`TeamWidgetTeamFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TeamWidgetTeamFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-10`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-46`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-10`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-10`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-43`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-10`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-44`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`teamCtaLabel`,type:`?string`,id:`param-team-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`teamCtaUrl`,type:`?string`,id:`param-team-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`teamCtaNewTab`,type:`?bool`,id:`param-team-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`teamCtaVariant`,type:`Enums\\\\TeamCtaVariant|string|null`,id:`param-team-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaSize`,type:`Enums\\\\TeamCtaSize|string|null`,id:`param-team-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaRadius`,type:`Enums\\\\TeamCtaRadius|string|null`,id:`param-team-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaColor`,type:`?string`,id:`param-team-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`teamCtaColorLight`,type:`?string`,id:`param-team-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`teamCtaTextColor`,type:`?string`,id:`param-team-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`teamCtaTextColorLight`,type:`?string`,id:`param-team-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`teamCtaHoverColor`,type:`?string`,id:`param-team-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`teamCtaHoverColorLight`,type:`?string`,id:`param-team-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`teamCtaStyle`,type:`Enums\\\\TeamCtaStyle|string|null`,id:`param-team-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaShadowColor`,type:`?string`,id:`param-team-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`teamCtaShadowColorLight`,type:`?string`,id:`param-team-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`teamCtaAnimation`,type:`Enums\\\\TeamCtaAnimation|string|null`,id:`param-team-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaIcon`,type:`?string`,id:`param-team-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`teamCtaIconFamily`,type:`Enums\\\\TeamCtaIconFamily|string|null`,id:`param-team-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaIconPosition`,type:`Enums\\\\TeamCtaIconPosition|string|null`,id:`param-team-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaIconNudge`,type:`?bool`,id:`param-team-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-13`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-45`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`FaqWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FaqWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`faq`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FaqWidgetType|string`,required:true,id:`param-type-16`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`faq`}),`. One of `,_jsx(_components.code,{children:`faq`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-47`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-20`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`faqEyebrow`,type:`?string`,id:`param-faq-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`faqEyebrowColor`,type:`?string`,id:`param-faq-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`faqEyebrowColorLight`,type:`?string`,id:`param-faq-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`faqEyebrowWeight`,type:`Enums\\\\FaqEyebrowWeight|string|null`,id:`param-faq-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`faqEyebrowSize`,type:`Enums\\\\FaqEyebrowSize|string|null`,id:`param-faq-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`faqHeading`,type:`?string`,id:`param-faq-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the questions.`})}),_jsx(ResponseField,{name:`faqHeadingColor`,type:`?string`,id:`param-faq-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`faqHeadingColorLight`,type:`?string`,id:`param-faq-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqHeadingWeight`,type:`Enums\\\\FaqHeadingWeight|string|null`,id:`param-faq-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`faqIntro`,type:`?string`,id:`param-faq-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`faqIntroColor`,type:`?string`,id:`param-faq-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`faqIntroColorLight`,type:`?string`,id:`param-faq-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqIntroWeight`,type:`Enums\\\\FaqIntroWeight|string|null`,id:`param-faq-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`faqIntroSize`,type:`Enums\\\\FaqIntroSize|string|null`,id:`param-faq-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`faqAlign`,type:`Enums\\\\FaqAlign|string|null`,id:`param-faq-align`,children:_jsxs(_components.p,{children:[`The Split layout always sets its header column left. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`faqFeaturedOnly`,type:`?bool`,id:`param-faq-featured-only`,children:_jsx(_components.p,{children:`Show only questions you have flagged “Featured” in the FAQs manager — e.g. a short top-questions block on the home page, linking out to the full FAQ page.`})}),_jsx(ResponseField,{name:`faqCount`,type:`?int`,id:`param-faq-count`,children:_jsx(_components.p,{children:`The most questions to show, in the manager’s sort order. Raise it for a full FAQ page. 1 to 50.`})}),_jsx(ResponseField,{name:`faqCategories`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-faq-categories`,children:_jsxs(_components.p,{children:[`Optional filter. Leave empty to show questions from every category. Manage the list under FAQ Categories. The related `,_jsx(_components.code,{children:`faq-category`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document; a document the site can’t find is left out.`]})}),_jsx(ResponseField,{name:`faqGroupBy`,type:`Enums\\\\FaqGroupBy|string|null`,id:`param-faq-group-by`,children:_jsxs(_components.p,{children:[`By category renders a subheading per FAQ category, in the order picked in the category filter (or, with no filter, the FAQ Categories sort order); questions without a category are listed last. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`category`}),`.`]})}),_jsx(ResponseField,{name:`faqLayout`,type:`Enums\\\\FaqLayout|string|null`,id:`param-faq-layout`,children:_jsxs(_components.p,{children:[`Accordion: a single centered column of collapsing questions — the classic FAQ. Split: the header (and button) sit in a left column with the accordion beside them. Two columns: the accordion flows across two columns. Open panels: every answer visible in a card grid — no collapsing. One of `,_jsx(_components.code,{children:`accordion`}),`, `,_jsx(_components.code,{children:`split`}),`, `,_jsx(_components.code,{children:`columns`}),`, `,_jsx(_components.code,{children:`panels`}),`.`]})}),_jsx(ResponseField,{name:`faqPanelColumns`,type:`Enums\\\\FaqPanelColumns|string|null`,id:`param-faq-panel-columns`,children:_jsxs(_components.p,{children:[`How many open panels sit per row (they stack on small screens). One of `,_jsx(_components.code,{children:`1`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`.`]})}),_jsx(ResponseField,{name:`faqOpenMode`,type:`Enums\\\\FaqOpenMode|string|null`,id:`param-faq-open-mode`,children:_jsxs(_components.p,{children:[`One at a time closes the previous answer when a new one opens; Independent lets visitors hold several open. One of `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`multiple`}),`.`]})}),_jsx(ResponseField,{name:`faqFirstOpen`,type:`?bool`,id:`param-faq-first-open`,children:_jsx(_components.p,{children:`Starts the section with the first answer expanded so the block never reads as an empty list of rows.`})}),_jsx(ResponseField,{name:`faqMarker`,type:`Enums\\\\FaqMarker|string|null`,id:`param-faq-marker`,children:_jsxs(_components.p,{children:[`The disclosure marker on each question. Plus rotates into a close mark; Chevron flips. One of `,_jsx(_components.code,{children:`plus`}),`, `,_jsx(_components.code,{children:`chevron`}),`.`]})}),_jsx(ResponseField,{name:`faqGap`,type:`Enums\\\\FaqGap|string|null`,id:`param-faq-gap`,children:_jsxs(_components.p,{children:[`Space between questions. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`faqSchema`,type:`?bool`,id:`param-faq-schema`,children:_jsx(_components.p,{children:`Adds this section’s questions to the page’s schema.org FAQPage markup so search engines can read them (all FAQ sections on a page share one FAQPage block). Costs nothing when on; turn off only to exclude these questions.`})}),_jsx(ResponseField,{name:`faqCardStyle`,type:`Enums\\\\FaqCardStyle|string|null`,id:`param-faq-card-style`,children:_jsxs(_components.p,{children:[`The question-row treatment. Plain (the default) is the classic divided list — hairlines between questions. Any other style turns each question into a card: Raised is a quiet lit card, Outline a framed row, Luxe frosted glass; Ticket/Bracket/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`faqCardStyleRadius`,type:`Enums\\\\FaqCardStyleRadius|string|null`,id:`param-faq-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`faqCardStyleAccentColor`,type:`?string`,id:`param-faq-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`faqCardStyleAccentColorLight`,type:`?string`,id:`param-faq-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqCardStyleForgeScope`,type:`Enums\\\\FaqCardStyleForgeScope|string|null`,id:`param-faq-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`faqCardStyleForgeWeight`,type:`Enums\\\\FaqCardStyleForgeWeight|string|null`,id:`param-faq-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`faqCardHover`,type:`Enums\\\\FaqCardHover|string|null`,id:`param-faq-card-hover`,children:_jsxs(_components.p,{children:[`What a question row does on hover. None (the default) keeps the accordion calm — the open/close motion is the interaction. The card effects (Lift/Glow/…) suit the card styles; the cursor-tracked ones need site animations on. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`faqAccentColor`,type:`?string`,id:`param-faq-accent-color`,children:_jsx(_components.p,{children:`Optional — colors the toggle icon and the open question’s highlight. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`faqAccentColorLight`,type:`?string`,id:`param-faq-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqQuestionSize`,type:`Enums\\\\FaqQuestionSize|string|null`,id:`param-faq-question-size`,children:_jsxs(_components.p,{children:[`Question size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`faqQuestionWeight`,type:`Enums\\\\FaqQuestionWeight|string|null`,id:`param-faq-question-weight`,children:_jsxs(_components.p,{children:[`Question weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`faqQuestionColor`,type:`?string`,id:`param-faq-question-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`faqQuestionColorLight`,type:`?string`,id:`param-faq-question-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqAnswerSize`,type:`Enums\\\\FaqAnswerSize|string|null`,id:`param-faq-answer-size`,children:_jsxs(_components.p,{children:[`Answer size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`faqAnswerWeight`,type:`Enums\\\\FaqAnswerWeight|string|null`,id:`param-faq-answer-weight`,children:_jsxs(_components.p,{children:[`Answer weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`faqAnswerColor`,type:`?string`,id:`param-faq-answer-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`faqAnswerColorLight`,type:`?string`,id:`param-faq-answer-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqGroupHeadingWeight`,type:`Enums\\\\FaqGroupHeadingWeight|string|null`,id:`param-faq-group-heading-weight`,children:_jsxs(_components.p,{children:[`Category heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`faqGroupHeadingColor`,type:`?string`,id:`param-faq-group-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`faqGroupHeadingColorLight`,type:`?string`,id:`param-faq-group-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqBg`,type:`Enums\\\\FaqBg|string|null`,id:`param-faq-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`faqBgCustom`,type:`?string`,id:`param-faq-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`faqBgLight`,type:`Enums\\\\FaqBgLight|string|null`,id:`param-faq-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`faqBgLightCustom`,type:`?string`,id:`param-faq-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`faqFontOverrides`,type:`Collection\u003cint, FaqWidgetFaqFontOverridesItem>|null`,id:`param-faq-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FaqWidgetFaqFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FaqWidgetFaqFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FaqWidgetFaqFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-48`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-11`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-11`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-11`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-11`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-11`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-11`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-11`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FaqWidgetFaqFontOverridesItemUploadsItem>|null`,id:`param-uploads-11`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FaqWidgetFaqFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FaqWidgetFaqFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FaqWidgetFaqFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-11`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-49`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-11`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-11`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-46`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-11`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-47`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`faqCtaLabel`,type:`?string`,id:`param-faq-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`faqCtaUrl`,type:`?string`,id:`param-faq-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`faqCtaNewTab`,type:`?bool`,id:`param-faq-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`faqCtaVariant`,type:`Enums\\\\FaqCtaVariant|string|null`,id:`param-faq-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaSize`,type:`Enums\\\\FaqCtaSize|string|null`,id:`param-faq-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaRadius`,type:`Enums\\\\FaqCtaRadius|string|null`,id:`param-faq-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaColor`,type:`?string`,id:`param-faq-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`faqCtaColorLight`,type:`?string`,id:`param-faq-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`faqCtaTextColor`,type:`?string`,id:`param-faq-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`faqCtaTextColorLight`,type:`?string`,id:`param-faq-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`faqCtaHoverColor`,type:`?string`,id:`param-faq-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`faqCtaHoverColorLight`,type:`?string`,id:`param-faq-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`faqCtaStyle`,type:`Enums\\\\FaqCtaStyle|string|null`,id:`param-faq-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaShadowColor`,type:`?string`,id:`param-faq-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`faqCtaShadowColorLight`,type:`?string`,id:`param-faq-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`faqCtaAnimation`,type:`Enums\\\\FaqCtaAnimation|string|null`,id:`param-faq-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaIcon`,type:`?string`,id:`param-faq-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`faqCtaIconFamily`,type:`Enums\\\\FaqCtaIconFamily|string|null`,id:`param-faq-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaIconPosition`,type:`Enums\\\\FaqCtaIconPosition|string|null`,id:`param-faq-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaIconNudge`,type:`?bool`,id:`param-faq-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-14`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-48`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`ServiceMapWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`service-map`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\ServiceMapWidgetType|string`,required:true,id:`param-type-17`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`service-map`}),`. One of `,_jsx(_components.code,{children:`service-map`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-50`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-21`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrow`,type:`?string`,id:`param-service-map-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`serviceMapEyebrowColor`,type:`?string`,id:`param-service-map-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`serviceMapEyebrowColorLight`,type:`?string`,id:`param-service-map-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`serviceMapEyebrowWeight`,type:`Enums\\\\ServiceMapEyebrowWeight|string|null`,id:`param-service-map-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrowSize`,type:`Enums\\\\ServiceMapEyebrowSize|string|null`,id:`param-service-map-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapHeading`,type:`?string`,id:`param-service-map-heading`,children:_jsx(_components.p,{children:`Heading.`})}),_jsx(ResponseField,{name:`serviceMapHeadingColor`,type:`?string`,id:`param-service-map-heading-color`,children:_jsx(_components.p,{children:`Optional. Leave empty for the standard ink color.`})}),_jsx(ResponseField,{name:`serviceMapHeadingColorLight`,type:`?string`,id:`param-service-map-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapHeadingWeight`,type:`Enums\\\\ServiceMapHeadingWeight|string|null`,id:`param-service-map-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapIntro`,type:`?string`,id:`param-service-map-intro`,children:_jsx(_components.p,{children:`Optional short paragraph under the heading. The data source’s own description (service days etc.) shows in the result panel, not here.`})}),_jsx(ResponseField,{name:`serviceMapIntroSize`,type:`Enums\\\\ServiceMapIntroSize|string|null`,id:`param-service-map-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapHeight`,type:`Enums\\\\ServiceMapHeight|string|null`,id:`param-service-map-height`,children:_jsxs(_components.p,{children:[`Map height. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`standard`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapTheme`,type:`Enums\\\\ServiceMapTheme|string|null`,id:`param-service-map-theme`,children:_jsxs(_components.p,{children:[`Curated light/dark basemap pairs — each follows the visitor’s theme toggle. “Site palette” derives the basemap from this site’s own colors. One of `,_jsx(_components.code,{children:`palette`}),`, `,_jsx(_components.code,{children:`classic`}),`, `,_jsx(_components.code,{children:`silver`}),`, `,_jsx(_components.code,{children:`retro`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapFrameRadius`,type:`Enums\\\\ServiceMapFrameRadius|string|null`,id:`param-service-map-frame-radius`,children:_jsxs(_components.p,{children:[`Map corner radius. One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapFrameBorderColor`,type:`?string`,id:`param-service-map-frame-border-color`,children:_jsx(_components.p,{children:`Optional. Leave empty for the standard hairline — set it to match a colored border on the zone cards.`})}),_jsx(ResponseField,{name:`serviceMapFrameBorderColorLight`,type:`?string`,id:`param-service-map-frame-border-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapFrameGlowColor`,type:`?string`,id:`param-service-map-frame-glow-color`,children:_jsx(_components.p,{children:`Optional soft glow around the map frame — pairs with a glowing zone-card style. Leave empty for none.`})}),_jsx(ResponseField,{name:`serviceMapFrameGlowColorLight`,type:`?string`,id:`param-service-map-frame-glow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapSchema`,type:`?bool`,id:`param-service-map-schema`,children:_jsx(_components.p,{children:`On pages with this section, upgrades the business structured data from the compact site-wide form to the full detail: every public place name, every zip code, and area boundaries. Costs visitors nothing; turn off to keep this page at the compact site-wide form. (Requires structured data on in Site settings → SEO; demo map data is never published.)`})}),_jsx(ResponseField,{name:`serviceMapShowLegend`,type:`?bool`,id:`param-service-map-show-legend`,children:_jsx(_components.p,{children:`The legend card overlaid on the map. The zone cards below the map always carry the same information for screen readers and when the map can’t load.`})}),_jsx(ResponseField,{name:`serviceMapKeySwatchSize`,type:`Enums\\\\ServiceMapKeySwatchSize|string|null`,id:`param-service-map-key-swatch-size`,children:_jsxs(_components.p,{children:[`Key swatch size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapKeyJustify`,type:`Enums\\\\ServiceMapKeyJustify|string|null`,id:`param-service-map-key-justify`,children:_jsxs(_components.p,{children:[`Key text justification. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextSize`,type:`Enums\\\\ServiceMapKeyTextSize|string|null`,id:`param-service-map-key-text-size`,children:_jsxs(_components.p,{children:[`Key text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextWeight`,type:`Enums\\\\ServiceMapKeyTextWeight|string|null`,id:`param-service-map-key-text-weight`,children:_jsxs(_components.p,{children:[`Key text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextColor`,type:`?string`,id:`param-service-map-key-text-color`,children:_jsx(_components.p,{children:`Optional. Leave empty for the standard ink color.`})}),_jsx(ResponseField,{name:`serviceMapKeyTextColorLight`,type:`?string`,id:`param-service-map-key-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapKeyRadius`,type:`Enums\\\\ServiceMapKeyRadius|string|null`,id:`param-service-map-key-radius`,children:_jsxs(_components.p,{children:[`Key corner radius. One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapKeyBorderColor`,type:`?string`,id:`param-service-map-key-border-color`,children:_jsx(_components.p,{children:`Optional. Leave empty for the standard hairline — set it to match the map frame or the zone cards.`})}),_jsx(ResponseField,{name:`serviceMapKeyBorderColorLight`,type:`?string`,id:`param-service-map-key-border-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapKeyGlowColor`,type:`?string`,id:`param-service-map-key-glow-color`,children:_jsx(_components.p,{children:`Optional soft glow around the key card. Leave empty for none.`})}),_jsx(ResponseField,{name:`serviceMapKeyGlowColorLight`,type:`?string`,id:`param-service-map-key-glow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapShowCards`,type:`?bool`,id:`param-service-map-show-cards`,children:_jsx(_components.p,{children:`The zone/pricing cards under the map. Turning this off hides them visually — they stay in the page for screen readers and no-JavaScript visitors (the map itself isn’t accessible).`})}),_jsx(ResponseField,{name:`serviceMapCardStyle`,type:`Enums\\\\ServiceMapCardStyle|string|null`,id:`param-service-map-card-style`,children:_jsxs(_components.p,{children:[`The card surface. Raised is a quiet lit card; Luxe is a frosted glass panel; Outline is a double-rule plaque frame; Plain has no chrome; Poster frames the card with an accent keyline; Spine embeds a color rail along the top; Tint washes the card in the accent color. Showstoppers: Ticket punches notches into the sides, Bracket draws only corner marks, Forge is a machined plate with an engraved frame, Press is a punched index card with a margin rule, Inlay recesses the content into a well. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardStyleRadius`,type:`Enums\\\\ServiceMapCardStyleRadius|string|null`,id:`param-service-map-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardStyleAccentColor`,type:`?string`,id:`param-service-map-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`serviceMapCardStyleAccentColorLight`,type:`?string`,id:`param-service-map-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapCardsHover`,type:`Enums\\\\ServiceMapCardsHover|string|null`,id:`param-service-map-cards-hover`,children:_jsxs(_components.p,{children:[`What a card does on hover. Lift/Pop/Press/Glow/Outline are instant CSS effects; Sheen sweeps a soft light across; Tilt, Magnetic and Spotlight follow the cursor (these need site animations on — visitors who prefer reduced motion see the resting card). Pick a different one per section so a page feels varied, not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSwatchSize`,type:`Enums\\\\ServiceMapCardsSwatchSize|string|null`,id:`param-service-map-cards-swatch-size`,children:_jsxs(_components.p,{children:[`Card swatch size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsJustify`,type:`Enums\\\\ServiceMapCardsJustify|string|null`,id:`param-service-map-cards-justify`,children:_jsxs(_components.p,{children:[`Card text justification. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsNameWeight`,type:`Enums\\\\ServiceMapCardsNameWeight|string|null`,id:`param-service-map-cards-name-weight`,children:_jsxs(_components.p,{children:[`Zone name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsTextSize`,type:`Enums\\\\ServiceMapCardsTextSize|string|null`,id:`param-service-map-cards-text-size`,children:_jsxs(_components.p,{children:[`Card text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsTextColor`,type:`?string`,id:`param-service-map-cards-text-color`,children:_jsx(_components.p,{children:`Optional. Colors the zone names; supporting copy stays muted. Leave empty for the standard ink color.`})}),_jsx(ResponseField,{name:`serviceMapCardsTextColorLight`,type:`?string`,id:`param-service-map-cards-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapCardsSubSize`,type:`Enums\\\\ServiceMapCardsSubSize|string|null`,id:`param-service-map-cards-sub-size`,children:_jsxs(_components.p,{children:[`The price and detail lines under each zone name — sized relative to the card text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSubWeight`,type:`Enums\\\\ServiceMapCardsSubWeight|string|null`,id:`param-service-map-cards-sub-weight`,children:_jsxs(_components.p,{children:[`Supporting text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSubColor`,type:`?string`,id:`param-service-map-cards-sub-color`,children:_jsx(_components.p,{children:`Optional. Leave empty for the standard muted color.`})}),_jsx(ResponseField,{name:`serviceMapCardsSubColorLight`,type:`?string`,id:`param-service-map-cards-sub-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapIncludedLabel`,type:`?string`,id:`param-service-map-included-label`,children:_jsxs(_components.p,{children:[`Optional label shown instead of “`,`$0” wherever a zone has no fee (key, cards, results). Clear it to show the plain price — $`,`0 doesn’t always mean included.`]})}),_jsxs(ResponseField,{name:`serviceMapZoneOverrides`,type:`Collection\u003cint, ServiceMapWidgetServiceMapZoneOverridesItem>|null`,id:`param-service-map-zone-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`ServiceMapWidgetServiceMapZoneOverridesItem`}),`. Per-zone display overrides, matched by the zone name the data source provides. Rename a zone, replace its price text, or hide it entirely — the underlying data is never changed.`]}),_jsxs(Expandable,{title:`ServiceMapWidgetServiceMapZoneOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidgetServiceMapZoneOverridesItem)`,children:[_jsx(ResponseField,{name:`zoneName`,type:`string`,required:true,id:`param-zone-name`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Case-insensitive match against the zone name in the map data.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-51`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`displayName`,type:`?string`,id:`param-display-name`,children:_jsx(_components.p,{children:`Optional replacement name shown everywhere this zone appears.`})}),_jsx(ResponseField,{name:`priceLabel`,type:`?string`,id:`param-price-label`,children:_jsx(_components.p,{children:`Optional replacement for the price text (e.g. “Included”, “Call us”). Overrides the zero-price label too.`})}),_jsx(ResponseField,{name:`hide`,type:`?bool`,id:`param-hide`,children:_jsx(_components.p,{children:`The zone stays on the map and in search results — it just leaves the key and cards.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-49`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`serviceMapShowSearch`,type:`?bool`,id:`param-service-map-show-search`,children:_jsx(_components.p,{children:`Show the “check your area” search.`})}),_jsx(ResponseField,{name:`serviceMapSearchLabel`,type:`?string`,id:`param-service-map-search-label`,children:_jsx(_components.p,{children:`Search label.`})}),_jsx(ResponseField,{name:`serviceMapSearchPlaceholder`,type:`?string`,id:`param-service-map-search-placeholder`,children:_jsx(_components.p,{children:`Search placeholder.`})}),_jsx(ResponseField,{name:`serviceMapSearchJustify`,type:`Enums\\\\ServiceMapSearchJustify|string|null`,id:`param-service-map-search-justify`,children:_jsxs(_components.p,{children:[`Positions the search box and button above the map. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapSearchInputRadius`,type:`Enums\\\\ServiceMapSearchInputRadius|string|null`,id:`param-service-map-search-input-radius`,children:_jsxs(_components.p,{children:[`Same radius scale as the buttons, so the box and button can match. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapAutocomplete`,type:`?bool`,id:`param-service-map-autocomplete`,children:_jsx(_components.p,{children:`Google address autocomplete under the search box (needs the Places API enabled on the key — see the setup guide in Connections → Google Maps). ZIP-only typing never triggers suggestions when the data source is zip-based.`})}),_jsx(ResponseField,{name:`serviceMapOutsideAreaText`,type:`?string`,id:`param-service-map-outside-area-text`,children:_jsx(_components.p,{children:`Shown when a searched location doesn’t fall in any zone (or the premium radius).`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonText`,type:`?string`,id:`param-service-map-search-button-text`,children:_jsx(_components.p,{children:`Leave empty for “Check”. The button’s look is configured in the Search button tab.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonVariant`,type:`Enums\\\\ServiceMapSearchButtonVariant|string|null`,id:`param-service-map-search-button-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonSize`,type:`Enums\\\\ServiceMapSearchButtonSize|string|null`,id:`param-service-map-search-button-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonRadius`,type:`Enums\\\\ServiceMapSearchButtonRadius|string|null`,id:`param-service-map-search-button-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonColor`,type:`?string`,id:`param-service-map-search-button-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonColorLight`,type:`?string`,id:`param-service-map-search-button-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonTextColor`,type:`?string`,id:`param-service-map-search-button-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonTextColorLight`,type:`?string`,id:`param-service-map-search-button-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonHoverColor`,type:`?string`,id:`param-service-map-search-button-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonHoverColorLight`,type:`?string`,id:`param-service-map-search-button-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonStyle`,type:`Enums\\\\ServiceMapSearchButtonStyle|string|null`,id:`param-service-map-search-button-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonShadowColor`,type:`?string`,id:`param-service-map-search-button-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonShadowColorLight`,type:`?string`,id:`param-service-map-search-button-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonAnimation`,type:`Enums\\\\ServiceMapSearchButtonAnimation|string|null`,id:`param-service-map-search-button-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapPanelPlacement`,type:`Enums\\\\ServiceMapPanelPlacement|string|null`,id:`param-service-map-panel-placement`,children:_jsxs(_components.p,{children:[`Popup placement. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`corner`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapPanelLook`,type:`Enums\\\\ServiceMapPanelLook|string|null`,id:`param-service-map-panel-look`,children:_jsxs(_components.p,{children:[`Popup style. One of `,_jsx(_components.code,{children:`overlay`}),`, `,_jsx(_components.code,{children:`solid`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapPanelShowQuery`,type:`?bool`,id:`param-service-map-panel-show-query`,children:_jsx(_components.p,{children:`Repeats the searched ZIP code or address at the top of the result popup.`})}),_jsx(ResponseField,{name:`serviceMapPanelShowCity`,type:`?bool`,id:`param-service-map-panel-show-city`,children:_jsx(_components.p,{children:`Looks up the locality for a searched ZIP code (one extra Geocoding API call per search) and shows it beside the searched value.`})}),_jsx(ResponseField,{name:`serviceMapPanelTextSize`,type:`Enums\\\\ServiceMapPanelTextSize|string|null`,id:`param-service-map-panel-text-size`,children:_jsxs(_components.p,{children:[`Popup text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapPanelTitleWeight`,type:`Enums\\\\ServiceMapPanelTitleWeight|string|null`,id:`param-service-map-panel-title-weight`,children:_jsxs(_components.p,{children:[`Popup title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapShowPremium`,type:`?bool`,id:`param-service-map-show-premium`,children:_jsx(_components.p,{children:`When the data carries a premium (distance-priced) service, include it in search results and the zone cards. Sources without their own premium block use the pricing set in Service area map → Areas and pricing.`})}),_jsx(ResponseField,{name:`serviceMapShowPremiumRing`,type:`?bool`,id:`param-service-map-show-premium-ring`,children:_jsx(_components.p,{children:`Needs a premium range limit (miles) — with no limit there is no ring to draw.`})}),_jsx(ResponseField,{name:`serviceMapPremiumEstimateNote`,type:`?string`,id:`param-service-map-premium-estimate-note`,children:_jsx(_components.p,{children:`Premium estimate note.`})}),_jsx(ResponseField,{name:`serviceMapPremiumUnavailableText`,type:`?string`,id:`param-service-map-premium-unavailable-text`,children:_jsx(_components.p,{children:`Shown when a distance estimate isn’t possible (e.g. the Distance Matrix API isn’t enabled on the key).`})}),_jsx(ResponseField,{name:`serviceMapMarkerImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-service-map-marker-image`,children:_jsxs(_components.p,{children:[`Optional logo/pin image for the business marker. Leave empty for a simple accent-color pin. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerImageLight`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-service-map-marker-image-light`,children:_jsxs(_components.p,{children:[`Optional light-theme variant. Falls back to the dark-theme image. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerLabel`,type:`?string`,id:`param-service-map-marker-label`,children:_jsx(_components.p,{children:`Accessible name + hover title for the marker. Leave empty to use the business name from Site settings.`})}),_jsx(ResponseField,{name:`serviceMapMarkerSize`,type:`Enums\\\\ServiceMapMarkerSize|string|null`,id:`param-service-map-marker-size`,children:_jsxs(_components.p,{children:[`Marker size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerBounce`,type:`?bool`,id:`param-service-map-marker-bounce`,children:_jsx(_components.p,{children:`The business marker gently bobs in place. Automatically disabled for visitors who prefer reduced motion.`})}),_jsx(ResponseField,{name:`serviceMapShowLocation`,type:`?bool`,id:`param-service-map-show-location`,children:_jsx(_components.p,{children:`Adds the business location (named by its label in Service area map → Your location) as the FIRST entry of the map key and zone cards.`})}),_jsx(ResponseField,{name:`serviceMapBg`,type:`Enums\\\\ServiceMapBg|string|null`,id:`param-service-map-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapBgCustom`,type:`?string`,id:`param-service-map-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`serviceMapBgLight`,type:`Enums\\\\ServiceMapBgLight|string|null`,id:`param-service-map-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapBgLightCustom`,type:`?string`,id:`param-service-map-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`serviceMapFontOverrides`,type:`Collection\u003cint, ServiceMapWidgetServiceMapFontOverridesItem>|null`,id:`param-service-map-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`ServiceMapWidgetServiceMapFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`ServiceMapWidgetServiceMapFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidgetServiceMapFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-52`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-12`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-12`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-12`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-12`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-12`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-12`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-12`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, ServiceMapWidgetServiceMapFontOverridesItemUploadsItem>|null`,id:`param-uploads-12`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`ServiceMapWidgetServiceMapFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`ServiceMapWidgetServiceMapFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidgetServiceMapFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-12`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-53`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-12`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-12`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-50`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-12`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-51`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-15`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-52`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`BlogPreviewWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogPreviewWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`blog-preview`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\BlogPreviewWidgetType|string`,required:true,id:`param-type-18`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`blog-preview`}),`. One of `,_jsx(_components.code,{children:`blog-preview`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-54`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-22`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`blogHeading`,type:`?string`,id:`param-blog-heading`,children:_jsx(_components.p,{children:`Heading.`})}),_jsx(ResponseField,{name:`blogSubheading`,type:`?string`,id:`param-blog-subheading`,children:_jsx(_components.p,{children:`Subheading.`})}),_jsx(ResponseField,{name:`blogCardImageAspect`,type:`Enums\\\\BlogCardImageAspect|string|null`,id:`param-blog-card-image-aspect`,children:_jsxs(_components.p,{children:[`Aspect ratio of the featured image. Choose “Hidden” for text-only cards. One of `,_jsx(_components.code,{children:`16/10`}),`, `,_jsx(_components.code,{children:`4/3`}),`, `,_jsx(_components.code,{children:`3/2`}),`, `,_jsx(_components.code,{children:`1/1`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardImageHover`,type:`Enums\\\\BlogCardImageHover|string|null`,id:`param-blog-card-image-hover`,children:_jsxs(_components.p,{children:[`Image hover. One of `,_jsx(_components.code,{children:`zoom`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardImageFill`,type:`?bool`,id:`param-blog-card-image-fill`,children:_jsx(_components.p,{children:`Use the featured image as the full card background, with the title and meta overlaid on a dark scrim. Posts with no image fall back to a normal card.`})}),_jsx(ResponseField,{name:`blogCardPreset`,type:`Enums\\\\BlogCardPreset|string|null`,id:`param-blog-card-preset`,children:_jsxs(_components.p,{children:[`The card surface. Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. (On image-led cards the photo covers the top edge.) One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`blogCardPresetRadius`,type:`Enums\\\\BlogCardPresetRadius|string|null`,id:`param-blog-card-preset-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`blogCardPresetAccentColor`,type:`?string`,id:`param-blog-card-preset-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`blogCardPresetAccentColorLight`,type:`?string`,id:`param-blog-card-preset-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`blogCardPresetForgeScope`,type:`Enums\\\\BlogCardPresetForgeScope|string|null`,id:`param-blog-card-preset-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`blogCardPresetForgeWeight`,type:`Enums\\\\BlogCardPresetForgeWeight|string|null`,id:`param-blog-card-preset-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`blogCardHover`,type:`Enums\\\\BlogCardHover|string|null`,id:`param-blog-card-hover`,children:_jsxs(_components.p,{children:[`What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt (3-D + glare), Magnetic and Spotlight follow the cursor (need site animations on). The Hover color below tints these. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`blogCardHoverColor`,type:`?string`,id:`param-blog-card-hover-color`,children:_jsx(_components.p,{children:`Border / shadow / glow color on hover. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`blogCardHoverColorLight`,type:`?string`,id:`param-blog-card-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardShowCategory`,type:`?bool`,id:`param-blog-card-show-category`,children:_jsx(_components.p,{children:`Show category.`})}),_jsx(ResponseField,{name:`blogCardCategoryStyle`,type:`Enums\\\\BlogCardCategoryStyle|string|null`,id:`param-blog-card-category-style`,children:_jsxs(_components.p,{children:[`How the category badge uses its color (set per category under Blog Categories). Filled = colored background; Outline = colored border + text; Minimal = colored text only. One of `,_jsx(_components.code,{children:`filled`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`minimal`}),`.`]})}),_jsx(ResponseField,{name:`blogCardShowDate`,type:`?bool`,id:`param-blog-card-show-date`,children:_jsx(_components.p,{children:`Show date.`})}),_jsx(ResponseField,{name:`blogCardShowExcerpt`,type:`?bool`,id:`param-blog-card-show-excerpt`,children:_jsx(_components.p,{children:`Show excerpt.`})}),_jsx(ResponseField,{name:`blogCardExcerptLines`,type:`Enums\\\\BlogCardExcerptLines|string|null`,id:`param-blog-card-excerpt-lines`,children:_jsxs(_components.p,{children:[`How many lines of the excerpt to show before truncating. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardShowAuthor`,type:`?bool`,id:`param-blog-card-show-author`,children:_jsx(_components.p,{children:`Show author.`})}),_jsx(ResponseField,{name:`blogCardShowReadMore`,type:`?bool`,id:`param-blog-card-show-read-more`,children:_jsx(_components.p,{children:`Show “Read post” link.`})}),_jsx(ResponseField,{name:`blogCardReadMorePlacement`,type:`Enums\\\\BlogCardReadMorePlacement|string|null`,id:`param-blog-card-read-more-placement`,children:_jsxs(_components.p,{children:[`Auto puts it on the right of horizontal cards (list / compact / featured) and below the text on grid cards. Or force one placement everywhere. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`below`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreColor`,type:`?string`,id:`param-blog-card-read-more-color`,children:_jsx(_components.p,{children:`Optional. Overrides the “Read post” link color. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`blogCardReadMoreColorLight`,type:`?string`,id:`param-blog-card-read-more-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColor`,type:`?string`,id:`param-blog-card-read-more-hover-color`,children:_jsx(_components.p,{children:`Optional. Color of the “Read post” link when the card is hovered. Leave empty to use the accent color.`})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColorLight`,type:`?string`,id:`param-blog-card-read-more-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardTitleColor`,type:`?string`,id:`param-blog-card-title-color`,children:_jsx(_components.p,{children:`Optional. Overrides the card title color. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`blogCardTitleColorLight`,type:`?string`,id:`param-blog-card-title-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`blogCardTitleWeight`,type:`Enums\\\\BlogCardTitleWeight|string|null`,id:`param-blog-card-title-weight`,children:_jsxs(_components.p,{children:[`Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`blogCardTitleHoverColor`,type:`?string`,id:`param-blog-card-title-hover-color`,children:_jsx(_components.p,{children:`Optional. Title color when the card is hovered. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`blogCardTitleHoverColorLight`,type:`?string`,id:`param-blog-card-title-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardTextColor`,type:`?string`,id:`param-blog-card-text-color`,children:_jsx(_components.p,{children:`Optional. Overrides the excerpt text color. Leave empty for the muted default.`})}),_jsx(ResponseField,{name:`blogCardTextColorLight`,type:`?string`,id:`param-blog-card-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the muted default.`})}),_jsx(ResponseField,{name:`blogCardTextWeight`,type:`Enums\\\\BlogCardTextWeight|string|null`,id:`param-blog-card-text-weight`,children:_jsxs(_components.p,{children:[`Excerpt weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`blogCardMetaColor`,type:`?string`,id:`param-blog-card-meta-color`,children:_jsx(_components.p,{children:`Date / meta line color. Leave empty for the faint default.`})}),_jsx(ResponseField,{name:`blogCardMetaColorLight`,type:`?string`,id:`param-blog-card-meta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the faint default.`})}),_jsx(ResponseField,{name:`blogBg`,type:`Enums\\\\BlogBg|string|null`,id:`param-blog-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`blogBgCustom`,type:`?string`,id:`param-blog-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`blogBgLight`,type:`Enums\\\\BlogBgLight|string|null`,id:`param-blog-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`blogBgLightCustom`,type:`?string`,id:`param-blog-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`blogFontOverrides`,type:`Collection\u003cint, BlogPreviewWidgetBlogFontOverridesItem>|null`,id:`param-blog-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`BlogPreviewWidgetBlogFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`BlogPreviewWidgetBlogFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogPreviewWidgetBlogFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-55`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-13`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-13`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-13`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-13`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-13`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-13`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-13`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, BlogPreviewWidgetBlogFontOverridesItemUploadsItem>|null`,id:`param-uploads-13`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`BlogPreviewWidgetBlogFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`BlogPreviewWidgetBlogFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogPreviewWidgetBlogFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-13`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-56`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-13`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-13`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-53`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-13`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-54`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`blogCtaLabel`,type:`?string`,id:`param-blog-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`blogCtaUrl`,type:`?string`,id:`param-blog-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`blogCtaNewTab`,type:`?bool`,id:`param-blog-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`blogCtaVariant`,type:`Enums\\\\BlogCtaVariant|string|null`,id:`param-blog-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaSize`,type:`Enums\\\\BlogCtaSize|string|null`,id:`param-blog-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaRadius`,type:`Enums\\\\BlogCtaRadius|string|null`,id:`param-blog-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaColor`,type:`?string`,id:`param-blog-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`blogCtaColorLight`,type:`?string`,id:`param-blog-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`blogCtaTextColor`,type:`?string`,id:`param-blog-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`blogCtaTextColorLight`,type:`?string`,id:`param-blog-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`blogCtaHoverColor`,type:`?string`,id:`param-blog-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`blogCtaHoverColorLight`,type:`?string`,id:`param-blog-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`blogCtaStyle`,type:`Enums\\\\BlogCtaStyle|string|null`,id:`param-blog-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaShadowColor`,type:`?string`,id:`param-blog-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`blogCtaShadowColorLight`,type:`?string`,id:`param-blog-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`blogCtaAnimation`,type:`Enums\\\\BlogCtaAnimation|string|null`,id:`param-blog-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaIcon`,type:`?string`,id:`param-blog-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`blogCtaIconFamily`,type:`Enums\\\\BlogCtaIconFamily|string|null`,id:`param-blog-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaIconPosition`,type:`Enums\\\\BlogCtaIconPosition|string|null`,id:`param-blog-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaIconNudge`,type:`?bool`,id:`param-blog-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-16`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-55`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`CookieDeclarationWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CookieDeclarationWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`cookie-declaration`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\CookieDeclarationWidgetType|string`,required:true,id:`param-type-19`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`cookie-declaration`}),`. One of `,_jsx(_components.code,{children:`cookie-declaration`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-57`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-23`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`cookieDeclEyebrow`,type:`?string`,id:`param-cookie-decl-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow.`})}),_jsx(ResponseField,{name:`cookieDeclHeading`,type:`?string`,id:`param-cookie-decl-heading`,children:_jsx(_components.p,{children:`Heading.`})}),_jsx(ResponseField,{name:`cookieDeclIntro`,type:`?string`,id:`param-cookie-decl-intro`,children:_jsx(_components.p,{children:`Introduction.`})}),_jsx(ResponseField,{name:`cookieDeclShowStatus`,type:`?bool`,id:`param-cookie-decl-show-status`,children:_jsx(_components.p,{children:`A short block naming what this visitor has allowed, with a button that reopens the preferences panel. Withdrawal has to be as easy as consent, so leave this on unless the page offers another way.`})}),_jsx(ResponseField,{name:`cookieDeclShowTable`,type:`?bool`,id:`param-cookie-decl-show-table`,children:_jsx(_components.p,{children:`Provider, type, duration and domain per entry. Off leaves the plain-language disclosures alone, which reads better but tells a technical reader less.`})}),_jsx(ResponseField,{name:`cookieDeclLayout`,type:`Enums\\\\CookieDeclLayout|string|null`,id:`param-cookie-decl-layout`,children:_jsxs(_components.p,{children:[`Layout. One of `,_jsx(_components.code,{children:`stacked`}),`, `,_jsx(_components.code,{children:`compact`}),`.`]})}),_jsx(ResponseField,{name:`cookieDeclBg`,type:`Enums\\\\CookieDeclBg|string|null`,id:`param-cookie-decl-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`cookieDeclBgCustom`,type:`?string`,id:`param-cookie-decl-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`cookieDeclBgLight`,type:`Enums\\\\CookieDeclBgLight|string|null`,id:`param-cookie-decl-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`cookieDeclBgLightCustom`,type:`?string`,id:`param-cookie-decl-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`cookieDeclFontOverrides`,type:`Collection\u003cint, CookieDeclarationWidgetCookieDeclFontOverridesItem>|null`,id:`param-cookie-decl-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`CookieDeclarationWidgetCookieDeclFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`CookieDeclarationWidgetCookieDeclFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CookieDeclarationWidgetCookieDeclFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-58`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-14`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-14`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-14`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-14`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-14`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-14`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-14`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem>|null`,id:`param-uploads-14`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-14`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-59`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-14`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-14`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-56`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-14`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-57`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-17`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-58`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`RichTextWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\RichTextWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\RichTextWidgetType|string`,required:true,id:`param-type-20`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-60`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-24`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`content`,type:`?string`,id:`param-content-2`,children:_jsxs(_components.p,{children:[`The text as HTML, e.g. `,_jsx(_components.code,{children:`\u003ch2>Our story\u003c/h2>\u003cp>It began with \u003cstrong>one\u003c/strong> idea.\u003c/p>`}),`. The site keeps the tags and styles this area’s editor offers (paragraphs, headings, bold, italic, links, lists…) and removes the rest.`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-18`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-59`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`GoogleReviewsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GoogleReviewsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`google-reviews`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\GoogleReviewsWidgetType|string`,required:true,id:`param-type-21`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`google-reviews`}),`. One of `,_jsx(_components.code,{children:`google-reviews`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-61`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-25`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`reviewsEyebrow`,type:`?string`,id:`param-reviews-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`reviewsEyebrowColor`,type:`?string`,id:`param-reviews-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`reviewsEyebrowColorLight`,type:`?string`,id:`param-reviews-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`reviewsEyebrowWeight`,type:`Enums\\\\ReviewsEyebrowWeight|string|null`,id:`param-reviews-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsEyebrowSize`,type:`Enums\\\\ReviewsEyebrowSize|string|null`,id:`param-reviews-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`reviewsHeading`,type:`?string`,id:`param-reviews-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the reviews.`})}),_jsx(ResponseField,{name:`reviewsHeadingColor`,type:`?string`,id:`param-reviews-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`reviewsHeadingColorLight`,type:`?string`,id:`param-reviews-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsHeadingWeight`,type:`Enums\\\\ReviewsHeadingWeight|string|null`,id:`param-reviews-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsIntro`,type:`?string`,id:`param-reviews-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`reviewsIntroColor`,type:`?string`,id:`param-reviews-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`reviewsIntroColorLight`,type:`?string`,id:`param-reviews-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsIntroWeight`,type:`Enums\\\\ReviewsIntroWeight|string|null`,id:`param-reviews-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsIntroSize`,type:`Enums\\\\ReviewsIntroSize|string|null`,id:`param-reviews-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`reviewsAlign`,type:`Enums\\\\ReviewsAlign|string|null`,id:`param-reviews-align`,children:_jsxs(_components.p,{children:[`Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`reviewsMinRating`,type:`Enums\\\\ReviewsMinRating|string|null`,id:`param-reviews-min-rating`,children:_jsxs(_components.p,{children:[`Only show reviews at or above this star rating. One of `,_jsx(_components.code,{children:`0`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`.`]})}),_jsx(ResponseField,{name:`reviewsFeaturedOnly`,type:`?bool`,id:`param-reviews-featured-only`,children:_jsx(_components.p,{children:`Show only reviews you have flagged “Featured” in the Google Reviews manager — hand-curate exactly which appear.`})}),_jsx(ResponseField,{name:`reviewsCount`,type:`?int`,id:`param-reviews-count`,children:_jsx(_components.p,{children:`The most reviews to show (newest first). 1 to 30.`})}),_jsx(ResponseField,{name:`reviewsLayout`,type:`Enums\\\\ReviewsLayout|string|null`,id:`param-reviews-layout`,children:_jsxs(_components.p,{children:[`Animated carousel: a continuous, auto-scrolling marquee of cards (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered, Pinterest-style grid that hugs each review’s length. One of `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`masonry`}),`.`]})}),_jsx(ResponseField,{name:`reviewsColumns`,type:`Enums\\\\ReviewsColumns|string|null`,id:`param-reviews-columns`,children:_jsxs(_components.p,{children:[`How many cards per row (grid) or columns (masonry). Auto fits as many as comfortably fit. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`reviewsSpeed`,type:`Enums\\\\ReviewsSpeed|string|null`,id:`param-reviews-speed`,children:_jsxs(_components.p,{children:[`How fast the carousel auto-scrolls. The review carousel runs on its own (gentler) speed scale than the logos/footer marquees so two never scroll in lockstep. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`reviewsDirection`,type:`Enums\\\\ReviewsDirection|string|null`,id:`param-reviews-direction`,children:_jsxs(_components.p,{children:[`Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`reviewsGap`,type:`Enums\\\\ReviewsGap|string|null`,id:`param-reviews-gap`,children:_jsxs(_components.p,{children:[`Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`reviewsShowAvatar`,type:`?bool`,id:`param-reviews-show-avatar`,children:_jsx(_components.p,{children:`Show the reviewer’s Google avatar (falls back to a lettered initial when missing or anonymous).`})}),_jsx(ResponseField,{name:`reviewsShowRating`,type:`?bool`,id:`param-reviews-show-rating`,children:_jsx(_components.p,{children:`Show star rating.`})}),_jsx(ResponseField,{name:`reviewsShowDate`,type:`?bool`,id:`param-reviews-show-date`,children:_jsx(_components.p,{children:`Show review date.`})}),_jsx(ResponseField,{name:`reviewsShowReply`,type:`?bool`,id:`param-reviews-show-reply`,children:_jsx(_components.p,{children:`Include the business’s public reply beneath a review when there is one.`})}),_jsx(ResponseField,{name:`reviewsShowAttribution`,type:`?bool`,id:`param-reviews-show-attribution`,children:_jsx(_components.p,{children:`A small Google attribution lockup under the section — recommended when showing Google reviews.`})}),_jsx(ResponseField,{name:`reviewsCardStyle`,type:`Enums\\\\ReviewsCardStyle|string|null`,id:`param-reviews-card-style`,children:_jsxs(_components.p,{children:[`The card surface. Raised is a quiet lit card; Luxe is a frosted glass panel; Outline is a double-rule plaque frame; Plain has no chrome; Poster frames the card with an accent keyline; Spine embeds a color rail along the top; Tint washes the card in the accent color. Showstoppers: Ticket punches notches into the sides, Bracket draws only corner marks, Forge is a machined plate with an engraved frame, Press is a punched index card with a margin rule, Inlay recesses the content into a well. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleRadius`,type:`Enums\\\\ReviewsCardStyleRadius|string|null`,id:`param-reviews-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleAccentColor`,type:`?string`,id:`param-reviews-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`reviewsCardStyleAccentColorLight`,type:`?string`,id:`param-reviews-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsCardStyleForgeScope`,type:`Enums\\\\ReviewsCardStyleForgeScope|string|null`,id:`param-reviews-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleForgeWeight`,type:`Enums\\\\ReviewsCardStyleForgeWeight|string|null`,id:`param-reviews-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardHover`,type:`Enums\\\\ReviewsCardHover|string|null`,id:`param-reviews-card-hover`,children:_jsxs(_components.p,{children:[`What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardWidth`,type:`Enums\\\\ReviewsCardWidth|string|null`,id:`param-reviews-card-width`,children:_jsxs(_components.p,{children:[`Sets the carousel card width and the minimum card width in the grid/masonry layouts. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardHeight`,type:`Enums\\\\ReviewsCardHeight|string|null`,id:`param-reviews-card-height`,children:_jsxs(_components.p,{children:[`Auto hugs the content; the taller presets give every card a consistent minimum height (grid + carousel). The masonry layout ignores this and staggers card heights itself. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardAlign`,type:`Enums\\\\ReviewsCardAlign|string|null`,id:`param-reviews-card-align`,children:_jsxs(_components.p,{children:[`How the avatar, name, stars and text align inside each card. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`reviewsStarColor`,type:`?string`,id:`param-reviews-star-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use a warm amber. Applies in both themes.`})}),_jsx(ResponseField,{name:`reviewsAccentColor`,type:`?string`,id:`param-reviews-accent-color`,children:_jsx(_components.p,{children:`Optional — background of the lettered fallback avatar. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`reviewsAccentColorLight`,type:`?string`,id:`param-reviews-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsNameSize`,type:`Enums\\\\ReviewsNameSize|string|null`,id:`param-reviews-name-size`,children:_jsxs(_components.p,{children:[`Name size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`reviewsNameWeight`,type:`Enums\\\\ReviewsNameWeight|string|null`,id:`param-reviews-name-weight`,children:_jsxs(_components.p,{children:[`Name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsNameColor`,type:`?string`,id:`param-reviews-name-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`reviewsNameColorLight`,type:`?string`,id:`param-reviews-name-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsDateSize`,type:`Enums\\\\ReviewsDateSize|string|null`,id:`param-reviews-date-size`,children:_jsxs(_components.p,{children:[`Date size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`reviewsDateWeight`,type:`Enums\\\\ReviewsDateWeight|string|null`,id:`param-reviews-date-weight`,children:_jsxs(_components.p,{children:[`Date weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsDateColor`,type:`?string`,id:`param-reviews-date-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the faint text color.`})}),_jsx(ResponseField,{name:`reviewsDateColorLight`,type:`?string`,id:`param-reviews-date-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsTextSize`,type:`Enums\\\\ReviewsTextSize|string|null`,id:`param-reviews-text-size`,children:_jsxs(_components.p,{children:[`Review text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`reviewsTextWeight`,type:`Enums\\\\ReviewsTextWeight|string|null`,id:`param-reviews-text-weight`,children:_jsxs(_components.p,{children:[`Review text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsTextColor`,type:`?string`,id:`param-reviews-text-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`reviewsTextColorLight`,type:`?string`,id:`param-reviews-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsTextClamp`,type:`Enums\\\\ReviewsTextClamp|string|null`,id:`param-reviews-text-clamp`,children:_jsxs(_components.p,{children:[`Cap each review at this many lines (the rest is truncated with an ellipsis) so one very long review can’t blow up the card height — important once real, lengthy reviews come in. Choose “Full text” to never truncate. Short reviews are unaffected. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`8`}),`, `,_jsx(_components.code,{children:`12`}),`.`]})}),_jsx(ResponseField,{name:`reviewsBg`,type:`Enums\\\\ReviewsBg|string|null`,id:`param-reviews-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`reviewsBgCustom`,type:`?string`,id:`param-reviews-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`reviewsBgLight`,type:`Enums\\\\ReviewsBgLight|string|null`,id:`param-reviews-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`reviewsBgLightCustom`,type:`?string`,id:`param-reviews-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`reviewsFontOverrides`,type:`Collection\u003cint, GoogleReviewsWidgetReviewsFontOverridesItem>|null`,id:`param-reviews-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`GoogleReviewsWidgetReviewsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`GoogleReviewsWidgetReviewsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GoogleReviewsWidgetReviewsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-62`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-15`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-15`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-15`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-15`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-15`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-15`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-15`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem>|null`,id:`param-uploads-15`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-15`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-63`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-15`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-15`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-60`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-15`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-61`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`reviewsCtaLabel`,type:`?string`,id:`param-reviews-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`reviewsCtaUrl`,type:`?string`,id:`param-reviews-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`reviewsCtaNewTab`,type:`?bool`,id:`param-reviews-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`reviewsCtaVariant`,type:`Enums\\\\ReviewsCtaVariant|string|null`,id:`param-reviews-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaSize`,type:`Enums\\\\ReviewsCtaSize|string|null`,id:`param-reviews-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaRadius`,type:`Enums\\\\ReviewsCtaRadius|string|null`,id:`param-reviews-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaColor`,type:`?string`,id:`param-reviews-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`reviewsCtaColorLight`,type:`?string`,id:`param-reviews-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`reviewsCtaTextColor`,type:`?string`,id:`param-reviews-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`reviewsCtaTextColorLight`,type:`?string`,id:`param-reviews-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`reviewsCtaHoverColor`,type:`?string`,id:`param-reviews-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`reviewsCtaHoverColorLight`,type:`?string`,id:`param-reviews-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`reviewsCtaStyle`,type:`Enums\\\\ReviewsCtaStyle|string|null`,id:`param-reviews-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaShadowColor`,type:`?string`,id:`param-reviews-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`reviewsCtaShadowColorLight`,type:`?string`,id:`param-reviews-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`reviewsCtaAnimation`,type:`Enums\\\\ReviewsCtaAnimation|string|null`,id:`param-reviews-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaIcon`,type:`?string`,id:`param-reviews-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`reviewsCtaIconFamily`,type:`Enums\\\\ReviewsCtaIconFamily|string|null`,id:`param-reviews-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaIconPosition`,type:`Enums\\\\ReviewsCtaIconPosition|string|null`,id:`param-reviews-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaIconNudge`,type:`?bool`,id:`param-reviews-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-19`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-62`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`TestimonialsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TestimonialsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`testimonials`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\TestimonialsWidgetType|string`,required:true,id:`param-type-22`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`testimonials`}),`. One of `,_jsx(_components.code,{children:`testimonials`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-64`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-26`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrow`,type:`?string`,id:`param-testimonials-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`testimonialsEyebrowColor`,type:`?string`,id:`param-testimonials-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`testimonialsEyebrowColorLight`,type:`?string`,id:`param-testimonials-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`testimonialsEyebrowWeight`,type:`Enums\\\\TestimonialsEyebrowWeight|string|null`,id:`param-testimonials-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrowSize`,type:`Enums\\\\TestimonialsEyebrowSize|string|null`,id:`param-testimonials-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsHeading`,type:`?string`,id:`param-testimonials-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the testimonials.`})}),_jsx(ResponseField,{name:`testimonialsHeadingColor`,type:`?string`,id:`param-testimonials-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`testimonialsHeadingColorLight`,type:`?string`,id:`param-testimonials-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsHeadingWeight`,type:`Enums\\\\TestimonialsHeadingWeight|string|null`,id:`param-testimonials-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsIntro`,type:`?string`,id:`param-testimonials-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`testimonialsIntroColor`,type:`?string`,id:`param-testimonials-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`testimonialsIntroColorLight`,type:`?string`,id:`param-testimonials-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsIntroWeight`,type:`Enums\\\\TestimonialsIntroWeight|string|null`,id:`param-testimonials-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsIntroSize`,type:`Enums\\\\TestimonialsIntroSize|string|null`,id:`param-testimonials-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsAlign`,type:`Enums\\\\TestimonialsAlign|string|null`,id:`param-testimonials-align`,children:_jsxs(_components.p,{children:[`Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsFeaturedOnly`,type:`?bool`,id:`param-testimonials-featured-only`,children:_jsx(_components.p,{children:`Show only testimonials you have flagged “Featured” in the Testimonials manager — hand-curate exactly which appear.`})}),_jsx(ResponseField,{name:`testimonialsCount`,type:`?int`,id:`param-testimonials-count`,children:_jsx(_components.p,{children:`The most testimonials to show (featured first). 1 to 30.`})}),_jsx(ResponseField,{name:`testimonialsLayout`,type:`Enums\\\\TestimonialsLayout|string|null`,id:`param-testimonials-layout`,children:_jsxs(_components.p,{children:[`Animated carousel: a continuous, auto-scrolling marquee of cards (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered, Pinterest-style grid that hugs each quote’s length. One of `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`masonry`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsColumns`,type:`Enums\\\\TestimonialsColumns|string|null`,id:`param-testimonials-columns`,children:_jsxs(_components.p,{children:[`How many cards per row (grid) or columns (masonry). Auto fits as many as comfortably fit. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsSpeed`,type:`Enums\\\\TestimonialsSpeed|string|null`,id:`param-testimonials-speed`,children:_jsxs(_components.p,{children:[`How fast the carousel auto-scrolls. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsDirection`,type:`Enums\\\\TestimonialsDirection|string|null`,id:`param-testimonials-direction`,children:_jsxs(_components.p,{children:[`Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsGap`,type:`Enums\\\\TestimonialsGap|string|null`,id:`param-testimonials-gap`,children:_jsxs(_components.p,{children:[`Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardLayout`,type:`Enums\\\\TestimonialsCardLayout|string|null`,id:`param-testimonials-card-layout`,children:_jsxs(_components.p,{children:[`Quote-led: a large quotation mark over the quote, with the author in a footer (the classic testimonial look). Accent bar: the quote beside a bold accent bar. Classic: the author on top (photo + name), then the quote — like a review card. One of `,_jsx(_components.code,{children:`quote`}),`, `,_jsx(_components.code,{children:`bar`}),`, `,_jsx(_components.code,{children:`classic`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsShowQuoteMark`,type:`?bool`,id:`param-testimonials-show-quote-mark`,children:_jsx(_components.p,{children:`The oversized “ glyph on the quote-led and accent-bar layouts.`})}),_jsx(ResponseField,{name:`testimonialsShowAvatar`,type:`?bool`,id:`param-testimonials-show-avatar`,children:_jsx(_components.p,{children:`Show the author’s photo (falls back to a lettered initial when none is set).`})}),_jsx(ResponseField,{name:`testimonialsShowTitle`,type:`?bool`,id:`param-testimonials-show-title`,children:_jsx(_components.p,{children:`Show author role / context.`})}),_jsx(ResponseField,{name:`testimonialsShowRating`,type:`?bool`,id:`param-testimonials-show-rating`,children:_jsx(_components.p,{children:`Off by default — a testimonial usually leads with the quote. Turn on to show each testimonial’s star rating.`})}),_jsx(ResponseField,{name:`testimonialsLinkLabel`,type:`?string`,id:`param-testimonials-link-label`,children:_jsx(_components.p,{children:`The text for a testimonial’s optional “Source link” (set per testimonial in the Testimonials manager). Shown only on testimonials that have a link.`})}),_jsx(ResponseField,{name:`testimonialsCardStyle`,type:`Enums\\\\TestimonialsCardStyle|string|null`,id:`param-testimonials-card-style`,children:_jsxs(_components.p,{children:[`The card treatment. Spine (the default) embeds a color rail along the top; Raised is a quiet lit card; Luxe a frosted glass panel; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleRadius`,type:`Enums\\\\TestimonialsCardStyleRadius|string|null`,id:`param-testimonials-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleAccentColor`,type:`?string`,id:`param-testimonials-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`testimonialsCardStyleAccentColorLight`,type:`?string`,id:`param-testimonials-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsCardStyleForgeScope`,type:`Enums\\\\TestimonialsCardStyleForgeScope|string|null`,id:`param-testimonials-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleForgeWeight`,type:`Enums\\\\TestimonialsCardStyleForgeWeight|string|null`,id:`param-testimonials-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardHover`,type:`Enums\\\\TestimonialsCardHover|string|null`,id:`param-testimonials-card-hover`,children:_jsxs(_components.p,{children:[`What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardWidth`,type:`Enums\\\\TestimonialsCardWidth|string|null`,id:`param-testimonials-card-width`,children:_jsxs(_components.p,{children:[`Sets the carousel card width and the minimum card width in the grid/masonry layouts. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardHeight`,type:`Enums\\\\TestimonialsCardHeight|string|null`,id:`param-testimonials-card-height`,children:_jsxs(_components.p,{children:[`Auto hugs the content; the taller presets give every card a consistent minimum height (grid + carousel). The masonry layout ignores this and staggers card heights itself. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardAlign`,type:`Enums\\\\TestimonialsCardAlign|string|null`,id:`param-testimonials-card-align`,children:_jsxs(_components.p,{children:[`How the quote and author align inside each card. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsStarColor`,type:`?string`,id:`param-testimonials-star-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use a warm amber. Applies in both themes (only when ratings are shown).`})}),_jsx(ResponseField,{name:`testimonialsAccentColor`,type:`?string`,id:`param-testimonials-accent-color`,children:_jsx(_components.p,{children:`Optional — the quotation mark, the accent bar, and the lettered-avatar background. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`testimonialsAccentColorLight`,type:`?string`,id:`param-testimonials-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsNameSize`,type:`Enums\\\\TestimonialsNameSize|string|null`,id:`param-testimonials-name-size`,children:_jsxs(_components.p,{children:[`Name size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsNameWeight`,type:`Enums\\\\TestimonialsNameWeight|string|null`,id:`param-testimonials-name-weight`,children:_jsxs(_components.p,{children:[`Name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsNameColor`,type:`?string`,id:`param-testimonials-name-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`testimonialsNameColorLight`,type:`?string`,id:`param-testimonials-name-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsTitleSize`,type:`Enums\\\\TestimonialsTitleSize|string|null`,id:`param-testimonials-title-size`,children:_jsxs(_components.p,{children:[`Role size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsTitleWeight`,type:`Enums\\\\TestimonialsTitleWeight|string|null`,id:`param-testimonials-title-weight`,children:_jsxs(_components.p,{children:[`Role weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsTitleColor`,type:`?string`,id:`param-testimonials-title-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the faint text color.`})}),_jsx(ResponseField,{name:`testimonialsTitleColorLight`,type:`?string`,id:`param-testimonials-title-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsQuoteSize`,type:`Enums\\\\TestimonialsQuoteSize|string|null`,id:`param-testimonials-quote-size`,children:_jsxs(_components.p,{children:[`Quote size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteWeight`,type:`Enums\\\\TestimonialsQuoteWeight|string|null`,id:`param-testimonials-quote-weight`,children:_jsxs(_components.p,{children:[`Quote weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteColor`,type:`?string`,id:`param-testimonials-quote-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the theme text color.`})}),_jsx(ResponseField,{name:`testimonialsQuoteColorLight`,type:`?string`,id:`param-testimonials-quote-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsQuoteClamp`,type:`Enums\\\\TestimonialsQuoteClamp|string|null`,id:`param-testimonials-quote-clamp`,children:_jsxs(_components.p,{children:[`Cap each quote at this many lines (the rest is truncated with an ellipsis) so one very long testimonial can’t blow up the card height. Choose “Full text” to never truncate. Short quotes are unaffected. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`8`}),`, `,_jsx(_components.code,{children:`12`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsBg`,type:`Enums\\\\TestimonialsBg|string|null`,id:`param-testimonials-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsBgCustom`,type:`?string`,id:`param-testimonials-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`testimonialsBgLight`,type:`Enums\\\\TestimonialsBgLight|string|null`,id:`param-testimonials-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsBgLightCustom`,type:`?string`,id:`param-testimonials-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`testimonialsFontOverrides`,type:`Collection\u003cint, TestimonialsWidgetTestimonialsFontOverridesItem>|null`,id:`param-testimonials-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`TestimonialsWidgetTestimonialsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`TestimonialsWidgetTestimonialsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TestimonialsWidgetTestimonialsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-65`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-16`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-16`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-16`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-16`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-16`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-16`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-16`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem>|null`,id:`param-uploads-16`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-16`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-66`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-16`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-16`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-63`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-16`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-64`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`testimonialsCtaLabel`,type:`?string`,id:`param-testimonials-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`testimonialsCtaUrl`,type:`?string`,id:`param-testimonials-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`testimonialsCtaNewTab`,type:`?bool`,id:`param-testimonials-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`testimonialsCtaVariant`,type:`Enums\\\\TestimonialsCtaVariant|string|null`,id:`param-testimonials-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaSize`,type:`Enums\\\\TestimonialsCtaSize|string|null`,id:`param-testimonials-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaRadius`,type:`Enums\\\\TestimonialsCtaRadius|string|null`,id:`param-testimonials-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaColor`,type:`?string`,id:`param-testimonials-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`testimonialsCtaColorLight`,type:`?string`,id:`param-testimonials-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`testimonialsCtaTextColor`,type:`?string`,id:`param-testimonials-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`testimonialsCtaTextColorLight`,type:`?string`,id:`param-testimonials-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`testimonialsCtaHoverColor`,type:`?string`,id:`param-testimonials-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`testimonialsCtaHoverColorLight`,type:`?string`,id:`param-testimonials-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`testimonialsCtaStyle`,type:`Enums\\\\TestimonialsCtaStyle|string|null`,id:`param-testimonials-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaShadowColor`,type:`?string`,id:`param-testimonials-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`testimonialsCtaShadowColorLight`,type:`?string`,id:`param-testimonials-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`testimonialsCtaAnimation`,type:`Enums\\\\TestimonialsCtaAnimation|string|null`,id:`param-testimonials-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIcon`,type:`?string`,id:`param-testimonials-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`testimonialsCtaIconFamily`,type:`Enums\\\\TestimonialsCtaIconFamily|string|null`,id:`param-testimonials-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIconPosition`,type:`Enums\\\\TestimonialsCtaIconPosition|string|null`,id:`param-testimonials-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIconNudge`,type:`?bool`,id:`param-testimonials-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-20`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-65`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`InstagramFeedWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\InstagramFeedWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`instagram-feed`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\InstagramFeedWidgetType|string`,required:true,id:`param-type-23`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`instagram-feed`}),`. One of `,_jsx(_components.code,{children:`instagram-feed`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-67`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-27`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`instagramEyebrow`,type:`?string`,id:`param-instagram-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`instagramEyebrowColor`,type:`?string`,id:`param-instagram-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`instagramEyebrowColorLight`,type:`?string`,id:`param-instagram-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`instagramEyebrowWeight`,type:`Enums\\\\InstagramEyebrowWeight|string|null`,id:`param-instagram-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`instagramEyebrowSize`,type:`Enums\\\\InstagramEyebrowSize|string|null`,id:`param-instagram-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`instagramHeading`,type:`?string`,id:`param-instagram-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the feed.`})}),_jsx(ResponseField,{name:`instagramHeadingColor`,type:`?string`,id:`param-instagram-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`instagramHeadingColorLight`,type:`?string`,id:`param-instagram-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`instagramHeadingWeight`,type:`Enums\\\\InstagramHeadingWeight|string|null`,id:`param-instagram-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`instagramIntro`,type:`?string`,id:`param-instagram-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`instagramIntroColor`,type:`?string`,id:`param-instagram-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`instagramIntroColorLight`,type:`?string`,id:`param-instagram-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`instagramIntroWeight`,type:`Enums\\\\InstagramIntroWeight|string|null`,id:`param-instagram-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`instagramIntroSize`,type:`Enums\\\\InstagramIntroSize|string|null`,id:`param-instagram-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`instagramAlign`,type:`Enums\\\\InstagramAlign|string|null`,id:`param-instagram-align`,children:_jsxs(_components.p,{children:[`Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`instagramFeaturedOnly`,type:`?bool`,id:`param-instagram-featured-only`,children:_jsx(_components.p,{children:`Show only posts you have flagged “Featured” in the Instagram Posts manager — hand-curate exactly which appear.`})}),_jsx(ResponseField,{name:`instagramCount`,type:`?int`,id:`param-instagram-count`,children:_jsx(_components.p,{children:`The most posts to show (newest first). 1 to 30.`})}),_jsx(ResponseField,{name:`instagramMediaFilter`,type:`Enums\\\\InstagramMediaFilter|string|null`,id:`param-instagram-media-filter`,children:_jsxs(_components.p,{children:[`Filter this feed by media type. “Photos” keeps image and album posts; “Videos \u0026 reels” keeps only video posts. This is per-feed display only — it doesn’t change what gets synced. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`photos`}),`, `,_jsx(_components.code,{children:`videos`}),`.`]})}),_jsx(ResponseField,{name:`instagramLayout`,type:`Enums\\\\InstagramLayout|string|null`,id:`param-instagram-layout`,children:_jsxs(_components.p,{children:[`Carousel: a continuous, auto-scrolling marquee strip (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered grid that hugs each image’s shape. Mosaic Photo Wall: an edge-to-edge, gap-free photo wall where rows are scaled to a common height (like Flickr / Google Photos) — the richest option for photos. One of `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`masonry`}),`, `,_jsx(_components.code,{children:`justified`}),`.`]})}),_jsx(ResponseField,{name:`instagramColumns`,type:`Enums\\\\InstagramColumns|string|null`,id:`param-instagram-columns`,children:_jsxs(_components.p,{children:[`How many tiles per row (grid) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout.) One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`.`]})}),_jsx(ResponseField,{name:`instagramJustifiedHeight`,type:`Enums\\\\InstagramJustifiedHeight|string|null`,id:`param-instagram-justified-height`,children:_jsxs(_components.p,{children:[`The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`instagramJustifiedVary`,type:`?bool`,id:`param-instagram-justified-vary`,children:_jsx(_components.p,{children:`For feeds where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.`})}),_jsx(ResponseField,{name:`instagramSpeed`,type:`Enums\\\\InstagramSpeed|string|null`,id:`param-instagram-speed`,children:_jsxs(_components.p,{children:[`How fast the carousel auto-scrolls. The feed runs on its own speed scale so two marquees on a page never scroll in lockstep. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`instagramDirection`,type:`Enums\\\\InstagramDirection|string|null`,id:`param-instagram-direction`,children:_jsxs(_components.p,{children:[`Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`instagramGap`,type:`Enums\\\\InstagramGap|string|null`,id:`param-instagram-gap`,children:_jsxs(_components.p,{children:[`Gap between tiles. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`instagramAspect`,type:`Enums\\\\InstagramAspect|string|null`,id:`param-instagram-aspect`,children:_jsxs(_components.p,{children:[`Crop each image to a consistent shape. “Original” keeps each image’s own ratio (best with the masonry layout). One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`landscape`}),`, `,_jsx(_components.code,{children:`original`}),`.`]})}),_jsx(ResponseField,{name:`instagramCardWidth`,type:`Enums\\\\InstagramCardWidth|string|null`,id:`param-instagram-card-width`,children:_jsxs(_components.p,{children:[`Sets the carousel tile width and the minimum tile width in the grid/masonry layouts. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`instagramRadius`,type:`Enums\\\\InstagramRadius|string|null`,id:`param-instagram-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`.`]})}),_jsx(ResponseField,{name:`instagramCardHover`,type:`Enums\\\\InstagramCardHover|string|null`,id:`param-instagram-card-hover`,children:_jsxs(_components.p,{children:[`What a tile does on hover. Lift/Glow are best for image tiles; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`instagramShowVideoBadge`,type:`?bool`,id:`param-instagram-show-video-badge`,children:_jsx(_components.p,{children:`A small corner glyph marking a video, reel, or carousel album.`})}),_jsx(ResponseField,{name:`instagramShowPermalinkIcon`,type:`?bool`,id:`param-instagram-show-permalink-icon`,children:_jsx(_components.p,{children:`A corner Instagram glyph on each tile — the one opt-in link out to the post (opens in a new tab). The tile itself opens the on-site lightbox.`})}),_jsx(ResponseField,{name:`instagramShowCardLikes`,type:`?bool`,id:`param-instagram-show-card-likes`,children:_jsx(_components.p,{children:`A small heart + like count in the bottom corner of each tile. Off by default. (A post whose account hides like counts on Instagram shows nothing.)`})}),_jsx(ResponseField,{name:`instagramGlyphSize`,type:`Enums\\\\InstagramGlyphSize|string|null`,id:`param-instagram-glyph-size`,children:_jsxs(_components.p,{children:[`Size of the corner glyph, the video/reel badge, and the play affordance on video tiles. All three options are larger than the old fixed size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`instagramShowCaption`,type:`?bool`,id:`param-instagram-show-caption`,children:_jsx(_components.p,{children:`Off by default (the classic image-only grid). When on, choose where the caption appears below.`})}),_jsx(ResponseField,{name:`instagramCaptionMode`,type:`Enums\\\\InstagramCaptionMode|string|null`,id:`param-instagram-caption-mode`,children:_jsxs(_components.p,{children:[`Caption placement. One of `,_jsx(_components.code,{children:`below`}),`, `,_jsx(_components.code,{children:`hover`}),`.`]})}),_jsx(ResponseField,{name:`instagramAccentColor`,type:`?string`,id:`param-instagram-accent-color`,children:_jsx(_components.p,{children:`Optional — color of the corner glyph + the hover wash. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`instagramAccentColorLight`,type:`?string`,id:`param-instagram-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`instagramLikeColor`,type:`?string`,id:`param-instagram-like-color`,children:_jsx(_components.p,{children:`Optional — color of the like heart on the tiles and in the lightbox. Leave empty to use the brand coral.`})}),_jsx(ResponseField,{name:`instagramLikeColorLight`,type:`?string`,id:`param-instagram-like-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`instagramCaptionClamp`,type:`Enums\\\\InstagramCaptionClamp|string|null`,id:`param-instagram-caption-clamp`,children:_jsxs(_components.p,{children:[`Cap each caption at this many lines so a long caption can’t blow up the tile. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`1`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`instagramCaptionSize`,type:`Enums\\\\InstagramCaptionSize|string|null`,id:`param-instagram-caption-size`,children:_jsxs(_components.p,{children:[`Caption size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`instagramCaptionWeight`,type:`Enums\\\\InstagramCaptionWeight|string|null`,id:`param-instagram-caption-weight`,children:_jsxs(_components.p,{children:[`Caption weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`instagramCaptionColor`,type:`?string`,id:`param-instagram-caption-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color (below mode) / white (hover mode).`})}),_jsx(ResponseField,{name:`instagramCaptionColorLight`,type:`?string`,id:`param-instagram-caption-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`instagramShowLikes`,type:`?bool`,id:`param-instagram-show-likes`,children:_jsx(_components.p,{children:`Show the post’s like count in the lightbox. (An account that hides like counts on Instagram reports none — then nothing shows.)`})}),_jsx(ResponseField,{name:`instagramCommentsDisplay`,type:`Enums\\\\InstagramCommentsDisplay|string|null`,id:`param-instagram-comments-display`,children:_jsxs(_components.p,{children:[`How comments appear in the lightbox. “Count only” shows just the total. “Full list” shows the actual comments — requires “Fetch post comments” in Connections → Instagram to be on so the comment text is synced. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`count`}),`, `,_jsx(_components.code,{children:`list`}),`.`]})}),_jsx(ResponseField,{name:`instagramShowCommentAuthors`,type:`?bool`,id:`param-instagram-show-comment-authors`,children:_jsx(_components.p,{children:`Show each commenter’s Instagram handle next to their comment. Turn off for a cleaner, anonymous list of just the comment text.`})}),_jsx(ResponseField,{name:`instagramLightboxShowPermalink`,type:`?bool`,id:`param-instagram-lightbox-show-permalink`,children:_jsx(_components.p,{children:`The opt-in outbound link in the lightbox. Turn it off to keep visitors fully on your site (the corner glyph on each tile is a separate setting).`})}),_jsx(ResponseField,{name:`instagramBg`,type:`Enums\\\\InstagramBg|string|null`,id:`param-instagram-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`instagramBgCustom`,type:`?string`,id:`param-instagram-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`instagramBgLight`,type:`Enums\\\\InstagramBgLight|string|null`,id:`param-instagram-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`instagramBgLightCustom`,type:`?string`,id:`param-instagram-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`instagramFontOverrides`,type:`Collection\u003cint, InstagramFeedWidgetInstagramFontOverridesItem>|null`,id:`param-instagram-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`InstagramFeedWidgetInstagramFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`InstagramFeedWidgetInstagramFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\InstagramFeedWidgetInstagramFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-68`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-17`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-17`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-17`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-17`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-17`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-17`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-17`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, InstagramFeedWidgetInstagramFontOverridesItemUploadsItem>|null`,id:`param-uploads-17`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`InstagramFeedWidgetInstagramFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`InstagramFeedWidgetInstagramFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\InstagramFeedWidgetInstagramFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-17`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-69`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-17`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-17`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-66`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-17`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-67`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`instagramCtaLabel`,type:`?string`,id:`param-instagram-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`instagramCtaUrl`,type:`?string`,id:`param-instagram-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`instagramCtaNewTab`,type:`?bool`,id:`param-instagram-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`instagramCtaVariant`,type:`Enums\\\\InstagramCtaVariant|string|null`,id:`param-instagram-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaSize`,type:`Enums\\\\InstagramCtaSize|string|null`,id:`param-instagram-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaRadius`,type:`Enums\\\\InstagramCtaRadius|string|null`,id:`param-instagram-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaColor`,type:`?string`,id:`param-instagram-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`instagramCtaColorLight`,type:`?string`,id:`param-instagram-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`instagramCtaTextColor`,type:`?string`,id:`param-instagram-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`instagramCtaTextColorLight`,type:`?string`,id:`param-instagram-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`instagramCtaHoverColor`,type:`?string`,id:`param-instagram-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`instagramCtaHoverColorLight`,type:`?string`,id:`param-instagram-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`instagramCtaStyle`,type:`Enums\\\\InstagramCtaStyle|string|null`,id:`param-instagram-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaShadowColor`,type:`?string`,id:`param-instagram-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`instagramCtaShadowColorLight`,type:`?string`,id:`param-instagram-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`instagramCtaAnimation`,type:`Enums\\\\InstagramCtaAnimation|string|null`,id:`param-instagram-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaIcon`,type:`?string`,id:`param-instagram-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`instagramCtaIconFamily`,type:`Enums\\\\InstagramCtaIconFamily|string|null`,id:`param-instagram-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaIconPosition`,type:`Enums\\\\InstagramCtaIconPosition|string|null`,id:`param-instagram-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaIconNudge`,type:`?bool`,id:`param-instagram-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-21`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-68`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`GalleryPreviewWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryPreviewWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`gallery-preview`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\GalleryPreviewWidgetType|string`,required:true,id:`param-type-24`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`gallery-preview`}),`. One of `,_jsx(_components.code,{children:`gallery-preview`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-70`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-28`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`galleryEyebrow`,type:`?string`,id:`param-gallery-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`galleryEyebrowColor`,type:`?string`,id:`param-gallery-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`galleryEyebrowColorLight`,type:`?string`,id:`param-gallery-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`galleryEyebrowWeight`,type:`Enums\\\\GalleryEyebrowWeight|string|null`,id:`param-gallery-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryEyebrowSize`,type:`Enums\\\\GalleryEyebrowSize|string|null`,id:`param-gallery-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`galleryHeading`,type:`?string`,id:`param-gallery-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the photos.`})}),_jsx(ResponseField,{name:`galleryHeadingColor`,type:`?string`,id:`param-gallery-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`galleryHeadingColorLight`,type:`?string`,id:`param-gallery-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryHeadingWeight`,type:`Enums\\\\GalleryHeadingWeight|string|null`,id:`param-gallery-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryIntro`,type:`?string`,id:`param-gallery-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`galleryIntroColor`,type:`?string`,id:`param-gallery-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`galleryIntroColorLight`,type:`?string`,id:`param-gallery-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryIntroWeight`,type:`Enums\\\\GalleryIntroWeight|string|null`,id:`param-gallery-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryIntroSize`,type:`Enums\\\\GalleryIntroSize|string|null`,id:`param-gallery-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`galleryAlign`,type:`Enums\\\\GalleryAlign|string|null`,id:`param-gallery-align`,children:_jsxs(_components.p,{children:[`Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`gallerySource`,type:`Enums\\\\GallerySource|string|null`,id:`param-gallery-source`,children:_jsxs(_components.p,{children:[`Album: a curated set you pick and order by hand — best for a designed page. Folder: automatically shows every image filed in a media-library folder (newest first) — best for bulk collections you organize in the media manager. Feed: a set that refreshes itself on a schedule from an external photo store, so the gallery shows different photos over time. One of `,_jsx(_components.code,{children:`album`}),`, `,_jsx(_components.code,{children:`folder`}),`, `,_jsx(_components.code,{children:`feed`}),`.`]})}),_jsx(ResponseField,{name:`album`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-album`,children:_jsxs(_components.p,{children:[`The Photo Album to display. Create and fill albums in the Photo Albums manager. The related `,_jsx(_components.code,{children:`photo-album`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryFolder`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-gallery-folder`,children:_jsxs(_components.p,{children:[`The media-library folder to display. Every image filed in it (and its subfolders, if enabled) is shown, newest first. The related `,_jsx(_components.code,{children:`image-folder`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryIncludeSubfolders`,type:`?bool`,id:`param-gallery-include-subfolders`,children:_jsx(_components.p,{children:`Also show images filed in folders inside the selected folder.`})}),_jsx(ResponseField,{name:`photoFeed`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-photo-feed`,children:_jsxs(_components.p,{children:[`The Photo Feed to display. This gallery stays pointed at the feed while the feed replaces its photos on its own schedule. Create and configure feeds in the Photo Feeds manager. The related `,_jsx(_components.code,{children:`photo-feed`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryMaxPhotos`,type:`?int`,id:`param-gallery-max-photos`,children:_jsx(_components.p,{children:`Cap the teaser to this many photos. 0 shows everything in the selected source (folder photos are newest-first). 0 to 200.`})}),_jsx(ResponseField,{name:`galleryLayout`,type:`Enums\\\\GalleryLayout|string|null`,id:`param-gallery-layout`,children:_jsxs(_components.p,{children:[`Mosaic Photo Wall: an edge-to-edge wall where rows are scaled to a common height (like Flickr / Google Photos), cropped around each photo’s focal point — the richest option. Masonry: a staggered grid that hugs each photo’s shape. Grid: a tidy, uniform grid. Spotlight: every group of eight opens on an oversized lead photo, sides alternating on wide screens. Shaped Tiles: a portrait grid whose tiles cycle through slab, arch and orb shapes. Scrolling Banner: one edge-to-edge row that drifts sideways forever, so a long album reads as a ribbon of photos rather than a block — the option for a band between two sections rather than a gallery page. Panorama Wall: several rows, far wider than the screen, traveling sideways at slightly different speeds — and the visitor can push it along or against with a drag or a trackpad swipe. Vertical Ribbon: a band of columns running down the page instead of across it, neighboring columns traveling opposite ways, so the section reads as a moving curtain of photographs. One of `,_jsx(_components.code,{children:`justified`}),`, `,_jsx(_components.code,{children:`masonry`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`shaped`}),`, `,_jsx(_components.code,{children:`banner`}),`, `,_jsx(_components.code,{children:`panorama`}),`, `,_jsx(_components.code,{children:`ribbon`}),`.`]})}),_jsx(ResponseField,{name:`galleryColumns`,type:`Enums\\\\GalleryColumns|string|null`,id:`param-gallery-columns`,children:_jsxs(_components.p,{children:[`How many tiles per row (grid, shaped tiles) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout; Spotlight sets its own pattern.) One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`.`]})}),_jsx(ResponseField,{name:`galleryJustifiedHeight`,type:`Enums\\\\GalleryJustifiedHeight|string|null`,id:`param-gallery-justified-height`,children:_jsxs(_components.p,{children:[`The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerHeight`,type:`Enums\\\\GalleryBannerHeight|string|null`,id:`param-gallery-banner-height`,children:_jsxs(_components.p,{children:[`How tall the moving row stands. Each photo keeps its own shape, so a taller banner shows wider photos and fewer of them at once. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerSpeed`,type:`Enums\\\\GalleryBannerSpeed|string|null`,id:`param-gallery-banner-speed`,children:_jsxs(_components.p,{children:[`How fast the row drifts. It also surges briefly with the page’s own scrolling, then settles back — so the band reacts to the visitor instead of ignoring them. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerDirection`,type:`Enums\\\\GalleryBannerDirection|string|null`,id:`param-gallery-banner-direction`,children:_jsxs(_components.p,{children:[`Banner direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerFade`,type:`?bool`,id:`param-gallery-banner-fade`,children:_jsx(_components.p,{children:`Fades the row out at both ends so photos scroll in and out instead of being cut off by a hard edge.`})}),_jsx(ResponseField,{name:`galleryPanoramaRows`,type:`Enums\\\\GalleryPanoramaRows|string|null`,id:`param-gallery-panorama-rows`,children:_jsxs(_components.p,{children:[`How many rows of photos the wall is dealt across. Photos go into the rows in turn, so consecutive shots land in different rows rather than stacking up together. Deep walls want a big set — a row needs at least three photos of its own, so a small album quietly uses fewer, fuller rows than you pick here. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`7`}),`, `,_jsx(_components.code,{children:`8`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaHeight`,type:`Enums\\\\GalleryPanoramaHeight|string|null`,id:`param-gallery-panorama-height`,children:_jsxs(_components.p,{children:[`How tall each row stands, so the wall’s total depth is this times the number of rows — an eight-row Tall panorama fills a screen and then some. Each photo keeps its own shape, so taller rows show wider photos and fewer of them. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaSpeed`,type:`Enums\\\\GalleryPanoramaSpeed|string|null`,id:`param-gallery-panorama-speed`,children:_jsxs(_components.p,{children:[`How fast the wall travels. Each row takes a slightly different share of this, so the rows shear gently against each other and the block reads as depth rather than as one sliding sheet. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDirection`,type:`Enums\\\\GalleryPanoramaDirection|string|null`,id:`param-gallery-panorama-direction`,children:_jsxs(_components.p,{children:[`Travel direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDrag`,type:`?bool`,id:`param-gallery-panorama-drag`,children:_jsx(_components.p,{children:`Dragging the wall (or swiping sideways on a trackpad or phone) pushes it along or against its travel, and it glides back into its own pace when let go. Vertical scrolling always still scrolls the page. Needs site animations on in Site design → Motion.`})}),_jsx(ResponseField,{name:`galleryPanoramaFade`,type:`?bool`,id:`param-gallery-panorama-fade`,children:_jsx(_components.p,{children:`Fades the rows out at both ends so photos travel in and out instead of being cut off by a hard edge.`})}),_jsx(ResponseField,{name:`galleryRibbonColumns`,type:`Enums\\\\GalleryRibbonColumns|string|null`,id:`param-gallery-ribbon-columns`,children:_jsxs(_components.p,{children:[`How many columns of photos the band is dealt across. Photos go into the columns in turn, so consecutive shots land in different columns rather than stacking up together. Narrow screens show fewer columns than you pick here (two on a phone, three on a tablet) — because photos in a 50-pixel sliver are not photos. A column needs at least three photos of its own, so a small album quietly uses fewer, fuller columns. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonHeight`,type:`Enums\\\\GalleryRibbonHeight|string|null`,id:`param-gallery-ribbon-height`,children:_jsxs(_components.p,{children:[`How tall the band stands — the window the columns travel through, not the columns themselves, which are always far taller than it. Each photo keeps its own shape and fills its column’s width, so the columns show more photos at once the taller the band is. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonSpeed`,type:`Enums\\\\GalleryRibbonSpeed|string|null`,id:`param-gallery-ribbon-speed`,children:_jsxs(_components.p,{children:[`How fast the columns travel. Each takes a slightly different share of this, so the band reads as a weave rather than as one sheet sliding. Slower than the sideways layouts at every setting on purpose: this moves along the same axis the visitor scrolls in, where the same speed feels far more urgent. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonDirection`,type:`Enums\\\\GalleryRibbonDirection|string|null`,id:`param-gallery-ribbon-direction`,children:_jsxs(_components.p,{children:[`Which way the first column travels. With alternating columns on (below), its neighbors go the other way. One of `,_jsx(_components.code,{children:`up`}),`, `,_jsx(_components.code,{children:`down`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonAlternate`,type:`?bool`,id:`param-gallery-ribbon-alternate`,children:_jsx(_components.p,{children:`Send neighboring columns opposite ways, which is what makes the band read as a weave. Turn it off and the whole band travels one way together — quieter, and closer to a conventional scrolling wall.`})}),_jsx(ResponseField,{name:`galleryRibbonFade`,type:`?bool`,id:`param-gallery-ribbon-fade`,children:_jsx(_components.p,{children:`Fades the columns out at the top and bottom so photos travel in and out instead of being cut off by a hard edge.`})}),_jsx(ResponseField,{name:`galleryJustifiedVary`,type:`?bool`,id:`param-gallery-justified-vary`,children:_jsx(_components.p,{children:`For albums where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.`})}),_jsx(ResponseField,{name:`galleryGap`,type:`Enums\\\\GalleryGap|string|null`,id:`param-gallery-gap`,children:_jsxs(_components.p,{children:[`Gap between tiles. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`galleryRadius`,type:`Enums\\\\GalleryRadius|string|null`,id:`param-gallery-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardStyle`,type:`Enums\\\\GalleryCardStyle|string|null`,id:`param-gallery-card-style`,children:_jsxs(_components.p,{children:[`The tile surface. Raised floats each photo on a soft shadow (default); Plain is a clean edge-to-edge wall; Luxe / Outline / Poster frame it; Ticket / Bracket / Forge / Press add graphic structure. The photo fills the tile, so fill-based looks (Tint, Inlay) read as their frame + elevation. On the Shaped Tiles layout the structural looks (Ticket / Bracket / Forge / Press) fall back to their plain surface — their rectangular marks can’t follow an arch or orb. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColor`,type:`?string`,id:`param-gallery-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColorLight`,type:`?string`,id:`param-gallery-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryCardStyleForgeScope`,type:`Enums\\\\GalleryCardStyleForgeScope|string|null`,id:`param-gallery-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardStyleForgeWeight`,type:`Enums\\\\GalleryCardStyleForgeWeight|string|null`,id:`param-gallery-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardHover`,type:`Enums\\\\GalleryCardHover|string|null`,id:`param-gallery-card-hover`,children:_jsxs(_components.p,{children:[`What a tile does on hover, on top of the surface above. Glow (default) / Lift read best on photo tiles; Press collapses a Poster offset; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`galleryShowCaption`,type:`?bool`,id:`param-gallery-show-caption`,children:_jsx(_components.p,{children:`Overlay each photo’s alt text on hover. Off by default (a clean photo wall). The caption always shows in the lightbox.`})}),_jsx(ResponseField,{name:`galleryCaptionSize`,type:`Enums\\\\GalleryCaptionSize|string|null`,id:`param-gallery-caption-size`,children:_jsxs(_components.p,{children:[`Caption size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`galleryCaptionWeight`,type:`Enums\\\\GalleryCaptionWeight|string|null`,id:`param-gallery-caption-weight`,children:_jsxs(_components.p,{children:[`Caption weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryLightbox`,type:`?bool`,id:`param-gallery-lightbox`,children:_jsx(_components.p,{children:`Clicking a photo opens it full-size in an on-site lightbox (with previous / next). Turn off for a purely decorative wall that doesn’t enlarge.`})}),_jsx(ResponseField,{name:`galleryAccentColor`,type:`?string`,id:`param-gallery-accent-color`,children:_jsx(_components.p,{children:`Optional — color of the hover wash / glow. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`galleryAccentColorLight`,type:`?string`,id:`param-gallery-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryDrift`,type:`Enums\\\\GalleryDrift|string|null`,id:`param-gallery-drift`,children:_jsxs(_components.p,{children:[`A very slow pan-and-zoom on every photo, each tile on its own rhythm, so the wall stays quietly alive instead of holding perfectly still. Off by default: a still gallery costs nothing to keep on screen, and this runs continuously for as long as the page is open. Turn it on if you also switch on “Rotate photos automatically” below — a photo changing on a wall that is otherwise frozen reads as a glitch. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`galleryParallax`,type:`Enums\\\\GalleryParallax|string|null`,id:`param-gallery-parallax`,children:_jsxs(_components.p,{children:[`Sets every photo at its own depth: as the page scrolls, some slide with it and some against it, so the wall has layers instead of being one flat plane. It only moves while the visitor scrolls — nothing happens when the page is still. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`galleryShuffle`,type:`Enums\\\\GalleryShuffle|string|null`,id:`param-gallery-shuffle`,children:_jsxs(_components.p,{children:[`Every so often two photos trade places on the wall, gliding past each other into their new squares. Nothing resizes and nothing else on the wall moves — the grid’s squares are identical, so the photos simply swap seats. It holds still while a visitor’s pointer or keyboard is anywhere in the gallery, so nothing ever moves out from under a click. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`.`]})}),_jsx(ResponseField,{name:`galleryShuffleBatch`,type:`?int`,id:`param-gallery-shuffle-batch`,children:_jsx(_components.p,{children:`Two photos swap with each other; three or more pass their seats along in a ring, so more of the wall is moving at once. Higher numbers read as the wall dealing itself a new hand rather than as two photos changing places. 2 to 6.`})}),_jsx(ResponseField,{name:`galleryRotate`,type:`?bool`,id:`param-gallery-rotate`,children:_jsx(_components.p,{children:`Photos fade out a few at a time and are replaced from the rest of the source, so the gallery keeps changing while a visitor watches. Needs more photos in the source than are on screen — set “Maximum photos” above to less than the source holds. Set “Ambient drift” above to Subtle as well: a photo changing on a wall that is otherwise perfectly still reads as a glitch rather than as movement. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion.`})}),_jsx(ResponseField,{name:`galleryRotateStyle`,type:`Enums\\\\GalleryRotateStyle|string|null`,id:`param-gallery-rotate-style`,children:_jsxs(_components.p,{children:[`Cross-fade: the next photo dissolves over the old one as it eases in — the quietest change. Fade through a color: the tile also dips towards a flat color while the photos dissolve, so it reads as “phasing out” without ever going blank. Slide in: the next photo travels in over the old one, which drifts the same way behind it. Zoom through: the next photo settles out of a slight enlargement. Soften through: the photo blurs out of focus and the next one comes back into it. Wipe across: a clean edge travels over the tile, leaving the next photo behind it. Turn over: the tile turns like a card and comes back showing the next photo — the boldest of the seven. One of `,_jsx(_components.code,{children:`cross`}),`, `,_jsx(_components.code,{children:`veil`}),`, `,_jsx(_components.code,{children:`push`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`blur`}),`, `,_jsx(_components.code,{children:`wipe`}),`, `,_jsx(_components.code,{children:`turn`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateOrder`,type:`Enums\\\\GalleryRotateOrder|string|null`,id:`param-gallery-rotate-order`,children:_jsxs(_components.p,{children:[`Scattered spreads the changes over the whole wall, never twice in the same corner and never the same tile twice in a row. The other three move through the wall in a set direction, so the changes read as one gesture crossing the gallery rather than as separate events. One of `,_jsx(_components.code,{children:`scatter`}),`, `,_jsx(_components.code,{children:`wave`}),`, `,_jsx(_components.code,{children:`columns`}),`, `,_jsx(_components.code,{children:`rows`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateColor`,type:`?string`,id:`param-gallery-rotate-color`,children:_jsx(_components.p,{children:`Optional — leave empty to dip through the page background, which suits both themes. Set white for a brighter bloom, or the brand accent for a bolder pulse. The dip never reaches full strength, so the photo always shows through.`})}),_jsx(ResponseField,{name:`galleryRotateColorLight`,type:`?string`,id:`param-gallery-rotate-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryRotatePace`,type:`Enums\\\\GalleryRotatePace|string|null`,id:`param-gallery-rotate-pace`,children:_jsxs(_components.p,{children:[`The gap between one group of changes and the next. The real timing is deliberately uneven around this figure so the wall never feels metronomic. One of `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`, `,_jsx(_components.code,{children:`rapid`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateBatch`,type:`?int`,id:`param-gallery-rotate-batch`,children:_jsx(_components.p,{children:`How many tiles change per group. They never start on the same frame — each one follows the one before it by a beat, so a group reads as a ripple rather than a blink. 1 is the calmest; higher numbers keep more of the wall in motion. 1 to 6.`})}),_jsx(ResponseField,{name:`galleryRotateFade`,type:`Enums\\\\GalleryRotateFade|string|null`,id:`param-gallery-rotate-fade`,children:_jsxs(_components.p,{children:[`The length of one change, from the old photo to the new. Longer reads as a gentle phase; shorter as a snap — and short changes are the ones that read as choppy, so lean long. One of `,_jsx(_components.code,{children:`quick`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`lingering`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateReserve`,type:`?int`,id:`param-gallery-rotate-reserve`,children:_jsx(_components.p,{children:`How many photos beyond the ones on screen to send to the browser for the rotation to draw from — the bigger this is, the longer the gallery goes before a visitor sees a repeat. Retired photos go back to the end of the queue, so it cycles the whole reserve and then starts over. Cheap to raise: a reserved photo is a few URLs, well under 100 bytes once the page is compressed, and its image file is only fetched when it is about to appear. 0 to 500.`})}),_jsx(ResponseField,{name:`galleryBg`,type:`Enums\\\\GalleryBg|string|null`,id:`param-gallery-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`galleryBgCustom`,type:`?string`,id:`param-gallery-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`galleryBgLight`,type:`Enums\\\\GalleryBgLight|string|null`,id:`param-gallery-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`galleryBgLightCustom`,type:`?string`,id:`param-gallery-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`galleryFontOverrides`,type:`Collection\u003cint, GalleryPreviewWidgetGalleryFontOverridesItem>|null`,id:`param-gallery-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`GalleryPreviewWidgetGalleryFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryPreviewWidgetGalleryFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryPreviewWidgetGalleryFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-71`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-18`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-18`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-18`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-18`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-18`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-18`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-18`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem>|null`,id:`param-uploads-18`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-18`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-72`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-18`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-18`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-69`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-18`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-70`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`galleryCtaLabel`,type:`?string`,id:`param-gallery-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`galleryCtaUrl`,type:`?string`,id:`param-gallery-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`galleryCtaNewTab`,type:`?bool`,id:`param-gallery-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`galleryCtaVariant`,type:`Enums\\\\GalleryCtaVariant|string|null`,id:`param-gallery-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaSize`,type:`Enums\\\\GalleryCtaSize|string|null`,id:`param-gallery-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaRadius`,type:`Enums\\\\GalleryCtaRadius|string|null`,id:`param-gallery-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaColor`,type:`?string`,id:`param-gallery-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`galleryCtaColorLight`,type:`?string`,id:`param-gallery-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`galleryCtaTextColor`,type:`?string`,id:`param-gallery-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`galleryCtaTextColorLight`,type:`?string`,id:`param-gallery-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`galleryCtaHoverColor`,type:`?string`,id:`param-gallery-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`galleryCtaHoverColorLight`,type:`?string`,id:`param-gallery-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`galleryCtaStyle`,type:`Enums\\\\GalleryCtaStyle|string|null`,id:`param-gallery-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaShadowColor`,type:`?string`,id:`param-gallery-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`galleryCtaShadowColorLight`,type:`?string`,id:`param-gallery-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`galleryCtaAnimation`,type:`Enums\\\\GalleryCtaAnimation|string|null`,id:`param-gallery-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaIcon`,type:`?string`,id:`param-gallery-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`galleryCtaIconFamily`,type:`Enums\\\\GalleryCtaIconFamily|string|null`,id:`param-gallery-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaIconPosition`,type:`Enums\\\\GalleryCtaIconPosition|string|null`,id:`param-gallery-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaIconNudge`,type:`?bool`,id:`param-gallery-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-22`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-71`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`GalleryFullWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryFullWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`gallery-full`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\GalleryFullWidgetType|string`,required:true,id:`param-type-25`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`gallery-full`}),`. One of `,_jsx(_components.code,{children:`gallery-full`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-73`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-29`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`galleryEyebrow`,type:`?string`,id:`param-gallery-eyebrow-1`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`galleryEyebrowColor`,type:`?string`,id:`param-gallery-eyebrow-color-1`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`galleryEyebrowColorLight`,type:`?string`,id:`param-gallery-eyebrow-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`galleryEyebrowWeight`,type:`Enums\\\\GalleryEyebrowWeight|string|null`,id:`param-gallery-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryEyebrowSize`,type:`Enums\\\\GalleryEyebrowSize|string|null`,id:`param-gallery-eyebrow-size-1`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`galleryHeading`,type:`?string`,id:`param-gallery-heading-1`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the photos.`})}),_jsx(ResponseField,{name:`galleryHeadingColor`,type:`?string`,id:`param-gallery-heading-color-1`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`galleryHeadingColorLight`,type:`?string`,id:`param-gallery-heading-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryHeadingWeight`,type:`Enums\\\\GalleryHeadingWeight|string|null`,id:`param-gallery-heading-weight-1`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryIntro`,type:`?string`,id:`param-gallery-intro-1`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`galleryIntroColor`,type:`?string`,id:`param-gallery-intro-color-1`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`galleryIntroColorLight`,type:`?string`,id:`param-gallery-intro-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryIntroWeight`,type:`Enums\\\\GalleryIntroWeight|string|null`,id:`param-gallery-intro-weight-1`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryIntroSize`,type:`Enums\\\\GalleryIntroSize|string|null`,id:`param-gallery-intro-size-1`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`galleryAlign`,type:`Enums\\\\GalleryAlign|string|null`,id:`param-gallery-align-1`,children:_jsxs(_components.p,{children:[`Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`gallerySource`,type:`Enums\\\\GallerySource|string|null`,id:`param-gallery-source-1`,children:_jsxs(_components.p,{children:[`Album: a curated set you pick and order by hand — best for a designed page. Folder: automatically shows every image filed in a media-library folder (newest first) — best for bulk collections you organize in the media manager. Feed: a set that refreshes itself on a schedule from an external photo store, so the gallery shows different photos over time. One of `,_jsx(_components.code,{children:`album`}),`, `,_jsx(_components.code,{children:`folder`}),`, `,_jsx(_components.code,{children:`feed`}),`.`]})}),_jsx(ResponseField,{name:`album`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-album-1`,children:_jsxs(_components.p,{children:[`The Photo Album to display. Create and fill albums in the Photo Albums manager. The related `,_jsx(_components.code,{children:`photo-album`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryFolder`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-gallery-folder-1`,children:_jsxs(_components.p,{children:[`The media-library folder to display. Every image filed in it (and its subfolders, if enabled) is shown, newest first. The related `,_jsx(_components.code,{children:`image-folder`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryIncludeSubfolders`,type:`?bool`,id:`param-gallery-include-subfolders-1`,children:_jsx(_components.p,{children:`Also show images filed in folders inside the selected folder.`})}),_jsx(ResponseField,{name:`photoFeed`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-photo-feed-1`,children:_jsxs(_components.p,{children:[`The Photo Feed to display. This gallery stays pointed at the feed while the feed replaces its photos on its own schedule. Create and configure feeds in the Photo Feeds manager. The related `,_jsx(_components.code,{children:`photo-feed`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryMaxPhotos`,type:`?int`,id:`param-gallery-max-photos-1`,children:_jsx(_components.p,{children:`The most photos to show. 0 (default) shows everything in the selected source (folder photos are newest-first). 0 to 200.`})}),_jsx(ResponseField,{name:`galleryLayout`,type:`Enums\\\\GalleryLayout|string|null`,id:`param-gallery-layout-1`,children:_jsxs(_components.p,{children:[`Mosaic Photo Wall: an edge-to-edge wall where rows are scaled to a common height (like Flickr / Google Photos), cropped around each photo’s focal point — the richest option. Masonry: a staggered grid that hugs each photo’s shape. Grid: a tidy, uniform grid. Spotlight: every group of eight opens on an oversized lead photo, sides alternating on wide screens. Shaped Tiles: a portrait grid whose tiles cycle through slab, arch and orb shapes. Scrolling Banner: one edge-to-edge row that drifts sideways forever, so a long album reads as a ribbon of photos rather than a block — the option for a band between two sections rather than a gallery page. Panorama Wall: several rows, far wider than the screen, traveling sideways at slightly different speeds — and the visitor can push it along or against with a drag or a trackpad swipe. Vertical Ribbon: a band of columns running down the page instead of across it, neighboring columns traveling opposite ways, so the section reads as a moving curtain of photographs. One of `,_jsx(_components.code,{children:`justified`}),`, `,_jsx(_components.code,{children:`masonry`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`shaped`}),`, `,_jsx(_components.code,{children:`banner`}),`, `,_jsx(_components.code,{children:`panorama`}),`, `,_jsx(_components.code,{children:`ribbon`}),`.`]})}),_jsx(ResponseField,{name:`galleryColumns`,type:`Enums\\\\GalleryColumns|string|null`,id:`param-gallery-columns-1`,children:_jsxs(_components.p,{children:[`How many tiles per row (grid, shaped tiles) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout; Spotlight sets its own pattern.) One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`.`]})}),_jsx(ResponseField,{name:`galleryJustifiedHeight`,type:`Enums\\\\GalleryJustifiedHeight|string|null`,id:`param-gallery-justified-height-1`,children:_jsxs(_components.p,{children:[`The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerHeight`,type:`Enums\\\\GalleryBannerHeight|string|null`,id:`param-gallery-banner-height-1`,children:_jsxs(_components.p,{children:[`How tall the moving row stands. Each photo keeps its own shape, so a taller banner shows wider photos and fewer of them at once. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerSpeed`,type:`Enums\\\\GalleryBannerSpeed|string|null`,id:`param-gallery-banner-speed-1`,children:_jsxs(_components.p,{children:[`How fast the row drifts. It also surges briefly with the page’s own scrolling, then settles back — so the band reacts to the visitor instead of ignoring them. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerDirection`,type:`Enums\\\\GalleryBannerDirection|string|null`,id:`param-gallery-banner-direction-1`,children:_jsxs(_components.p,{children:[`Banner direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerFade`,type:`?bool`,id:`param-gallery-banner-fade-1`,children:_jsx(_components.p,{children:`Fades the row out at both ends so photos scroll in and out instead of being cut off by a hard edge.`})}),_jsx(ResponseField,{name:`galleryPanoramaRows`,type:`Enums\\\\GalleryPanoramaRows|string|null`,id:`param-gallery-panorama-rows-1`,children:_jsxs(_components.p,{children:[`How many rows of photos the wall is dealt across. Photos go into the rows in turn, so consecutive shots land in different rows rather than stacking up together. Deep walls want a big set — a row needs at least three photos of its own, so a small album quietly uses fewer, fuller rows than you pick here. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`7`}),`, `,_jsx(_components.code,{children:`8`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaHeight`,type:`Enums\\\\GalleryPanoramaHeight|string|null`,id:`param-gallery-panorama-height-1`,children:_jsxs(_components.p,{children:[`How tall each row stands, so the wall’s total depth is this times the number of rows — an eight-row Tall panorama fills a screen and then some. Each photo keeps its own shape, so taller rows show wider photos and fewer of them. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaSpeed`,type:`Enums\\\\GalleryPanoramaSpeed|string|null`,id:`param-gallery-panorama-speed-1`,children:_jsxs(_components.p,{children:[`How fast the wall travels. Each row takes a slightly different share of this, so the rows shear gently against each other and the block reads as depth rather than as one sliding sheet. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDirection`,type:`Enums\\\\GalleryPanoramaDirection|string|null`,id:`param-gallery-panorama-direction-1`,children:_jsxs(_components.p,{children:[`Travel direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDrag`,type:`?bool`,id:`param-gallery-panorama-drag-1`,children:_jsx(_components.p,{children:`Dragging the wall (or swiping sideways on a trackpad or phone) pushes it along or against its travel, and it glides back into its own pace when let go. Vertical scrolling always still scrolls the page. Needs site animations on in Site design → Motion.`})}),_jsx(ResponseField,{name:`galleryPanoramaFade`,type:`?bool`,id:`param-gallery-panorama-fade-1`,children:_jsx(_components.p,{children:`Fades the rows out at both ends so photos travel in and out instead of being cut off by a hard edge.`})}),_jsx(ResponseField,{name:`galleryRibbonColumns`,type:`Enums\\\\GalleryRibbonColumns|string|null`,id:`param-gallery-ribbon-columns-1`,children:_jsxs(_components.p,{children:[`How many columns of photos the band is dealt across. Photos go into the columns in turn, so consecutive shots land in different columns rather than stacking up together. Narrow screens show fewer columns than you pick here (two on a phone, three on a tablet) — because photos in a 50-pixel sliver are not photos. A column needs at least three photos of its own, so a small album quietly uses fewer, fuller columns. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonHeight`,type:`Enums\\\\GalleryRibbonHeight|string|null`,id:`param-gallery-ribbon-height-1`,children:_jsxs(_components.p,{children:[`How tall the band stands — the window the columns travel through, not the columns themselves, which are always far taller than it. Each photo keeps its own shape and fills its column’s width, so the columns show more photos at once the taller the band is. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonSpeed`,type:`Enums\\\\GalleryRibbonSpeed|string|null`,id:`param-gallery-ribbon-speed-1`,children:_jsxs(_components.p,{children:[`How fast the columns travel. Each takes a slightly different share of this, so the band reads as a weave rather than as one sheet sliding. Slower than the sideways layouts at every setting on purpose: this moves along the same axis the visitor scrolls in, where the same speed feels far more urgent. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonDirection`,type:`Enums\\\\GalleryRibbonDirection|string|null`,id:`param-gallery-ribbon-direction-1`,children:_jsxs(_components.p,{children:[`Which way the first column travels. With alternating columns on (below), its neighbors go the other way. One of `,_jsx(_components.code,{children:`up`}),`, `,_jsx(_components.code,{children:`down`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonAlternate`,type:`?bool`,id:`param-gallery-ribbon-alternate-1`,children:_jsx(_components.p,{children:`Send neighboring columns opposite ways, which is what makes the band read as a weave. Turn it off and the whole band travels one way together — quieter, and closer to a conventional scrolling wall.`})}),_jsx(ResponseField,{name:`galleryRibbonFade`,type:`?bool`,id:`param-gallery-ribbon-fade-1`,children:_jsx(_components.p,{children:`Fades the columns out at the top and bottom so photos travel in and out instead of being cut off by a hard edge.`})}),_jsx(ResponseField,{name:`galleryJustifiedVary`,type:`?bool`,id:`param-gallery-justified-vary-1`,children:_jsx(_components.p,{children:`For albums where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.`})}),_jsx(ResponseField,{name:`galleryGap`,type:`Enums\\\\GalleryGap|string|null`,id:`param-gallery-gap-1`,children:_jsxs(_components.p,{children:[`Gap between tiles. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`galleryRadius`,type:`Enums\\\\GalleryRadius|string|null`,id:`param-gallery-radius-1`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardStyle`,type:`Enums\\\\GalleryCardStyle|string|null`,id:`param-gallery-card-style-1`,children:_jsxs(_components.p,{children:[`The tile surface. Raised floats each photo on a soft shadow (default); Plain is a clean edge-to-edge wall; Luxe / Outline / Poster frame it; Ticket / Bracket / Forge / Press add graphic structure. The photo fills the tile, so fill-based looks (Tint, Inlay) read as their frame + elevation. On the Shaped Tiles layout the structural looks (Ticket / Bracket / Forge / Press) fall back to their plain surface — their rectangular marks can’t follow an arch or orb. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColor`,type:`?string`,id:`param-gallery-card-style-accent-color-1`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColorLight`,type:`?string`,id:`param-gallery-card-style-accent-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryCardStyleForgeScope`,type:`Enums\\\\GalleryCardStyleForgeScope|string|null`,id:`param-gallery-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardStyleForgeWeight`,type:`Enums\\\\GalleryCardStyleForgeWeight|string|null`,id:`param-gallery-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardHover`,type:`Enums\\\\GalleryCardHover|string|null`,id:`param-gallery-card-hover-1`,children:_jsxs(_components.p,{children:[`What a tile does on hover, on top of the surface above. Glow (default) / Lift read best on photo tiles; Press collapses a Poster offset; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`galleryShowCaption`,type:`?bool`,id:`param-gallery-show-caption-1`,children:_jsx(_components.p,{children:`Overlay each photo’s alt text on hover. Off by default (a clean photo wall). The caption always shows in the lightbox.`})}),_jsx(ResponseField,{name:`galleryCaptionSize`,type:`Enums\\\\GalleryCaptionSize|string|null`,id:`param-gallery-caption-size-1`,children:_jsxs(_components.p,{children:[`Caption size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`galleryCaptionWeight`,type:`Enums\\\\GalleryCaptionWeight|string|null`,id:`param-gallery-caption-weight-1`,children:_jsxs(_components.p,{children:[`Caption weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryLightbox`,type:`?bool`,id:`param-gallery-lightbox-1`,children:_jsx(_components.p,{children:`Clicking a photo opens it full-size in an on-site lightbox (with previous / next). Turn off for a purely decorative wall that doesn’t enlarge.`})}),_jsx(ResponseField,{name:`galleryAccentColor`,type:`?string`,id:`param-gallery-accent-color-1`,children:_jsx(_components.p,{children:`Optional — color of the hover wash / glow. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`galleryAccentColorLight`,type:`?string`,id:`param-gallery-accent-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryDrift`,type:`Enums\\\\GalleryDrift|string|null`,id:`param-gallery-drift-1`,children:_jsxs(_components.p,{children:[`A very slow pan-and-zoom on every photo, each tile on its own rhythm, so the wall stays quietly alive instead of holding perfectly still. Off by default: a still gallery costs nothing to keep on screen, and this runs continuously for as long as the page is open. Turn it on if you also switch on “Rotate photos automatically” below — a photo changing on a wall that is otherwise frozen reads as a glitch. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`galleryParallax`,type:`Enums\\\\GalleryParallax|string|null`,id:`param-gallery-parallax-1`,children:_jsxs(_components.p,{children:[`Sets every photo at its own depth: as the page scrolls, some slide with it and some against it, so the wall has layers instead of being one flat plane. It only moves while the visitor scrolls — nothing happens when the page is still. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`galleryShuffle`,type:`Enums\\\\GalleryShuffle|string|null`,id:`param-gallery-shuffle-1`,children:_jsxs(_components.p,{children:[`Every so often two photos trade places on the wall, gliding past each other into their new squares. Nothing resizes and nothing else on the wall moves — the grid’s squares are identical, so the photos simply swap seats. It holds still while a visitor’s pointer or keyboard is anywhere in the gallery, so nothing ever moves out from under a click. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`.`]})}),_jsx(ResponseField,{name:`galleryShuffleBatch`,type:`?int`,id:`param-gallery-shuffle-batch-1`,children:_jsx(_components.p,{children:`Two photos swap with each other; three or more pass their seats along in a ring, so more of the wall is moving at once. Higher numbers read as the wall dealing itself a new hand rather than as two photos changing places. 2 to 6.`})}),_jsx(ResponseField,{name:`galleryRotate`,type:`?bool`,id:`param-gallery-rotate-1`,children:_jsx(_components.p,{children:`Photos fade out a few at a time and are replaced from the rest of the source, so the gallery keeps changing while a visitor watches. Needs more photos in the source than are on screen — set “Maximum photos” above to less than the source holds. Set “Ambient drift” above to Subtle as well: a photo changing on a wall that is otherwise perfectly still reads as a glitch rather than as movement. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion.`})}),_jsx(ResponseField,{name:`galleryRotateStyle`,type:`Enums\\\\GalleryRotateStyle|string|null`,id:`param-gallery-rotate-style-1`,children:_jsxs(_components.p,{children:[`Cross-fade: the next photo dissolves over the old one as it eases in — the quietest change. Fade through a color: the tile also dips towards a flat color while the photos dissolve, so it reads as “phasing out” without ever going blank. Slide in: the next photo travels in over the old one, which drifts the same way behind it. Zoom through: the next photo settles out of a slight enlargement. Soften through: the photo blurs out of focus and the next one comes back into it. Wipe across: a clean edge travels over the tile, leaving the next photo behind it. Turn over: the tile turns like a card and comes back showing the next photo — the boldest of the seven. One of `,_jsx(_components.code,{children:`cross`}),`, `,_jsx(_components.code,{children:`veil`}),`, `,_jsx(_components.code,{children:`push`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`blur`}),`, `,_jsx(_components.code,{children:`wipe`}),`, `,_jsx(_components.code,{children:`turn`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateOrder`,type:`Enums\\\\GalleryRotateOrder|string|null`,id:`param-gallery-rotate-order-1`,children:_jsxs(_components.p,{children:[`Scattered spreads the changes over the whole wall, never twice in the same corner and never the same tile twice in a row. The other three move through the wall in a set direction, so the changes read as one gesture crossing the gallery rather than as separate events. One of `,_jsx(_components.code,{children:`scatter`}),`, `,_jsx(_components.code,{children:`wave`}),`, `,_jsx(_components.code,{children:`columns`}),`, `,_jsx(_components.code,{children:`rows`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateColor`,type:`?string`,id:`param-gallery-rotate-color-1`,children:_jsx(_components.p,{children:`Optional — leave empty to dip through the page background, which suits both themes. Set white for a brighter bloom, or the brand accent for a bolder pulse. The dip never reaches full strength, so the photo always shows through.`})}),_jsx(ResponseField,{name:`galleryRotateColorLight`,type:`?string`,id:`param-gallery-rotate-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryRotatePace`,type:`Enums\\\\GalleryRotatePace|string|null`,id:`param-gallery-rotate-pace-1`,children:_jsxs(_components.p,{children:[`The gap between one group of changes and the next. The real timing is deliberately uneven around this figure so the wall never feels metronomic. One of `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`, `,_jsx(_components.code,{children:`rapid`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateBatch`,type:`?int`,id:`param-gallery-rotate-batch-1`,children:_jsx(_components.p,{children:`How many tiles change per group. They never start on the same frame — each one follows the one before it by a beat, so a group reads as a ripple rather than a blink. 1 is the calmest; higher numbers keep more of the wall in motion. 1 to 6.`})}),_jsx(ResponseField,{name:`galleryRotateFade`,type:`Enums\\\\GalleryRotateFade|string|null`,id:`param-gallery-rotate-fade-1`,children:_jsxs(_components.p,{children:[`The length of one change, from the old photo to the new. Longer reads as a gentle phase; shorter as a snap — and short changes are the ones that read as choppy, so lean long. One of `,_jsx(_components.code,{children:`quick`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`lingering`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateReserve`,type:`?int`,id:`param-gallery-rotate-reserve-1`,children:_jsx(_components.p,{children:`How many photos beyond the ones on screen to send to the browser for the rotation to draw from — the bigger this is, the longer the gallery goes before a visitor sees a repeat. Retired photos go back to the end of the queue, so it cycles the whole reserve and then starts over. Cheap to raise: a reserved photo is a few URLs, well under 100 bytes once the page is compressed, and its image file is only fetched when it is about to appear. 0 to 500.`})}),_jsx(ResponseField,{name:`galleryBg`,type:`Enums\\\\GalleryBg|string|null`,id:`param-gallery-bg-1`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`galleryBgCustom`,type:`?string`,id:`param-gallery-bg-custom-1`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`galleryBgLight`,type:`Enums\\\\GalleryBgLight|string|null`,id:`param-gallery-bg-light-1`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`galleryBgLightCustom`,type:`?string`,id:`param-gallery-bg-light-custom-1`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`galleryFontOverrides`,type:`Collection\u003cint, GalleryFullWidgetGalleryFontOverridesItem>|null`,id:`param-gallery-font-overrides-1`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`GalleryFullWidgetGalleryFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryFullWidgetGalleryFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryFullWidgetGalleryFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-74`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-19`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-19`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-19`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-19`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-19`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-19`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-19`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, GalleryFullWidgetGalleryFontOverridesItemUploadsItem>|null`,id:`param-uploads-19`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`GalleryFullWidgetGalleryFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryFullWidgetGalleryFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryFullWidgetGalleryFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-19`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-75`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-19`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-19`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-72`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-19`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-73`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`galleryCtaLabel`,type:`?string`,id:`param-gallery-cta-label-1`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`galleryCtaUrl`,type:`?string`,id:`param-gallery-cta-url-1`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`galleryCtaNewTab`,type:`?bool`,id:`param-gallery-cta-new-tab-1`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`galleryCtaVariant`,type:`Enums\\\\GalleryCtaVariant|string|null`,id:`param-gallery-cta-variant-1`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaSize`,type:`Enums\\\\GalleryCtaSize|string|null`,id:`param-gallery-cta-size-1`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaRadius`,type:`Enums\\\\GalleryCtaRadius|string|null`,id:`param-gallery-cta-radius-1`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaColor`,type:`?string`,id:`param-gallery-cta-color-1`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`galleryCtaColorLight`,type:`?string`,id:`param-gallery-cta-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`galleryCtaTextColor`,type:`?string`,id:`param-gallery-cta-text-color-1`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`galleryCtaTextColorLight`,type:`?string`,id:`param-gallery-cta-text-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`galleryCtaHoverColor`,type:`?string`,id:`param-gallery-cta-hover-color-1`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`galleryCtaHoverColorLight`,type:`?string`,id:`param-gallery-cta-hover-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`galleryCtaStyle`,type:`Enums\\\\GalleryCtaStyle|string|null`,id:`param-gallery-cta-style-1`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaShadowColor`,type:`?string`,id:`param-gallery-cta-shadow-color-1`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`galleryCtaShadowColorLight`,type:`?string`,id:`param-gallery-cta-shadow-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`galleryCtaAnimation`,type:`Enums\\\\GalleryCtaAnimation|string|null`,id:`param-gallery-cta-animation-1`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaIcon`,type:`?string`,id:`param-gallery-cta-icon-1`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`galleryCtaIconFamily`,type:`Enums\\\\GalleryCtaIconFamily|string|null`,id:`param-gallery-cta-icon-family-1`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaIconPosition`,type:`Enums\\\\GalleryCtaIconPosition|string|null`,id:`param-gallery-cta-icon-position-1`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaIconNudge`,type:`?bool`,id:`param-gallery-cta-icon-nudge-1`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-23`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-74`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`PricingWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`pricing`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\PricingWidgetType|string`,required:true,id:`param-type-26`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`pricing`}),`. One of `,_jsx(_components.code,{children:`pricing`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-76`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-30`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`pricingEyebrowEnabled`,type:`?bool`,id:`param-pricing-eyebrow-enabled`,children:_jsx(_components.p,{children:`A small label above the heading (e.g. “Pricing”).`})}),_jsx(ResponseField,{name:`pricingEyebrow`,type:`?string`,id:`param-pricing-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow.`})}),_jsx(ResponseField,{name:`pricingEyebrowColor`,type:`?string`,id:`param-pricing-eyebrow-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`pricingEyebrowColorLight`,type:`?string`,id:`param-pricing-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`pricingEyebrowWeight`,type:`Enums\\\\PricingEyebrowWeight|string|null`,id:`param-pricing-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`pricingEyebrowSize`,type:`Enums\\\\PricingEyebrowSize|string|null`,id:`param-pricing-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingHeading`,type:`?string`,id:`param-pricing-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the cards.`})}),_jsx(ResponseField,{name:`pricingHeadingColor`,type:`?string`,id:`param-pricing-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`pricingHeadingColorLight`,type:`?string`,id:`param-pricing-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`pricingHeadingWeight`,type:`Enums\\\\PricingHeadingWeight|string|null`,id:`param-pricing-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`pricingHeadingSize`,type:`Enums\\\\PricingHeadingSize|string|null`,id:`param-pricing-heading-size`,children:_jsxs(_components.p,{children:[`Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingIntro`,type:`?string`,id:`param-pricing-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`pricingIntroColor`,type:`?string`,id:`param-pricing-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`pricingIntroColorLight`,type:`?string`,id:`param-pricing-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`pricingIntroWeight`,type:`Enums\\\\PricingIntroWeight|string|null`,id:`param-pricing-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`pricingIntroSize`,type:`Enums\\\\PricingIntroSize|string|null`,id:`param-pricing-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingColumns`,type:`Enums\\\\PricingColumns|string|null`,id:`param-pricing-columns`,children:_jsxs(_components.p,{children:[`Auto fits as many as comfortably fit and works for any number of cards. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`pricingGap`,type:`Enums\\\\PricingGap|string|null`,id:`param-pricing-gap`,children:_jsxs(_components.p,{children:[`Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`pricingCardStyle`,type:`Enums\\\\PricingCardStyle|string|null`,id:`param-pricing-card-style`,children:_jsxs(_components.p,{children:[`The base treatment for every tier (a highlighted tier always gets its own bold framed look). Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`pricingCardStyleRadius`,type:`Enums\\\\PricingCardStyleRadius|string|null`,id:`param-pricing-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`pricingCardStyleAccentColor`,type:`?string`,id:`param-pricing-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`pricingCardStyleAccentColorLight`,type:`?string`,id:`param-pricing-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`pricingCardStyleForgeScope`,type:`Enums\\\\PricingCardStyleForgeScope|string|null`,id:`param-pricing-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`pricingCardStyleForgeWeight`,type:`Enums\\\\PricingCardStyleForgeWeight|string|null`,id:`param-pricing-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`pricingAlign`,type:`Enums\\\\PricingAlign|string|null`,id:`param-pricing-align`,children:_jsxs(_components.p,{children:[`Aligns the section header and the text inside each card. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`pricingEqualHeight`,type:`?bool`,id:`param-pricing-equal-height`,children:_jsx(_components.p,{children:`Stretch every card to the tallest one and pin each button to the bottom, so the cards line up even with uneven feature lists.`})}),_jsx(ResponseField,{name:`pricingFeatureMarkers`,type:`?bool`,id:`param-pricing-feature-markers`,children:_jsx(_components.p,{children:`A check (included) or cross (not included) before each feature. Off = a plain list.`})}),_jsx(ResponseField,{name:`pricingCardHover`,type:`Enums\\\\PricingCardHover|string|null`,id:`param-pricing-card-hover`,children:_jsxs(_components.p,{children:[`How a card reacts to the pointer. Rise floats it up on an accent underglow; Selection ring previews the highlighted look + tints the price; Spotlight washes accent light over the price; Checklist lights up the ✓ marks one-by-one; Tilt is a 3-D parallax that only runs when site animations are on. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`rise`}),`, `,_jsx(_components.code,{children:`ring`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`checklist`}),`, `,_jsx(_components.code,{children:`tilt`}),`.`]})}),_jsx(ResponseField,{name:`pricingHoverColor`,type:`?string`,id:`param-pricing-hover-color`,children:_jsx(_components.p,{children:`Border / glow / spotlight / checkmark color on hover. Leave empty to use the highlight accent (then the site accent).`})}),_jsx(ResponseField,{name:`pricingHoverColorLight`,type:`?string`,id:`param-pricing-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover accent.`})}),_jsx(ResponseField,{name:`pricingEntrance`,type:`Enums\\\\PricingEntrance|string|null`,id:`param-pricing-entrance`,children:_jsxs(_components.p,{children:[`How the cards animate in as they scroll into view. Featured-led makes the highlighted tier settle last with a little emphasis (draws the eye to the recommended plan); Simple stagger fades them in evenly. Only plays when site animations are on (Site design → Motion) — otherwise the cards are simply shown. One of `,_jsx(_components.code,{children:`featured`}),`, `,_jsx(_components.code,{children:`stagger`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`pricingNameSize`,type:`Enums\\\\PricingNameSize|string|null`,id:`param-pricing-name-size`,children:_jsxs(_components.p,{children:[`Size of each card’s name / title. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingPriceSize`,type:`Enums\\\\PricingPriceSize|string|null`,id:`param-pricing-price-size`,children:_jsxs(_components.p,{children:[`Size of the price amount (the period and price note scale with it). One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingDescSize`,type:`Enums\\\\PricingDescSize|string|null`,id:`param-pricing-desc-size`,children:_jsxs(_components.p,{children:[`Size of each card’s description blurb. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeatureSize`,type:`Enums\\\\PricingFeatureSize|string|null`,id:`param-pricing-feature-size`,children:_jsxs(_components.p,{children:[`Size of the feature list text (notes and check marks scale with it). One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingHighlightBadge`,type:`?string`,id:`param-pricing-highlight-badge`,children:_jsx(_components.p,{children:`Ribbon text shown on a highlighted tier that doesn’t set its own badge. Each tier can override it (or badge a non-highlighted tier) below. Leave empty for no automatic badge.`})}),_jsx(ResponseField,{name:`pricingAccentColor`,type:`?string`,id:`param-pricing-accent-color`,children:_jsx(_components.p,{children:`Color for the highlighted tier’s border + ring and each tier’s badge. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`pricingAccentColorLight`,type:`?string`,id:`param-pricing-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme accent.`})}),_jsxs(ResponseField,{name:`pricingTiers`,type:`Collection\u003cint, PricingWidgetPricingTiersItem>|null`,id:`param-pricing-tiers`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PricingWidgetPricingTiersItem`}),`. Each card is one tier / package / service. Toggle “Highlight” on the one you want to stand out.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingTiersItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingTiersItem)`,children:[_jsx(ResponseField,{name:`name`,type:`string`,required:true,id:`param-name-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Tier / package / service name — e.g. “Starter”, “Studio”, “Agency”.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-77`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-3`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-3`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-3`,children:_jsx(_components.p,{children:`Optional — leave empty to use the design’s own color rhythm.`})}),_jsx(ResponseField,{name:`iconAnimation`,type:`Enums\\\\IconAnimation|string|null`,id:`param-icon-animation-1`,children:_jsxs(_components.p,{children:[`Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`.`]})}),_jsx(ResponseField,{name:`iconSize`,type:`Enums\\\\IconSize|string|null`,id:`param-icon-size-1`,children:_jsxs(_components.p,{children:[`Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`.`]})}),_jsx(ResponseField,{name:`iconGap`,type:`Enums\\\\IconGap|string|null`,id:`param-icon-gap`,children:_jsxs(_components.p,{children:[`Breathing room below the icon, before the card name. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`badge`,type:`?string`,id:`param-badge`,children:_jsx(_components.p,{children:`A small ribbon on the card, e.g. “Best value”, “Limited spots”. Overrides the default highlight badge for this tier; works on any tier, highlighted or not. Empty on a highlighted tier falls back to the section’s “Default highlight badge”.`})}),_jsx(ResponseField,{name:`highlighted`,type:`?bool`,id:`param-highlighted`,children:_jsx(_components.p,{children:`Emphasize this tier — accent border + ring, a subtle lift, and the Featured button look.`})}),_jsx(ResponseField,{name:`textAlign`,type:`Enums\\\\TextAlign|string|null`,id:`param-text-align`,children:_jsxs(_components.p,{children:[`How this card’s text lines up. Normal = the section default (a centered section keeps the feature list left-aligned, as now). Center also centers the feature list; Left / Right align everything that way. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`price`,type:`?string`,id:`param-price`,children:_jsxs(_components.p,{children:[`Free text, so it fits any model — “`,`$45\", \"From $`,`200”, “Custom”, “Call for quote”.`]})}),_jsx(ResponseField,{name:`period`,type:`?string`,id:`param-period`,children:_jsx(_components.p,{children:`Shown after the price, e.g. ”/ month”, “per night”, “per session”. Leave empty for a flat price.`})}),_jsx(ResponseField,{name:`priceNote`,type:`?string`,id:`param-price-note`,children:_jsx(_components.p,{children:`A small line under the price, e.g. “per seat”, “billed annually”, ”+ tax”.`})}),_jsx(ResponseField,{name:`description`,type:`?string`,id:`param-description-1`,children:_jsx(_components.p,{children:`A short blurb under the name.`})}),_jsxs(ResponseField,{name:`features`,type:`Collection\u003cint, PricingWidgetPricingTiersItemFeaturesItem>|null`,id:`param-features`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PricingWidgetPricingTiersItemFeaturesItem`}),`. The bullet list of what’s included.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingTiersItemFeaturesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingTiersItemFeaturesItem)`,children:[_jsx(ResponseField,{name:`text`,type:`string`,required:true,id:`param-text`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Feature.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-78`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`included`,type:`?bool`,id:`param-included`,children:_jsx(_components.p,{children:`On = a check mark; off = a crossed-out / muted line (e.g. a feature this tier lacks).`})}),_jsx(ResponseField,{name:`note`,type:`?string`,id:`param-note`,children:_jsx(_components.p,{children:`A small qualifier shown after the feature, e.g. “up to 5”, “add-on”.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-75`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`ctaLabel`,type:`?string`,id:`param-cta-label-1`,children:_jsx(_components.p,{children:`This card’s button text. Leave empty to use the shared button label (set in the Pricing · Buttons tab); clear it everywhere to hide the button.`})}),_jsx(ResponseField,{name:`ctaUrl`,type:`?string`,id:`param-cta-url-1`,children:_jsx(_components.p,{children:`Where the button goes — a path (/contact-us) or full URL. Leave empty to inherit the shared button link.`})}),_jsx(ResponseField,{name:`ctaNewTab`,type:`?bool`,id:`param-cta-new-tab-1`,children:_jsx(_components.p,{children:`Open button in new tab.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-76`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`pricingBg`,type:`Enums\\\\PricingBg|string|null`,id:`param-pricing-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`pricingBgCustom`,type:`?string`,id:`param-pricing-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`pricingBgLight`,type:`Enums\\\\PricingBgLight|string|null`,id:`param-pricing-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`pricingBgLightCustom`,type:`?string`,id:`param-pricing-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`pricingFontOverrides`,type:`Collection\u003cint, PricingWidgetPricingFontOverridesItem>|null`,id:`param-pricing-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PricingWidgetPricingFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-79`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-20`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-20`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-20`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-20`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-20`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-20`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-20`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PricingWidgetPricingFontOverridesItemUploadsItem>|null`,id:`param-uploads-20`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PricingWidgetPricingFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-20`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-80`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-20`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-20`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-77`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-20`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-78`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`pricingFeaturedCtaLabel`,type:`?string`,id:`param-pricing-featured-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaUrl`,type:`?string`,id:`param-pricing-featured-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaNewTab`,type:`?bool`,id:`param-pricing-featured-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaVariant`,type:`Enums\\\\PricingFeaturedCtaVariant|string|null`,id:`param-pricing-featured-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaSize`,type:`Enums\\\\PricingFeaturedCtaSize|string|null`,id:`param-pricing-featured-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaRadius`,type:`Enums\\\\PricingFeaturedCtaRadius|string|null`,id:`param-pricing-featured-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaColor`,type:`?string`,id:`param-pricing-featured-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaColorLight`,type:`?string`,id:`param-pricing-featured-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaTextColor`,type:`?string`,id:`param-pricing-featured-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaTextColorLight`,type:`?string`,id:`param-pricing-featured-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaHoverColor`,type:`?string`,id:`param-pricing-featured-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaHoverColorLight`,type:`?string`,id:`param-pricing-featured-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaStyle`,type:`Enums\\\\PricingFeaturedCtaStyle|string|null`,id:`param-pricing-featured-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaShadowColor`,type:`?string`,id:`param-pricing-featured-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaShadowColorLight`,type:`?string`,id:`param-pricing-featured-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaAnimation`,type:`Enums\\\\PricingFeaturedCtaAnimation|string|null`,id:`param-pricing-featured-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIcon`,type:`?string`,id:`param-pricing-featured-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIconFamily`,type:`Enums\\\\PricingFeaturedCtaIconFamily|string|null`,id:`param-pricing-featured-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIconPosition`,type:`Enums\\\\PricingFeaturedCtaIconPosition|string|null`,id:`param-pricing-featured-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIconNudge`,type:`?bool`,id:`param-pricing-featured-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`pricingCtaLabel`,type:`?string`,id:`param-pricing-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`pricingCtaUrl`,type:`?string`,id:`param-pricing-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`pricingCtaNewTab`,type:`?bool`,id:`param-pricing-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`pricingCtaVariant`,type:`Enums\\\\PricingCtaVariant|string|null`,id:`param-pricing-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaSize`,type:`Enums\\\\PricingCtaSize|string|null`,id:`param-pricing-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaRadius`,type:`Enums\\\\PricingCtaRadius|string|null`,id:`param-pricing-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaColor`,type:`?string`,id:`param-pricing-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`pricingCtaColorLight`,type:`?string`,id:`param-pricing-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`pricingCtaTextColor`,type:`?string`,id:`param-pricing-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`pricingCtaTextColorLight`,type:`?string`,id:`param-pricing-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`pricingCtaHoverColor`,type:`?string`,id:`param-pricing-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`pricingCtaHoverColorLight`,type:`?string`,id:`param-pricing-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`pricingCtaStyle`,type:`Enums\\\\PricingCtaStyle|string|null`,id:`param-pricing-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaShadowColor`,type:`?string`,id:`param-pricing-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`pricingCtaShadowColorLight`,type:`?string`,id:`param-pricing-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`pricingCtaAnimation`,type:`Enums\\\\PricingCtaAnimation|string|null`,id:`param-pricing-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaIcon`,type:`?string`,id:`param-pricing-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`pricingCtaIconFamily`,type:`Enums\\\\PricingCtaIconFamily|string|null`,id:`param-pricing-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaIconPosition`,type:`Enums\\\\PricingCtaIconPosition|string|null`,id:`param-pricing-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaIconNudge`,type:`?bool`,id:`param-pricing-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-24`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-79`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`NewsletterWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\NewsletterWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`newsletter`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\NewsletterWidgetType|string`,required:true,id:`param-type-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`newsletter`}),`. One of `,_jsx(_components.code,{children:`newsletter`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-81`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-31`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`newsletterForm`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-newsletter-form`,children:_jsxs(_components.p,{children:[`The Form (Forms manager) that receives these submissions and routes them — configure its destinations on the form’s Actions tab. Create one if you have not yet. The related `,_jsx(_components.code,{children:`@apostrophecms/form`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowEnabled`,type:`?bool`,id:`param-newsletter-eyebrow-enabled`,children:_jsx(_components.p,{children:`Show eyebrow.`})}),_jsx(ResponseField,{name:`newsletterEyebrow`,type:`?string`,id:`param-newsletter-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`newsletterEyebrowColor`,type:`?string`,id:`param-newsletter-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`newsletterEyebrowColorLight`,type:`?string`,id:`param-newsletter-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`newsletterEyebrowWeight`,type:`Enums\\\\NewsletterEyebrowWeight|string|null`,id:`param-newsletter-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowSize`,type:`Enums\\\\NewsletterEyebrowSize|string|null`,id:`param-newsletter-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`newsletterHeading`,type:`?string`,id:`param-newsletter-heading`,children:_jsx(_components.p,{children:`Heading.`})}),_jsx(ResponseField,{name:`newsletterHeadingColor`,type:`?string`,id:`param-newsletter-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`newsletterHeadingColorLight`,type:`?string`,id:`param-newsletter-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`newsletterHeadingWeight`,type:`Enums\\\\NewsletterHeadingWeight|string|null`,id:`param-newsletter-heading-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`newsletterHeadingSize`,type:`Enums\\\\NewsletterHeadingSize|string|null`,id:`param-newsletter-heading-size`,children:_jsxs(_components.p,{children:[`Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`newsletterIntro`,type:`?string`,id:`param-newsletter-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`newsletterIntroColor`,type:`?string`,id:`param-newsletter-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`newsletterIntroColorLight`,type:`?string`,id:`param-newsletter-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`newsletterIntroWeight`,type:`Enums\\\\NewsletterIntroWeight|string|null`,id:`param-newsletter-intro-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`newsletterIntroSize`,type:`Enums\\\\NewsletterIntroSize|string|null`,id:`param-newsletter-intro-size`,children:_jsxs(_components.p,{children:[`Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`newsletterBand`,type:`Enums\\\\NewsletterBand|string|null`,id:`param-newsletter-band`,children:_jsxs(_components.p,{children:[`Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`newsletterAccentColor`,type:`?string`,id:`param-newsletter-accent-color`,children:_jsx(_components.p,{children:`The accent band color. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`newsletterAccentColorLight`,type:`?string`,id:`param-newsletter-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`newsletterAlign`,type:`Enums\\\\NewsletterAlign|string|null`,id:`param-newsletter-align`,children:_jsxs(_components.p,{children:[`Alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`newsletterLayout`,type:`Enums\\\\NewsletterLayout|string|null`,id:`param-newsletter-layout`,children:_jsxs(_components.p,{children:[`Inline puts the field + button on one row (stacks on small screens); Stacked always stacks them. One of `,_jsx(_components.code,{children:`inline`}),`, `,_jsx(_components.code,{children:`stacked`}),`.`]})}),_jsx(ResponseField,{name:`newsletterWidth`,type:`Enums\\\\NewsletterWidth|string|null`,id:`param-newsletter-width`,children:_jsxs(_components.p,{children:[`Content width. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`newsletterNameEnabled`,type:`?bool`,id:`param-newsletter-name-enabled`,children:_jsx(_components.p,{children:`Collect a name.`})}),_jsx(ResponseField,{name:`newsletterNameLabel`,type:`?string`,id:`param-newsletter-name-label`,children:_jsx(_components.p,{children:`Name label.`})}),_jsx(ResponseField,{name:`newsletterNamePlaceholder`,type:`?string`,id:`param-newsletter-name-placeholder`,children:_jsx(_components.p,{children:`Name placeholder.`})}),_jsx(ResponseField,{name:`newsletterEmailLabel`,type:`?string`,id:`param-newsletter-email-label`,children:_jsx(_components.p,{children:`Email label.`})}),_jsx(ResponseField,{name:`newsletterEmailPlaceholder`,type:`?string`,id:`param-newsletter-email-placeholder`,children:_jsx(_components.p,{children:`Email placeholder.`})}),_jsx(ResponseField,{name:`newsletterConsentEnabled`,type:`?bool`,id:`param-newsletter-consent-enabled`,children:_jsx(_components.p,{children:`Optional opt-in checkbox (e.g. for GDPR-style explicit consent).`})}),_jsx(ResponseField,{name:`newsletterConsentText`,type:`?string`,id:`param-newsletter-consent-text`,children:_jsx(_components.p,{children:`Consent statement.`})}),_jsx(ResponseField,{name:`newsletterDisclaimer`,type:`?string`,id:`param-newsletter-disclaimer`,children:_jsx(_components.p,{children:`A small line under the form, e.g. an unsubscribe note.`})}),_jsx(ResponseField,{name:`newsletterSuccessMessage`,type:`?string`,id:`param-newsletter-success-message`,children:_jsx(_components.p,{children:`Success message.`})}),_jsx(ResponseField,{name:`newsletterErrorMessage`,type:`?string`,id:`param-newsletter-error-message`,children:_jsx(_components.p,{children:`Error message.`})}),_jsx(ResponseField,{name:`newsletterBg`,type:`Enums\\\\NewsletterBg|string|null`,id:`param-newsletter-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`newsletterBgCustom`,type:`?string`,id:`param-newsletter-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`newsletterBgLight`,type:`Enums\\\\NewsletterBgLight|string|null`,id:`param-newsletter-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`newsletterBgLightCustom`,type:`?string`,id:`param-newsletter-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`newsletterFontOverrides`,type:`Collection\u003cint, NewsletterWidgetNewsletterFontOverridesItem>|null`,id:`param-newsletter-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`NewsletterWidgetNewsletterFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`NewsletterWidgetNewsletterFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\NewsletterWidgetNewsletterFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-82`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-21`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-21`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-21`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-21`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-21`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-21`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-21`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, NewsletterWidgetNewsletterFontOverridesItemUploadsItem>|null`,id:`param-uploads-21`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`NewsletterWidgetNewsletterFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`NewsletterWidgetNewsletterFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\NewsletterWidgetNewsletterFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-21`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-83`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-21`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-21`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-80`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-21`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-81`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`newsletterSubmitLabel`,type:`?string`,id:`param-newsletter-submit-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`newsletterSubmitVariant`,type:`Enums\\\\NewsletterSubmitVariant|string|null`,id:`param-newsletter-submit-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitSize`,type:`Enums\\\\NewsletterSubmitSize|string|null`,id:`param-newsletter-submit-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitRadius`,type:`Enums\\\\NewsletterSubmitRadius|string|null`,id:`param-newsletter-submit-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitColor`,type:`?string`,id:`param-newsletter-submit-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`newsletterSubmitColorLight`,type:`?string`,id:`param-newsletter-submit-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`newsletterSubmitTextColor`,type:`?string`,id:`param-newsletter-submit-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`newsletterSubmitTextColorLight`,type:`?string`,id:`param-newsletter-submit-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`newsletterSubmitHoverColor`,type:`?string`,id:`param-newsletter-submit-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`newsletterSubmitHoverColorLight`,type:`?string`,id:`param-newsletter-submit-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`newsletterSubmitStyle`,type:`Enums\\\\NewsletterSubmitStyle|string|null`,id:`param-newsletter-submit-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitShadowColor`,type:`?string`,id:`param-newsletter-submit-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`newsletterSubmitShadowColorLight`,type:`?string`,id:`param-newsletter-submit-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`newsletterSubmitAnimation`,type:`Enums\\\\NewsletterSubmitAnimation|string|null`,id:`param-newsletter-submit-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIcon`,type:`?string`,id:`param-newsletter-submit-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`newsletterSubmitIconFamily`,type:`Enums\\\\NewsletterSubmitIconFamily|string|null`,id:`param-newsletter-submit-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIconPosition`,type:`Enums\\\\NewsletterSubmitIconPosition|string|null`,id:`param-newsletter-submit-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIconNudge`,type:`?bool`,id:`param-newsletter-submit-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-25`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-82`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`SmsSignupWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SmsSignupWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`sms-signup`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\SmsSignupWidgetType|string`,required:true,id:`param-type-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`sms-signup`}),`. One of `,_jsx(_components.code,{children:`sms-signup`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupConsentText`,type:`string`,required:true,id:`param-sms-signup-consent-text`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Shown beside a required checkbox; the form shows only once this is filled in. Be specific about what they are agreeing to. The brand name is added automatically from Site settings.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-84`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-32`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupForm`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-sms-signup-form`,children:_jsxs(_components.p,{children:[`The Form (Forms manager) that receives these SMS opt-ins and routes them — configure its destinations on the form’s Actions tab. The related `,_jsx(_components.code,{children:`@apostrophecms/form`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowEnabled`,type:`?bool`,id:`param-sms-signup-eyebrow-enabled`,children:_jsx(_components.p,{children:`Show eyebrow.`})}),_jsx(ResponseField,{name:`smsSignupEyebrow`,type:`?string`,id:`param-sms-signup-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`smsSignupEyebrowColor`,type:`?string`,id:`param-sms-signup-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`smsSignupEyebrowColorLight`,type:`?string`,id:`param-sms-signup-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`smsSignupEyebrowWeight`,type:`Enums\\\\SmsSignupEyebrowWeight|string|null`,id:`param-sms-signup-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowSize`,type:`Enums\\\\SmsSignupEyebrowSize|string|null`,id:`param-sms-signup-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupHeading`,type:`?string`,id:`param-sms-signup-heading`,children:_jsx(_components.p,{children:`Heading.`})}),_jsx(ResponseField,{name:`smsSignupHeadingColor`,type:`?string`,id:`param-sms-signup-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`smsSignupHeadingColorLight`,type:`?string`,id:`param-sms-signup-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`smsSignupHeadingWeight`,type:`Enums\\\\SmsSignupHeadingWeight|string|null`,id:`param-sms-signup-heading-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupHeadingSize`,type:`Enums\\\\SmsSignupHeadingSize|string|null`,id:`param-sms-signup-heading-size`,children:_jsxs(_components.p,{children:[`Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupIntro`,type:`?string`,id:`param-sms-signup-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`smsSignupIntroColor`,type:`?string`,id:`param-sms-signup-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`smsSignupIntroColorLight`,type:`?string`,id:`param-sms-signup-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`smsSignupIntroWeight`,type:`Enums\\\\SmsSignupIntroWeight|string|null`,id:`param-sms-signup-intro-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupIntroSize`,type:`Enums\\\\SmsSignupIntroSize|string|null`,id:`param-sms-signup-intro-size`,children:_jsxs(_components.p,{children:[`Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupBand`,type:`Enums\\\\SmsSignupBand|string|null`,id:`param-sms-signup-band`,children:_jsxs(_components.p,{children:[`Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupAccentColor`,type:`?string`,id:`param-sms-signup-accent-color`,children:_jsx(_components.p,{children:`The accent band color. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`smsSignupAccentColorLight`,type:`?string`,id:`param-sms-signup-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`smsSignupAlign`,type:`Enums\\\\SmsSignupAlign|string|null`,id:`param-sms-signup-align`,children:_jsxs(_components.p,{children:[`Alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupLayout`,type:`Enums\\\\SmsSignupLayout|string|null`,id:`param-sms-signup-layout`,children:_jsxs(_components.p,{children:[`Inline puts the field + button on one row (stacks on small screens); Stacked always stacks them. One of `,_jsx(_components.code,{children:`inline`}),`, `,_jsx(_components.code,{children:`stacked`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupWidth`,type:`Enums\\\\SmsSignupWidth|string|null`,id:`param-sms-signup-width`,children:_jsxs(_components.p,{children:[`Content width. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupNameEnabled`,type:`?bool`,id:`param-sms-signup-name-enabled`,children:_jsx(_components.p,{children:`Collect a name.`})}),_jsx(ResponseField,{name:`smsSignupNameLabel`,type:`?string`,id:`param-sms-signup-name-label`,children:_jsx(_components.p,{children:`Name label.`})}),_jsx(ResponseField,{name:`smsSignupNamePlaceholder`,type:`?string`,id:`param-sms-signup-name-placeholder`,children:_jsx(_components.p,{children:`Name placeholder.`})}),_jsx(ResponseField,{name:`smsSignupPhoneLabel`,type:`?string`,id:`param-sms-signup-phone-label`,children:_jsx(_components.p,{children:`Phone label.`})}),_jsx(ResponseField,{name:`smsSignupPhonePlaceholder`,type:`?string`,id:`param-sms-signup-phone-placeholder`,children:_jsx(_components.p,{children:`Phone placeholder.`})}),_jsx(ResponseField,{name:`smsSignupTermsText`,type:`?string`,id:`param-sms-signup-terms-text`,children:_jsx(_components.p,{children:`Carrier-compliance fine print shown under the form.`})}),_jsx(ResponseField,{name:`smsSignupPrivacyUrl`,type:`?string`,id:`param-sms-signup-privacy-url`,children:_jsx(_components.p,{children:`Optional — linked from the fine print.`})}),_jsx(ResponseField,{name:`smsSignupTermsUrl`,type:`?string`,id:`param-sms-signup-terms-url`,children:_jsx(_components.p,{children:`Optional — linked from the fine print.`})}),_jsx(ResponseField,{name:`smsSignupSuccessMessage`,type:`?string`,id:`param-sms-signup-success-message`,children:_jsx(_components.p,{children:`Success message.`})}),_jsx(ResponseField,{name:`smsSignupErrorMessage`,type:`?string`,id:`param-sms-signup-error-message`,children:_jsx(_components.p,{children:`Error message.`})}),_jsx(ResponseField,{name:`smsSignupBg`,type:`Enums\\\\SmsSignupBg|string|null`,id:`param-sms-signup-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupBgCustom`,type:`?string`,id:`param-sms-signup-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`smsSignupBgLight`,type:`Enums\\\\SmsSignupBgLight|string|null`,id:`param-sms-signup-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupBgLightCustom`,type:`?string`,id:`param-sms-signup-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`smsSignupFontOverrides`,type:`Collection\u003cint, SmsSignupWidgetSmsSignupFontOverridesItem>|null`,id:`param-sms-signup-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`SmsSignupWidgetSmsSignupFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`SmsSignupWidgetSmsSignupFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SmsSignupWidgetSmsSignupFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-85`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-22`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-22`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-22`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-22`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-22`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-22`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-22`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem>|null`,id:`param-uploads-22`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-22`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-86`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-22`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-22`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-83`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-22`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-84`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`smsSignupSubmitLabel`,type:`?string`,id:`param-sms-signup-submit-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`smsSignupSubmitVariant`,type:`Enums\\\\SmsSignupSubmitVariant|string|null`,id:`param-sms-signup-submit-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitSize`,type:`Enums\\\\SmsSignupSubmitSize|string|null`,id:`param-sms-signup-submit-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitRadius`,type:`Enums\\\\SmsSignupSubmitRadius|string|null`,id:`param-sms-signup-submit-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitColor`,type:`?string`,id:`param-sms-signup-submit-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`smsSignupSubmitColorLight`,type:`?string`,id:`param-sms-signup-submit-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`smsSignupSubmitTextColor`,type:`?string`,id:`param-sms-signup-submit-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`smsSignupSubmitTextColorLight`,type:`?string`,id:`param-sms-signup-submit-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`smsSignupSubmitHoverColor`,type:`?string`,id:`param-sms-signup-submit-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`smsSignupSubmitHoverColorLight`,type:`?string`,id:`param-sms-signup-submit-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`smsSignupSubmitStyle`,type:`Enums\\\\SmsSignupSubmitStyle|string|null`,id:`param-sms-signup-submit-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitShadowColor`,type:`?string`,id:`param-sms-signup-submit-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`smsSignupSubmitShadowColorLight`,type:`?string`,id:`param-sms-signup-submit-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`smsSignupSubmitAnimation`,type:`Enums\\\\SmsSignupSubmitAnimation|string|null`,id:`param-sms-signup-submit-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIcon`,type:`?string`,id:`param-sms-signup-submit-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`smsSignupSubmitIconFamily`,type:`Enums\\\\SmsSignupSubmitIconFamily|string|null`,id:`param-sms-signup-submit-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIconPosition`,type:`Enums\\\\SmsSignupSubmitIconPosition|string|null`,id:`param-sms-signup-submit-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIconNudge`,type:`?bool`,id:`param-sms-signup-submit-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-26`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-85`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`FormRenderWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FormRenderWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`form-render`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FormRenderWidgetType|string`,required:true,id:`param-type-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`form-render`}),`. One of `,_jsx(_components.code,{children:`form-render`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-87`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-33`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`form`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-form`,children:_jsxs(_components.p,{children:[`The form to show here. Build and edit the form itself in the Forms manager (create one there first if needed). The related `,_jsx(_components.code,{children:`@apostrophecms/form`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`styleOverride`,type:`?bool`,id:`param-style-override`,children:_jsx(_components.p,{children:`Off: the form renders with the styling saved on the form itself. On: the styling below replaces it here only — the form’s fields and other placements are unaffected.`})}),_jsxs(ResponseField,{name:`formFontOverrides`,type:`Collection\u003cint, FormRenderWidgetFormFontOverridesItem>|null`,id:`param-form-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FormRenderWidgetFormFontOverridesItem`}),`. Optional. Set part of this form in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FormRenderWidgetFormFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FormRenderWidgetFormFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-88`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-23`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-23`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-23`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-23`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-23`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-23`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-23`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FormRenderWidgetFormFontOverridesItemUploadsItem>|null`,id:`param-uploads-23`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FormRenderWidgetFormFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FormRenderWidgetFormFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FormRenderWidgetFormFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-23`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-89`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-23`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-23`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-86`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-23`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-87`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`formEyebrowEnabled`,type:`?bool`,id:`param-form-eyebrow-enabled`,children:_jsx(_components.p,{children:`Show eyebrow.`})}),_jsx(ResponseField,{name:`formEyebrow`,type:`?string`,id:`param-form-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`formEyebrowColor`,type:`?string`,id:`param-form-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`formEyebrowColorLight`,type:`?string`,id:`param-form-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`formEyebrowWeight`,type:`Enums\\\\FormEyebrowWeight|string|null`,id:`param-form-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`formEyebrowSize`,type:`Enums\\\\FormEyebrowSize|string|null`,id:`param-form-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`formHeading`,type:`?string`,id:`param-form-heading`,children:_jsx(_components.p,{children:`Heading.`})}),_jsx(ResponseField,{name:`formHeadingColor`,type:`?string`,id:`param-form-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`formHeadingColorLight`,type:`?string`,id:`param-form-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`formHeadingWeight`,type:`Enums\\\\FormHeadingWeight|string|null`,id:`param-form-heading-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`formHeadingSize`,type:`Enums\\\\FormHeadingSize|string|null`,id:`param-form-heading-size`,children:_jsxs(_components.p,{children:[`Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`formIntro`,type:`?string`,id:`param-form-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`formIntroColor`,type:`?string`,id:`param-form-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`formIntroColorLight`,type:`?string`,id:`param-form-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`formIntroWeight`,type:`Enums\\\\FormIntroWeight|string|null`,id:`param-form-intro-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`formIntroSize`,type:`Enums\\\\FormIntroSize|string|null`,id:`param-form-intro-size`,children:_jsxs(_components.p,{children:[`Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`formBand`,type:`Enums\\\\FormBand|string|null`,id:`param-form-band`,children:_jsxs(_components.p,{children:[`Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`formAccentColor`,type:`?string`,id:`param-form-accent-color`,children:_jsx(_components.p,{children:`The accent band color. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`formAccentColorLight`,type:`?string`,id:`param-form-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`formAlign`,type:`Enums\\\\FormAlign|string|null`,id:`param-form-align`,children:_jsxs(_components.p,{children:[`Alignment of the section header (the form fields stay left-aligned for legibility). One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`formWidth`,type:`Enums\\\\FormWidth|string|null`,id:`param-form-width`,children:_jsxs(_components.p,{children:[`Content width. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`formLabelGap`,type:`Enums\\\\FormLabelGap|string|null`,id:`param-form-label-gap`,children:_jsxs(_components.p,{children:[`Vertical space between each field’s label and its input. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`, `,_jsx(_components.code,{children:`spacious`}),`.`]})}),_jsx(ResponseField,{name:`formBg`,type:`Enums\\\\FormBg|string|null`,id:`param-form-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`formBgCustom`,type:`?string`,id:`param-form-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`formBgLight`,type:`Enums\\\\FormBgLight|string|null`,id:`param-form-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`formBgLightCustom`,type:`?string`,id:`param-form-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`formSubmitLabel`,type:`?string`,id:`param-form-submit-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`formSubmitVariant`,type:`Enums\\\\FormSubmitVariant|string|null`,id:`param-form-submit-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitSize`,type:`Enums\\\\FormSubmitSize|string|null`,id:`param-form-submit-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitRadius`,type:`Enums\\\\FormSubmitRadius|string|null`,id:`param-form-submit-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitColor`,type:`?string`,id:`param-form-submit-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`formSubmitColorLight`,type:`?string`,id:`param-form-submit-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`formSubmitTextColor`,type:`?string`,id:`param-form-submit-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`formSubmitTextColorLight`,type:`?string`,id:`param-form-submit-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`formSubmitHoverColor`,type:`?string`,id:`param-form-submit-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`formSubmitHoverColorLight`,type:`?string`,id:`param-form-submit-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`formSubmitStyle`,type:`Enums\\\\FormSubmitStyle|string|null`,id:`param-form-submit-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitShadowColor`,type:`?string`,id:`param-form-submit-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`formSubmitShadowColorLight`,type:`?string`,id:`param-form-submit-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`formSubmitAnimation`,type:`Enums\\\\FormSubmitAnimation|string|null`,id:`param-form-submit-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitIcon`,type:`?string`,id:`param-form-submit-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`formSubmitIconFamily`,type:`Enums\\\\FormSubmitIconFamily|string|null`,id:`param-form-submit-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitIconPosition`,type:`Enums\\\\FormSubmitIconPosition|string|null`,id:`param-form-submit-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitIconNudge`,type:`?bool`,id:`param-form-submit-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-27`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-88`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`FinalCtaWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FinalCtaWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`final-cta`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FinalCtaWidgetType|string`,required:true,id:`param-type-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`final-cta`}),`. One of `,_jsx(_components.code,{children:`final-cta`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-90`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-34`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`ctaAlign`,type:`Enums\\\\CtaAlign|string|null`,id:`param-cta-align`,children:_jsxs(_components.p,{children:[`Content alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`ctaEyebrowEnabled`,type:`?bool`,id:`param-cta-eyebrow-enabled`,children:_jsx(_components.p,{children:`Show eyebrow / kicker.`})}),_jsx(ResponseField,{name:`ctaEyebrow`,type:`?string`,id:`param-cta-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`ctaEyebrowColor`,type:`?string`,id:`param-cta-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`ctaEyebrowColorLight`,type:`?string`,id:`param-cta-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`ctaEyebrowWeight`,type:`Enums\\\\CtaEyebrowWeight|string|null`,id:`param-cta-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`ctaEyebrowSize`,type:`Enums\\\\CtaEyebrowSize|string|null`,id:`param-cta-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`ctaIconPlacement`,type:`Enums\\\\CtaIconPlacement|string|null`,id:`param-cta-icon-placement`,children:_jsxs(_components.p,{children:[`An optional Font Awesome icon above the headline. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`top`}),`.`]})}),_jsx(ResponseField,{name:`ctaIcon`,type:`?string`,id:`param-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`ctaIconFamily`,type:`Enums\\\\CtaIconFamily|string|null`,id:`param-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`ctaIconColor`,type:`?string`,id:`param-cta-icon-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the design’s own color rhythm.`})}),_jsx(ResponseField,{name:`ctaIconAnimation`,type:`Enums\\\\CtaIconAnimation|string|null`,id:`param-cta-icon-animation`,children:_jsxs(_components.p,{children:[`Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`.`]})}),_jsx(ResponseField,{name:`ctaIconSize`,type:`Enums\\\\CtaIconSize|string|null`,id:`param-cta-icon-size`,children:_jsxs(_components.p,{children:[`Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`.`]})}),_jsx(ResponseField,{name:`ctaIconTilt`,type:`Enums\\\\CtaIconTilt|string|null`,id:`param-cta-icon-tilt`,children:_jsxs(_components.p,{children:[`A slight rotation for a more playful look. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`ctaHeadline`,type:`?string`,id:`param-cta-headline`,children:_jsx(_components.p,{children:`Headline.`})}),_jsx(ResponseField,{name:`ctaHeadlineColor`,type:`?string`,id:`param-cta-headline-color`,children:_jsx(_components.p,{children:`Optional. Overrides the headline color. Leave empty for the on-accent (legible-on-band) default.`})}),_jsx(ResponseField,{name:`ctaHeadlineColorLight`,type:`?string`,id:`param-cta-headline-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the on-accent default.`})}),_jsx(ResponseField,{name:`ctaHeadlineWeight`,type:`Enums\\\\CtaHeadlineWeight|string|null`,id:`param-cta-headline-weight`,children:_jsxs(_components.p,{children:[`Headline weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`ctaBody`,type:`?string`,id:`param-cta-body`,children:_jsx(_components.p,{children:`Supporting copy.`})}),_jsx(ResponseField,{name:`ctaBodyColor`,type:`?string`,id:`param-cta-body-color`,children:_jsx(_components.p,{children:`Optional. Overrides the supporting-copy color. Leave empty for the softened on-accent default.`})}),_jsx(ResponseField,{name:`ctaBodyColorLight`,type:`?string`,id:`param-cta-body-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the softened on-accent default.`})}),_jsx(ResponseField,{name:`ctaBodyWeight`,type:`Enums\\\\CtaBodyWeight|string|null`,id:`param-cta-body-weight`,children:_jsxs(_components.p,{children:[`Body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`ctaBackgroundType`,type:`Enums\\\\CtaBackgroundType|string|null`,id:`param-cta-background-type`,children:_jsxs(_components.p,{children:[`Solid keeps the loud color block; Image places a photo behind the text with a readability overlay. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`image`}),`.`]})}),_jsx(ResponseField,{name:`ctaBackgroundColor`,type:`?string`,id:`param-cta-background-color`,children:_jsx(_components.p,{children:`The solid band color (and the fallback behind a background image). Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`ctaBackgroundColorLight`,type:`?string`,id:`param-cta-background-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`ctaImage`,type:`?ImageArea`,id:`param-cta-image`,children:_jsxs(_components.p,{children:[`An `,_jsx(_components.code,{children:`ImageArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`ctaOverlayColor`,type:`?string`,id:`param-cta-overlay-color`,children:_jsx(_components.p,{children:`Scrim over the image to keep the text readable. Leave empty to use the accent color.`})}),_jsx(ResponseField,{name:`ctaOverlayColorLight`,type:`?string`,id:`param-cta-overlay-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme overlay, then the accent.`})}),_jsx(ResponseField,{name:`ctaOverlayOpacity`,type:`?float`,id:`param-cta-overlay-opacity`,children:_jsx(_components.p,{children:`Overlay opacity (%). 0 to 100.`})}),_jsx(ResponseField,{name:`ctaRings`,type:`?bool`,id:`param-cta-rings`,children:_jsx(_components.p,{children:`The two large outlined circles on the band.`})}),_jsx(ResponseField,{name:`ctaRingColor`,type:`?string`,id:`param-cta-ring-color`,children:_jsx(_components.p,{children:`Drawn at a low opacity. Leave empty to use the on-accent (white-ish) default.`})}),_jsxs(ResponseField,{name:`ctaFontOverrides`,type:`Collection\u003cint, FinalCtaWidgetCtaFontOverridesItem>|null`,id:`param-cta-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FinalCtaWidgetCtaFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FinalCtaWidgetCtaFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FinalCtaWidgetCtaFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-91`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-24`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-24`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-24`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-24`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-24`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-24`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-24`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FinalCtaWidgetCtaFontOverridesItemUploadsItem>|null`,id:`param-uploads-24`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FinalCtaWidgetCtaFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FinalCtaWidgetCtaFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FinalCtaWidgetCtaFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-24`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-92`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-24`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-24`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-89`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-24`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-90`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`ctaPrimaryLabel`,type:`?string`,id:`param-cta-primary-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`ctaPrimaryUrl`,type:`?string`,id:`param-cta-primary-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`ctaPrimaryNewTab`,type:`?bool`,id:`param-cta-primary-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`ctaPrimaryVariant`,type:`Enums\\\\CtaPrimaryVariant|string|null`,id:`param-cta-primary-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimarySize`,type:`Enums\\\\CtaPrimarySize|string|null`,id:`param-cta-primary-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimaryRadius`,type:`Enums\\\\CtaPrimaryRadius|string|null`,id:`param-cta-primary-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimaryColor`,type:`?string`,id:`param-cta-primary-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`ctaPrimaryColorLight`,type:`?string`,id:`param-cta-primary-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`ctaPrimaryTextColor`,type:`?string`,id:`param-cta-primary-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`ctaPrimaryTextColorLight`,type:`?string`,id:`param-cta-primary-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`ctaPrimaryHoverColor`,type:`?string`,id:`param-cta-primary-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`ctaPrimaryHoverColorLight`,type:`?string`,id:`param-cta-primary-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`ctaPrimaryStyle`,type:`Enums\\\\CtaPrimaryStyle|string|null`,id:`param-cta-primary-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimaryShadowColor`,type:`?string`,id:`param-cta-primary-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`ctaPrimaryShadowColorLight`,type:`?string`,id:`param-cta-primary-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`ctaPrimaryAnimation`,type:`Enums\\\\CtaPrimaryAnimation|string|null`,id:`param-cta-primary-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIcon`,type:`?string`,id:`param-cta-primary-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`ctaPrimaryIconFamily`,type:`Enums\\\\CtaPrimaryIconFamily|string|null`,id:`param-cta-primary-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIconPosition`,type:`Enums\\\\CtaPrimaryIconPosition|string|null`,id:`param-cta-primary-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIconNudge`,type:`?bool`,id:`param-cta-primary-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`ctaSecondaryLabel`,type:`?string`,id:`param-cta-secondary-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`ctaSecondaryUrl`,type:`?string`,id:`param-cta-secondary-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`ctaSecondaryNewTab`,type:`?bool`,id:`param-cta-secondary-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`ctaSecondaryVariant`,type:`Enums\\\\CtaSecondaryVariant|string|null`,id:`param-cta-secondary-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondarySize`,type:`Enums\\\\CtaSecondarySize|string|null`,id:`param-cta-secondary-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondaryRadius`,type:`Enums\\\\CtaSecondaryRadius|string|null`,id:`param-cta-secondary-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondaryColor`,type:`?string`,id:`param-cta-secondary-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`ctaSecondaryColorLight`,type:`?string`,id:`param-cta-secondary-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`ctaSecondaryTextColor`,type:`?string`,id:`param-cta-secondary-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`ctaSecondaryTextColorLight`,type:`?string`,id:`param-cta-secondary-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`ctaSecondaryHoverColor`,type:`?string`,id:`param-cta-secondary-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`ctaSecondaryHoverColorLight`,type:`?string`,id:`param-cta-secondary-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`ctaSecondaryStyle`,type:`Enums\\\\CtaSecondaryStyle|string|null`,id:`param-cta-secondary-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondaryShadowColor`,type:`?string`,id:`param-cta-secondary-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`ctaSecondaryShadowColorLight`,type:`?string`,id:`param-cta-secondary-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`ctaSecondaryAnimation`,type:`Enums\\\\CtaSecondaryAnimation|string|null`,id:`param-cta-secondary-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIcon`,type:`?string`,id:`param-cta-secondary-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`ctaSecondaryIconFamily`,type:`Enums\\\\CtaSecondaryIconFamily|string|null`,id:`param-cta-secondary-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIconPosition`,type:`Enums\\\\CtaSecondaryIconPosition|string|null`,id:`param-cta-secondary-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIconNudge`,type:`?bool`,id:`param-cta-secondary-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-28`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-91`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-92`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ParamField,{body:`comingSoonIcon`,type:`?string`,id:`param-coming-soon-icon`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"sparkles\"`}),`. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ParamField,{body:`comingSoonIconFamily`,type:`Enums\\\\ComingSoonIconFamily|string|null`,id:`param-coming-soon-icon-family`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"classic-regular\"`}),`. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ParamField,{body:`comingSoonIconColor`,type:`?string`,id:`param-coming-soon-icon-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ParamField,{body:`comingSoonIconAnimation`,type:`Enums\\\\ComingSoonIconAnimation|string|null`,id:`param-coming-soon-icon-animation`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"none\"`}),`. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`.`]})}),_jsx(ParamField,{body:`comingSoonIconSize`,type:`Enums\\\\ComingSoonIconSize|string|null`,id:`param-coming-soon-icon-size`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"5x\"`}),`. Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`.`]})}),_jsx(ParamField,{body:`comingSoonNote`,type:`?string`,id:`param-coming-soon-note`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"\"`}),`. Optional. Shown under the icon while this page has no content. Leave empty for a tasteful default line.`]})}),_jsx(ParamField,{body:`backLinkColor`,type:`?string`,id:`param-back-link-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional. Color of the ”← back” link at the top of every post. Leave empty to use the site accent color.`]})}),_jsx(ParamField,{body:`backLinkColorLight`,type:`?string`,id:`param-back-link-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ParamField,{body:`backLinkWeight`,type:`Enums\\\\BackLinkWeight|string|null`,id:`param-back-link-weight`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"semibold\"`}),`. Back link weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ParamField,{body:`backLinkSize`,type:`Enums\\\\BackLinkSize|string|null`,id:`param-back-link-size`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"normal\"`}),`. Back link size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ParamField,{body:`aboveSections`,type:`SectionsArea|array\u003cstring, mixed>|null`,id:`param-above-sections`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`page-header`}),`.`]})}),_jsxs(ParamField,{body:`postList`,type:`BlogListArea|array\u003cstring, mixed>|null`,id:`param-post-list`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`blog-list`}),`.`]}),_jsxs(Expandable,{title:`BlogListArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-35`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-93`,children:_jsx(_components.p,{children:`The area’s id, set by the site: leave it out when you write one.`})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, BlogListWidget>|null`,id:`param-items-5`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`BlogListWidget`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them). At most 1 items.`]}),_jsxs(Expandable,{title:`BlogListWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`blog-list`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\BlogListWidgetType|string`,required:true,id:`param-type-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`blog-list`}),`. One of `,_jsx(_components.code,{children:`blog-list`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-94`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-36`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`blogLayout`,type:`Enums\\\\BlogLayout|string|null`,id:`param-blog-layout`,children:_jsxs(_components.p,{children:[`How posts are arranged. One of `,_jsx(_components.code,{children:`card`}),`, `,_jsx(_components.code,{children:`list`}),`, `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`featured`}),`, `,_jsx(_components.code,{children:`masonry`}),`.`]})}),_jsx(ResponseField,{name:`blogColumns`,type:`Enums\\\\BlogColumns|string|null`,id:`param-blog-columns`,children:_jsxs(_components.p,{children:[`Applies to the Card grid and Masonry layouts. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`.`]})}),_jsx(ResponseField,{name:`blogEntrance`,type:`Enums\\\\BlogEntrance|string|null`,id:`param-blog-entrance`,children:_jsxs(_components.p,{children:[`How posts animate in as they scroll into view. Only plays when site animations are on (Site design → Motion) — otherwise the posts are simply shown. In the Featured + grid layout the banner rises first, then the grid staggers in. One of `,_jsx(_components.code,{children:`stagger`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardImageAspect`,type:`Enums\\\\BlogCardImageAspect|string|null`,id:`param-blog-card-image-aspect-1`,children:_jsxs(_components.p,{children:[`Aspect ratio of the featured image. Choose “Hidden” for text-only cards. One of `,_jsx(_components.code,{children:`16/10`}),`, `,_jsx(_components.code,{children:`4/3`}),`, `,_jsx(_components.code,{children:`3/2`}),`, `,_jsx(_components.code,{children:`1/1`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardImageHover`,type:`Enums\\\\BlogCardImageHover|string|null`,id:`param-blog-card-image-hover-1`,children:_jsxs(_components.p,{children:[`Image hover. One of `,_jsx(_components.code,{children:`zoom`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardImageFill`,type:`?bool`,id:`param-blog-card-image-fill-1`,children:_jsx(_components.p,{children:`Use the featured image as the full card background, with the title and meta overlaid on a dark scrim. Posts with no image fall back to a normal card.`})}),_jsx(ResponseField,{name:`blogCardPreset`,type:`Enums\\\\BlogCardPreset|string|null`,id:`param-blog-card-preset-1`,children:_jsxs(_components.p,{children:[`The card surface. Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. (On image-led cards the photo covers the top edge.) One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`blogCardPresetRadius`,type:`Enums\\\\BlogCardPresetRadius|string|null`,id:`param-blog-card-preset-radius-1`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`blogCardPresetAccentColor`,type:`?string`,id:`param-blog-card-preset-accent-color-1`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`blogCardPresetAccentColorLight`,type:`?string`,id:`param-blog-card-preset-accent-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`blogCardPresetForgeScope`,type:`Enums\\\\BlogCardPresetForgeScope|string|null`,id:`param-blog-card-preset-forge-scope-1`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`blogCardPresetForgeWeight`,type:`Enums\\\\BlogCardPresetForgeWeight|string|null`,id:`param-blog-card-preset-forge-weight-1`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`blogCardHover`,type:`Enums\\\\BlogCardHover|string|null`,id:`param-blog-card-hover-1`,children:_jsxs(_components.p,{children:[`What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt (3-D + glare), Magnetic and Spotlight follow the cursor (need site animations on). The Hover color below tints these. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`blogCardHoverColor`,type:`?string`,id:`param-blog-card-hover-color-1`,children:_jsx(_components.p,{children:`Border / shadow / glow color on hover. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`blogCardHoverColorLight`,type:`?string`,id:`param-blog-card-hover-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardShowCategory`,type:`?bool`,id:`param-blog-card-show-category-1`,children:_jsx(_components.p,{children:`Show category.`})}),_jsx(ResponseField,{name:`blogCardCategoryStyle`,type:`Enums\\\\BlogCardCategoryStyle|string|null`,id:`param-blog-card-category-style-1`,children:_jsxs(_components.p,{children:[`How the category badge uses its color (set per category under Blog Categories). Filled = colored background; Outline = colored border + text; Minimal = colored text only. One of `,_jsx(_components.code,{children:`filled`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`minimal`}),`.`]})}),_jsx(ResponseField,{name:`blogCardShowDate`,type:`?bool`,id:`param-blog-card-show-date-1`,children:_jsx(_components.p,{children:`Show date.`})}),_jsx(ResponseField,{name:`blogCardShowExcerpt`,type:`?bool`,id:`param-blog-card-show-excerpt-1`,children:_jsx(_components.p,{children:`Show excerpt.`})}),_jsx(ResponseField,{name:`blogCardExcerptLines`,type:`Enums\\\\BlogCardExcerptLines|string|null`,id:`param-blog-card-excerpt-lines-1`,children:_jsxs(_components.p,{children:[`How many lines of the excerpt to show before truncating. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardShowAuthor`,type:`?bool`,id:`param-blog-card-show-author-1`,children:_jsx(_components.p,{children:`Show author.`})}),_jsx(ResponseField,{name:`blogCardShowReadMore`,type:`?bool`,id:`param-blog-card-show-read-more-1`,children:_jsx(_components.p,{children:`Show “Read post” link.`})}),_jsx(ResponseField,{name:`blogCardReadMorePlacement`,type:`Enums\\\\BlogCardReadMorePlacement|string|null`,id:`param-blog-card-read-more-placement-1`,children:_jsxs(_components.p,{children:[`Auto puts it on the right of horizontal cards (list / compact / featured) and below the text on grid cards. Or force one placement everywhere. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`below`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreColor`,type:`?string`,id:`param-blog-card-read-more-color-1`,children:_jsx(_components.p,{children:`Optional. Overrides the “Read post” link color. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`blogCardReadMoreColorLight`,type:`?string`,id:`param-blog-card-read-more-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColor`,type:`?string`,id:`param-blog-card-read-more-hover-color-1`,children:_jsx(_components.p,{children:`Optional. Color of the “Read post” link when the card is hovered. Leave empty to use the accent color.`})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColorLight`,type:`?string`,id:`param-blog-card-read-more-hover-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardTitleColor`,type:`?string`,id:`param-blog-card-title-color-1`,children:_jsx(_components.p,{children:`Optional. Overrides the card title color. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`blogCardTitleColorLight`,type:`?string`,id:`param-blog-card-title-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`blogCardTitleWeight`,type:`Enums\\\\BlogCardTitleWeight|string|null`,id:`param-blog-card-title-weight-1`,children:_jsxs(_components.p,{children:[`Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`blogCardTitleHoverColor`,type:`?string`,id:`param-blog-card-title-hover-color-1`,children:_jsx(_components.p,{children:`Optional. Title color when the card is hovered. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`blogCardTitleHoverColorLight`,type:`?string`,id:`param-blog-card-title-hover-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardTextColor`,type:`?string`,id:`param-blog-card-text-color-1`,children:_jsx(_components.p,{children:`Optional. Overrides the excerpt text color. Leave empty for the muted default.`})}),_jsx(ResponseField,{name:`blogCardTextColorLight`,type:`?string`,id:`param-blog-card-text-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the muted default.`})}),_jsx(ResponseField,{name:`blogCardTextWeight`,type:`Enums\\\\BlogCardTextWeight|string|null`,id:`param-blog-card-text-weight-1`,children:_jsxs(_components.p,{children:[`Excerpt weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`blogCardMetaColor`,type:`?string`,id:`param-blog-card-meta-color-1`,children:_jsx(_components.p,{children:`Date / meta line color. Leave empty for the faint default.`})}),_jsx(ResponseField,{name:`blogCardMetaColorLight`,type:`?string`,id:`param-blog-card-meta-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the faint default.`})}),_jsx(ResponseField,{name:`blogBg`,type:`Enums\\\\BlogBg|string|null`,id:`param-blog-bg-1`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`blogBgCustom`,type:`?string`,id:`param-blog-bg-custom-1`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`blogBgLight`,type:`Enums\\\\BlogBgLight|string|null`,id:`param-blog-bg-light-1`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`blogBgLightCustom`,type:`?string`,id:`param-blog-bg-light-custom-1`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`blogFontOverrides`,type:`Collection\u003cint, BlogListWidgetBlogFontOverridesItem>|null`,id:`param-blog-font-overrides-1`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`BlogListWidgetBlogFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`BlogListWidgetBlogFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListWidgetBlogFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-95`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-25`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-25`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-25`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-25`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-25`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-25`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-25`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, BlogListWidgetBlogFontOverridesItemUploadsItem>|null`,id:`param-uploads-25`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`BlogListWidgetBlogFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`BlogListWidgetBlogFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListWidgetBlogFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-25`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-96`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-25`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-25`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-93`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-25`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-94`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-29`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-95`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-96`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ParamField,{body:`belowSections`,type:`SectionsArea|array\u003cstring, mixed>|null`,id:`param-below-sections`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]})}),_jsx(ParamField,{body:`backButtonLabel`,type:`?string`,id:`param-back-button-label`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"Back to all posts\"`}),`. The visible button text. Leave empty to hide the button.`]})}),_jsx(ParamField,{body:`backButtonVariant`,type:`Enums\\\\BackButtonVariant|string|null`,id:`param-back-button-variant`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"outline\"`}),`. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ParamField,{body:`backButtonSize`,type:`Enums\\\\BackButtonSize|string|null`,id:`param-back-button-size`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"normal\"`}),`. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ParamField,{body:`backButtonRadius`,type:`Enums\\\\BackButtonRadius|string|null`,id:`param-back-button-radius`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"slight\"`}),`. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ParamField,{body:`backButtonColor`,type:`?string`,id:`param-back-button-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"--fetchski-accent\"`}),`. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ParamField,{body:`backButtonColorLight`,type:`?string`,id:`param-back-button-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ParamField,{body:`backButtonTextColor`,type:`?string`,id:`param-back-button-text-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"--fetchski-ink\"`}),`. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ParamField,{body:`backButtonTextColorLight`,type:`?string`,id:`param-back-button-text-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ParamField,{body:`backButtonHoverColor`,type:`?string`,id:`param-back-button-hover-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ParamField,{body:`backButtonHoverColorLight`,type:`?string`,id:`param-back-button-hover-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ParamField,{body:`backButtonStyle`,type:`Enums\\\\BackButtonStyle|string|null`,id:`param-back-button-style`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"sweep\"`}),`. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ParamField,{body:`backButtonShadowColor`,type:`?string`,id:`param-back-button-shadow-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ParamField,{body:`backButtonShadowColorLight`,type:`?string`,id:`param-back-button-shadow-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ParamField,{body:`backButtonAnimation`,type:`Enums\\\\BackButtonAnimation|string|null`,id:`param-back-button-animation`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"lift-scale\"`}),`. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ParamField,{body:`backButtonIcon`,type:`?string`,id:`param-back-button-icon`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"arrow-left\"`}),`. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ParamField,{body:`backButtonIconFamily`,type:`Enums\\\\BackButtonIconFamily|string|null`,id:`param-back-button-icon-family`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"classic-regular\"`}),`. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ParamField,{body:`backButtonIconPosition`,type:`Enums\\\\BackButtonIconPosition|string|null`,id:`param-back-button-icon-position`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"before\"`}),`. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ParamField,{body:`backButtonIconNudge`,type:`?bool`,id:`param-back-button-icon-nudge`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`false`}),`. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsxs(ParamField,{body:`postFontOverrides`,type:`array\u003cint, PagePostFontOverridesItem|array\u003cstring, mixed>>|Collection\u003cint, PagePostFontOverridesItem|array\u003cstring, mixed>>|null`,id:`param-post-font-overrides`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional. Set part of every post in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). An individual post can replace this on its own Fonts tab. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePostFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePostFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-97`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-26`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-26`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-26`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-26`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-26`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-26`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-26`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PagePostFontOverridesItemUploadsItem>|null`,id:`param-uploads-26`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PagePostFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePostFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePostFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-26`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-98`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-26`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-26`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-97`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-26`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-98`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ParamField,{body:`postTextSize`,type:`Enums\\\\PostTextSize|string|null`,id:`param-post-text-size`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"normal\"`}),`. Body text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ParamField,{body:`postTextWeight`,type:`Enums\\\\PostTextWeight|string|null`,id:`param-post-text-weight`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"normal\"`}),`. Body text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`.`]})}),_jsx(ParamField,{body:`postContentWidth`,type:`Enums\\\\PostContentWidth|string|null`,id:`param-post-content-width`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"normal\"`}),`. Reading measure — how wide the article column gets. Posts that contain section widgets open to Full width automatically so the widgets have room. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`, `,_jsx(_components.code,{children:`xwide`}),`, `,_jsx(_components.code,{children:`full`}),`.`]})}),_jsx(ParamField,{body:`postLineHeight`,type:`Enums\\\\PostLineHeight|string|null`,id:`param-post-line-height`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"normal\"`}),`. Line height. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`relaxed`}),`.`]})}),_jsx(ParamField,{body:`postAccentColor`,type:`?string`,id:`param-post-accent-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Links, the blockquote rule, and heading accents. Leave empty to use the site link color.`]})}),_jsx(ParamField,{body:`postAccentColorLight`,type:`?string`,id:`param-post-accent-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme color, then the link color.`]})}),_jsx(ParamField,{body:`postHeadingWeight`,type:`Enums\\\\PostHeadingWeight|string|null`,id:`param-post-heading-weight`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"bold\"`}),`. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ParamField,{body:`postHeadingColor`,type:`?string`,id:`param-post-heading-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional. Overrides in-article heading color. Leave empty to track the theme’s text color.`]})}),_jsx(ParamField,{body:`postHeadingColorLight`,type:`?string`,id:`param-post-heading-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsxs(ParamField,{body:`blogPostCss`,type:`PostCustomCSS|array\u003cstring, mixed>|null`,id:`param-blog-post-css`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. CSS for every blog post’s page: the title band, the article and its parts. It wins over Site design → Custom CSS → Blog post.`]}),_jsxs(Expandable,{title:`PostCustomCSS (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PostCustomCSS)`,children:[_jsx(ResponseField,{name:`slots`,type:`array\u003cstring, string>|null`,id:`param-slots-1`,children:_jsx(_components.p,{children:`The CSS typed into each part slot, by slot name.`})}),_jsx(ResponseField,{name:`css`,type:`?string`,id:`param-css-1`,children:_jsxs(_components.p,{children:[`The compiled CSS (read only: rebuilt from `,_jsx(_components.code,{children:`slots`}),`).`]})}),_jsx(ResponseField,{name:`mark`,type:`?string`,id:`param-mark-1`,children:_jsxs(_components.p,{children:[`The site’s check mark for `,_jsx(_components.code,{children:`css`}),` (read only).`]})})]})]})]}),_jsxs(Accordion,{title:`Returns`,icon:`reply`,id:`returns`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`Page`}),` (`,_jsx(_components.code,{children:`Fetchski\\\\AttractCmsLaravel\\\\Data\\\\Page`}),`). A page: the fields every page has, and each page type’s own (`,_jsx(_components.code,{children:`type`}),` says which page type it is; a field belongs only to the page types that define it). Read its properties (`,_jsx(_components.code,{children:`$page->id`}),`): each says whether the site always sends it. The example answer is the site’s wire JSON: some keys differ from the property names (`,_jsx(_components.code,{children:`_id`}),` → `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`_ancestors`}),` → `,_jsx(_components.code,{children:`ancestors`}),`, `,_jsx(_components.code,{children:`_children`}),` → `,_jsx(_components.code,{children:`children`}),` …).`]}),_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id-99`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Unique document identifier, may include mode and locale (e.g., “id:en:published”)`]})}),_jsx(ResponseField,{name:`aposDocId`,type:`string`,id:`param-apos-doc-id`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Base document ID without mode/locale qualifiers.`]})}),_jsx(ResponseField,{name:`aposLocale`,type:`string`,id:`param-apos-locale-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Document locale code.`]})}),_jsx(ResponseField,{name:`updatedAt`,type:`CarbonImmutable`,id:`param-updated-at`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page last update timestamp. Format: an ISO 8601 date and time.`]})}),_jsx(ResponseField,{name:`slug`,type:`string`,id:`param-slug-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` URL slug for the page.`]})}),_jsx(ResponseField,{name:`path`,type:`string`,id:`param-path`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Full hierarchical path in the page tree.`]})}),_jsx(ResponseField,{name:`level`,type:`int`,id:`param-level`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Depth level in the page tree (0 = root level)`]})}),_jsx(ResponseField,{name:`visibility`,type:`Enums\\\\FlatPageResponseResultsItemVisibility|string`,id:`param-visibility-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page visibility setting. One of `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`loginRequired`}),`, `,_jsx(_components.code,{children:`private`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`type`,type:`string`,id:`param-type-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page type module name.`]})}),_jsx(ResponseField,{name:`title`,type:`string`,id:`param-title-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page title. At most 100 characters.`]})}),_jsx(ResponseField,{name:`aposMode`,type:`Enums\\\\AposMode|string|null`,id:`param-apos-mode-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Document mode (draft or published) One of `,_jsx(_components.code,{children:`draft`}),`, `,_jsx(_components.code,{children:`published`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`archived`,type:`?bool`,id:`param-archived`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether the page is archived.`]})}),_jsx(ResponseField,{name:`createdAt`,type:`?CarbonImmutable`,id:`param-created-at`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Page creation timestamp. Format: an ISO 8601 date and time.`]})}),_jsx(ResponseField,{name:`titleSortified`,type:`?string`,id:`param-title-sortified`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sortable version of the page title.`]})}),_jsx(ResponseField,{name:`rank`,type:`?int`,id:`param-rank`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sort order within parent page.`]})}),_jsx(ResponseField,{name:`orphan`,type:`?bool`,id:`param-orphan-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether page is orphaned (not in tree structure)`]})}),_jsx(ResponseField,{name:`parked`,type:`Collection\u003cint, string>|null`,id:`param-parked`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Array of parking lot configurations if page is parked.`]})}),_jsxs(ResponseField,{name:`main`,type:`?MainArea`,id:`param-main-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`MainArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`MainArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MainArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-100`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The area’s id, set by the site: leave it out when you write one.`]})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, RichTextWidget|ImageWidget|VideoWidget>|null`,id:`param-items-6`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`MainAreaItem`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them).`]}),_jsxs(Expandable,{title:`MainAreaItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MainAreaItem)`,children:[_jsxs(_components.p,{children:[`A widget in an area that takes `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`, `,_jsx(_components.code,{children:`@apostrophecms/image`}),`, `,_jsx(_components.code,{children:`@apostrophecms/video`}),`: the one its `,_jsx(_components.code,{children:`type`}),` names.`]}),_jsxs(Expandable,{title:`RichTextWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\RichTextWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\RichTextWidgetType|string`,id:`param-type-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-101`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`content`,type:`?string`,id:`param-content-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text as HTML, e.g. `,_jsx(_components.code,{children:`\u003ch2>Our story\u003c/h2>\u003cp>It began with \u003cstrong>one\u003c/strong> idea.\u003c/p>`}),`. The site keeps the tags and styles this area’s editor offers (paragraphs, headings, bold, italic, links, lists…) and removes the rest.`]})}),_jsxs(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-30`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot.`]}),_jsxs(Expandable,{title:`CustomCSS (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CustomCSS)`,children:[_jsx(ResponseField,{name:`slots`,type:`array\u003cstring, string>|null`,id:`param-slots-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The CSS typed into each part slot, by slot name.`]})}),_jsx(ResponseField,{name:`css`,type:`?string`,id:`param-css-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The compiled CSS (read only: rebuilt from `,_jsx(_components.code,{children:`slots`}),`).`]})}),_jsx(ResponseField,{name:`mark`,type:`?string`,id:`param-mark-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The site’s check mark for `,_jsx(_components.code,{children:`css`}),` (read only).`]})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-99`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`ImageWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ImageWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/image`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\ImageWidgetType|string`,id:`param-type-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/image`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/image`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-102`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`image`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-image-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`caption`,type:`?string`,id:`param-caption-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption.`]})}),_jsx(ResponseField,{name:`linkTo`,type:`Enums\\\\LinkTo|string|null`,id:`param-link-to-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Link To… One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`@apostrophecms/any-page-type`}),`, `,_jsx(_components.code,{children:`_url`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`apostrophecmsAnyPageType`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-apostrophecms-any-page-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The related `,_jsx(_components.code,{children:`@apostrophecms/any-page-type`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`linkHref`,type:`?string`,id:`param-link-href-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. apostrophe:linkHrefHelp When set, a URL; empty or null when not.`]})}),_jsx(ResponseField,{name:`linkHrefTitle`,type:`?string`,id:`param-link-href-title-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Link Title.`]})}),_jsx(ResponseField,{name:`linkTitle`,type:`?string`,id:`param-link-title-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. If empty, the title of the related document will be used.`]})}),_jsx(ResponseField,{name:`linkTarget`,type:`Collection\u003cint, Enums\\\\LinkTarget|string>|null`,id:`param-link-target-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Link Target. Each one of `,_jsx(_components.code,{children:`_blank`}),`.`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-100`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`VideoWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\VideoWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/video`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\VideoWidgetType|string`,id:`param-type-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/video`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/video`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`video`,type:`array\u003cstring, mixed>`,id:`param-video-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Enter the URL for a media source you wish to embed (e.g., YouTube, Vimeo, or other hosted video URL).`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-103`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-101`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-102`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsxs(ResponseField,{name:`ancestors`,type:`Collection\u003cint, Page>|null`,id:`param-ancestors`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`Page`}),`. The page’s ancestors, from the home page down (each without its own `,_jsx(_components.code,{children:`_ancestors`}),` and `,_jsx(_components.code,{children:`_children`}),`).`]}),_jsxs(Expandable,{title:`Page (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\Page)`,children:[_jsxs(_components.p,{children:[`A page: the fields every page has, and each page type’s own (`,_jsx(_components.code,{children:`type`}),` says which page type it is; a field belongs only to the page types that define it).`]}),_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id-104`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Unique document identifier, may include mode and locale (e.g., “id:en:published”)`]})}),_jsx(ResponseField,{name:`aposDocId`,type:`string`,id:`param-apos-doc-id-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Base document ID without mode/locale qualifiers.`]})}),_jsx(ResponseField,{name:`aposLocale`,type:`string`,id:`param-apos-locale-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Document locale code.`]})}),_jsx(ResponseField,{name:`updatedAt`,type:`CarbonImmutable`,id:`param-updated-at-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page last update timestamp. Format: an ISO 8601 date and time.`]})}),_jsx(ResponseField,{name:`slug`,type:`string`,id:`param-slug-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` URL slug for the page.`]})}),_jsx(ResponseField,{name:`path`,type:`string`,id:`param-path-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Full hierarchical path in the page tree.`]})}),_jsx(ResponseField,{name:`level`,type:`int`,id:`param-level-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Depth level in the page tree (0 = root level)`]})}),_jsx(ResponseField,{name:`visibility`,type:`Enums\\\\FlatPageResponseResultsItemVisibility|string`,id:`param-visibility-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page visibility setting. One of `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`loginRequired`}),`, `,_jsx(_components.code,{children:`private`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`type`,type:`string`,id:`param-type-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page type module name.`]})}),_jsx(ResponseField,{name:`title`,type:`string`,id:`param-title-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page title. At most 100 characters.`]})}),_jsx(ResponseField,{name:`aposMode`,type:`Enums\\\\AposMode|string|null`,id:`param-apos-mode-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Document mode (draft or published) One of `,_jsx(_components.code,{children:`draft`}),`, `,_jsx(_components.code,{children:`published`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`archived`,type:`?bool`,id:`param-archived-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether the page is archived.`]})}),_jsx(ResponseField,{name:`createdAt`,type:`?CarbonImmutable`,id:`param-created-at-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Page creation timestamp. Format: an ISO 8601 date and time.`]})}),_jsx(ResponseField,{name:`titleSortified`,type:`?string`,id:`param-title-sortified-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sortable version of the page title.`]})}),_jsx(ResponseField,{name:`rank`,type:`?int`,id:`param-rank-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sort order within parent page.`]})}),_jsx(ResponseField,{name:`orphan`,type:`?bool`,id:`param-orphan-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether page is orphaned (not in tree structure)`]})}),_jsx(ResponseField,{name:`parked`,type:`Collection\u003cint, string>|null`,id:`param-parked-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Array of parking lot configurations if page is parked.`]})}),_jsx(ResponseField,{name:`main`,type:`?MainArea`,id:`param-main-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`MainArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`MainArea`}),` above.`]})}),_jsx(ResponseField,{name:`ancestors`,type:`Collection\u003cint, Page>|null`,id:`param-ancestors-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`Page`}),`. The page’s ancestors, from the home page down (each without its own `,_jsx(_components.code,{children:`_ancestors`}),` and `,_jsx(_components.code,{children:`_children`}),`). Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`children`,type:`Collection\u003cint, Page>|null`,id:`param-children`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`Page`}),`. Its child pages, each with its own `,_jsx(_components.code,{children:`_children`}),` where the request asked for more levels. Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`url`,type:`?string`,id:`param-url`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Full URL to the page. Format: an absolute URL.`]})}),_jsx(ResponseField,{name:`edit`,type:`?bool`,id:`param-edit`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether current user can edit this page.`]})}),_jsx(ResponseField,{name:`publish`,type:`?bool`,id:`param-publish`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether current user can publish this page.`]})}),_jsx(ResponseField,{name:`copyOfId`,type:`?string`,id:`param-copy-of-id`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The `,_jsx(_components.code,{children:`_id`}),` of the piece/page that was copied to create this document (only present if created via `,_jsx(_components.code,{children:`_copyingId`}),`)`]})}),_jsx(ResponseField,{name:`publishedDoc`,type:`?Page`,id:`param-published-doc`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`Page`}),`. A page: the fields every page has, and each page type’s own (`,_jsx(_components.code,{children:`type`}),` says which page type it is; a field belongs only to the page types that define it). Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`draftDoc`,type:`?Page`,id:`param-draft-doc`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`Page`}),`. A page: the fields every page has, and each page type’s own (`,_jsx(_components.code,{children:`type`}),` says which page type it is; a field belongs only to the page types that define it). Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`aposShareKey`,type:`?string`,id:`param-apos-share-key`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The draft’s preview share key, while its share link is on: the link is the draft’s `,_jsx(_components.code,{children:`_url`}),` with `,_jsx(_components.code,{children:`aposShareKey`}),` and `,_jsx(_components.code,{children:`aposShareId`}),` (the draft’s `,_jsx(_components.code,{children:`_id`}),`) in its query. Absent otherwise, and on published documents.`]})}),_jsx(ResponseField,{name:`scheduledPublish`,type:`?string`,id:`param-scheduled-publish-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An ISO 8601 date and time, e.g. `,_jsx(_components.code,{children:`2026-10-21T14:30:00.000Z`}),`.`]})}),_jsx(ResponseField,{name:`scheduledUnpublish`,type:`?string`,id:`param-scheduled-unpublish-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An ISO 8601 date and time, e.g. `,_jsx(_components.code,{children:`2026-10-21T14:30:00.000Z`}),`.`]})}),_jsx(ResponseField,{name:`seoTitle`,type:`?string`,id:`param-seo-title-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overrides the document title in the browser tab and search results. Leave blank to use the regular title.`]})}),_jsx(ResponseField,{name:`seoDescription`,type:`?string`,id:`param-seo-description-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Shown in search results and link previews. Aim for 150–160 characters.`]})}),_jsxs(ResponseField,{name:`seoImage`,type:`?ImageArea`,id:`param-seo-image-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An `,_jsx(_components.code,{children:`ImageArea`}),`. Used for Open Graph / social link previews. Recommended 1200×630. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`ImageArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ImageArea)`,children:[_jsxs(_components.p,{children:[`Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-105`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The area’s id, set by the site: leave it out when you write one.`]})}),_jsx(ResponseField,{name:`items`,type:`Collection\u003cint, ImageWidget>|null`,id:`param-items-7`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`ImageWidget`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them). At most 1 items. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageWidget`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-103`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsxs(ResponseField,{name:`pageFontOverrides`,type:`Collection\u003cint, PagePageFontOverridesItem>|null`,id:`param-page-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PagePageFontOverridesItem`}),`. Optional. Set part of this page in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). Individual sections can still override this for themselves. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePageFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePageFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-106`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PagePageFontOverridesItemUploadsItem>|null`,id:`param-uploads-27`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PagePageFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePageFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePageFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-107`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-104`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-105`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`footerMarqueeMode`,type:`Enums\\\\FooterMarqueeMode|string|null`,id:`param-footer-marquee-mode-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The ribbon of phrases scrolling across the top of the footer. Its phrases and the site-wide default are set in Site design → Footer: Marquee. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`on`}),`, `,_jsx(_components.code,{children:`off`}),`; a newer site may send others, so keep a fallback.`]})}),_jsxs(ResponseField,{name:`sections`,type:`?SectionsArea`,id:`param-sections-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`SectionsArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`page-header`}),`.`]}),_jsxs(Expandable,{title:`SectionsArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SectionsArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-108`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The area’s id, set by the site: leave it out when you write one.`]})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, PageHeaderWidget|HeroWidget|LayoutWidget|IntroWidget|FeatureWidget|StatsWidget|LogosWidget|StepsWidget|MediaTextWidget|DeviceMockWidget|TeamWidget|FaqWidget|ServiceMapWidget|BlogPreviewWidget|CookieDeclarationWidget|RichTextWidget|GoogleReviewsWidget|TestimonialsWidget|InstagramFeedWidget|GalleryPreviewWidget|GalleryFullWidget|PricingWidget|NewsletterWidget|SmsSignupWidget|FormRenderWidget|FinalCtaWidget>|null`,id:`param-items-8`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`SectionsAreaItem`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them).`]}),_jsxs(Expandable,{title:`SectionsAreaItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SectionsAreaItem)`,children:[_jsxs(_components.p,{children:[`A widget in an area that takes `,_jsx(_components.code,{children:`page-header`}),`, `,_jsx(_components.code,{children:`hero`}),`, `,_jsx(_components.code,{children:`@apostrophecms/layout`}),`, `,_jsx(_components.code,{children:`intro`}),`, `,_jsx(_components.code,{children:`feature`}),`, `,_jsx(_components.code,{children:`stats`}),`, `,_jsx(_components.code,{children:`logos`}),`, `,_jsx(_components.code,{children:`steps`}),`, `,_jsx(_components.code,{children:`media-text`}),`, `,_jsx(_components.code,{children:`device-mock`}),`, `,_jsx(_components.code,{children:`team`}),`, `,_jsx(_components.code,{children:`faq`}),`, `,_jsx(_components.code,{children:`service-map`}),`, `,_jsx(_components.code,{children:`blog-preview`}),`, `,_jsx(_components.code,{children:`cookie-declaration`}),`, `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`, `,_jsx(_components.code,{children:`google-reviews`}),`, `,_jsx(_components.code,{children:`testimonials`}),`, `,_jsx(_components.code,{children:`instagram-feed`}),`, `,_jsx(_components.code,{children:`gallery-preview`}),`, `,_jsx(_components.code,{children:`gallery-full`}),`, `,_jsx(_components.code,{children:`pricing`}),`, `,_jsx(_components.code,{children:`newsletter`}),`, `,_jsx(_components.code,{children:`sms-signup`}),`, `,_jsx(_components.code,{children:`form-render`}),`, `,_jsx(_components.code,{children:`final-cta`}),`: the one its `,_jsx(_components.code,{children:`type`}),` names.`]}),_jsxs(Expandable,{title:`PageHeaderWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PageHeaderWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`page-header`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\PageHeaderWidgetType|string`,id:`param-type-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`page-header`}),`. One of `,_jsx(_components.code,{children:`page-header`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-109`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`headline`,type:`?string`,id:`param-headline-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show the page title (the usual case). Set it only when the visible heading should read differently from the page’s title in navigation, search results and breadcrumbs.`]})}),_jsx(ResponseField,{name:`eyebrowMode`,type:`Enums\\\\EyebrowMode|string|null`,id:`param-eyebrow-mode-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The small label above the title. One of `,_jsx(_components.code,{children:`business`}),`, `,_jsx(_components.code,{children:`custom`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`eyebrow`,type:`?string`,id:`param-eyebrow-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow text.`]})}),_jsx(ResponseField,{name:`eyebrowColor`,type:`?string`,id:`param-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`eyebrowColorLight`,type:`?string`,id:`param-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`eyebrowWeight`,type:`Enums\\\\EyebrowWeight|string|null`,id:`param-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`eyebrowSize`,type:`Enums\\\\EyebrowSize|string|null`,id:`param-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`titleColor`,type:`?string`,id:`param-title-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`titleColorLight`,type:`?string`,id:`param-title-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`titleWeight`,type:`Enums\\\\TitleWeight|string|null`,id:`param-title-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`titleSize`,type:`Enums\\\\TitleSize|string|null`,id:`param-title-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`leadText`,type:`?string`,id:`param-lead-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional intro shown under the page title.`]})}),_jsx(ResponseField,{name:`leadColor`,type:`?string`,id:`param-lead-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`leadColorLight`,type:`?string`,id:`param-lead-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`leadWeight`,type:`Enums\\\\LeadWeight|string|null`,id:`param-lead-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Lead weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`leadSize`,type:`Enums\\\\LeadSize|string|null`,id:`param-lead-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Lead size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderBg`,type:`Enums\\\\PageHeaderBg|string|null`,id:`param-page-header-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderBgCustom`,type:`?string`,id:`param-page-header-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`pageHeaderBgLight`,type:`Enums\\\\PageHeaderBgLight|string|null`,id:`param-page-header-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderBgLightCustom`,type:`?string`,id:`param-page-header-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`pageHeaderImage`,type:`?ImageArea`,id:`param-page-header-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An `,_jsx(_components.code,{children:`ImageArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`pageHeaderOverlayColor`,type:`?string`,id:`param-page-header-overlay-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scrim behind the text over a background image (only applies when one is set). Leave empty to use the dark surface color.`]})}),_jsx(ResponseField,{name:`pageHeaderOverlayColorLight`,type:`?string`,id:`param-page-header-overlay-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme overlay, then the light surface color.`]})}),_jsx(ResponseField,{name:`pageHeaderOverlayOpacity`,type:`?float`,id:`param-page-header-overlay-opacity-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overlay opacity (%). 0 to 100.`]})}),_jsxs(ResponseField,{name:`pageHeaderFontOverrides`,type:`Collection\u003cint, PageHeaderWidgetPageHeaderFontOverridesItem>|null`,id:`param-page-header-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PageHeaderWidgetPageHeaderFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`PageHeaderWidgetPageHeaderFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PageHeaderWidgetPageHeaderFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-110`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem>|null`,id:`param-uploads-28`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-111`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-106`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-107`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaLabel`,type:`?string`,id:`param-page-header-primary-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaUrl`,type:`?string`,id:`param-page-header-primary-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaNewTab`,type:`?bool`,id:`param-page-header-primary-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaVariant`,type:`Enums\\\\PageHeaderPrimaryCtaVariant|string|null`,id:`param-page-header-primary-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaSize`,type:`Enums\\\\PageHeaderPrimaryCtaSize|string|null`,id:`param-page-header-primary-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaRadius`,type:`Enums\\\\PageHeaderPrimaryCtaRadius|string|null`,id:`param-page-header-primary-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaColor`,type:`?string`,id:`param-page-header-primary-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaColorLight`,type:`?string`,id:`param-page-header-primary-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaTextColor`,type:`?string`,id:`param-page-header-primary-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaTextColorLight`,type:`?string`,id:`param-page-header-primary-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaHoverColor`,type:`?string`,id:`param-page-header-primary-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaHoverColorLight`,type:`?string`,id:`param-page-header-primary-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaStyle`,type:`Enums\\\\PageHeaderPrimaryCtaStyle|string|null`,id:`param-page-header-primary-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaShadowColor`,type:`?string`,id:`param-page-header-primary-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaShadowColorLight`,type:`?string`,id:`param-page-header-primary-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaAnimation`,type:`Enums\\\\PageHeaderPrimaryCtaAnimation|string|null`,id:`param-page-header-primary-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIcon`,type:`?string`,id:`param-page-header-primary-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIconFamily`,type:`Enums\\\\PageHeaderPrimaryCtaIconFamily|string|null`,id:`param-page-header-primary-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIconPosition`,type:`Enums\\\\PageHeaderPrimaryCtaIconPosition|string|null`,id:`param-page-header-primary-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIconNudge`,type:`?bool`,id:`param-page-header-primary-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaLabel`,type:`?string`,id:`param-page-header-secondary-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaUrl`,type:`?string`,id:`param-page-header-secondary-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaNewTab`,type:`?bool`,id:`param-page-header-secondary-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaVariant`,type:`Enums\\\\PageHeaderSecondaryCtaVariant|string|null`,id:`param-page-header-secondary-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaSize`,type:`Enums\\\\PageHeaderSecondaryCtaSize|string|null`,id:`param-page-header-secondary-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaRadius`,type:`Enums\\\\PageHeaderSecondaryCtaRadius|string|null`,id:`param-page-header-secondary-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaColor`,type:`?string`,id:`param-page-header-secondary-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaColorLight`,type:`?string`,id:`param-page-header-secondary-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaTextColor`,type:`?string`,id:`param-page-header-secondary-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaTextColorLight`,type:`?string`,id:`param-page-header-secondary-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaHoverColor`,type:`?string`,id:`param-page-header-secondary-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaHoverColorLight`,type:`?string`,id:`param-page-header-secondary-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaStyle`,type:`Enums\\\\PageHeaderSecondaryCtaStyle|string|null`,id:`param-page-header-secondary-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaShadowColor`,type:`?string`,id:`param-page-header-secondary-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaShadowColorLight`,type:`?string`,id:`param-page-header-secondary-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaAnimation`,type:`Enums\\\\PageHeaderSecondaryCtaAnimation|string|null`,id:`param-page-header-secondary-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIcon`,type:`?string`,id:`param-page-header-secondary-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIconFamily`,type:`Enums\\\\PageHeaderSecondaryCtaIconFamily|string|null`,id:`param-page-header-secondary-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIconPosition`,type:`Enums\\\\PageHeaderSecondaryCtaIconPosition|string|null`,id:`param-page-header-secondary-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIconNudge`,type:`?bool`,id:`param-page-header-secondary-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-108`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`HeroWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\HeroWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`hero`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\HeroWidgetType|string`,id:`param-type-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`hero`}),`. One of `,_jsx(_components.code,{children:`hero`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHeadline`,type:`string`,id:`param-hero-headline-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Headline.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-112`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroAlign`,type:`Enums\\\\HeroAlign|string|null`,id:`param-hero-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Content alignment. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHeight`,type:`Enums\\\\HeroHeight|string|null`,id:`param-hero-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Full fills the screen (home pages); Compact is a short banner for interior pages. One of `,_jsx(_components.code,{children:`full`}),`, `,_jsx(_components.code,{children:`tall`}),`, `,_jsx(_components.code,{children:`compact`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroGhostEnabled`,type:`?bool`,id:`param-hero-ghost-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Giant outlined word above the headline (same treatment as the footer wordmark). Reveals on hover.`]})}),_jsx(ResponseField,{name:`heroGhostText`,type:`?string`,id:`param-hero-ghost-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Keep it short — one word reads best at display size. Leave empty to use the business name.`]})}),_jsx(ResponseField,{name:`heroGhostSize`,type:`Enums\\\\HeroGhostSize|string|null`,id:`param-hero-ghost-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Ghost wordmark size. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`medium`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroGhostFill`,type:`Enums\\\\HeroGhostFill|string|null`,id:`param-hero-ghost-fill-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Outlined letters that fill on hover one at a time, all at once, or always-solid (no ghost effect). One of `,_jsx(_components.code,{children:`letter`}),`, `,_jsx(_components.code,{children:`word`}),`, `,_jsx(_components.code,{children:`solid`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroGhostFillColor`,type:`?string`,id:`param-hero-ghost-fill-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the wordmark fill + outline tint in the dark theme. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`heroGhostFillColorLight`,type:`?string`,id:`param-hero-ghost-fill-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override — handy over a fixed video/photo background that doesn’t switch with the theme. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`heroLockupEnabled`,type:`?bool`,id:`param-hero-lockup-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small line (optional icon + business name) above the headline. Off by default when the ghost wordmark carries the brand.`]})}),_jsx(ResponseField,{name:`heroEyebrowEnabled`,type:`?bool`,id:`param-hero-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show eyebrow / kicker.`]})}),_jsx(ResponseField,{name:`heroEyebrow`,type:`?string`,id:`param-hero-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`heroEyebrowColor`,type:`?string`,id:`param-hero-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`heroEyebrowColorLight`,type:`?string`,id:`param-hero-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`heroEyebrowWeight`,type:`Enums\\\\HeroEyebrowWeight|string|null`,id:`param-hero-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroEyebrowSize`,type:`Enums\\\\HeroEyebrowSize|string|null`,id:`param-hero-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroEyebrowPlacement`,type:`Enums\\\\HeroEyebrowPlacement|string|null`,id:`param-hero-eyebrow-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow placement. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`belowHeadline`}),`, `,_jsx(_components.code,{children:`aboveCta`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHeadlineFill`,type:`Enums\\\\HeroHeadlineFill|string|null`,id:`param-hero-headline-fill-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid is the standard headline. The outline options give the headline the same ghost treatment as the wordmark, filling on hover. (The accent sticker word stays solid.) One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`letter`}),`, `,_jsx(_components.code,{children:`word`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHeadlineFillColor`,type:`?string`,id:`param-hero-headline-fill-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the headline color in the dark theme. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`heroHeadlineFillColorLight`,type:`?string`,id:`param-hero-headline-fill-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`heroStickerEnabled`,type:`?bool`,id:`param-hero-sticker-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Wraps the final headline word in the solid accent “sticker”. Turn off for a plain headline.`]})}),_jsx(ResponseField,{name:`heroStickerStyle`,type:`Enums\\\\HeroStickerStyle|string|null`,id:`param-hero-sticker-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Dual layers a colored offset shadow behind the patch; single is one flat color. One of `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`single`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroStickerColor`,type:`?string`,id:`param-hero-sticker-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Patch background. Leave empty to use the site primary/accent color.`]})}),_jsx(ResponseField,{name:`heroStickerColorSecondary`,type:`?string`,id:`param-hero-sticker-color-secondary-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Offset-shadow layer. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`heroLinkHoverFill`,type:`?bool`,id:`param-hero-link-hover-fill-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hovering either the wordmark or the headline fills both at once. Only available when both are set to fill the whole word/headline on hover.`]})}),_jsx(ResponseField,{name:`heroHashtagEnabled`,type:`?bool`,id:`param-hero-hashtag-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A bold social hashtag (e.g. #behindthescenes) with its own placement, fill, and optional pill background.`]})}),_jsx(ResponseField,{name:`heroHashtagText`,type:`?string`,id:`param-hero-hashtag-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Include the # — e.g. #behindthescenes.`]})}),_jsx(ResponseField,{name:`heroHashtagPlacement`,type:`Enums\\\\HeroHashtagPlacement|string|null`,id:`param-hero-hashtag-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hashtag placement. One of `,_jsx(_components.code,{children:`aboveGhost`}),`, `,_jsx(_components.code,{children:`aboveHeadline`}),`, `,_jsx(_components.code,{children:`belowHeadline`}),`, `,_jsx(_components.code,{children:`aboveCta`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHashtagSize`,type:`Enums\\\\HeroHashtagSize|string|null`,id:`param-hero-hashtag-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Smaller than the headline, but still a prominent element. One of `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`small`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHashtagFill`,type:`Enums\\\\HeroHashtagFill|string|null`,id:`param-hero-hashtag-fill-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid color, or the same outlined “ghost” treatment as the headline that fills on hover. (Ignored when the Solid pill background is used.) One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`letter`}),`, `,_jsx(_components.code,{children:`word`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHashtagFillColor`,type:`?string`,id:`param-hero-hashtag-fill-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional text color (or outline tint). Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`heroHashtagFillColorLight`,type:`?string`,id:`param-hero-hashtag-fill-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`heroHashtagBackground`,type:`Enums\\\\HeroHashtagBackground|string|null`,id:`param-hero-hashtag-background-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An optional patch behind the hashtag — a softer take on the headline sticker. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHashtagBgShape`,type:`Enums\\\\HeroHashtagBgShape|string|null`,id:`param-hero-hashtag-bg-shape-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Rounded pill or a squared patch like the headline sticker. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHashtagBgColor`,type:`?string`,id:`param-hero-hashtag-bg-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Patch fill (solid) or border + text (outline). Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`heroHashtagTilt`,type:`Enums\\\\HeroHashtagTilt|string|null`,id:`param-hero-hashtag-tilt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A slight rotation, like the headline sticker. Works with or without a background. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroIntro`,type:`?string`,id:`param-hero-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro copy.`]})}),_jsx(ResponseField,{name:`heroIntroColor`,type:`?string`,id:`param-hero-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the intro text color. Leave empty for the muted default.`]})}),_jsx(ResponseField,{name:`heroIntroColorLight`,type:`?string`,id:`param-hero-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the muted default.`]})}),_jsx(ResponseField,{name:`heroIntroWeight`,type:`Enums\\\\HeroIntroWeight|string|null`,id:`param-hero-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroIconPlacement`,type:`Enums\\\\HeroIconPlacement|string|null`,id:`param-hero-icon-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to place an optional Font Awesome icon. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lockup`}),`, `,_jsx(_components.code,{children:`aboveHeadline`}),`, `,_jsx(_components.code,{children:`aboveGhost`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroIcon`,type:`?string`,id:`param-hero-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`heroIconFamily`,type:`Enums\\\\HeroIconFamily|string|null`,id:`param-hero-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroIconColor`,type:`?string`,id:`param-hero-icon-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`heroIconAnimation`,type:`Enums\\\\HeroIconAnimation|string|null`,id:`param-hero-icon-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroBackgroundType`,type:`Enums\\\\HeroBackgroundType|string|null`,id:`param-hero-background-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Background type. One of `,_jsx(_components.code,{children:`gradient`}),`, `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroImage`,type:`?ImageArea`,id:`param-hero-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An `,_jsx(_components.code,{children:`ImageArea`}),`. Used when background type is Image, and as the poster/fallback for Video. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`heroVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-hero-video-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick from the Videos library (⌘K → Videos). Short, muted loop; reduced-motion visitors get the fallback image instead. The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`heroMotionPause`,type:`?bool`,id:`param-hero-motion-pause-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.`]})}),_jsxs(ResponseField,{name:`heroFontOverrides`,type:`Collection\u003cint, HeroWidgetHeroFontOverridesItem>|null`,id:`param-hero-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`HeroWidgetHeroFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`HeroWidgetHeroFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\HeroWidgetHeroFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-113`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, HeroWidgetHeroFontOverridesItemUploadsItem>|null`,id:`param-uploads-29`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`HeroWidgetHeroFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`HeroWidgetHeroFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\HeroWidgetHeroFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-114`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-109`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-110`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`heroPrimaryCtaLabel`,type:`?string`,id:`param-hero-primary-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaUrl`,type:`?string`,id:`param-hero-primary-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaNewTab`,type:`?bool`,id:`param-hero-primary-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaVariant`,type:`Enums\\\\HeroPrimaryCtaVariant|string|null`,id:`param-hero-primary-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaSize`,type:`Enums\\\\HeroPrimaryCtaSize|string|null`,id:`param-hero-primary-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaRadius`,type:`Enums\\\\HeroPrimaryCtaRadius|string|null`,id:`param-hero-primary-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaColor`,type:`?string`,id:`param-hero-primary-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaColorLight`,type:`?string`,id:`param-hero-primary-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaTextColor`,type:`?string`,id:`param-hero-primary-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaTextColorLight`,type:`?string`,id:`param-hero-primary-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaHoverColor`,type:`?string`,id:`param-hero-primary-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaHoverColorLight`,type:`?string`,id:`param-hero-primary-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaStyle`,type:`Enums\\\\HeroPrimaryCtaStyle|string|null`,id:`param-hero-primary-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaShadowColor`,type:`?string`,id:`param-hero-primary-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaShadowColorLight`,type:`?string`,id:`param-hero-primary-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaAnimation`,type:`Enums\\\\HeroPrimaryCtaAnimation|string|null`,id:`param-hero-primary-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIcon`,type:`?string`,id:`param-hero-primary-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIconFamily`,type:`Enums\\\\HeroPrimaryCtaIconFamily|string|null`,id:`param-hero-primary-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIconPosition`,type:`Enums\\\\HeroPrimaryCtaIconPosition|string|null`,id:`param-hero-primary-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIconNudge`,type:`?bool`,id:`param-hero-primary-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaLabel`,type:`?string`,id:`param-hero-secondary-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaUrl`,type:`?string`,id:`param-hero-secondary-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaNewTab`,type:`?bool`,id:`param-hero-secondary-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaVariant`,type:`Enums\\\\HeroSecondaryCtaVariant|string|null`,id:`param-hero-secondary-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaSize`,type:`Enums\\\\HeroSecondaryCtaSize|string|null`,id:`param-hero-secondary-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaRadius`,type:`Enums\\\\HeroSecondaryCtaRadius|string|null`,id:`param-hero-secondary-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaColor`,type:`?string`,id:`param-hero-secondary-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaColorLight`,type:`?string`,id:`param-hero-secondary-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaTextColor`,type:`?string`,id:`param-hero-secondary-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaTextColorLight`,type:`?string`,id:`param-hero-secondary-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaHoverColor`,type:`?string`,id:`param-hero-secondary-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaHoverColorLight`,type:`?string`,id:`param-hero-secondary-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaStyle`,type:`Enums\\\\HeroSecondaryCtaStyle|string|null`,id:`param-hero-secondary-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaShadowColor`,type:`?string`,id:`param-hero-secondary-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaShadowColorLight`,type:`?string`,id:`param-hero-secondary-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaAnimation`,type:`Enums\\\\HeroSecondaryCtaAnimation|string|null`,id:`param-hero-secondary-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIcon`,type:`?string`,id:`param-hero-secondary-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIconFamily`,type:`Enums\\\\HeroSecondaryCtaIconFamily|string|null`,id:`param-hero-secondary-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIconPosition`,type:`Enums\\\\HeroSecondaryCtaIconPosition|string|null`,id:`param-hero-secondary-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIconNudge`,type:`?bool`,id:`param-hero-secondary-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-111`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`LayoutWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/layout`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\LayoutWidgetType|string`,id:`param-type-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/layout`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/layout`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-115`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsxs(ResponseField,{name:`columns`,type:`?LayoutColumnArea`,id:`param-columns-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`LayoutColumnArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`LayoutColumnArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutColumnArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-116`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The area’s id, set by the site: leave it out when you write one.`]})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, LayoutColumnWidget>|null`,id:`param-items-9`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`LayoutColumnWidget`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them).`]}),_jsxs(Expandable,{title:`LayoutColumnWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutColumnWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/layout-column`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\LayoutColumnWidgetType|string`,id:`param-type-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/layout-column`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/layout-column`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-117`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`colstart`,type:`?int`,id:`param-colstart-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colstart.`]})}),_jsx(ResponseField,{name:`colspan`,type:`?int`,id:`param-colspan-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colspan.`]})}),_jsx(ResponseField,{name:`rowstart`,type:`?int`,id:`param-rowstart-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Rowstart.`]})}),_jsx(ResponseField,{name:`rowspan`,type:`?int`,id:`param-rowspan-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Rowspan.`]})}),_jsx(ResponseField,{name:`order`,type:`?int`,id:`param-order-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Order.`]})}),_jsx(ResponseField,{name:`content`,type:`?LayoutColumnContentArea`,id:`param-content-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`LayoutColumnContentArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`LayoutColumnContentArea`}),` above.`]})}),_jsx(ResponseField,{name:`showTablet`,type:`?bool`,id:`param-show-tablet-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Visible on tablet.`]})}),_jsx(ResponseField,{name:`showMobile`,type:`?bool`,id:`param-show-mobile-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Visible on mobile.`]})}),_jsx(ResponseField,{name:`justify`,type:`Enums\\\\Justify|string|null`,id:`param-justify-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Horizontal alignment. One of `,_jsx(_components.code,{children:`stretch`}),`, `,_jsx(_components.code,{children:`start`}),`, `,_jsx(_components.code,{children:`end`}),`, `,_jsx(_components.code,{children:`center`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`align`,type:`Enums\\\\Align|string|null`,id:`param-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vertical alignment. One of `,_jsx(_components.code,{children:`stretch`}),`, `,_jsx(_components.code,{children:`start`}),`, `,_jsx(_components.code,{children:`end`}),`, `,_jsx(_components.code,{children:`center`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-112`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-113`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-114`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`IntroWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\IntroWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`intro`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\IntroWidgetType|string`,id:`param-type-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`intro`}),`. One of `,_jsx(_components.code,{children:`intro`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-118`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introEyebrow`,type:`?string`,id:`param-intro-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`introEyebrowColor`,type:`?string`,id:`param-intro-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`introEyebrowColorLight`,type:`?string`,id:`param-intro-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`introEyebrowWeight`,type:`Enums\\\\IntroEyebrowWeight|string|null`,id:`param-intro-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introEyebrowSize`,type:`Enums\\\\IntroEyebrowSize|string|null`,id:`param-intro-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introHeadline`,type:`?string`,id:`param-intro-headline-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Headline.`]})}),_jsx(ResponseField,{name:`introHeadlineColor`,type:`?string`,id:`param-intro-headline-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the headline color. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`introHeadlineColorLight`,type:`?string`,id:`param-intro-headline-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`introHeadlineWeight`,type:`Enums\\\\IntroHeadlineWeight|string|null`,id:`param-intro-headline-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Headline weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introBody`,type:`?string`,id:`param-intro-body-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body copy.`]})}),_jsx(ResponseField,{name:`introBodyColor`,type:`?string`,id:`param-intro-body-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the body text color. Leave empty for the muted default.`]})}),_jsx(ResponseField,{name:`introBodyColorLight`,type:`?string`,id:`param-intro-body-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.`]})}),_jsx(ResponseField,{name:`introBodyWeight`,type:`Enums\\\\IntroBodyWeight|string|null`,id:`param-intro-body-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introPhotoPlacement`,type:`Enums\\\\IntroPhotoPlacement|string|null`,id:`param-intro-photo-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the optional photo sits. Left/right place it beside the text; Full background fills the whole section behind the text (with a readability overlay). One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`, `,_jsx(_components.code,{children:`background`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introImage`,type:`?ImageArea`,id:`param-intro-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An `,_jsx(_components.code,{children:`ImageArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`introPhotoCorners`,type:`Enums\\\\IntroPhotoCorners|string|null`,id:`param-intro-photo-corners-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Photo corners. One of `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`squared`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introPhotoFrame`,type:`Enums\\\\IntroPhotoFrame|string|null`,id:`param-intro-photo-frame-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Border draws a frame around the photo; Offset adds a refined offset accent frame behind it. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`offset`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introPhotoFrameColor`,type:`?string`,id:`param-intro-photo-frame-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Border / offset-frame color. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`introPhotoTilt`,type:`Enums\\\\IntroPhotoTilt|string|null`,id:`param-intro-photo-tilt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A slight rotation for a more playful look. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introPhotoHover`,type:`Enums\\\\IntroPhotoHover|string|null`,id:`param-intro-photo-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Photo hover effect. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`zoom`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`lift-glow`}),`, `,_jsx(_components.code,{children:`zoom-glow`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introOverlayColor`,type:`?string`,id:`param-intro-overlay-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scrim behind the text over a full-background photo. Leave empty to use the dark surface color.`]})}),_jsx(ResponseField,{name:`introOverlayColorLight`,type:`?string`,id:`param-intro-overlay-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme overlay, then the light surface color.`]})}),_jsx(ResponseField,{name:`introOverlayOpacity`,type:`?float`,id:`param-intro-overlay-opacity-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overlay opacity (%). 0 to 100.`]})}),_jsx(ResponseField,{name:`introBg`,type:`Enums\\\\IntroBg|string|null`,id:`param-intro-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introBgCustom`,type:`?string`,id:`param-intro-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`introBgLight`,type:`Enums\\\\IntroBgLight|string|null`,id:`param-intro-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introBgLightCustom`,type:`?string`,id:`param-intro-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`introFontOverrides`,type:`Collection\u003cint, IntroWidgetIntroFontOverridesItem>|null`,id:`param-intro-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`IntroWidgetIntroFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`IntroWidgetIntroFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\IntroWidgetIntroFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-119`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, IntroWidgetIntroFontOverridesItemUploadsItem>|null`,id:`param-uploads-30`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`IntroWidgetIntroFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`IntroWidgetIntroFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\IntroWidgetIntroFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-120`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-115`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-116`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-117`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`FeatureWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`feature`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FeatureWidgetType|string`,id:`param-type-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`feature`}),`. One of `,_jsx(_components.code,{children:`feature`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-121`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureColumns`,type:`Enums\\\\FeatureColumns|string|null`,id:`param-feature-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto fits as many as comfortably fit and works for any number of cards. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureGap`,type:`Enums\\\\FeatureGap|string|null`,id:`param-feature-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardSize`,type:`Enums\\\\FeatureCardSize|string|null`,id:`param-feature-card-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scales padding, icon, title, and the index numeral together. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardStyle`,type:`Enums\\\\FeatureCardStyle|string|null`,id:`param-feature-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card treatment. Poster (the default) frames the card with an accent keyline; Raised is a quiet lit card; Luxe a frosted glass panel; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardStyleRadius`,type:`Enums\\\\FeatureCardStyleRadius|string|null`,id:`param-feature-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardStyleAccentColor`,type:`?string`,id:`param-feature-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`featureCardStyleAccentColorLight`,type:`?string`,id:`param-feature-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`featureCardStyleForgeScope`,type:`Enums\\\\FeatureCardStyleForgeScope|string|null`,id:`param-feature-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardStyleForgeWeight`,type:`Enums\\\\FeatureCardStyleForgeWeight|string|null`,id:`param-feature-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardHover`,type:`Enums\\\\FeatureCardHover|string|null`,id:`param-feature-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How a card reacts on hover. Pop is the lift + hard offset shadow; Glow is a soft accent halo. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardHoverColor`,type:`?string`,id:`param-feature-card-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Border / shadow / glow color on hover. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`featureCardHoverColorLight`,type:`?string`,id:`param-feature-card-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`featureNumbering`,type:`?bool`,id:`param-feature-numbering-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A big outlined numeral on each card (01, 02, …). Great for step-by-step sequences; turn off when the cards aren’t ordered.`]})}),_jsx(ResponseField,{name:`featureNumberFill`,type:`Enums\\\\FeatureNumberFill|string|null`,id:`param-feature-number-fill-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Same treatment as the hero ghost text: all numbers solid, outlined and filling on hover, or always outlined. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`hover`}),`, `,_jsx(_components.code,{children:`outline`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureNumberColor`,type:`?string`,id:`param-feature-number-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Tints the numeral fill + outline. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`featureNumberColorLight`,type:`?string`,id:`param-feature-number-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`featureTitleColor`,type:`?string`,id:`param-feature-title-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the card title color. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`featureTitleColorLight`,type:`?string`,id:`param-feature-title-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`featureTitleWeight`,type:`Enums\\\\FeatureTitleWeight|string|null`,id:`param-feature-title-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureTextColor`,type:`?string`,id:`param-feature-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the card text color. Leave empty for the muted default.`]})}),_jsx(ResponseField,{name:`featureTextColorLight`,type:`?string`,id:`param-feature-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.`]})}),_jsx(ResponseField,{name:`featureTextWeight`,type:`Enums\\\\FeatureTextWeight|string|null`,id:`param-feature-text-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsxs(ResponseField,{name:`featureCards`,type:`Collection\u003cint, FeatureWidgetFeatureCardsItem>|null`,id:`param-feature-cards-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FeatureWidgetFeatureCardsItem`}),`. Feature cards.`]}),_jsxs(Expandable,{title:`FeatureWidgetFeatureCardsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidgetFeatureCardsItem)`,children:[_jsx(ResponseField,{name:`cardTitle`,type:`string`,id:`param-card-title-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Title.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-122`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`iconAnimation`,type:`Enums\\\\IconAnimation|string|null`,id:`param-icon-animation-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconSize`,type:`Enums\\\\IconSize|string|null`,id:`param-icon-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cardText`,type:`?string`,id:`param-card-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Text.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-118`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`featureBg`,type:`Enums\\\\FeatureBg|string|null`,id:`param-feature-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureBgCustom`,type:`?string`,id:`param-feature-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`featureBgLight`,type:`Enums\\\\FeatureBgLight|string|null`,id:`param-feature-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureBgLightCustom`,type:`?string`,id:`param-feature-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`featureFontOverrides`,type:`Collection\u003cint, FeatureWidgetFeatureFontOverridesItem>|null`,id:`param-feature-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FeatureWidgetFeatureFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FeatureWidgetFeatureFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidgetFeatureFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-123`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FeatureWidgetFeatureFontOverridesItemUploadsItem>|null`,id:`param-uploads-31`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FeatureWidgetFeatureFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FeatureWidgetFeatureFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidgetFeatureFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-124`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-119`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-120`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-121`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`StatsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`stats`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\StatsWidgetType|string`,id:`param-type-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`stats`}),`. One of `,_jsx(_components.code,{children:`stats`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-125`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsEyebrowEnabled`,type:`?bool`,id:`param-stats-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the heading (e.g. “By the numbers”).`]})}),_jsx(ResponseField,{name:`statsEyebrow`,type:`?string`,id:`param-stats-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow.`]})}),_jsx(ResponseField,{name:`statsEyebrowColor`,type:`?string`,id:`param-stats-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`statsEyebrowColorLight`,type:`?string`,id:`param-stats-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`statsEyebrowWeight`,type:`Enums\\\\StatsEyebrowWeight|string|null`,id:`param-stats-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsEyebrowSize`,type:`Enums\\\\StatsEyebrowSize|string|null`,id:`param-stats-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsHeading`,type:`?string`,id:`param-stats-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the numbers.`]})}),_jsx(ResponseField,{name:`statsHeadingColor`,type:`?string`,id:`param-stats-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`statsHeadingColorLight`,type:`?string`,id:`param-stats-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`statsHeadingWeight`,type:`Enums\\\\StatsHeadingWeight|string|null`,id:`param-stats-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsColumns`,type:`Enums\\\\StatsColumns|string|null`,id:`param-stats-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto fits as many as comfortably fit and works for any number of stats. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsGap`,type:`Enums\\\\StatsGap|string|null`,id:`param-stats-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between stats. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsSize`,type:`Enums\\\\StatsSize|string|null`,id:`param-stats-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The baseline scale for the whole stat (value / icon / label / description stay proportional). Fine-tune any single element with its own size control below. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsAlign`,type:`Enums\\\\StatsAlign|string|null`,id:`param-stats-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsDividers`,type:`?bool`,id:`param-stats-dividers-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A hairline rule between each stat — the classic “by the numbers” rail.`]})}),_jsx(ResponseField,{name:`statsCountUp`,type:`?bool`,id:`param-stats-count-up-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Numbers tick up from zero when the band scrolls into view. Non-numeric values and reduced-motion visitors simply show the final value.`]})}),_jsx(ResponseField,{name:`statsIconSize`,type:`Enums\\\\StatsIconSize|string|null`,id:`param-stats-icon-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size of the icon above each number, independent of the overall stat size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`xxl`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsIconGap`,type:`Enums\\\\StatsIconGap|string|null`,id:`param-stats-icon-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Space between the icon and the number below it. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsValueSize`,type:`Enums\\\\StatsValueSize|string|null`,id:`param-stats-value-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Value size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`xs`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsValueWeight`,type:`Enums\\\\StatsValueWeight|string|null`,id:`param-stats-value-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Value weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsValueColor`,type:`?string`,id:`param-stats-value-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The big numeral. Optional — leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`statsValueColorLight`,type:`?string`,id:`param-stats-value-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`statsLabelSize`,type:`Enums\\\\StatsLabelSize|string|null`,id:`param-stats-label-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Label size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`xs`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsLabelWeight`,type:`Enums\\\\StatsLabelWeight|string|null`,id:`param-stats-label-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Label weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsLabelColor`,type:`?string`,id:`param-stats-label-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`statsLabelColorLight`,type:`?string`,id:`param-stats-label-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`statsDescriptionSize`,type:`Enums\\\\StatsDescriptionSize|string|null`,id:`param-stats-description-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Description size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`xs`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsDescriptionWeight`,type:`Enums\\\\StatsDescriptionWeight|string|null`,id:`param-stats-description-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Description weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsDescriptionColor`,type:`?string`,id:`param-stats-description-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`statsDescriptionColorLight`,type:`?string`,id:`param-stats-description-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsxs(ResponseField,{name:`stats`,type:`Collection\u003cint, StatsWidgetStatsItem>|null`,id:`param-stats-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`StatsWidgetStatsItem`}),`. Stats.`]}),_jsxs(Expandable,{title:`StatsWidgetStatsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidgetStatsItem)`,children:[_jsx(ResponseField,{name:`value`,type:`string`,id:`param-value-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The number, e.g. 500, 4.9, 12 — symbols go in the prefix/suffix so the count-up animates the number alone.`]})}),_jsx(ResponseField,{name:`label`,type:`string`,id:`param-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Label.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-126`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional Font Awesome icon shown above the number (e.g. star, bolt, chart-line). Leave empty for no icon.`]})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`valuePrefix`,type:`?string`,id:`param-value-prefix-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional, shown before the number (e.g. $, ~, >). Kept out of the count-up.`]})}),_jsx(ResponseField,{name:`valueSuffix`,type:`?string`,id:`param-value-suffix-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional, shown after the number (e.g. +, %, k, yrs, ★).`]})}),_jsx(ResponseField,{name:`description`,type:`?string`,id:`param-description-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional small text under the label.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-122`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`statsBg`,type:`Enums\\\\StatsBg|string|null`,id:`param-stats-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsBgCustom`,type:`?string`,id:`param-stats-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`statsBgLight`,type:`Enums\\\\StatsBgLight|string|null`,id:`param-stats-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsBgLightCustom`,type:`?string`,id:`param-stats-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`statsFontOverrides`,type:`Collection\u003cint, StatsWidgetStatsFontOverridesItem>|null`,id:`param-stats-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`StatsWidgetStatsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`StatsWidgetStatsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidgetStatsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-127`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, StatsWidgetStatsFontOverridesItemUploadsItem>|null`,id:`param-uploads-32`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`StatsWidgetStatsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`StatsWidgetStatsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidgetStatsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-128`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-123`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-124`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`statsCtaLabel`,type:`?string`,id:`param-stats-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`statsCtaUrl`,type:`?string`,id:`param-stats-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`statsCtaNewTab`,type:`?bool`,id:`param-stats-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`statsCtaVariant`,type:`Enums\\\\StatsCtaVariant|string|null`,id:`param-stats-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaSize`,type:`Enums\\\\StatsCtaSize|string|null`,id:`param-stats-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaRadius`,type:`Enums\\\\StatsCtaRadius|string|null`,id:`param-stats-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaColor`,type:`?string`,id:`param-stats-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`statsCtaColorLight`,type:`?string`,id:`param-stats-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`statsCtaTextColor`,type:`?string`,id:`param-stats-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`statsCtaTextColorLight`,type:`?string`,id:`param-stats-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`statsCtaHoverColor`,type:`?string`,id:`param-stats-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`statsCtaHoverColorLight`,type:`?string`,id:`param-stats-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`statsCtaStyle`,type:`Enums\\\\StatsCtaStyle|string|null`,id:`param-stats-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaShadowColor`,type:`?string`,id:`param-stats-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`statsCtaShadowColorLight`,type:`?string`,id:`param-stats-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`statsCtaAnimation`,type:`Enums\\\\StatsCtaAnimation|string|null`,id:`param-stats-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaIcon`,type:`?string`,id:`param-stats-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`statsCtaIconFamily`,type:`Enums\\\\StatsCtaIconFamily|string|null`,id:`param-stats-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaIconPosition`,type:`Enums\\\\StatsCtaIconPosition|string|null`,id:`param-stats-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaIconNudge`,type:`?bool`,id:`param-stats-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-125`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`LogosWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`logos`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\LogosWidgetType|string`,id:`param-type-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`logos`}),`. One of `,_jsx(_components.code,{children:`logos`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-129`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosEyebrowEnabled`,type:`?bool`,id:`param-logos-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the heading (e.g. “Trusted by”).`]})}),_jsx(ResponseField,{name:`logosEyebrow`,type:`?string`,id:`param-logos-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow.`]})}),_jsx(ResponseField,{name:`logosEyebrowColor`,type:`?string`,id:`param-logos-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`logosEyebrowColorLight`,type:`?string`,id:`param-logos-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`logosEyebrowWeight`,type:`Enums\\\\LogosEyebrowWeight|string|null`,id:`param-logos-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosEyebrowSize`,type:`Enums\\\\LogosEyebrowSize|string|null`,id:`param-logos-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosHeading`,type:`?string`,id:`param-logos-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the logos.`]})}),_jsx(ResponseField,{name:`logosHeadingColor`,type:`?string`,id:`param-logos-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`logosHeadingColorLight`,type:`?string`,id:`param-logos-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`logosHeadingWeight`,type:`Enums\\\\LogosHeadingWeight|string|null`,id:`param-logos-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosIntro`,type:`?string`,id:`param-logos-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`logosIntroColor`,type:`?string`,id:`param-logos-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`logosIntroColorLight`,type:`?string`,id:`param-logos-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`logosIntroWeight`,type:`Enums\\\\LogosIntroWeight|string|null`,id:`param-logos-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosDisplay`,type:`Enums\\\\LogosDisplay|string|null`,id:`param-logos-display-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A slow scrolling ribbon (marquee) or a calm static grid. One of `,_jsx(_components.code,{children:`marquee`}),`, `,_jsx(_components.code,{children:`grid`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosSpeed`,type:`Enums\\\\LogosSpeed|string|null`,id:`param-logos-speed-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Marquee speed. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosDirection`,type:`Enums\\\\LogosDirection|string|null`,id:`param-logos-direction-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Marquee direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosMotionPause`,type:`?bool`,id:`param-logos-motion-pause-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.`]})}),_jsx(ResponseField,{name:`logosColumns`,type:`Enums\\\\LogosColumns|string|null`,id:`param-logos-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto fits as many as comfortably fit and works for any number of logos. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosGap`,type:`Enums\\\\LogosGap|string|null`,id:`param-logos-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between logos. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosSize`,type:`Enums\\\\LogosSize|string|null`,id:`param-logos-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The height each logo is scaled to (width follows the logo’s aspect ratio). One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosAlign`,type:`Enums\\\\LogosAlign|string|null`,id:`param-logos-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Aligns the eyebrow / heading / intro (and the grid when there are few logos). One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosTile`,type:`?bool`,id:`param-logos-tile-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sets every logo on a raised, bordered card. Off = logos sit straight on the background.`]})}),_jsx(ResponseField,{name:`logosGrayscale`,type:`?bool`,id:`param-logos-grayscale-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Mutes the logos to grayscale and dims them, returning to full color on hover — the classic logo-wall look.`]})}),_jsxs(ResponseField,{name:`logos`,type:`Collection\u003cint, LogosWidgetLogosItem>|null`,id:`param-logos-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`LogosWidgetLogosItem`}),`. Logos.`]}),_jsxs(Expandable,{title:`LogosWidgetLogosItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidgetLogosItem)`,children:[_jsx(ResponseField,{name:`image`,type:`Collection\u003cint, array\u003cstring, mixed>>`,id:`param-image-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Pick a logo from the Images library. A transparent PNG or an SVG works best. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`name`,type:`string`,id:`param-name-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Company / partner / certification name — used as the image alt text and the link title.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-130`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`linkUrl`,type:`?string`,id:`param-link-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Make this logo a link, e.g. to the partner’s site. Opens in a new tab for external URLs.`]})}),_jsx(ResponseField,{name:`invertDark`,type:`?bool`,id:`param-invert-dark-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. For dark / black logos that would vanish on the dark theme — flips them to light. Leave off for full-color or white logos.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-126`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`logosBg`,type:`Enums\\\\LogosBg|string|null`,id:`param-logos-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosBgCustom`,type:`?string`,id:`param-logos-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`logosBgLight`,type:`Enums\\\\LogosBgLight|string|null`,id:`param-logos-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosBgLightCustom`,type:`?string`,id:`param-logos-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`logosFontOverrides`,type:`Collection\u003cint, LogosWidgetLogosFontOverridesItem>|null`,id:`param-logos-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`LogosWidgetLogosFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`LogosWidgetLogosFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidgetLogosFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-131`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, LogosWidgetLogosFontOverridesItemUploadsItem>|null`,id:`param-uploads-33`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`LogosWidgetLogosFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`LogosWidgetLogosFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidgetLogosFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-132`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-127`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-128`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`logosCtaLabel`,type:`?string`,id:`param-logos-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`logosCtaUrl`,type:`?string`,id:`param-logos-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`logosCtaNewTab`,type:`?bool`,id:`param-logos-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`logosCtaVariant`,type:`Enums\\\\LogosCtaVariant|string|null`,id:`param-logos-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaSize`,type:`Enums\\\\LogosCtaSize|string|null`,id:`param-logos-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaRadius`,type:`Enums\\\\LogosCtaRadius|string|null`,id:`param-logos-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaColor`,type:`?string`,id:`param-logos-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`logosCtaColorLight`,type:`?string`,id:`param-logos-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`logosCtaTextColor`,type:`?string`,id:`param-logos-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`logosCtaTextColorLight`,type:`?string`,id:`param-logos-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`logosCtaHoverColor`,type:`?string`,id:`param-logos-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`logosCtaHoverColorLight`,type:`?string`,id:`param-logos-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`logosCtaStyle`,type:`Enums\\\\LogosCtaStyle|string|null`,id:`param-logos-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaShadowColor`,type:`?string`,id:`param-logos-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`logosCtaShadowColorLight`,type:`?string`,id:`param-logos-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`logosCtaAnimation`,type:`Enums\\\\LogosCtaAnimation|string|null`,id:`param-logos-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaIcon`,type:`?string`,id:`param-logos-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`logosCtaIconFamily`,type:`Enums\\\\LogosCtaIconFamily|string|null`,id:`param-logos-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaIconPosition`,type:`Enums\\\\LogosCtaIconPosition|string|null`,id:`param-logos-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaIconNudge`,type:`?bool`,id:`param-logos-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-129`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`StepsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`steps`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\StepsWidgetType|string`,id:`param-type-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`steps`}),`. One of `,_jsx(_components.code,{children:`steps`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-133`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsEyebrowEnabled`,type:`?bool`,id:`param-steps-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the heading (e.g. “How it works”).`]})}),_jsx(ResponseField,{name:`stepsEyebrow`,type:`?string`,id:`param-steps-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow.`]})}),_jsx(ResponseField,{name:`stepsEyebrowColor`,type:`?string`,id:`param-steps-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`stepsEyebrowColorLight`,type:`?string`,id:`param-steps-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`stepsEyebrowWeight`,type:`Enums\\\\StepsEyebrowWeight|string|null`,id:`param-steps-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsEyebrowSize`,type:`Enums\\\\StepsEyebrowSize|string|null`,id:`param-steps-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsHeading`,type:`?string`,id:`param-steps-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the steps.`]})}),_jsx(ResponseField,{name:`stepsHeadingColor`,type:`?string`,id:`param-steps-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`stepsHeadingColorLight`,type:`?string`,id:`param-steps-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`stepsHeadingWeight`,type:`Enums\\\\StepsHeadingWeight|string|null`,id:`param-steps-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsHeadingSize`,type:`Enums\\\\StepsHeadingSize|string|null`,id:`param-steps-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsIntro`,type:`?string`,id:`param-steps-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`stepsIntroColor`,type:`?string`,id:`param-steps-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`stepsIntroColorLight`,type:`?string`,id:`param-steps-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`stepsIntroWeight`,type:`Enums\\\\StepsIntroWeight|string|null`,id:`param-steps-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsIntroSize`,type:`Enums\\\\StepsIntroSize|string|null`,id:`param-steps-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsLayout`,type:`Enums\\\\StepsLayout|string|null`,id:`param-steps-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Horizontal lays the steps across a row (marker on top); Vertical stacks them as a classic timeline (marker on the left). One of `,_jsx(_components.code,{children:`horizontal`}),`, `,_jsx(_components.code,{children:`vertical`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsColumns`,type:`Enums\\\\StepsColumns|string|null`,id:`param-steps-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Horizontal only. Auto fits as many as comfortably fit and works for any number of steps. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsGap`,type:`Enums\\\\StepsGap|string|null`,id:`param-steps-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between steps. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsAlign`,type:`Enums\\\\StepsAlign|string|null`,id:`param-steps-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Horizontal only — aligns the section header and each step’s text. (Vertical is always left-aligned beside its marker.) One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsConnector`,type:`?bool`,id:`param-steps-connector-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A line linking the step markers into a timeline (down the markers when vertical, across them when horizontal).`]})}),_jsx(ResponseField,{name:`stepsCardStyle`,type:`Enums\\\\StepsCardStyle|string|null`,id:`param-steps-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Plain keeps the connector-linked timeline (just marker + text, no card). Every other style boxes each step — Raised is a quiet lit card, Luxe a frosted glass panel, Outline a plaque frame, Spine adds a color rail, Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCardStyleRadius`,type:`Enums\\\\StepsCardStyleRadius|string|null`,id:`param-steps-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCardStyleAccentColor`,type:`?string`,id:`param-steps-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`stepsCardStyleAccentColorLight`,type:`?string`,id:`param-steps-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`stepsCardStyleForgeScope`,type:`Enums\\\\StepsCardStyleForgeScope|string|null`,id:`param-steps-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCardStyleForgeWeight`,type:`Enums\\\\StepsCardStyleForgeWeight|string|null`,id:`param-steps-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCardHover`,type:`Enums\\\\StepsCardHover|string|null`,id:`param-steps-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a boxed step does on hover (applies when Step style is not Plain). Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsMarker`,type:`Enums\\\\StepsMarker|string|null`,id:`param-steps-marker-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Number auto-counts 1, 2, 3…; Icon shows each step’s icon (falling back to the number when a step has none); None hides the marker badge. One of `,_jsx(_components.code,{children:`number`}),`, `,_jsx(_components.code,{children:`icon`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsMarkerStyle`,type:`Enums\\\\StepsMarkerStyle|string|null`,id:`param-steps-marker-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Soft is a tinted accent badge; Filled is a solid accent badge; Outline is a bordered badge. One of `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`filled`}),`, `,_jsx(_components.code,{children:`outline`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsMarkerShape`,type:`Enums\\\\StepsMarkerShape|string|null`,id:`param-steps-marker-shape-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Marker shape. One of `,_jsx(_components.code,{children:`circle`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsMarkerSize`,type:`Enums\\\\StepsMarkerSize|string|null`,id:`param-steps-marker-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Marker size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsAccentColor`,type:`?string`,id:`param-steps-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Color for the marker badge and the connector line. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`stepsAccentColorLight`,type:`?string`,id:`param-steps-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme accent.`]})}),_jsx(ResponseField,{name:`stepsTitleSize`,type:`Enums\\\\StepsTitleSize|string|null`,id:`param-steps-title-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsTitleWeight`,type:`Enums\\\\StepsTitleWeight|string|null`,id:`param-steps-title-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsTitleColor`,type:`?string`,id:`param-steps-title-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`stepsTitleColorLight`,type:`?string`,id:`param-steps-title-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`stepsBodySize`,type:`Enums\\\\StepsBodySize|string|null`,id:`param-steps-body-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsBodyWeight`,type:`Enums\\\\StepsBodyWeight|string|null`,id:`param-steps-body-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsBodyColor`,type:`?string`,id:`param-steps-body-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`stepsBodyColorLight`,type:`?string`,id:`param-steps-body-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsxs(ResponseField,{name:`stepsItems`,type:`Collection\u003cint, StepsWidgetStepsItemsItem>|null`,id:`param-steps-items-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`StepsWidgetStepsItemsItem`}),`. Each item is one step in the process. They render in this order; the number marker counts automatically.`]}),_jsxs(Expandable,{title:`StepsWidgetStepsItemsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidgetStepsItemsItem)`,children:[_jsx(ResponseField,{name:`title`,type:`string`,id:`param-title-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Title.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-134`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-6`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional Font Awesome icon for this step (e.g. calendar-check, circle-check, gear). Shown in the marker when the section marker is set to “Icon”; otherwise the step is numbered.`]})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-6`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-6`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`number`,type:`?string`,id:`param-number-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overrides the auto number for this step’s marker, e.g. “01” or “A”. Leave empty to auto-count.`]})}),_jsx(ResponseField,{name:`body`,type:`?string`,id:`param-body-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional description under the title.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-130`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`stepsBg`,type:`Enums\\\\StepsBg|string|null`,id:`param-steps-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsBgCustom`,type:`?string`,id:`param-steps-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`stepsBgLight`,type:`Enums\\\\StepsBgLight|string|null`,id:`param-steps-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsBgLightCustom`,type:`?string`,id:`param-steps-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`stepsFontOverrides`,type:`Collection\u003cint, StepsWidgetStepsFontOverridesItem>|null`,id:`param-steps-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`StepsWidgetStepsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`StepsWidgetStepsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidgetStepsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-135`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, StepsWidgetStepsFontOverridesItemUploadsItem>|null`,id:`param-uploads-34`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`StepsWidgetStepsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`StepsWidgetStepsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidgetStepsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-136`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-131`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-132`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`stepsCtaLabel`,type:`?string`,id:`param-steps-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`stepsCtaUrl`,type:`?string`,id:`param-steps-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`stepsCtaNewTab`,type:`?bool`,id:`param-steps-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`stepsCtaVariant`,type:`Enums\\\\StepsCtaVariant|string|null`,id:`param-steps-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaSize`,type:`Enums\\\\StepsCtaSize|string|null`,id:`param-steps-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaRadius`,type:`Enums\\\\StepsCtaRadius|string|null`,id:`param-steps-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaColor`,type:`?string`,id:`param-steps-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`stepsCtaColorLight`,type:`?string`,id:`param-steps-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`stepsCtaTextColor`,type:`?string`,id:`param-steps-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`stepsCtaTextColorLight`,type:`?string`,id:`param-steps-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`stepsCtaHoverColor`,type:`?string`,id:`param-steps-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`stepsCtaHoverColorLight`,type:`?string`,id:`param-steps-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`stepsCtaStyle`,type:`Enums\\\\StepsCtaStyle|string|null`,id:`param-steps-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaShadowColor`,type:`?string`,id:`param-steps-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`stepsCtaShadowColorLight`,type:`?string`,id:`param-steps-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`stepsCtaAnimation`,type:`Enums\\\\StepsCtaAnimation|string|null`,id:`param-steps-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaIcon`,type:`?string`,id:`param-steps-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`stepsCtaIconFamily`,type:`Enums\\\\StepsCtaIconFamily|string|null`,id:`param-steps-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaIconPosition`,type:`Enums\\\\StepsCtaIconPosition|string|null`,id:`param-steps-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaIconNudge`,type:`?bool`,id:`param-steps-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-133`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`MediaTextWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`media-text`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\MediaTextWidgetType|string`,id:`param-type-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`media-text`}),`. One of `,_jsx(_components.code,{children:`media-text`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-137`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowEnabled`,type:`?bool`,id:`param-media-text-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the section heading (e.g. “Why us”).`]})}),_jsx(ResponseField,{name:`mediaTextEyebrow`,type:`?string`,id:`param-media-text-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowColor`,type:`?string`,id:`param-media-text-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowColorLight`,type:`?string`,id:`param-media-text-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowWeight`,type:`Enums\\\\MediaTextEyebrowWeight|string|null`,id:`param-media-text-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowSize`,type:`Enums\\\\MediaTextEyebrowSize|string|null`,id:`param-media-text-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextHeading`,type:`?string`,id:`param-media-text-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional section heading above the blocks. Leave empty to show just the blocks.`]})}),_jsx(ResponseField,{name:`mediaTextHeadingColor`,type:`?string`,id:`param-media-text-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`mediaTextHeadingColorLight`,type:`?string`,id:`param-media-text-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`mediaTextHeadingWeight`,type:`Enums\\\\MediaTextHeadingWeight|string|null`,id:`param-media-text-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextHeadingSize`,type:`Enums\\\\MediaTextHeadingSize|string|null`,id:`param-media-text-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextIntro`,type:`?string`,id:`param-media-text-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`mediaTextIntroColor`,type:`?string`,id:`param-media-text-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`mediaTextIntroColorLight`,type:`?string`,id:`param-media-text-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`mediaTextIntroWeight`,type:`Enums\\\\MediaTextIntroWeight|string|null`,id:`param-media-text-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextIntroSize`,type:`Enums\\\\MediaTextIntroSize|string|null`,id:`param-media-text-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextAlign`,type:`Enums\\\\MediaTextAlign|string|null`,id:`param-media-text-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Aligns the section header and the text inside each block. (Side-by-side rows usually read best left-aligned.) One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextRatio`,type:`Enums\\\\MediaTextRatio|string|null`,id:`param-media-text-ratio-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. For media-left / media-right rows: how the two columns share the width. One of `,_jsx(_components.code,{children:`balanced`}),`, `,_jsx(_components.code,{children:`media`}),`, `,_jsx(_components.code,{children:`text`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextVAlign`,type:`Enums\\\\MediaTextVAlign|string|null`,id:`param-media-text-v-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. For media-left / media-right rows: how the text lines up against the media. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`top`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextMediaRatio`,type:`Enums\\\\MediaTextMediaRatio|string|null`,id:`param-media-text-media-ratio-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Aspect ratio of the media frame. Auto keeps an image at its natural shape (videos and embeds always use a ratio). One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`landscape`}),`, `,_jsx(_components.code,{children:`standard`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextMediaRadius`,type:`Enums\\\\MediaTextMediaRadius|string|null`,id:`param-media-text-media-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Media corners. One of `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextGap`,type:`Enums\\\\MediaTextGap|string|null`,id:`param-media-text-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between blocks. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextDividers`,type:`?bool`,id:`param-media-text-dividers-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A hairline rule between blocks.`]})}),_jsx(ResponseField,{name:`mediaTextBlockEyebrowColor`,type:`?string`,id:`param-media-text-block-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Each block’s eyebrow color. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`mediaTextBlockEyebrowColorLight`,type:`?string`,id:`param-media-text-block-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`mediaTextBlockEyebrowWeight`,type:`Enums\\\\MediaTextBlockEyebrowWeight|string|null`,id:`param-media-text-block-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Block eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingColor`,type:`?string`,id:`param-media-text-block-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingColorLight`,type:`?string`,id:`param-media-text-block-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingWeight`,type:`Enums\\\\MediaTextBlockHeadingWeight|string|null`,id:`param-media-text-block-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Block heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingSize`,type:`Enums\\\\MediaTextBlockHeadingSize|string|null`,id:`param-media-text-block-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Block heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextBodyColor`,type:`?string`,id:`param-media-text-body-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`mediaTextBodyColorLight`,type:`?string`,id:`param-media-text-body-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`mediaTextBodyWeight`,type:`Enums\\\\MediaTextBodyWeight|string|null`,id:`param-media-text-body-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Block body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextBodySize`,type:`Enums\\\\MediaTextBodySize|string|null`,id:`param-media-text-body-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Block body size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsxs(ResponseField,{name:`mediaTextBlocks`,type:`Collection\u003cint, MediaTextWidgetMediaTextBlocksItem>|null`,id:`param-media-text-blocks-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`MediaTextWidgetMediaTextBlocksItem`}),`. Each block is one media + text row. They render top to bottom in this order; alternate “Media left” / “Media right” for a classic zig-zag.`]}),_jsxs(Expandable,{title:`MediaTextWidgetMediaTextBlocksItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidgetMediaTextBlocksItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-138`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`layout`,type:`Enums\\\\Layout|string|null`,id:`param-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Media left / right place the media beside the text; Stacked puts media above the text; Full-bleed runs the media edge-to-edge with the text below. One of `,_jsx(_components.code,{children:`media-left`}),`, `,_jsx(_components.code,{children:`media-right`}),`, `,_jsx(_components.code,{children:`stacked`}),`, `,_jsx(_components.code,{children:`full`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaType`,type:`Enums\\\\MediaTextWidgetMediaTextBlocksItemMediaType|string|null`,id:`param-media-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick where the media comes from. “None” makes this a text-only block. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`, `,_jsx(_components.code,{children:`embed`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`image`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-image-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick an image from the Images library. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`imageAlt`,type:`?string`,id:`param-image-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Describe the image for screen readers and SEO. Leave empty to use the library image’s own alt text. Set to a single space for a purely decorative image.`]})}),_jsx(ResponseField,{name:`video`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-video-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick a clip from the Videos library (⌘K → Videos). The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`videoAutoplay`,type:`?bool`,id:`param-video-autoplay-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Play automatically as a muted, looping background clip (a pause button is shown, and reduced-motion visitors get the poster image). Off = a normal video with play controls.`]})}),_jsx(ResponseField,{name:`embedUrl`,type:`?string`,id:`param-embed-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Paste a YouTube or Vimeo link, e.g. `,_jsx(_components.a,{href:`https://youtu.be/%E2%80%A6`,children:`https://youtu.be/…`}),` or `,_jsx(_components.a,{href:`https://vimeo.com/%E2%80%A6`,children:`https://vimeo.com/…`}),`.`]})}),_jsx(ResponseField,{name:`eyebrow`,type:`?string`,id:`param-eyebrow-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the block heading.`]})}),_jsx(ResponseField,{name:`heading`,type:`?string`,id:`param-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The block’s headline.`]})}),_jsx(ResponseField,{name:`body`,type:`?string`,id:`param-body-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A paragraph or two. Leave a blank line between paragraphs.`]})}),_jsx(ResponseField,{name:`ctaLabel`,type:`?string`,id:`param-cta-label-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. This block’s button text. Leave empty (with no link) to hide the button.`]})}),_jsx(ResponseField,{name:`ctaUrl`,type:`?string`,id:`param-cta-url-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/about-us) or full URL.`]})}),_jsx(ResponseField,{name:`ctaNewTab`,type:`?bool`,id:`param-cta-new-tab-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Open button in new tab.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-134`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`mediaTextBg`,type:`Enums\\\\MediaTextBg|string|null`,id:`param-media-text-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextBgCustom`,type:`?string`,id:`param-media-text-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`mediaTextBgLight`,type:`Enums\\\\MediaTextBgLight|string|null`,id:`param-media-text-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextBgLightCustom`,type:`?string`,id:`param-media-text-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`mediaTextFontOverrides`,type:`Collection\u003cint, MediaTextWidgetMediaTextFontOverridesItem>|null`,id:`param-media-text-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`MediaTextWidgetMediaTextFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`MediaTextWidgetMediaTextFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidgetMediaTextFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-139`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, MediaTextWidgetMediaTextFontOverridesItemUploadsItem>|null`,id:`param-uploads-35`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`MediaTextWidgetMediaTextFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`MediaTextWidgetMediaTextFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidgetMediaTextFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-140`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-135`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-136`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`mediaTextCtaVariant`,type:`Enums\\\\MediaTextCtaVariant|string|null`,id:`param-media-text-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaSize`,type:`Enums\\\\MediaTextCtaSize|string|null`,id:`param-media-text-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaRadius`,type:`Enums\\\\MediaTextCtaRadius|string|null`,id:`param-media-text-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaColor`,type:`?string`,id:`param-media-text-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`mediaTextCtaColorLight`,type:`?string`,id:`param-media-text-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`mediaTextCtaTextColor`,type:`?string`,id:`param-media-text-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`mediaTextCtaTextColorLight`,type:`?string`,id:`param-media-text-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`mediaTextCtaHoverColor`,type:`?string`,id:`param-media-text-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`mediaTextCtaHoverColorLight`,type:`?string`,id:`param-media-text-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`mediaTextCtaStyle`,type:`Enums\\\\MediaTextCtaStyle|string|null`,id:`param-media-text-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaShadowColor`,type:`?string`,id:`param-media-text-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`mediaTextCtaShadowColorLight`,type:`?string`,id:`param-media-text-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`mediaTextCtaAnimation`,type:`Enums\\\\MediaTextCtaAnimation|string|null`,id:`param-media-text-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIcon`,type:`?string`,id:`param-media-text-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIconFamily`,type:`Enums\\\\MediaTextCtaIconFamily|string|null`,id:`param-media-text-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIconPosition`,type:`Enums\\\\MediaTextCtaIconPosition|string|null`,id:`param-media-text-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIconNudge`,type:`?bool`,id:`param-media-text-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-137`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`DeviceMockWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\DeviceMockWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`device-mock`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\DeviceMockWidgetType|string`,id:`param-type-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`device-mock`}),`. One of `,_jsx(_components.code,{children:`device-mock`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-141`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-54`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockArrangement`,type:`Enums\\\\DeviceMockArrangement|string|null`,id:`param-device-mock-arrangement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which devices to show. Duo overlaps a phone on the corner of a desktop browser; Trio adds a TV behind them (on narrow screens Trio drops the TV and shows as a Duo). Each device used gets its own screen tab. One of `,_jsx(_components.code,{children:`duo`}),`, `,_jsx(_components.code,{children:`trio`}),`, `,_jsx(_components.code,{children:`desktop`}),`, `,_jsx(_components.code,{children:`phone`}),`, `,_jsx(_components.code,{children:`tv`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockTextPlacement`,type:`Enums\\\\DeviceMockTextPlacement|string|null`,id:`param-device-mock-text-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the eyebrow / heading / intro / button sit. Left or right puts the text in a column beside the devices (stacked above them on narrow screens); None shows the devices only. One of `,_jsx(_components.code,{children:`above`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockSize`,type:`Enums\\\\DeviceMockSize|string|null`,id:`param-device-mock-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How large the devices render within the section. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockBrowserRatio`,type:`Enums\\\\DeviceMockBrowserRatio|string|null`,id:`param-device-mock-browser-ratio-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The browser window’s content area. Match your desktop captures. One of `,_jsx(_components.code,{children:`16:10`}),`, `,_jsx(_components.code,{children:`16:9`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockBrowserUrl`,type:`?string`,id:`param-device-mock-browser-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The address shown in the browser toolbar — decoration only, not a link.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneStatusBar`,type:`?bool`,id:`param-device-mock-phone-status-bar-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Adds a time / signal / battery bar across the top of the phone screen. Leave off for native phone screenshots — they already include the real status bar.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneTime`,type:`?string`,id:`param-device-mock-phone-time-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Status bar time.`]})}),_jsx(ResponseField,{name:`deviceMockMotionPause`,type:`?bool`,id:`param-device-mock-motion-pause-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.`]})}),_jsx(ResponseField,{name:`deviceMockEyebrowEnabled`,type:`?bool`,id:`param-device-mock-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the heading (e.g. “Product tour”).`]})}),_jsx(ResponseField,{name:`deviceMockEyebrow`,type:`?string`,id:`param-device-mock-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`deviceMockEyebrowColor`,type:`?string`,id:`param-device-mock-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`deviceMockEyebrowColorLight`,type:`?string`,id:`param-device-mock-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`deviceMockEyebrowWeight`,type:`Enums\\\\DeviceMockEyebrowWeight|string|null`,id:`param-device-mock-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockEyebrowSize`,type:`Enums\\\\DeviceMockEyebrowSize|string|null`,id:`param-device-mock-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockHeading`,type:`?string`,id:`param-device-mock-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the devices.`]})}),_jsx(ResponseField,{name:`deviceMockHeadingColor`,type:`?string`,id:`param-device-mock-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`deviceMockHeadingColorLight`,type:`?string`,id:`param-device-mock-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`deviceMockHeadingWeight`,type:`Enums\\\\DeviceMockHeadingWeight|string|null`,id:`param-device-mock-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockHeadingSize`,type:`Enums\\\\DeviceMockHeadingSize|string|null`,id:`param-device-mock-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockIntro`,type:`?string`,id:`param-device-mock-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short paragraph under the heading.`]})}),_jsx(ResponseField,{name:`deviceMockIntroColor`,type:`?string`,id:`param-device-mock-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`deviceMockIntroColorLight`,type:`?string`,id:`param-device-mock-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`deviceMockIntroWeight`,type:`Enums\\\\DeviceMockIntroWeight|string|null`,id:`param-device-mock-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockIntroSize`,type:`Enums\\\\DeviceMockIntroSize|string|null`,id:`param-device-mock-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCaption`,type:`?string`,id:`param-device-mock-caption-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A short line shown under the devices.`]})}),_jsx(ResponseField,{name:`deviceMockTvMediaType`,type:`Enums\\\\DeviceMockTvMediaType|string|null`,id:`param-device-mock-tv-media-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A still screenshot, or a short looping screen recording. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockTvImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-tv-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Use a native-resolution 16:9 capture of the screen with NO device frame (the frame is drawn for you) — e.g. 1920 × 1080 or 3840 × 2160. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockTvImageAlt`,type:`?string`,id:`param-device-mock-tv-image-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.`]})}),_jsx(ResponseField,{name:`deviceMockTvVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-tv-video-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution 16:9 capture of the screen with NO device frame (the frame is drawn for you) — e.g. 1920 × 1080 or 3840 × 2160. The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockTvVideoAlt`,type:`?string`,id:`param-device-mock-tv-video-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.`]})}),_jsx(ResponseField,{name:`deviceMockTvFit`,type:`Enums\\\\DeviceMockTvFit|string|null`,id:`param-device-mock-tv-fit-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of `,_jsx(_components.code,{children:`cover`}),`, `,_jsx(_components.code,{children:`contain`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockTvAnchor`,type:`Enums\\\\DeviceMockTvAnchor|string|null`,id:`param-device-mock-tv-anchor-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`bottom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopMediaType`,type:`Enums\\\\DeviceMockDesktopMediaType|string|null`,id:`param-device-mock-desktop-media-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A still screenshot, or a short looping screen recording. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-desktop-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Use a native-resolution capture of the page content only — no browser toolbar and no device frame (both are drawn for you). 16:10 (e.g. 2880 × 1800) or 16:9 (e.g. 2560 × 1440), matching the “Desktop screen shape” setting. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopImageAlt`,type:`?string`,id:`param-device-mock-desktop-image-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-desktop-video-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution capture of the page content only — no browser toolbar and no device frame (both are drawn for you). 16:10 (e.g. 2880 × 1800) or 16:9 (e.g. 2560 × 1440), matching the “Desktop screen shape” setting. The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopVideoAlt`,type:`?string`,id:`param-device-mock-desktop-video-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopFit`,type:`Enums\\\\DeviceMockDesktopFit|string|null`,id:`param-device-mock-desktop-fit-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of `,_jsx(_components.code,{children:`cover`}),`, `,_jsx(_components.code,{children:`contain`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopAnchor`,type:`Enums\\\\DeviceMockDesktopAnchor|string|null`,id:`param-device-mock-desktop-anchor-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`bottom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneMediaType`,type:`Enums\\\\DeviceMockPhoneMediaType|string|null`,id:`param-device-mock-phone-media-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A still screenshot, or a short looping screen recording. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-phone-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Use a native-resolution portrait screenshot with NO device frame (the frame is drawn for you) — e.g. 1179 × 2556 or 1290 × 2796 (about 9:19.5). The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneImageAlt`,type:`?string`,id:`param-device-mock-phone-image-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-phone-video-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution portrait screenshot with NO device frame (the frame is drawn for you) — e.g. 1179 × 2556 or 1290 × 2796 (about 9:19.5). The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneVideoAlt`,type:`?string`,id:`param-device-mock-phone-video-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneFit`,type:`Enums\\\\DeviceMockPhoneFit|string|null`,id:`param-device-mock-phone-fit-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of `,_jsx(_components.code,{children:`cover`}),`, `,_jsx(_components.code,{children:`contain`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneAnchor`,type:`Enums\\\\DeviceMockPhoneAnchor|string|null`,id:`param-device-mock-phone-anchor-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`bottom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockBg`,type:`Enums\\\\DeviceMockBg|string|null`,id:`param-device-mock-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockBgCustom`,type:`?string`,id:`param-device-mock-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`deviceMockBgLight`,type:`Enums\\\\DeviceMockBgLight|string|null`,id:`param-device-mock-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockBgLightCustom`,type:`?string`,id:`param-device-mock-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`deviceMockFontOverrides`,type:`Collection\u003cint, DeviceMockWidgetDeviceMockFontOverridesItem>|null`,id:`param-device-mock-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`DeviceMockWidgetDeviceMockFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`DeviceMockWidgetDeviceMockFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\DeviceMockWidgetDeviceMockFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-142`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem>|null`,id:`param-uploads-36`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-143`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-138`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-139`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`deviceMockCtaLabel`,type:`?string`,id:`param-device-mock-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`deviceMockCtaUrl`,type:`?string`,id:`param-device-mock-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`deviceMockCtaNewTab`,type:`?bool`,id:`param-device-mock-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`deviceMockCtaVariant`,type:`Enums\\\\DeviceMockCtaVariant|string|null`,id:`param-device-mock-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaSize`,type:`Enums\\\\DeviceMockCtaSize|string|null`,id:`param-device-mock-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaRadius`,type:`Enums\\\\DeviceMockCtaRadius|string|null`,id:`param-device-mock-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaColor`,type:`?string`,id:`param-device-mock-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`deviceMockCtaColorLight`,type:`?string`,id:`param-device-mock-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`deviceMockCtaTextColor`,type:`?string`,id:`param-device-mock-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`deviceMockCtaTextColorLight`,type:`?string`,id:`param-device-mock-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`deviceMockCtaHoverColor`,type:`?string`,id:`param-device-mock-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`deviceMockCtaHoverColorLight`,type:`?string`,id:`param-device-mock-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`deviceMockCtaStyle`,type:`Enums\\\\DeviceMockCtaStyle|string|null`,id:`param-device-mock-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaShadowColor`,type:`?string`,id:`param-device-mock-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`deviceMockCtaShadowColorLight`,type:`?string`,id:`param-device-mock-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`deviceMockCtaAnimation`,type:`Enums\\\\DeviceMockCtaAnimation|string|null`,id:`param-device-mock-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIcon`,type:`?string`,id:`param-device-mock-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIconFamily`,type:`Enums\\\\DeviceMockCtaIconFamily|string|null`,id:`param-device-mock-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIconPosition`,type:`Enums\\\\DeviceMockCtaIconPosition|string|null`,id:`param-device-mock-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIconNudge`,type:`?bool`,id:`param-device-mock-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-140`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`TeamWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TeamWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`team`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\TeamWidgetType|string`,id:`param-type-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`team`}),`. One of `,_jsx(_components.code,{children:`team`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-144`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-55`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamEyebrow`,type:`?string`,id:`param-team-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`teamEyebrowColor`,type:`?string`,id:`param-team-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`teamEyebrowColorLight`,type:`?string`,id:`param-team-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`teamEyebrowWeight`,type:`Enums\\\\TeamEyebrowWeight|string|null`,id:`param-team-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamEyebrowSize`,type:`Enums\\\\TeamEyebrowSize|string|null`,id:`param-team-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamHeading`,type:`?string`,id:`param-team-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the team.`]})}),_jsx(ResponseField,{name:`teamHeadingColor`,type:`?string`,id:`param-team-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`teamHeadingColorLight`,type:`?string`,id:`param-team-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamHeadingWeight`,type:`Enums\\\\TeamHeadingWeight|string|null`,id:`param-team-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamIntro`,type:`?string`,id:`param-team-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`teamIntroColor`,type:`?string`,id:`param-team-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`teamIntroColorLight`,type:`?string`,id:`param-team-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamIntroWeight`,type:`Enums\\\\TeamIntroWeight|string|null`,id:`param-team-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamIntroSize`,type:`Enums\\\\TeamIntroSize|string|null`,id:`param-team-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAlign`,type:`Enums\\\\TeamAlign|string|null`,id:`param-team-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamFeaturedOnly`,type:`?bool`,id:`param-team-featured-only-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show only members you have flagged “Featured” in the Team Members manager — e.g. a short leadership row on the home page.`]})}),_jsx(ResponseField,{name:`teamCount`,type:`?int`,id:`param-team-count-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The most members to show, in the manager’s sort order. 1 to 50.`]})}),_jsx(ResponseField,{name:`teamLayout`,type:`Enums\\\\TeamLayout|string|null`,id:`param-team-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Grid: a tidy multi-row grid (the full team page). Carousel: a continuous auto-scrolling marquee (needs site animations enabled — falls back to the grid when they are off). Spotlight: featured members large on top, the rest in a smaller grid. List: wide rows with the full bio. Scatter: a playful arrangement with varied spacing so the cards float freely. One of `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`list`}),`, `,_jsx(_components.code,{children:`scatter`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamColumns`,type:`Enums\\\\TeamColumns|string|null`,id:`param-team-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many cards per row. Auto fits as many as comfortably fit (the Scatter layout composes on three columns when set to Auto). One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSpotlightHeroes`,type:`Enums\\\\TeamSpotlightHeroes|string|null`,id:`param-team-spotlight-heroes-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many members lead the section at full size. Members flagged “Featured” fill the spots first, in the manager’s sort order; any extra featured members join the rows below. One of `,_jsx(_components.code,{children:`1`}),`, `,_jsx(_components.code,{children:`2`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSpotlightColumns`,type:`Enums\\\\TeamSpotlightColumns|string|null`,id:`param-team-spotlight-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many of the remaining members sit on each row under the featured spots. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSpeed`,type:`Enums\\\\TeamSpeed|string|null`,id:`param-team-speed-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the carousel auto-scrolls. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamDirection`,type:`Enums\\\\TeamDirection|string|null`,id:`param-team-direction-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamScatter`,type:`Enums\\\\TeamScatter|string|null`,id:`param-team-scatter-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How far the cards drift from a tidy grid. Subtle keeps a loose grid; Wild pushes the offsets to their playful maximum. One of `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`playful`}),`, `,_jsx(_components.code,{children:`wild`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamGap`,type:`Enums\\\\TeamGap|string|null`,id:`param-team-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCardLayout`,type:`Enums\\\\TeamCardLayout|string|null`,id:`param-team-card-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Portrait: the photo on top, name/role/bio below — the classic team card. Overlay: a full-bleed photo with a solid color panel over its lower edge holding the name and role. Profile: a horizontal bar — avatar left, name/role/tagline right. Roster: minimal — just the avatar, name and role. (The List section layout always uses its own wide row.) One of `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`overlay`}),`, `,_jsx(_components.code,{children:`profile`}),`, `,_jsx(_components.code,{children:`roster`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamPhotoAspect`,type:`Enums\\\\TeamPhotoAspect|string|null`,id:`param-team-photo-aspect-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The photo’s aspect ratio on the photo-led card layouts. One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAvatarShape`,type:`Enums\\\\TeamAvatarShape|string|null`,id:`param-team-avatar-shape-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The photo’s outline. Squircle is a soft superellipse-style corner (approximated with heavy rounding). One of `,_jsx(_components.code,{children:`circle`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`squircle`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAvatarSize`,type:`Enums\\\\TeamAvatarSize|string|null`,id:`param-team-avatar-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Avatar size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAvatarBorder`,type:`Enums\\\\TeamAvatarBorder|string|null`,id:`param-team-avatar-border-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A ring around the photo in the avatar color. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`hairline`}),`, `,_jsx(_components.code,{children:`thin`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAvatarTreatment`,type:`Enums\\\\TeamAvatarTreatment|string|null`,id:`param-team-avatar-treatment-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A flat color accent behind the photo. Panel offsets a solid block behind it; Halo draws a soft concentric disc. Both use the avatar color. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`panel`}),`, `,_jsx(_components.code,{children:`halo`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAvatarColor`,type:`?string`,id:`param-team-avatar-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the border and the backdrop treatment. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`teamAvatarColorLight`,type:`?string`,id:`param-team-avatar-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamShowRole`,type:`?bool`,id:`param-team-show-role-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show role / title.`]})}),_jsx(ResponseField,{name:`teamShowBio`,type:`?bool`,id:`param-team-show-bio-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Shown on the Portrait and Profile cards and the List rows. The Overlay and Roster layouts stay bio-free by design.`]})}),_jsx(ResponseField,{name:`teamShowTagline`,type:`?bool`,id:`param-team-show-tagline-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The member’s one-liner, shown on the Profile and Roster cards and the List rows.`]})}),_jsx(ResponseField,{name:`teamHoverPhoto`,type:`?bool`,id:`param-team-hover-photo-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cross-fades to a member’s alternate photo on hover (set per member; does nothing for members without one, and stays off for visitors who prefer reduced motion).`]})}),_jsx(ResponseField,{name:`teamCardStyle`,type:`Enums\\\\TeamCardStyle|string|null`,id:`param-team-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card treatment. Outline (the default) is a plaque frame — a framed-portrait look; Raised is a quiet lit card; Luxe a frosted glass panel; Ticket/Bracket/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCardStyleRadius`,type:`Enums\\\\TeamCardStyleRadius|string|null`,id:`param-team-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCardStyleAccentColor`,type:`?string`,id:`param-team-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`teamCardStyleAccentColorLight`,type:`?string`,id:`param-team-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamCardHover`,type:`Enums\\\\TeamCardHover|string|null`,id:`param-team-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCardAlign`,type:`Enums\\\\TeamCardAlign|string|null`,id:`param-team-card-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How the name, role and bio align inside each card (the Profile card and List rows are always left-aligned beside the avatar). One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAccentColor`,type:`?string`,id:`param-team-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — the lettered-avatar fallback background and the role color default. Leave empty to use the brand accent. (The icon row has its own colors on the Social links tab.)`]})}),_jsx(ResponseField,{name:`teamAccentColorLight`,type:`?string`,id:`param-team-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamPanelColor`,type:`?string`,id:`param-team-panel-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The solid panel over the photo on the Overlay card. Leave empty to use the card color.`]})}),_jsx(ResponseField,{name:`teamPanelColorLight`,type:`?string`,id:`param-team-panel-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamNameSize`,type:`Enums\\\\TeamNameSize|string|null`,id:`param-team-name-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamNameWeight`,type:`Enums\\\\TeamNameWeight|string|null`,id:`param-team-name-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamNameColor`,type:`?string`,id:`param-team-name-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`teamNameColorLight`,type:`?string`,id:`param-team-name-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamRoleSize`,type:`Enums\\\\TeamRoleSize|string|null`,id:`param-team-role-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Role size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamRoleWeight`,type:`Enums\\\\TeamRoleWeight|string|null`,id:`param-team-role-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Role weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamRoleColor`,type:`?string`,id:`param-team-role-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the accent color.`]})}),_jsx(ResponseField,{name:`teamRoleColorLight`,type:`?string`,id:`param-team-role-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamBioSize`,type:`Enums\\\\TeamBioSize|string|null`,id:`param-team-bio-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Bio size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamBioWeight`,type:`Enums\\\\TeamBioWeight|string|null`,id:`param-team-bio-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Bio weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamBioColor`,type:`?string`,id:`param-team-bio-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`teamBioColorLight`,type:`?string`,id:`param-team-bio-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamBioClamp`,type:`Enums\\\\TeamBioClamp|string|null`,id:`param-team-bio-clamp-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cap each bio at this many lines (the rest is truncated with an ellipsis) so one long bio can’t blow up the card height. The List layout always shows the full bio. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`6`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamTaglineColor`,type:`?string`,id:`param-team-tagline-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the faint text color.`]})}),_jsx(ResponseField,{name:`teamTaglineColorLight`,type:`?string`,id:`param-team-tagline-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamShowSocials`,type:`?bool`,id:`param-team-show-socials-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The member’s social profile icons (set per member in the Team Members manager).`]})}),_jsx(ResponseField,{name:`teamShowContact`,type:`?bool`,id:`param-team-show-contact-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Off by default — turns each member’s email and phone (when set) into icon links. Only enable when you want those details public.`]})}),_jsx(ResponseField,{name:`teamSocialVariant`,type:`Enums\\\\TeamSocialVariant|string|null`,id:`param-team-social-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon style. One of `,_jsx(_components.code,{children:`bare`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`solid`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSocialSize`,type:`Enums\\\\TeamSocialSize|string|null`,id:`param-team-social-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSocialSpacing`,type:`Enums\\\\TeamSocialSpacing|string|null`,id:`param-team-social-spacing-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between the icons. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`loose`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSocialHover`,type:`Enums\\\\TeamSocialHover|string|null`,id:`param-team-social-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover to each platform’s own brand color, or to the site accent (or a chosen hover color). One of `,_jsx(_components.code,{children:`brand`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSocialColor`,type:`?string`,id:`param-team-social-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Resting icon color. Leave empty for the muted default.`]})}),_jsx(ResponseField,{name:`teamSocialColorLight`,type:`?string`,id:`param-team-social-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.`]})}),_jsx(ResponseField,{name:`teamSocialHoverColor`,type:`?string`,id:`param-team-social-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Hover color” is Accent / custom. Leave empty for the site accent.`]})}),_jsx(ResponseField,{name:`teamSocialHoverColorLight`,type:`?string`,id:`param-team-social-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`teamBg`,type:`Enums\\\\TeamBg|string|null`,id:`param-team-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamBgCustom`,type:`?string`,id:`param-team-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`teamBgLight`,type:`Enums\\\\TeamBgLight|string|null`,id:`param-team-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamBgLightCustom`,type:`?string`,id:`param-team-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`teamFontOverrides`,type:`Collection\u003cint, TeamWidgetTeamFontOverridesItem>|null`,id:`param-team-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`TeamWidgetTeamFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`TeamWidgetTeamFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TeamWidgetTeamFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-145`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, TeamWidgetTeamFontOverridesItemUploadsItem>|null`,id:`param-uploads-37`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`TeamWidgetTeamFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`TeamWidgetTeamFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TeamWidgetTeamFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-146`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-141`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-142`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`teamCtaLabel`,type:`?string`,id:`param-team-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`teamCtaUrl`,type:`?string`,id:`param-team-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`teamCtaNewTab`,type:`?bool`,id:`param-team-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`teamCtaVariant`,type:`Enums\\\\TeamCtaVariant|string|null`,id:`param-team-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaSize`,type:`Enums\\\\TeamCtaSize|string|null`,id:`param-team-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaRadius`,type:`Enums\\\\TeamCtaRadius|string|null`,id:`param-team-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaColor`,type:`?string`,id:`param-team-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`teamCtaColorLight`,type:`?string`,id:`param-team-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`teamCtaTextColor`,type:`?string`,id:`param-team-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`teamCtaTextColorLight`,type:`?string`,id:`param-team-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`teamCtaHoverColor`,type:`?string`,id:`param-team-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`teamCtaHoverColorLight`,type:`?string`,id:`param-team-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`teamCtaStyle`,type:`Enums\\\\TeamCtaStyle|string|null`,id:`param-team-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaShadowColor`,type:`?string`,id:`param-team-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`teamCtaShadowColorLight`,type:`?string`,id:`param-team-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`teamCtaAnimation`,type:`Enums\\\\TeamCtaAnimation|string|null`,id:`param-team-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaIcon`,type:`?string`,id:`param-team-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`teamCtaIconFamily`,type:`Enums\\\\TeamCtaIconFamily|string|null`,id:`param-team-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaIconPosition`,type:`Enums\\\\TeamCtaIconPosition|string|null`,id:`param-team-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaIconNudge`,type:`?bool`,id:`param-team-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-143`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`FaqWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FaqWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`faq`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FaqWidgetType|string`,id:`param-type-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`faq`}),`. One of `,_jsx(_components.code,{children:`faq`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-147`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-56`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqEyebrow`,type:`?string`,id:`param-faq-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`faqEyebrowColor`,type:`?string`,id:`param-faq-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`faqEyebrowColorLight`,type:`?string`,id:`param-faq-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`faqEyebrowWeight`,type:`Enums\\\\FaqEyebrowWeight|string|null`,id:`param-faq-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqEyebrowSize`,type:`Enums\\\\FaqEyebrowSize|string|null`,id:`param-faq-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqHeading`,type:`?string`,id:`param-faq-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the questions.`]})}),_jsx(ResponseField,{name:`faqHeadingColor`,type:`?string`,id:`param-faq-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`faqHeadingColorLight`,type:`?string`,id:`param-faq-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqHeadingWeight`,type:`Enums\\\\FaqHeadingWeight|string|null`,id:`param-faq-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqIntro`,type:`?string`,id:`param-faq-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`faqIntroColor`,type:`?string`,id:`param-faq-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`faqIntroColorLight`,type:`?string`,id:`param-faq-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqIntroWeight`,type:`Enums\\\\FaqIntroWeight|string|null`,id:`param-faq-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqIntroSize`,type:`Enums\\\\FaqIntroSize|string|null`,id:`param-faq-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqAlign`,type:`Enums\\\\FaqAlign|string|null`,id:`param-faq-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Split layout always sets its header column left. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqFeaturedOnly`,type:`?bool`,id:`param-faq-featured-only-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show only questions you have flagged “Featured” in the FAQs manager — e.g. a short top-questions block on the home page, linking out to the full FAQ page.`]})}),_jsx(ResponseField,{name:`faqCount`,type:`?int`,id:`param-faq-count-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The most questions to show, in the manager’s sort order. Raise it for a full FAQ page. 1 to 50.`]})}),_jsx(ResponseField,{name:`faqCategories`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-faq-categories-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional filter. Leave empty to show questions from every category. Manage the list under FAQ Categories. The related `,_jsx(_components.code,{children:`faq-category`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document; a document the site can’t find is left out.`]})}),_jsx(ResponseField,{name:`faqGroupBy`,type:`Enums\\\\FaqGroupBy|string|null`,id:`param-faq-group-by-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. By category renders a subheading per FAQ category, in the order picked in the category filter (or, with no filter, the FAQ Categories sort order); questions without a category are listed last. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`category`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqLayout`,type:`Enums\\\\FaqLayout|string|null`,id:`param-faq-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Accordion: a single centered column of collapsing questions — the classic FAQ. Split: the header (and button) sit in a left column with the accordion beside them. Two columns: the accordion flows across two columns. Open panels: every answer visible in a card grid — no collapsing. One of `,_jsx(_components.code,{children:`accordion`}),`, `,_jsx(_components.code,{children:`split`}),`, `,_jsx(_components.code,{children:`columns`}),`, `,_jsx(_components.code,{children:`panels`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqPanelColumns`,type:`Enums\\\\FaqPanelColumns|string|null`,id:`param-faq-panel-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many open panels sit per row (they stack on small screens). One of `,_jsx(_components.code,{children:`1`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqOpenMode`,type:`Enums\\\\FaqOpenMode|string|null`,id:`param-faq-open-mode-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. One at a time closes the previous answer when a new one opens; Independent lets visitors hold several open. One of `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`multiple`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqFirstOpen`,type:`?bool`,id:`param-faq-first-open-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Starts the section with the first answer expanded so the block never reads as an empty list of rows.`]})}),_jsx(ResponseField,{name:`faqMarker`,type:`Enums\\\\FaqMarker|string|null`,id:`param-faq-marker-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The disclosure marker on each question. Plus rotates into a close mark; Chevron flips. One of `,_jsx(_components.code,{children:`plus`}),`, `,_jsx(_components.code,{children:`chevron`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqGap`,type:`Enums\\\\FaqGap|string|null`,id:`param-faq-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Space between questions. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqSchema`,type:`?bool`,id:`param-faq-schema-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Adds this section’s questions to the page’s schema.org FAQPage markup so search engines can read them (all FAQ sections on a page share one FAQPage block). Costs nothing when on; turn off only to exclude these questions.`]})}),_jsx(ResponseField,{name:`faqCardStyle`,type:`Enums\\\\FaqCardStyle|string|null`,id:`param-faq-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The question-row treatment. Plain (the default) is the classic divided list — hairlines between questions. Any other style turns each question into a card: Raised is a quiet lit card, Outline a framed row, Luxe frosted glass; Ticket/Bracket/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCardStyleRadius`,type:`Enums\\\\FaqCardStyleRadius|string|null`,id:`param-faq-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCardStyleAccentColor`,type:`?string`,id:`param-faq-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`faqCardStyleAccentColorLight`,type:`?string`,id:`param-faq-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqCardStyleForgeScope`,type:`Enums\\\\FaqCardStyleForgeScope|string|null`,id:`param-faq-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCardStyleForgeWeight`,type:`Enums\\\\FaqCardStyleForgeWeight|string|null`,id:`param-faq-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCardHover`,type:`Enums\\\\FaqCardHover|string|null`,id:`param-faq-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a question row does on hover. None (the default) keeps the accordion calm — the open/close motion is the interaction. The card effects (Lift/Glow/…) suit the card styles; the cursor-tracked ones need site animations on. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqAccentColor`,type:`?string`,id:`param-faq-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — colors the toggle icon and the open question’s highlight. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`faqAccentColorLight`,type:`?string`,id:`param-faq-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqQuestionSize`,type:`Enums\\\\FaqQuestionSize|string|null`,id:`param-faq-question-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Question size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqQuestionWeight`,type:`Enums\\\\FaqQuestionWeight|string|null`,id:`param-faq-question-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Question weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqQuestionColor`,type:`?string`,id:`param-faq-question-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`faqQuestionColorLight`,type:`?string`,id:`param-faq-question-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqAnswerSize`,type:`Enums\\\\FaqAnswerSize|string|null`,id:`param-faq-answer-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Answer size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqAnswerWeight`,type:`Enums\\\\FaqAnswerWeight|string|null`,id:`param-faq-answer-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Answer weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqAnswerColor`,type:`?string`,id:`param-faq-answer-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`faqAnswerColorLight`,type:`?string`,id:`param-faq-answer-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqGroupHeadingWeight`,type:`Enums\\\\FaqGroupHeadingWeight|string|null`,id:`param-faq-group-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Category heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqGroupHeadingColor`,type:`?string`,id:`param-faq-group-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`faqGroupHeadingColorLight`,type:`?string`,id:`param-faq-group-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqBg`,type:`Enums\\\\FaqBg|string|null`,id:`param-faq-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqBgCustom`,type:`?string`,id:`param-faq-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`faqBgLight`,type:`Enums\\\\FaqBgLight|string|null`,id:`param-faq-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqBgLightCustom`,type:`?string`,id:`param-faq-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`faqFontOverrides`,type:`Collection\u003cint, FaqWidgetFaqFontOverridesItem>|null`,id:`param-faq-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FaqWidgetFaqFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FaqWidgetFaqFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FaqWidgetFaqFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-148`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FaqWidgetFaqFontOverridesItemUploadsItem>|null`,id:`param-uploads-38`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FaqWidgetFaqFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FaqWidgetFaqFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FaqWidgetFaqFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-149`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-144`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-145`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`faqCtaLabel`,type:`?string`,id:`param-faq-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`faqCtaUrl`,type:`?string`,id:`param-faq-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`faqCtaNewTab`,type:`?bool`,id:`param-faq-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`faqCtaVariant`,type:`Enums\\\\FaqCtaVariant|string|null`,id:`param-faq-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaSize`,type:`Enums\\\\FaqCtaSize|string|null`,id:`param-faq-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaRadius`,type:`Enums\\\\FaqCtaRadius|string|null`,id:`param-faq-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaColor`,type:`?string`,id:`param-faq-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`faqCtaColorLight`,type:`?string`,id:`param-faq-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`faqCtaTextColor`,type:`?string`,id:`param-faq-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`faqCtaTextColorLight`,type:`?string`,id:`param-faq-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`faqCtaHoverColor`,type:`?string`,id:`param-faq-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`faqCtaHoverColorLight`,type:`?string`,id:`param-faq-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`faqCtaStyle`,type:`Enums\\\\FaqCtaStyle|string|null`,id:`param-faq-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaShadowColor`,type:`?string`,id:`param-faq-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`faqCtaShadowColorLight`,type:`?string`,id:`param-faq-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`faqCtaAnimation`,type:`Enums\\\\FaqCtaAnimation|string|null`,id:`param-faq-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaIcon`,type:`?string`,id:`param-faq-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`faqCtaIconFamily`,type:`Enums\\\\FaqCtaIconFamily|string|null`,id:`param-faq-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaIconPosition`,type:`Enums\\\\FaqCtaIconPosition|string|null`,id:`param-faq-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaIconNudge`,type:`?bool`,id:`param-faq-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-146`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`ServiceMapWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`service-map`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\ServiceMapWidgetType|string`,id:`param-type-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`service-map`}),`. One of `,_jsx(_components.code,{children:`service-map`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-150`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-57`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrow`,type:`?string`,id:`param-service-map-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrowColor`,type:`?string`,id:`param-service-map-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrowColorLight`,type:`?string`,id:`param-service-map-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrowWeight`,type:`Enums\\\\ServiceMapEyebrowWeight|string|null`,id:`param-service-map-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrowSize`,type:`Enums\\\\ServiceMapEyebrowSize|string|null`,id:`param-service-map-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapHeading`,type:`?string`,id:`param-service-map-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading.`]})}),_jsx(ResponseField,{name:`serviceMapHeadingColor`,type:`?string`,id:`param-service-map-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty for the standard ink color.`]})}),_jsx(ResponseField,{name:`serviceMapHeadingColorLight`,type:`?string`,id:`param-service-map-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapHeadingWeight`,type:`Enums\\\\ServiceMapHeadingWeight|string|null`,id:`param-service-map-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapIntro`,type:`?string`,id:`param-service-map-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short paragraph under the heading. The data source’s own description (service days etc.) shows in the result panel, not here.`]})}),_jsx(ResponseField,{name:`serviceMapIntroSize`,type:`Enums\\\\ServiceMapIntroSize|string|null`,id:`param-service-map-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapHeight`,type:`Enums\\\\ServiceMapHeight|string|null`,id:`param-service-map-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Map height. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`standard`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapTheme`,type:`Enums\\\\ServiceMapTheme|string|null`,id:`param-service-map-theme-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Curated light/dark basemap pairs — each follows the visitor’s theme toggle. “Site palette” derives the basemap from this site’s own colors. One of `,_jsx(_components.code,{children:`palette`}),`, `,_jsx(_components.code,{children:`classic`}),`, `,_jsx(_components.code,{children:`silver`}),`, `,_jsx(_components.code,{children:`retro`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapFrameRadius`,type:`Enums\\\\ServiceMapFrameRadius|string|null`,id:`param-service-map-frame-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Map corner radius. One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapFrameBorderColor`,type:`?string`,id:`param-service-map-frame-border-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty for the standard hairline — set it to match a colored border on the zone cards.`]})}),_jsx(ResponseField,{name:`serviceMapFrameBorderColorLight`,type:`?string`,id:`param-service-map-frame-border-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapFrameGlowColor`,type:`?string`,id:`param-service-map-frame-glow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional soft glow around the map frame — pairs with a glowing zone-card style. Leave empty for none.`]})}),_jsx(ResponseField,{name:`serviceMapFrameGlowColorLight`,type:`?string`,id:`param-service-map-frame-glow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapSchema`,type:`?bool`,id:`param-service-map-schema-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. On pages with this section, upgrades the business structured data from the compact site-wide form to the full detail: every public place name, every zip code, and area boundaries. Costs visitors nothing; turn off to keep this page at the compact site-wide form. (Requires structured data on in Site settings → SEO; demo map data is never published.)`]})}),_jsx(ResponseField,{name:`serviceMapShowLegend`,type:`?bool`,id:`param-service-map-show-legend-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The legend card overlaid on the map. The zone cards below the map always carry the same information for screen readers and when the map can’t load.`]})}),_jsx(ResponseField,{name:`serviceMapKeySwatchSize`,type:`Enums\\\\ServiceMapKeySwatchSize|string|null`,id:`param-service-map-key-swatch-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Key swatch size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapKeyJustify`,type:`Enums\\\\ServiceMapKeyJustify|string|null`,id:`param-service-map-key-justify-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Key text justification. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextSize`,type:`Enums\\\\ServiceMapKeyTextSize|string|null`,id:`param-service-map-key-text-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Key text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextWeight`,type:`Enums\\\\ServiceMapKeyTextWeight|string|null`,id:`param-service-map-key-text-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Key text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextColor`,type:`?string`,id:`param-service-map-key-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty for the standard ink color.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextColorLight`,type:`?string`,id:`param-service-map-key-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapKeyRadius`,type:`Enums\\\\ServiceMapKeyRadius|string|null`,id:`param-service-map-key-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Key corner radius. One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapKeyBorderColor`,type:`?string`,id:`param-service-map-key-border-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty for the standard hairline — set it to match the map frame or the zone cards.`]})}),_jsx(ResponseField,{name:`serviceMapKeyBorderColorLight`,type:`?string`,id:`param-service-map-key-border-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapKeyGlowColor`,type:`?string`,id:`param-service-map-key-glow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional soft glow around the key card. Leave empty for none.`]})}),_jsx(ResponseField,{name:`serviceMapKeyGlowColorLight`,type:`?string`,id:`param-service-map-key-glow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapShowCards`,type:`?bool`,id:`param-service-map-show-cards-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The zone/pricing cards under the map. Turning this off hides them visually — they stay in the page for screen readers and no-JavaScript visitors (the map itself isn’t accessible).`]})}),_jsx(ResponseField,{name:`serviceMapCardStyle`,type:`Enums\\\\ServiceMapCardStyle|string|null`,id:`param-service-map-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card surface. Raised is a quiet lit card; Luxe is a frosted glass panel; Outline is a double-rule plaque frame; Plain has no chrome; Poster frames the card with an accent keyline; Spine embeds a color rail along the top; Tint washes the card in the accent color. Showstoppers: Ticket punches notches into the sides, Bracket draws only corner marks, Forge is a machined plate with an engraved frame, Press is a punched index card with a margin rule, Inlay recesses the content into a well. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardStyleRadius`,type:`Enums\\\\ServiceMapCardStyleRadius|string|null`,id:`param-service-map-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardStyleAccentColor`,type:`?string`,id:`param-service-map-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`serviceMapCardStyleAccentColorLight`,type:`?string`,id:`param-service-map-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapCardsHover`,type:`Enums\\\\ServiceMapCardsHover|string|null`,id:`param-service-map-cards-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant CSS effects; Sheen sweeps a soft light across; Tilt, Magnetic and Spotlight follow the cursor (these need site animations on — visitors who prefer reduced motion see the resting card). Pick a different one per section so a page feels varied, not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSwatchSize`,type:`Enums\\\\ServiceMapCardsSwatchSize|string|null`,id:`param-service-map-cards-swatch-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Card swatch size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsJustify`,type:`Enums\\\\ServiceMapCardsJustify|string|null`,id:`param-service-map-cards-justify-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Card text justification. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsNameWeight`,type:`Enums\\\\ServiceMapCardsNameWeight|string|null`,id:`param-service-map-cards-name-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Zone name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsTextSize`,type:`Enums\\\\ServiceMapCardsTextSize|string|null`,id:`param-service-map-cards-text-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Card text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsTextColor`,type:`?string`,id:`param-service-map-cards-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Colors the zone names; supporting copy stays muted. Leave empty for the standard ink color.`]})}),_jsx(ResponseField,{name:`serviceMapCardsTextColorLight`,type:`?string`,id:`param-service-map-cards-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSubSize`,type:`Enums\\\\ServiceMapCardsSubSize|string|null`,id:`param-service-map-cards-sub-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The price and detail lines under each zone name — sized relative to the card text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSubWeight`,type:`Enums\\\\ServiceMapCardsSubWeight|string|null`,id:`param-service-map-cards-sub-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Supporting text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSubColor`,type:`?string`,id:`param-service-map-cards-sub-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty for the standard muted color.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSubColorLight`,type:`?string`,id:`param-service-map-cards-sub-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapIncludedLabel`,type:`?string`,id:`param-service-map-included-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional label shown instead of “`,`$0” wherever a zone has no fee (key, cards, results). Clear it to show the plain price — $`,`0 doesn’t always mean included.`]})}),_jsxs(ResponseField,{name:`serviceMapZoneOverrides`,type:`Collection\u003cint, ServiceMapWidgetServiceMapZoneOverridesItem>|null`,id:`param-service-map-zone-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`ServiceMapWidgetServiceMapZoneOverridesItem`}),`. Per-zone display overrides, matched by the zone name the data source provides. Rename a zone, replace its price text, or hide it entirely — the underlying data is never changed.`]}),_jsxs(Expandable,{title:`ServiceMapWidgetServiceMapZoneOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidgetServiceMapZoneOverridesItem)`,children:[_jsx(ResponseField,{name:`zoneName`,type:`string`,id:`param-zone-name-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Case-insensitive match against the zone name in the map data.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-151`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`displayName`,type:`?string`,id:`param-display-name-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional replacement name shown everywhere this zone appears.`]})}),_jsx(ResponseField,{name:`priceLabel`,type:`?string`,id:`param-price-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional replacement for the price text (e.g. “Included”, “Call us”). Overrides the zero-price label too.`]})}),_jsx(ResponseField,{name:`hide`,type:`?bool`,id:`param-hide-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The zone stays on the map and in search results — it just leaves the key and cards.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-147`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`serviceMapShowSearch`,type:`?bool`,id:`param-service-map-show-search-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show the “check your area” search.`]})}),_jsx(ResponseField,{name:`serviceMapSearchLabel`,type:`?string`,id:`param-service-map-search-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Search label.`]})}),_jsx(ResponseField,{name:`serviceMapSearchPlaceholder`,type:`?string`,id:`param-service-map-search-placeholder-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Search placeholder.`]})}),_jsx(ResponseField,{name:`serviceMapSearchJustify`,type:`Enums\\\\ServiceMapSearchJustify|string|null`,id:`param-service-map-search-justify-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Positions the search box and button above the map. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapSearchInputRadius`,type:`Enums\\\\ServiceMapSearchInputRadius|string|null`,id:`param-service-map-search-input-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Same radius scale as the buttons, so the box and button can match. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapAutocomplete`,type:`?bool`,id:`param-service-map-autocomplete-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Google address autocomplete under the search box (needs the Places API enabled on the key — see the setup guide in Connections → Google Maps). ZIP-only typing never triggers suggestions when the data source is zip-based.`]})}),_jsx(ResponseField,{name:`serviceMapOutsideAreaText`,type:`?string`,id:`param-service-map-outside-area-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Shown when a searched location doesn’t fall in any zone (or the premium radius).`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonText`,type:`?string`,id:`param-service-map-search-button-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Leave empty for “Check”. The button’s look is configured in the Search button tab.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonVariant`,type:`Enums\\\\ServiceMapSearchButtonVariant|string|null`,id:`param-service-map-search-button-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonSize`,type:`Enums\\\\ServiceMapSearchButtonSize|string|null`,id:`param-service-map-search-button-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonRadius`,type:`Enums\\\\ServiceMapSearchButtonRadius|string|null`,id:`param-service-map-search-button-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonColor`,type:`?string`,id:`param-service-map-search-button-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonColorLight`,type:`?string`,id:`param-service-map-search-button-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonTextColor`,type:`?string`,id:`param-service-map-search-button-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonTextColorLight`,type:`?string`,id:`param-service-map-search-button-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonHoverColor`,type:`?string`,id:`param-service-map-search-button-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonHoverColorLight`,type:`?string`,id:`param-service-map-search-button-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonStyle`,type:`Enums\\\\ServiceMapSearchButtonStyle|string|null`,id:`param-service-map-search-button-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonShadowColor`,type:`?string`,id:`param-service-map-search-button-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonShadowColorLight`,type:`?string`,id:`param-service-map-search-button-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonAnimation`,type:`Enums\\\\ServiceMapSearchButtonAnimation|string|null`,id:`param-service-map-search-button-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapPanelPlacement`,type:`Enums\\\\ServiceMapPanelPlacement|string|null`,id:`param-service-map-panel-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Popup placement. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`corner`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapPanelLook`,type:`Enums\\\\ServiceMapPanelLook|string|null`,id:`param-service-map-panel-look-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Popup style. One of `,_jsx(_components.code,{children:`overlay`}),`, `,_jsx(_components.code,{children:`solid`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapPanelShowQuery`,type:`?bool`,id:`param-service-map-panel-show-query-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Repeats the searched ZIP code or address at the top of the result popup.`]})}),_jsx(ResponseField,{name:`serviceMapPanelShowCity`,type:`?bool`,id:`param-service-map-panel-show-city-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Looks up the locality for a searched ZIP code (one extra Geocoding API call per search) and shows it beside the searched value.`]})}),_jsx(ResponseField,{name:`serviceMapPanelTextSize`,type:`Enums\\\\ServiceMapPanelTextSize|string|null`,id:`param-service-map-panel-text-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Popup text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapPanelTitleWeight`,type:`Enums\\\\ServiceMapPanelTitleWeight|string|null`,id:`param-service-map-panel-title-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Popup title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapShowPremium`,type:`?bool`,id:`param-service-map-show-premium-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. When the data carries a premium (distance-priced) service, include it in search results and the zone cards. Sources without their own premium block use the pricing set in Service area map → Areas and pricing.`]})}),_jsx(ResponseField,{name:`serviceMapShowPremiumRing`,type:`?bool`,id:`param-service-map-show-premium-ring-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Needs a premium range limit (miles) — with no limit there is no ring to draw.`]})}),_jsx(ResponseField,{name:`serviceMapPremiumEstimateNote`,type:`?string`,id:`param-service-map-premium-estimate-note-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Premium estimate note.`]})}),_jsx(ResponseField,{name:`serviceMapPremiumUnavailableText`,type:`?string`,id:`param-service-map-premium-unavailable-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Shown when a distance estimate isn’t possible (e.g. the Distance Matrix API isn’t enabled on the key).`]})}),_jsx(ResponseField,{name:`serviceMapMarkerImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-service-map-marker-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional logo/pin image for the business marker. Leave empty for a simple accent-color pin. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerImageLight`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-service-map-marker-image-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme variant. Falls back to the dark-theme image. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerLabel`,type:`?string`,id:`param-service-map-marker-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Accessible name + hover title for the marker. Leave empty to use the business name from Site settings.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerSize`,type:`Enums\\\\ServiceMapMarkerSize|string|null`,id:`param-service-map-marker-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Marker size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerBounce`,type:`?bool`,id:`param-service-map-marker-bounce-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The business marker gently bobs in place. Automatically disabled for visitors who prefer reduced motion.`]})}),_jsx(ResponseField,{name:`serviceMapShowLocation`,type:`?bool`,id:`param-service-map-show-location-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Adds the business location (named by its label in Service area map → Your location) as the FIRST entry of the map key and zone cards.`]})}),_jsx(ResponseField,{name:`serviceMapBg`,type:`Enums\\\\ServiceMapBg|string|null`,id:`param-service-map-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapBgCustom`,type:`?string`,id:`param-service-map-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`serviceMapBgLight`,type:`Enums\\\\ServiceMapBgLight|string|null`,id:`param-service-map-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapBgLightCustom`,type:`?string`,id:`param-service-map-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`serviceMapFontOverrides`,type:`Collection\u003cint, ServiceMapWidgetServiceMapFontOverridesItem>|null`,id:`param-service-map-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`ServiceMapWidgetServiceMapFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`ServiceMapWidgetServiceMapFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidgetServiceMapFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-152`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, ServiceMapWidgetServiceMapFontOverridesItemUploadsItem>|null`,id:`param-uploads-39`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`ServiceMapWidgetServiceMapFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`ServiceMapWidgetServiceMapFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidgetServiceMapFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-153`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-148`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-149`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-150`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`BlogPreviewWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogPreviewWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`blog-preview`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\BlogPreviewWidgetType|string`,id:`param-type-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`blog-preview`}),`. One of `,_jsx(_components.code,{children:`blog-preview`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-154`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-58`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogHeading`,type:`?string`,id:`param-blog-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading.`]})}),_jsx(ResponseField,{name:`blogSubheading`,type:`?string`,id:`param-blog-subheading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Subheading.`]})}),_jsx(ResponseField,{name:`blogCardImageAspect`,type:`Enums\\\\BlogCardImageAspect|string|null`,id:`param-blog-card-image-aspect-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Aspect ratio of the featured image. Choose “Hidden” for text-only cards. One of `,_jsx(_components.code,{children:`16/10`}),`, `,_jsx(_components.code,{children:`4/3`}),`, `,_jsx(_components.code,{children:`3/2`}),`, `,_jsx(_components.code,{children:`1/1`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardImageHover`,type:`Enums\\\\BlogCardImageHover|string|null`,id:`param-blog-card-image-hover-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Image hover. One of `,_jsx(_components.code,{children:`zoom`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardImageFill`,type:`?bool`,id:`param-blog-card-image-fill-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Use the featured image as the full card background, with the title and meta overlaid on a dark scrim. Posts with no image fall back to a normal card.`]})}),_jsx(ResponseField,{name:`blogCardPreset`,type:`Enums\\\\BlogCardPreset|string|null`,id:`param-blog-card-preset-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card surface. Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. (On image-led cards the photo covers the top edge.) One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardPresetRadius`,type:`Enums\\\\BlogCardPresetRadius|string|null`,id:`param-blog-card-preset-radius-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardPresetAccentColor`,type:`?string`,id:`param-blog-card-preset-accent-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`blogCardPresetAccentColorLight`,type:`?string`,id:`param-blog-card-preset-accent-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`blogCardPresetForgeScope`,type:`Enums\\\\BlogCardPresetForgeScope|string|null`,id:`param-blog-card-preset-forge-scope-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardPresetForgeWeight`,type:`Enums\\\\BlogCardPresetForgeWeight|string|null`,id:`param-blog-card-preset-forge-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardHover`,type:`Enums\\\\BlogCardHover|string|null`,id:`param-blog-card-hover-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt (3-D + glare), Magnetic and Spotlight follow the cursor (need site animations on). The Hover color below tints these. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardHoverColor`,type:`?string`,id:`param-blog-card-hover-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Border / shadow / glow color on hover. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`blogCardHoverColorLight`,type:`?string`,id:`param-blog-card-hover-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardShowCategory`,type:`?bool`,id:`param-blog-card-show-category-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show category.`]})}),_jsx(ResponseField,{name:`blogCardCategoryStyle`,type:`Enums\\\\BlogCardCategoryStyle|string|null`,id:`param-blog-card-category-style-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How the category badge uses its color (set per category under Blog Categories). Filled = colored background; Outline = colored border + text; Minimal = colored text only. One of `,_jsx(_components.code,{children:`filled`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`minimal`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardShowDate`,type:`?bool`,id:`param-blog-card-show-date-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show date.`]})}),_jsx(ResponseField,{name:`blogCardShowExcerpt`,type:`?bool`,id:`param-blog-card-show-excerpt-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show excerpt.`]})}),_jsx(ResponseField,{name:`blogCardExcerptLines`,type:`Enums\\\\BlogCardExcerptLines|string|null`,id:`param-blog-card-excerpt-lines-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many lines of the excerpt to show before truncating. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardShowAuthor`,type:`?bool`,id:`param-blog-card-show-author-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show author.`]})}),_jsx(ResponseField,{name:`blogCardShowReadMore`,type:`?bool`,id:`param-blog-card-show-read-more-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show “Read post” link.`]})}),_jsx(ResponseField,{name:`blogCardReadMorePlacement`,type:`Enums\\\\BlogCardReadMorePlacement|string|null`,id:`param-blog-card-read-more-placement-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto puts it on the right of horizontal cards (list / compact / featured) and below the text on grid cards. Or force one placement everywhere. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`below`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreColor`,type:`?string`,id:`param-blog-card-read-more-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the “Read post” link color. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreColorLight`,type:`?string`,id:`param-blog-card-read-more-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColor`,type:`?string`,id:`param-blog-card-read-more-hover-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Color of the “Read post” link when the card is hovered. Leave empty to use the accent color.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColorLight`,type:`?string`,id:`param-blog-card-read-more-hover-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardTitleColor`,type:`?string`,id:`param-blog-card-title-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the card title color. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`blogCardTitleColorLight`,type:`?string`,id:`param-blog-card-title-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`blogCardTitleWeight`,type:`Enums\\\\BlogCardTitleWeight|string|null`,id:`param-blog-card-title-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardTitleHoverColor`,type:`?string`,id:`param-blog-card-title-hover-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Title color when the card is hovered. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`blogCardTitleHoverColorLight`,type:`?string`,id:`param-blog-card-title-hover-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardTextColor`,type:`?string`,id:`param-blog-card-text-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the excerpt text color. Leave empty for the muted default.`]})}),_jsx(ResponseField,{name:`blogCardTextColorLight`,type:`?string`,id:`param-blog-card-text-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.`]})}),_jsx(ResponseField,{name:`blogCardTextWeight`,type:`Enums\\\\BlogCardTextWeight|string|null`,id:`param-blog-card-text-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Excerpt weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardMetaColor`,type:`?string`,id:`param-blog-card-meta-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Date / meta line color. Leave empty for the faint default.`]})}),_jsx(ResponseField,{name:`blogCardMetaColorLight`,type:`?string`,id:`param-blog-card-meta-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the faint default.`]})}),_jsx(ResponseField,{name:`blogBg`,type:`Enums\\\\BlogBg|string|null`,id:`param-blog-bg-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogBgCustom`,type:`?string`,id:`param-blog-bg-custom-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`blogBgLight`,type:`Enums\\\\BlogBgLight|string|null`,id:`param-blog-bg-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogBgLightCustom`,type:`?string`,id:`param-blog-bg-light-custom-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`blogFontOverrides`,type:`Collection\u003cint, BlogPreviewWidgetBlogFontOverridesItem>|null`,id:`param-blog-font-overrides-2`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`BlogPreviewWidgetBlogFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`BlogPreviewWidgetBlogFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogPreviewWidgetBlogFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-155`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, BlogPreviewWidgetBlogFontOverridesItemUploadsItem>|null`,id:`param-uploads-40`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`BlogPreviewWidgetBlogFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`BlogPreviewWidgetBlogFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogPreviewWidgetBlogFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-156`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-151`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-152`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`blogCtaLabel`,type:`?string`,id:`param-blog-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`blogCtaUrl`,type:`?string`,id:`param-blog-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`blogCtaNewTab`,type:`?bool`,id:`param-blog-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`blogCtaVariant`,type:`Enums\\\\BlogCtaVariant|string|null`,id:`param-blog-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaSize`,type:`Enums\\\\BlogCtaSize|string|null`,id:`param-blog-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaRadius`,type:`Enums\\\\BlogCtaRadius|string|null`,id:`param-blog-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaColor`,type:`?string`,id:`param-blog-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`blogCtaColorLight`,type:`?string`,id:`param-blog-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`blogCtaTextColor`,type:`?string`,id:`param-blog-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`blogCtaTextColorLight`,type:`?string`,id:`param-blog-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`blogCtaHoverColor`,type:`?string`,id:`param-blog-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`blogCtaHoverColorLight`,type:`?string`,id:`param-blog-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`blogCtaStyle`,type:`Enums\\\\BlogCtaStyle|string|null`,id:`param-blog-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaShadowColor`,type:`?string`,id:`param-blog-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`blogCtaShadowColorLight`,type:`?string`,id:`param-blog-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`blogCtaAnimation`,type:`Enums\\\\BlogCtaAnimation|string|null`,id:`param-blog-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaIcon`,type:`?string`,id:`param-blog-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`blogCtaIconFamily`,type:`Enums\\\\BlogCtaIconFamily|string|null`,id:`param-blog-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaIconPosition`,type:`Enums\\\\BlogCtaIconPosition|string|null`,id:`param-blog-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaIconNudge`,type:`?bool`,id:`param-blog-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-153`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`CookieDeclarationWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CookieDeclarationWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`cookie-declaration`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\CookieDeclarationWidgetType|string`,id:`param-type-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`cookie-declaration`}),`. One of `,_jsx(_components.code,{children:`cookie-declaration`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-157`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-59`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cookieDeclEyebrow`,type:`?string`,id:`param-cookie-decl-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow.`]})}),_jsx(ResponseField,{name:`cookieDeclHeading`,type:`?string`,id:`param-cookie-decl-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading.`]})}),_jsx(ResponseField,{name:`cookieDeclIntro`,type:`?string`,id:`param-cookie-decl-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Introduction.`]})}),_jsx(ResponseField,{name:`cookieDeclShowStatus`,type:`?bool`,id:`param-cookie-decl-show-status-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A short block naming what this visitor has allowed, with a button that reopens the preferences panel. Withdrawal has to be as easy as consent, so leave this on unless the page offers another way.`]})}),_jsx(ResponseField,{name:`cookieDeclShowTable`,type:`?bool`,id:`param-cookie-decl-show-table-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Provider, type, duration and domain per entry. Off leaves the plain-language disclosures alone, which reads better but tells a technical reader less.`]})}),_jsx(ResponseField,{name:`cookieDeclLayout`,type:`Enums\\\\CookieDeclLayout|string|null`,id:`param-cookie-decl-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Layout. One of `,_jsx(_components.code,{children:`stacked`}),`, `,_jsx(_components.code,{children:`compact`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cookieDeclBg`,type:`Enums\\\\CookieDeclBg|string|null`,id:`param-cookie-decl-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cookieDeclBgCustom`,type:`?string`,id:`param-cookie-decl-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`cookieDeclBgLight`,type:`Enums\\\\CookieDeclBgLight|string|null`,id:`param-cookie-decl-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cookieDeclBgLightCustom`,type:`?string`,id:`param-cookie-decl-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`cookieDeclFontOverrides`,type:`Collection\u003cint, CookieDeclarationWidgetCookieDeclFontOverridesItem>|null`,id:`param-cookie-decl-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`CookieDeclarationWidgetCookieDeclFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`CookieDeclarationWidgetCookieDeclFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CookieDeclarationWidgetCookieDeclFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-158`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem>|null`,id:`param-uploads-41`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-159`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-154`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-155`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-156`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`RichTextWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\RichTextWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\RichTextWidgetType|string`,id:`param-type-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-160`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-60`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`content`,type:`?string`,id:`param-content-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text as HTML, e.g. `,_jsx(_components.code,{children:`\u003ch2>Our story\u003c/h2>\u003cp>It began with \u003cstrong>one\u003c/strong> idea.\u003c/p>`}),`. The site keeps the tags and styles this area’s editor offers (paragraphs, headings, bold, italic, links, lists…) and removes the rest.`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-157`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`GoogleReviewsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GoogleReviewsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`google-reviews`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\GoogleReviewsWidgetType|string`,id:`param-type-54`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`google-reviews`}),`. One of `,_jsx(_components.code,{children:`google-reviews`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-161`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-61`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsEyebrow`,type:`?string`,id:`param-reviews-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`reviewsEyebrowColor`,type:`?string`,id:`param-reviews-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`reviewsEyebrowColorLight`,type:`?string`,id:`param-reviews-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`reviewsEyebrowWeight`,type:`Enums\\\\ReviewsEyebrowWeight|string|null`,id:`param-reviews-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsEyebrowSize`,type:`Enums\\\\ReviewsEyebrowSize|string|null`,id:`param-reviews-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsHeading`,type:`?string`,id:`param-reviews-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the reviews.`]})}),_jsx(ResponseField,{name:`reviewsHeadingColor`,type:`?string`,id:`param-reviews-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`reviewsHeadingColorLight`,type:`?string`,id:`param-reviews-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsHeadingWeight`,type:`Enums\\\\ReviewsHeadingWeight|string|null`,id:`param-reviews-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsIntro`,type:`?string`,id:`param-reviews-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`reviewsIntroColor`,type:`?string`,id:`param-reviews-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`reviewsIntroColorLight`,type:`?string`,id:`param-reviews-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsIntroWeight`,type:`Enums\\\\ReviewsIntroWeight|string|null`,id:`param-reviews-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsIntroSize`,type:`Enums\\\\ReviewsIntroSize|string|null`,id:`param-reviews-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsAlign`,type:`Enums\\\\ReviewsAlign|string|null`,id:`param-reviews-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsMinRating`,type:`Enums\\\\ReviewsMinRating|string|null`,id:`param-reviews-min-rating-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Only show reviews at or above this star rating. One of `,_jsx(_components.code,{children:`0`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsFeaturedOnly`,type:`?bool`,id:`param-reviews-featured-only-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show only reviews you have flagged “Featured” in the Google Reviews manager — hand-curate exactly which appear.`]})}),_jsx(ResponseField,{name:`reviewsCount`,type:`?int`,id:`param-reviews-count-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The most reviews to show (newest first). 1 to 30.`]})}),_jsx(ResponseField,{name:`reviewsLayout`,type:`Enums\\\\ReviewsLayout|string|null`,id:`param-reviews-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Animated carousel: a continuous, auto-scrolling marquee of cards (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered, Pinterest-style grid that hugs each review’s length. One of `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`masonry`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsColumns`,type:`Enums\\\\ReviewsColumns|string|null`,id:`param-reviews-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many cards per row (grid) or columns (masonry). Auto fits as many as comfortably fit. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsSpeed`,type:`Enums\\\\ReviewsSpeed|string|null`,id:`param-reviews-speed-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the carousel auto-scrolls. The review carousel runs on its own (gentler) speed scale than the logos/footer marquees so two never scroll in lockstep. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsDirection`,type:`Enums\\\\ReviewsDirection|string|null`,id:`param-reviews-direction-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsGap`,type:`Enums\\\\ReviewsGap|string|null`,id:`param-reviews-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsShowAvatar`,type:`?bool`,id:`param-reviews-show-avatar-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show the reviewer’s Google avatar (falls back to a lettered initial when missing or anonymous).`]})}),_jsx(ResponseField,{name:`reviewsShowRating`,type:`?bool`,id:`param-reviews-show-rating-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show star rating.`]})}),_jsx(ResponseField,{name:`reviewsShowDate`,type:`?bool`,id:`param-reviews-show-date-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show review date.`]})}),_jsx(ResponseField,{name:`reviewsShowReply`,type:`?bool`,id:`param-reviews-show-reply-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Include the business’s public reply beneath a review when there is one.`]})}),_jsx(ResponseField,{name:`reviewsShowAttribution`,type:`?bool`,id:`param-reviews-show-attribution-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small Google attribution lockup under the section — recommended when showing Google reviews.`]})}),_jsx(ResponseField,{name:`reviewsCardStyle`,type:`Enums\\\\ReviewsCardStyle|string|null`,id:`param-reviews-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card surface. Raised is a quiet lit card; Luxe is a frosted glass panel; Outline is a double-rule plaque frame; Plain has no chrome; Poster frames the card with an accent keyline; Spine embeds a color rail along the top; Tint washes the card in the accent color. Showstoppers: Ticket punches notches into the sides, Bracket draws only corner marks, Forge is a machined plate with an engraved frame, Press is a punched index card with a margin rule, Inlay recesses the content into a well. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleRadius`,type:`Enums\\\\ReviewsCardStyleRadius|string|null`,id:`param-reviews-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleAccentColor`,type:`?string`,id:`param-reviews-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleAccentColorLight`,type:`?string`,id:`param-reviews-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleForgeScope`,type:`Enums\\\\ReviewsCardStyleForgeScope|string|null`,id:`param-reviews-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleForgeWeight`,type:`Enums\\\\ReviewsCardStyleForgeWeight|string|null`,id:`param-reviews-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardHover`,type:`Enums\\\\ReviewsCardHover|string|null`,id:`param-reviews-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardWidth`,type:`Enums\\\\ReviewsCardWidth|string|null`,id:`param-reviews-card-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sets the carousel card width and the minimum card width in the grid/masonry layouts. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardHeight`,type:`Enums\\\\ReviewsCardHeight|string|null`,id:`param-reviews-card-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto hugs the content; the taller presets give every card a consistent minimum height (grid + carousel). The masonry layout ignores this and staggers card heights itself. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardAlign`,type:`Enums\\\\ReviewsCardAlign|string|null`,id:`param-reviews-card-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How the avatar, name, stars and text align inside each card. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsStarColor`,type:`?string`,id:`param-reviews-star-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use a warm amber. Applies in both themes.`]})}),_jsx(ResponseField,{name:`reviewsAccentColor`,type:`?string`,id:`param-reviews-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — background of the lettered fallback avatar. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`reviewsAccentColorLight`,type:`?string`,id:`param-reviews-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsNameSize`,type:`Enums\\\\ReviewsNameSize|string|null`,id:`param-reviews-name-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsNameWeight`,type:`Enums\\\\ReviewsNameWeight|string|null`,id:`param-reviews-name-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsNameColor`,type:`?string`,id:`param-reviews-name-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`reviewsNameColorLight`,type:`?string`,id:`param-reviews-name-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsDateSize`,type:`Enums\\\\ReviewsDateSize|string|null`,id:`param-reviews-date-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Date size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsDateWeight`,type:`Enums\\\\ReviewsDateWeight|string|null`,id:`param-reviews-date-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Date weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsDateColor`,type:`?string`,id:`param-reviews-date-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the faint text color.`]})}),_jsx(ResponseField,{name:`reviewsDateColorLight`,type:`?string`,id:`param-reviews-date-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsTextSize`,type:`Enums\\\\ReviewsTextSize|string|null`,id:`param-reviews-text-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Review text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsTextWeight`,type:`Enums\\\\ReviewsTextWeight|string|null`,id:`param-reviews-text-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Review text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsTextColor`,type:`?string`,id:`param-reviews-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`reviewsTextColorLight`,type:`?string`,id:`param-reviews-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsTextClamp`,type:`Enums\\\\ReviewsTextClamp|string|null`,id:`param-reviews-text-clamp-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cap each review at this many lines (the rest is truncated with an ellipsis) so one very long review can’t blow up the card height — important once real, lengthy reviews come in. Choose “Full text” to never truncate. Short reviews are unaffected. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`8`}),`, `,_jsx(_components.code,{children:`12`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsBg`,type:`Enums\\\\ReviewsBg|string|null`,id:`param-reviews-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsBgCustom`,type:`?string`,id:`param-reviews-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`reviewsBgLight`,type:`Enums\\\\ReviewsBgLight|string|null`,id:`param-reviews-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsBgLightCustom`,type:`?string`,id:`param-reviews-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`reviewsFontOverrides`,type:`Collection\u003cint, GoogleReviewsWidgetReviewsFontOverridesItem>|null`,id:`param-reviews-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`GoogleReviewsWidgetReviewsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`GoogleReviewsWidgetReviewsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GoogleReviewsWidgetReviewsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-162`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem>|null`,id:`param-uploads-42`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-163`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-158`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-159`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`reviewsCtaLabel`,type:`?string`,id:`param-reviews-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`reviewsCtaUrl`,type:`?string`,id:`param-reviews-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`reviewsCtaNewTab`,type:`?bool`,id:`param-reviews-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`reviewsCtaVariant`,type:`Enums\\\\ReviewsCtaVariant|string|null`,id:`param-reviews-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaSize`,type:`Enums\\\\ReviewsCtaSize|string|null`,id:`param-reviews-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaRadius`,type:`Enums\\\\ReviewsCtaRadius|string|null`,id:`param-reviews-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaColor`,type:`?string`,id:`param-reviews-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`reviewsCtaColorLight`,type:`?string`,id:`param-reviews-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`reviewsCtaTextColor`,type:`?string`,id:`param-reviews-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`reviewsCtaTextColorLight`,type:`?string`,id:`param-reviews-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`reviewsCtaHoverColor`,type:`?string`,id:`param-reviews-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`reviewsCtaHoverColorLight`,type:`?string`,id:`param-reviews-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`reviewsCtaStyle`,type:`Enums\\\\ReviewsCtaStyle|string|null`,id:`param-reviews-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaShadowColor`,type:`?string`,id:`param-reviews-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`reviewsCtaShadowColorLight`,type:`?string`,id:`param-reviews-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`reviewsCtaAnimation`,type:`Enums\\\\ReviewsCtaAnimation|string|null`,id:`param-reviews-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaIcon`,type:`?string`,id:`param-reviews-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`reviewsCtaIconFamily`,type:`Enums\\\\ReviewsCtaIconFamily|string|null`,id:`param-reviews-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaIconPosition`,type:`Enums\\\\ReviewsCtaIconPosition|string|null`,id:`param-reviews-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaIconNudge`,type:`?bool`,id:`param-reviews-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-160`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`TestimonialsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TestimonialsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`testimonials`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\TestimonialsWidgetType|string`,id:`param-type-55`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`testimonials`}),`. One of `,_jsx(_components.code,{children:`testimonials`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-164`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-62`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrow`,type:`?string`,id:`param-testimonials-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrowColor`,type:`?string`,id:`param-testimonials-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrowColorLight`,type:`?string`,id:`param-testimonials-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrowWeight`,type:`Enums\\\\TestimonialsEyebrowWeight|string|null`,id:`param-testimonials-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrowSize`,type:`Enums\\\\TestimonialsEyebrowSize|string|null`,id:`param-testimonials-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsHeading`,type:`?string`,id:`param-testimonials-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the testimonials.`]})}),_jsx(ResponseField,{name:`testimonialsHeadingColor`,type:`?string`,id:`param-testimonials-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`testimonialsHeadingColorLight`,type:`?string`,id:`param-testimonials-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsHeadingWeight`,type:`Enums\\\\TestimonialsHeadingWeight|string|null`,id:`param-testimonials-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsIntro`,type:`?string`,id:`param-testimonials-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`testimonialsIntroColor`,type:`?string`,id:`param-testimonials-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`testimonialsIntroColorLight`,type:`?string`,id:`param-testimonials-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsIntroWeight`,type:`Enums\\\\TestimonialsIntroWeight|string|null`,id:`param-testimonials-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsIntroSize`,type:`Enums\\\\TestimonialsIntroSize|string|null`,id:`param-testimonials-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsAlign`,type:`Enums\\\\TestimonialsAlign|string|null`,id:`param-testimonials-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsFeaturedOnly`,type:`?bool`,id:`param-testimonials-featured-only-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show only testimonials you have flagged “Featured” in the Testimonials manager — hand-curate exactly which appear.`]})}),_jsx(ResponseField,{name:`testimonialsCount`,type:`?int`,id:`param-testimonials-count-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The most testimonials to show (featured first). 1 to 30.`]})}),_jsx(ResponseField,{name:`testimonialsLayout`,type:`Enums\\\\TestimonialsLayout|string|null`,id:`param-testimonials-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Animated carousel: a continuous, auto-scrolling marquee of cards (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered, Pinterest-style grid that hugs each quote’s length. One of `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`masonry`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsColumns`,type:`Enums\\\\TestimonialsColumns|string|null`,id:`param-testimonials-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many cards per row (grid) or columns (masonry). Auto fits as many as comfortably fit. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsSpeed`,type:`Enums\\\\TestimonialsSpeed|string|null`,id:`param-testimonials-speed-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the carousel auto-scrolls. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsDirection`,type:`Enums\\\\TestimonialsDirection|string|null`,id:`param-testimonials-direction-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsGap`,type:`Enums\\\\TestimonialsGap|string|null`,id:`param-testimonials-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardLayout`,type:`Enums\\\\TestimonialsCardLayout|string|null`,id:`param-testimonials-card-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Quote-led: a large quotation mark over the quote, with the author in a footer (the classic testimonial look). Accent bar: the quote beside a bold accent bar. Classic: the author on top (photo + name), then the quote — like a review card. One of `,_jsx(_components.code,{children:`quote`}),`, `,_jsx(_components.code,{children:`bar`}),`, `,_jsx(_components.code,{children:`classic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsShowQuoteMark`,type:`?bool`,id:`param-testimonials-show-quote-mark-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The oversized “ glyph on the quote-led and accent-bar layouts.`]})}),_jsx(ResponseField,{name:`testimonialsShowAvatar`,type:`?bool`,id:`param-testimonials-show-avatar-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show the author’s photo (falls back to a lettered initial when none is set).`]})}),_jsx(ResponseField,{name:`testimonialsShowTitle`,type:`?bool`,id:`param-testimonials-show-title-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show author role / context.`]})}),_jsx(ResponseField,{name:`testimonialsShowRating`,type:`?bool`,id:`param-testimonials-show-rating-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Off by default — a testimonial usually leads with the quote. Turn on to show each testimonial’s star rating.`]})}),_jsx(ResponseField,{name:`testimonialsLinkLabel`,type:`?string`,id:`param-testimonials-link-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text for a testimonial’s optional “Source link” (set per testimonial in the Testimonials manager). Shown only on testimonials that have a link.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyle`,type:`Enums\\\\TestimonialsCardStyle|string|null`,id:`param-testimonials-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card treatment. Spine (the default) embeds a color rail along the top; Raised is a quiet lit card; Luxe a frosted glass panel; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleRadius`,type:`Enums\\\\TestimonialsCardStyleRadius|string|null`,id:`param-testimonials-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleAccentColor`,type:`?string`,id:`param-testimonials-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleAccentColorLight`,type:`?string`,id:`param-testimonials-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleForgeScope`,type:`Enums\\\\TestimonialsCardStyleForgeScope|string|null`,id:`param-testimonials-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleForgeWeight`,type:`Enums\\\\TestimonialsCardStyleForgeWeight|string|null`,id:`param-testimonials-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardHover`,type:`Enums\\\\TestimonialsCardHover|string|null`,id:`param-testimonials-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardWidth`,type:`Enums\\\\TestimonialsCardWidth|string|null`,id:`param-testimonials-card-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sets the carousel card width and the minimum card width in the grid/masonry layouts. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardHeight`,type:`Enums\\\\TestimonialsCardHeight|string|null`,id:`param-testimonials-card-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto hugs the content; the taller presets give every card a consistent minimum height (grid + carousel). The masonry layout ignores this and staggers card heights itself. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardAlign`,type:`Enums\\\\TestimonialsCardAlign|string|null`,id:`param-testimonials-card-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How the quote and author align inside each card. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsStarColor`,type:`?string`,id:`param-testimonials-star-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use a warm amber. Applies in both themes (only when ratings are shown).`]})}),_jsx(ResponseField,{name:`testimonialsAccentColor`,type:`?string`,id:`param-testimonials-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — the quotation mark, the accent bar, and the lettered-avatar background. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`testimonialsAccentColorLight`,type:`?string`,id:`param-testimonials-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsNameSize`,type:`Enums\\\\TestimonialsNameSize|string|null`,id:`param-testimonials-name-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsNameWeight`,type:`Enums\\\\TestimonialsNameWeight|string|null`,id:`param-testimonials-name-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsNameColor`,type:`?string`,id:`param-testimonials-name-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`testimonialsNameColorLight`,type:`?string`,id:`param-testimonials-name-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsTitleSize`,type:`Enums\\\\TestimonialsTitleSize|string|null`,id:`param-testimonials-title-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Role size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsTitleWeight`,type:`Enums\\\\TestimonialsTitleWeight|string|null`,id:`param-testimonials-title-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Role weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsTitleColor`,type:`?string`,id:`param-testimonials-title-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the faint text color.`]})}),_jsx(ResponseField,{name:`testimonialsTitleColorLight`,type:`?string`,id:`param-testimonials-title-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteSize`,type:`Enums\\\\TestimonialsQuoteSize|string|null`,id:`param-testimonials-quote-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Quote size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteWeight`,type:`Enums\\\\TestimonialsQuoteWeight|string|null`,id:`param-testimonials-quote-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Quote weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteColor`,type:`?string`,id:`param-testimonials-quote-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the theme text color.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteColorLight`,type:`?string`,id:`param-testimonials-quote-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteClamp`,type:`Enums\\\\TestimonialsQuoteClamp|string|null`,id:`param-testimonials-quote-clamp-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cap each quote at this many lines (the rest is truncated with an ellipsis) so one very long testimonial can’t blow up the card height. Choose “Full text” to never truncate. Short quotes are unaffected. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`8`}),`, `,_jsx(_components.code,{children:`12`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsBg`,type:`Enums\\\\TestimonialsBg|string|null`,id:`param-testimonials-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsBgCustom`,type:`?string`,id:`param-testimonials-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`testimonialsBgLight`,type:`Enums\\\\TestimonialsBgLight|string|null`,id:`param-testimonials-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsBgLightCustom`,type:`?string`,id:`param-testimonials-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`testimonialsFontOverrides`,type:`Collection\u003cint, TestimonialsWidgetTestimonialsFontOverridesItem>|null`,id:`param-testimonials-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`TestimonialsWidgetTestimonialsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`TestimonialsWidgetTestimonialsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TestimonialsWidgetTestimonialsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-165`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem>|null`,id:`param-uploads-43`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-166`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-161`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-162`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`testimonialsCtaLabel`,type:`?string`,id:`param-testimonials-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`testimonialsCtaUrl`,type:`?string`,id:`param-testimonials-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`testimonialsCtaNewTab`,type:`?bool`,id:`param-testimonials-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`testimonialsCtaVariant`,type:`Enums\\\\TestimonialsCtaVariant|string|null`,id:`param-testimonials-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaSize`,type:`Enums\\\\TestimonialsCtaSize|string|null`,id:`param-testimonials-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaRadius`,type:`Enums\\\\TestimonialsCtaRadius|string|null`,id:`param-testimonials-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaColor`,type:`?string`,id:`param-testimonials-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`testimonialsCtaColorLight`,type:`?string`,id:`param-testimonials-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`testimonialsCtaTextColor`,type:`?string`,id:`param-testimonials-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`testimonialsCtaTextColorLight`,type:`?string`,id:`param-testimonials-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`testimonialsCtaHoverColor`,type:`?string`,id:`param-testimonials-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`testimonialsCtaHoverColorLight`,type:`?string`,id:`param-testimonials-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`testimonialsCtaStyle`,type:`Enums\\\\TestimonialsCtaStyle|string|null`,id:`param-testimonials-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaShadowColor`,type:`?string`,id:`param-testimonials-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`testimonialsCtaShadowColorLight`,type:`?string`,id:`param-testimonials-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`testimonialsCtaAnimation`,type:`Enums\\\\TestimonialsCtaAnimation|string|null`,id:`param-testimonials-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIcon`,type:`?string`,id:`param-testimonials-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIconFamily`,type:`Enums\\\\TestimonialsCtaIconFamily|string|null`,id:`param-testimonials-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIconPosition`,type:`Enums\\\\TestimonialsCtaIconPosition|string|null`,id:`param-testimonials-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIconNudge`,type:`?bool`,id:`param-testimonials-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-163`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`InstagramFeedWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\InstagramFeedWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`instagram-feed`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\InstagramFeedWidgetType|string`,id:`param-type-56`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`instagram-feed`}),`. One of `,_jsx(_components.code,{children:`instagram-feed`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-167`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-63`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramEyebrow`,type:`?string`,id:`param-instagram-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`instagramEyebrowColor`,type:`?string`,id:`param-instagram-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`instagramEyebrowColorLight`,type:`?string`,id:`param-instagram-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`instagramEyebrowWeight`,type:`Enums\\\\InstagramEyebrowWeight|string|null`,id:`param-instagram-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramEyebrowSize`,type:`Enums\\\\InstagramEyebrowSize|string|null`,id:`param-instagram-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramHeading`,type:`?string`,id:`param-instagram-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the feed.`]})}),_jsx(ResponseField,{name:`instagramHeadingColor`,type:`?string`,id:`param-instagram-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`instagramHeadingColorLight`,type:`?string`,id:`param-instagram-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`instagramHeadingWeight`,type:`Enums\\\\InstagramHeadingWeight|string|null`,id:`param-instagram-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramIntro`,type:`?string`,id:`param-instagram-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`instagramIntroColor`,type:`?string`,id:`param-instagram-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`instagramIntroColorLight`,type:`?string`,id:`param-instagram-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`instagramIntroWeight`,type:`Enums\\\\InstagramIntroWeight|string|null`,id:`param-instagram-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramIntroSize`,type:`Enums\\\\InstagramIntroSize|string|null`,id:`param-instagram-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramAlign`,type:`Enums\\\\InstagramAlign|string|null`,id:`param-instagram-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramFeaturedOnly`,type:`?bool`,id:`param-instagram-featured-only-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show only posts you have flagged “Featured” in the Instagram Posts manager — hand-curate exactly which appear.`]})}),_jsx(ResponseField,{name:`instagramCount`,type:`?int`,id:`param-instagram-count-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The most posts to show (newest first). 1 to 30.`]})}),_jsx(ResponseField,{name:`instagramMediaFilter`,type:`Enums\\\\InstagramMediaFilter|string|null`,id:`param-instagram-media-filter-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Filter this feed by media type. “Photos” keeps image and album posts; “Videos \u0026 reels” keeps only video posts. This is per-feed display only — it doesn’t change what gets synced. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`photos`}),`, `,_jsx(_components.code,{children:`videos`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramLayout`,type:`Enums\\\\InstagramLayout|string|null`,id:`param-instagram-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Carousel: a continuous, auto-scrolling marquee strip (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered grid that hugs each image’s shape. Mosaic Photo Wall: an edge-to-edge, gap-free photo wall where rows are scaled to a common height (like Flickr / Google Photos) — the richest option for photos. One of `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`masonry`}),`, `,_jsx(_components.code,{children:`justified`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramColumns`,type:`Enums\\\\InstagramColumns|string|null`,id:`param-instagram-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many tiles per row (grid) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout.) One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramJustifiedHeight`,type:`Enums\\\\InstagramJustifiedHeight|string|null`,id:`param-instagram-justified-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramJustifiedVary`,type:`?bool`,id:`param-instagram-justified-vary-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. For feeds where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.`]})}),_jsx(ResponseField,{name:`instagramSpeed`,type:`Enums\\\\InstagramSpeed|string|null`,id:`param-instagram-speed-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the carousel auto-scrolls. The feed runs on its own speed scale so two marquees on a page never scroll in lockstep. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramDirection`,type:`Enums\\\\InstagramDirection|string|null`,id:`param-instagram-direction-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramGap`,type:`Enums\\\\InstagramGap|string|null`,id:`param-instagram-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between tiles. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramAspect`,type:`Enums\\\\InstagramAspect|string|null`,id:`param-instagram-aspect-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Crop each image to a consistent shape. “Original” keeps each image’s own ratio (best with the masonry layout). One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`landscape`}),`, `,_jsx(_components.code,{children:`original`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCardWidth`,type:`Enums\\\\InstagramCardWidth|string|null`,id:`param-instagram-card-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sets the carousel tile width and the minimum tile width in the grid/masonry layouts. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramRadius`,type:`Enums\\\\InstagramRadius|string|null`,id:`param-instagram-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCardHover`,type:`Enums\\\\InstagramCardHover|string|null`,id:`param-instagram-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a tile does on hover. Lift/Glow are best for image tiles; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramShowVideoBadge`,type:`?bool`,id:`param-instagram-show-video-badge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small corner glyph marking a video, reel, or carousel album.`]})}),_jsx(ResponseField,{name:`instagramShowPermalinkIcon`,type:`?bool`,id:`param-instagram-show-permalink-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A corner Instagram glyph on each tile — the one opt-in link out to the post (opens in a new tab). The tile itself opens the on-site lightbox.`]})}),_jsx(ResponseField,{name:`instagramShowCardLikes`,type:`?bool`,id:`param-instagram-show-card-likes-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small heart + like count in the bottom corner of each tile. Off by default. (A post whose account hides like counts on Instagram shows nothing.)`]})}),_jsx(ResponseField,{name:`instagramGlyphSize`,type:`Enums\\\\InstagramGlyphSize|string|null`,id:`param-instagram-glyph-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size of the corner glyph, the video/reel badge, and the play affordance on video tiles. All three options are larger than the old fixed size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramShowCaption`,type:`?bool`,id:`param-instagram-show-caption-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Off by default (the classic image-only grid). When on, choose where the caption appears below.`]})}),_jsx(ResponseField,{name:`instagramCaptionMode`,type:`Enums\\\\InstagramCaptionMode|string|null`,id:`param-instagram-caption-mode-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption placement. One of `,_jsx(_components.code,{children:`below`}),`, `,_jsx(_components.code,{children:`hover`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramAccentColor`,type:`?string`,id:`param-instagram-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — color of the corner glyph + the hover wash. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`instagramAccentColorLight`,type:`?string`,id:`param-instagram-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`instagramLikeColor`,type:`?string`,id:`param-instagram-like-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — color of the like heart on the tiles and in the lightbox. Leave empty to use the brand coral.`]})}),_jsx(ResponseField,{name:`instagramLikeColorLight`,type:`?string`,id:`param-instagram-like-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`instagramCaptionClamp`,type:`Enums\\\\InstagramCaptionClamp|string|null`,id:`param-instagram-caption-clamp-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cap each caption at this many lines so a long caption can’t blow up the tile. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`1`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCaptionSize`,type:`Enums\\\\InstagramCaptionSize|string|null`,id:`param-instagram-caption-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCaptionWeight`,type:`Enums\\\\InstagramCaptionWeight|string|null`,id:`param-instagram-caption-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCaptionColor`,type:`?string`,id:`param-instagram-caption-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color (below mode) / white (hover mode).`]})}),_jsx(ResponseField,{name:`instagramCaptionColorLight`,type:`?string`,id:`param-instagram-caption-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`instagramShowLikes`,type:`?bool`,id:`param-instagram-show-likes-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show the post’s like count in the lightbox. (An account that hides like counts on Instagram reports none — then nothing shows.)`]})}),_jsx(ResponseField,{name:`instagramCommentsDisplay`,type:`Enums\\\\InstagramCommentsDisplay|string|null`,id:`param-instagram-comments-display-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How comments appear in the lightbox. “Count only” shows just the total. “Full list” shows the actual comments — requires “Fetch post comments” in Connections → Instagram to be on so the comment text is synced. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`count`}),`, `,_jsx(_components.code,{children:`list`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramShowCommentAuthors`,type:`?bool`,id:`param-instagram-show-comment-authors-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show each commenter’s Instagram handle next to their comment. Turn off for a cleaner, anonymous list of just the comment text.`]})}),_jsx(ResponseField,{name:`instagramLightboxShowPermalink`,type:`?bool`,id:`param-instagram-lightbox-show-permalink-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The opt-in outbound link in the lightbox. Turn it off to keep visitors fully on your site (the corner glyph on each tile is a separate setting).`]})}),_jsx(ResponseField,{name:`instagramBg`,type:`Enums\\\\InstagramBg|string|null`,id:`param-instagram-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramBgCustom`,type:`?string`,id:`param-instagram-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`instagramBgLight`,type:`Enums\\\\InstagramBgLight|string|null`,id:`param-instagram-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramBgLightCustom`,type:`?string`,id:`param-instagram-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`instagramFontOverrides`,type:`Collection\u003cint, InstagramFeedWidgetInstagramFontOverridesItem>|null`,id:`param-instagram-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`InstagramFeedWidgetInstagramFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`InstagramFeedWidgetInstagramFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\InstagramFeedWidgetInstagramFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-168`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, InstagramFeedWidgetInstagramFontOverridesItemUploadsItem>|null`,id:`param-uploads-44`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`InstagramFeedWidgetInstagramFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`InstagramFeedWidgetInstagramFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\InstagramFeedWidgetInstagramFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-169`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-164`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-165`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`instagramCtaLabel`,type:`?string`,id:`param-instagram-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`instagramCtaUrl`,type:`?string`,id:`param-instagram-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`instagramCtaNewTab`,type:`?bool`,id:`param-instagram-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`instagramCtaVariant`,type:`Enums\\\\InstagramCtaVariant|string|null`,id:`param-instagram-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaSize`,type:`Enums\\\\InstagramCtaSize|string|null`,id:`param-instagram-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaRadius`,type:`Enums\\\\InstagramCtaRadius|string|null`,id:`param-instagram-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaColor`,type:`?string`,id:`param-instagram-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`instagramCtaColorLight`,type:`?string`,id:`param-instagram-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`instagramCtaTextColor`,type:`?string`,id:`param-instagram-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`instagramCtaTextColorLight`,type:`?string`,id:`param-instagram-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`instagramCtaHoverColor`,type:`?string`,id:`param-instagram-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`instagramCtaHoverColorLight`,type:`?string`,id:`param-instagram-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`instagramCtaStyle`,type:`Enums\\\\InstagramCtaStyle|string|null`,id:`param-instagram-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaShadowColor`,type:`?string`,id:`param-instagram-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`instagramCtaShadowColorLight`,type:`?string`,id:`param-instagram-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`instagramCtaAnimation`,type:`Enums\\\\InstagramCtaAnimation|string|null`,id:`param-instagram-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaIcon`,type:`?string`,id:`param-instagram-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`instagramCtaIconFamily`,type:`Enums\\\\InstagramCtaIconFamily|string|null`,id:`param-instagram-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaIconPosition`,type:`Enums\\\\InstagramCtaIconPosition|string|null`,id:`param-instagram-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaIconNudge`,type:`?bool`,id:`param-instagram-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-166`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`GalleryPreviewWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryPreviewWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`gallery-preview`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\GalleryPreviewWidgetType|string`,id:`param-type-57`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`gallery-preview`}),`. One of `,_jsx(_components.code,{children:`gallery-preview`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-170`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-64`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryEyebrow`,type:`?string`,id:`param-gallery-eyebrow-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`galleryEyebrowColor`,type:`?string`,id:`param-gallery-eyebrow-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`galleryEyebrowColorLight`,type:`?string`,id:`param-gallery-eyebrow-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`galleryEyebrowWeight`,type:`Enums\\\\GalleryEyebrowWeight|string|null`,id:`param-gallery-eyebrow-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryEyebrowSize`,type:`Enums\\\\GalleryEyebrowSize|string|null`,id:`param-gallery-eyebrow-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryHeading`,type:`?string`,id:`param-gallery-heading-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the photos.`]})}),_jsx(ResponseField,{name:`galleryHeadingColor`,type:`?string`,id:`param-gallery-heading-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`galleryHeadingColorLight`,type:`?string`,id:`param-gallery-heading-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryHeadingWeight`,type:`Enums\\\\GalleryHeadingWeight|string|null`,id:`param-gallery-heading-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryIntro`,type:`?string`,id:`param-gallery-intro-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`galleryIntroColor`,type:`?string`,id:`param-gallery-intro-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`galleryIntroColorLight`,type:`?string`,id:`param-gallery-intro-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryIntroWeight`,type:`Enums\\\\GalleryIntroWeight|string|null`,id:`param-gallery-intro-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryIntroSize`,type:`Enums\\\\GalleryIntroSize|string|null`,id:`param-gallery-intro-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryAlign`,type:`Enums\\\\GalleryAlign|string|null`,id:`param-gallery-align-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`gallerySource`,type:`Enums\\\\GallerySource|string|null`,id:`param-gallery-source-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Album: a curated set you pick and order by hand — best for a designed page. Folder: automatically shows every image filed in a media-library folder (newest first) — best for bulk collections you organize in the media manager. Feed: a set that refreshes itself on a schedule from an external photo store, so the gallery shows different photos over time. One of `,_jsx(_components.code,{children:`album`}),`, `,_jsx(_components.code,{children:`folder`}),`, `,_jsx(_components.code,{children:`feed`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`album`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-album-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Photo Album to display. Create and fill albums in the Photo Albums manager. The related `,_jsx(_components.code,{children:`photo-album`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryFolder`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-gallery-folder-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The media-library folder to display. Every image filed in it (and its subfolders, if enabled) is shown, newest first. The related `,_jsx(_components.code,{children:`image-folder`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryIncludeSubfolders`,type:`?bool`,id:`param-gallery-include-subfolders-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Also show images filed in folders inside the selected folder.`]})}),_jsx(ResponseField,{name:`photoFeed`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-photo-feed-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Photo Feed to display. This gallery stays pointed at the feed while the feed replaces its photos on its own schedule. Create and configure feeds in the Photo Feeds manager. The related `,_jsx(_components.code,{children:`photo-feed`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryMaxPhotos`,type:`?int`,id:`param-gallery-max-photos-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cap the teaser to this many photos. 0 shows everything in the selected source (folder photos are newest-first). 0 to 200.`]})}),_jsx(ResponseField,{name:`galleryLayout`,type:`Enums\\\\GalleryLayout|string|null`,id:`param-gallery-layout-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Mosaic Photo Wall: an edge-to-edge wall where rows are scaled to a common height (like Flickr / Google Photos), cropped around each photo’s focal point — the richest option. Masonry: a staggered grid that hugs each photo’s shape. Grid: a tidy, uniform grid. Spotlight: every group of eight opens on an oversized lead photo, sides alternating on wide screens. Shaped Tiles: a portrait grid whose tiles cycle through slab, arch and orb shapes. Scrolling Banner: one edge-to-edge row that drifts sideways forever, so a long album reads as a ribbon of photos rather than a block — the option for a band between two sections rather than a gallery page. Panorama Wall: several rows, far wider than the screen, traveling sideways at slightly different speeds — and the visitor can push it along or against with a drag or a trackpad swipe. Vertical Ribbon: a band of columns running down the page instead of across it, neighboring columns traveling opposite ways, so the section reads as a moving curtain of photographs. One of `,_jsx(_components.code,{children:`justified`}),`, `,_jsx(_components.code,{children:`masonry`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`shaped`}),`, `,_jsx(_components.code,{children:`banner`}),`, `,_jsx(_components.code,{children:`panorama`}),`, `,_jsx(_components.code,{children:`ribbon`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryColumns`,type:`Enums\\\\GalleryColumns|string|null`,id:`param-gallery-columns-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many tiles per row (grid, shaped tiles) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout; Spotlight sets its own pattern.) One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryJustifiedHeight`,type:`Enums\\\\GalleryJustifiedHeight|string|null`,id:`param-gallery-justified-height-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerHeight`,type:`Enums\\\\GalleryBannerHeight|string|null`,id:`param-gallery-banner-height-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How tall the moving row stands. Each photo keeps its own shape, so a taller banner shows wider photos and fewer of them at once. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerSpeed`,type:`Enums\\\\GalleryBannerSpeed|string|null`,id:`param-gallery-banner-speed-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the row drifts. It also surges briefly with the page’s own scrolling, then settles back — so the band reacts to the visitor instead of ignoring them. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerDirection`,type:`Enums\\\\GalleryBannerDirection|string|null`,id:`param-gallery-banner-direction-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Banner direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerFade`,type:`?bool`,id:`param-gallery-banner-fade-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fades the row out at both ends so photos scroll in and out instead of being cut off by a hard edge.`]})}),_jsx(ResponseField,{name:`galleryPanoramaRows`,type:`Enums\\\\GalleryPanoramaRows|string|null`,id:`param-gallery-panorama-rows-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many rows of photos the wall is dealt across. Photos go into the rows in turn, so consecutive shots land in different rows rather than stacking up together. Deep walls want a big set — a row needs at least three photos of its own, so a small album quietly uses fewer, fuller rows than you pick here. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`7`}),`, `,_jsx(_components.code,{children:`8`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaHeight`,type:`Enums\\\\GalleryPanoramaHeight|string|null`,id:`param-gallery-panorama-height-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How tall each row stands, so the wall’s total depth is this times the number of rows — an eight-row Tall panorama fills a screen and then some. Each photo keeps its own shape, so taller rows show wider photos and fewer of them. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaSpeed`,type:`Enums\\\\GalleryPanoramaSpeed|string|null`,id:`param-gallery-panorama-speed-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the wall travels. Each row takes a slightly different share of this, so the rows shear gently against each other and the block reads as depth rather than as one sliding sheet. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDirection`,type:`Enums\\\\GalleryPanoramaDirection|string|null`,id:`param-gallery-panorama-direction-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Travel direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDrag`,type:`?bool`,id:`param-gallery-panorama-drag-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Dragging the wall (or swiping sideways on a trackpad or phone) pushes it along or against its travel, and it glides back into its own pace when let go. Vertical scrolling always still scrolls the page. Needs site animations on in Site design → Motion.`]})}),_jsx(ResponseField,{name:`galleryPanoramaFade`,type:`?bool`,id:`param-gallery-panorama-fade-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fades the rows out at both ends so photos travel in and out instead of being cut off by a hard edge.`]})}),_jsx(ResponseField,{name:`galleryRibbonColumns`,type:`Enums\\\\GalleryRibbonColumns|string|null`,id:`param-gallery-ribbon-columns-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many columns of photos the band is dealt across. Photos go into the columns in turn, so consecutive shots land in different columns rather than stacking up together. Narrow screens show fewer columns than you pick here (two on a phone, three on a tablet) — because photos in a 50-pixel sliver are not photos. A column needs at least three photos of its own, so a small album quietly uses fewer, fuller columns. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonHeight`,type:`Enums\\\\GalleryRibbonHeight|string|null`,id:`param-gallery-ribbon-height-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How tall the band stands — the window the columns travel through, not the columns themselves, which are always far taller than it. Each photo keeps its own shape and fills its column’s width, so the columns show more photos at once the taller the band is. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonSpeed`,type:`Enums\\\\GalleryRibbonSpeed|string|null`,id:`param-gallery-ribbon-speed-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the columns travel. Each takes a slightly different share of this, so the band reads as a weave rather than as one sheet sliding. Slower than the sideways layouts at every setting on purpose: this moves along the same axis the visitor scrolls in, where the same speed feels far more urgent. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonDirection`,type:`Enums\\\\GalleryRibbonDirection|string|null`,id:`param-gallery-ribbon-direction-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which way the first column travels. With alternating columns on (below), its neighbors go the other way. One of `,_jsx(_components.code,{children:`up`}),`, `,_jsx(_components.code,{children:`down`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonAlternate`,type:`?bool`,id:`param-gallery-ribbon-alternate-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Send neighboring columns opposite ways, which is what makes the band read as a weave. Turn it off and the whole band travels one way together — quieter, and closer to a conventional scrolling wall.`]})}),_jsx(ResponseField,{name:`galleryRibbonFade`,type:`?bool`,id:`param-gallery-ribbon-fade-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fades the columns out at the top and bottom so photos travel in and out instead of being cut off by a hard edge.`]})}),_jsx(ResponseField,{name:`galleryJustifiedVary`,type:`?bool`,id:`param-gallery-justified-vary-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. For albums where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.`]})}),_jsx(ResponseField,{name:`galleryGap`,type:`Enums\\\\GalleryGap|string|null`,id:`param-gallery-gap-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between tiles. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRadius`,type:`Enums\\\\GalleryRadius|string|null`,id:`param-gallery-radius-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardStyle`,type:`Enums\\\\GalleryCardStyle|string|null`,id:`param-gallery-card-style-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The tile surface. Raised floats each photo on a soft shadow (default); Plain is a clean edge-to-edge wall; Luxe / Outline / Poster frame it; Ticket / Bracket / Forge / Press add graphic structure. The photo fills the tile, so fill-based looks (Tint, Inlay) read as their frame + elevation. On the Shaped Tiles layout the structural looks (Ticket / Bracket / Forge / Press) fall back to their plain surface — their rectangular marks can’t follow an arch or orb. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColor`,type:`?string`,id:`param-gallery-card-style-accent-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColorLight`,type:`?string`,id:`param-gallery-card-style-accent-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryCardStyleForgeScope`,type:`Enums\\\\GalleryCardStyleForgeScope|string|null`,id:`param-gallery-card-style-forge-scope-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardStyleForgeWeight`,type:`Enums\\\\GalleryCardStyleForgeWeight|string|null`,id:`param-gallery-card-style-forge-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardHover`,type:`Enums\\\\GalleryCardHover|string|null`,id:`param-gallery-card-hover-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a tile does on hover, on top of the surface above. Glow (default) / Lift read best on photo tiles; Press collapses a Poster offset; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryShowCaption`,type:`?bool`,id:`param-gallery-show-caption-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overlay each photo’s alt text on hover. Off by default (a clean photo wall). The caption always shows in the lightbox.`]})}),_jsx(ResponseField,{name:`galleryCaptionSize`,type:`Enums\\\\GalleryCaptionSize|string|null`,id:`param-gallery-caption-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCaptionWeight`,type:`Enums\\\\GalleryCaptionWeight|string|null`,id:`param-gallery-caption-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryLightbox`,type:`?bool`,id:`param-gallery-lightbox-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Clicking a photo opens it full-size in an on-site lightbox (with previous / next). Turn off for a purely decorative wall that doesn’t enlarge.`]})}),_jsx(ResponseField,{name:`galleryAccentColor`,type:`?string`,id:`param-gallery-accent-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — color of the hover wash / glow. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`galleryAccentColorLight`,type:`?string`,id:`param-gallery-accent-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryDrift`,type:`Enums\\\\GalleryDrift|string|null`,id:`param-gallery-drift-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A very slow pan-and-zoom on every photo, each tile on its own rhythm, so the wall stays quietly alive instead of holding perfectly still. Off by default: a still gallery costs nothing to keep on screen, and this runs continuously for as long as the page is open. Turn it on if you also switch on “Rotate photos automatically” below — a photo changing on a wall that is otherwise frozen reads as a glitch. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryParallax`,type:`Enums\\\\GalleryParallax|string|null`,id:`param-gallery-parallax-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sets every photo at its own depth: as the page scrolls, some slide with it and some against it, so the wall has layers instead of being one flat plane. It only moves while the visitor scrolls — nothing happens when the page is still. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryShuffle`,type:`Enums\\\\GalleryShuffle|string|null`,id:`param-gallery-shuffle-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Every so often two photos trade places on the wall, gliding past each other into their new squares. Nothing resizes and nothing else on the wall moves — the grid’s squares are identical, so the photos simply swap seats. It holds still while a visitor’s pointer or keyboard is anywhere in the gallery, so nothing ever moves out from under a click. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryShuffleBatch`,type:`?int`,id:`param-gallery-shuffle-batch-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Two photos swap with each other; three or more pass their seats along in a ring, so more of the wall is moving at once. Higher numbers read as the wall dealing itself a new hand rather than as two photos changing places. 2 to 6.`]})}),_jsx(ResponseField,{name:`galleryRotate`,type:`?bool`,id:`param-gallery-rotate-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Photos fade out a few at a time and are replaced from the rest of the source, so the gallery keeps changing while a visitor watches. Needs more photos in the source than are on screen — set “Maximum photos” above to less than the source holds. Set “Ambient drift” above to Subtle as well: a photo changing on a wall that is otherwise perfectly still reads as a glitch rather than as movement. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion.`]})}),_jsx(ResponseField,{name:`galleryRotateStyle`,type:`Enums\\\\GalleryRotateStyle|string|null`,id:`param-gallery-rotate-style-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cross-fade: the next photo dissolves over the old one as it eases in — the quietest change. Fade through a color: the tile also dips towards a flat color while the photos dissolve, so it reads as “phasing out” without ever going blank. Slide in: the next photo travels in over the old one, which drifts the same way behind it. Zoom through: the next photo settles out of a slight enlargement. Soften through: the photo blurs out of focus and the next one comes back into it. Wipe across: a clean edge travels over the tile, leaving the next photo behind it. Turn over: the tile turns like a card and comes back showing the next photo — the boldest of the seven. One of `,_jsx(_components.code,{children:`cross`}),`, `,_jsx(_components.code,{children:`veil`}),`, `,_jsx(_components.code,{children:`push`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`blur`}),`, `,_jsx(_components.code,{children:`wipe`}),`, `,_jsx(_components.code,{children:`turn`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateOrder`,type:`Enums\\\\GalleryRotateOrder|string|null`,id:`param-gallery-rotate-order-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scattered spreads the changes over the whole wall, never twice in the same corner and never the same tile twice in a row. The other three move through the wall in a set direction, so the changes read as one gesture crossing the gallery rather than as separate events. One of `,_jsx(_components.code,{children:`scatter`}),`, `,_jsx(_components.code,{children:`wave`}),`, `,_jsx(_components.code,{children:`columns`}),`, `,_jsx(_components.code,{children:`rows`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateColor`,type:`?string`,id:`param-gallery-rotate-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to dip through the page background, which suits both themes. Set white for a brighter bloom, or the brand accent for a bolder pulse. The dip never reaches full strength, so the photo always shows through.`]})}),_jsx(ResponseField,{name:`galleryRotateColorLight`,type:`?string`,id:`param-gallery-rotate-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryRotatePace`,type:`Enums\\\\GalleryRotatePace|string|null`,id:`param-gallery-rotate-pace-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The gap between one group of changes and the next. The real timing is deliberately uneven around this figure so the wall never feels metronomic. One of `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`, `,_jsx(_components.code,{children:`rapid`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateBatch`,type:`?int`,id:`param-gallery-rotate-batch-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many tiles change per group. They never start on the same frame — each one follows the one before it by a beat, so a group reads as a ripple rather than a blink. 1 is the calmest; higher numbers keep more of the wall in motion. 1 to 6.`]})}),_jsx(ResponseField,{name:`galleryRotateFade`,type:`Enums\\\\GalleryRotateFade|string|null`,id:`param-gallery-rotate-fade-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The length of one change, from the old photo to the new. Longer reads as a gentle phase; shorter as a snap — and short changes are the ones that read as choppy, so lean long. One of `,_jsx(_components.code,{children:`quick`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`lingering`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateReserve`,type:`?int`,id:`param-gallery-rotate-reserve-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many photos beyond the ones on screen to send to the browser for the rotation to draw from — the bigger this is, the longer the gallery goes before a visitor sees a repeat. Retired photos go back to the end of the queue, so it cycles the whole reserve and then starts over. Cheap to raise: a reserved photo is a few URLs, well under 100 bytes once the page is compressed, and its image file is only fetched when it is about to appear. 0 to 500.`]})}),_jsx(ResponseField,{name:`galleryBg`,type:`Enums\\\\GalleryBg|string|null`,id:`param-gallery-bg-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBgCustom`,type:`?string`,id:`param-gallery-bg-custom-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`galleryBgLight`,type:`Enums\\\\GalleryBgLight|string|null`,id:`param-gallery-bg-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBgLightCustom`,type:`?string`,id:`param-gallery-bg-light-custom-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`galleryFontOverrides`,type:`Collection\u003cint, GalleryPreviewWidgetGalleryFontOverridesItem>|null`,id:`param-gallery-font-overrides-2`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`GalleryPreviewWidgetGalleryFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryPreviewWidgetGalleryFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryPreviewWidgetGalleryFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-171`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem>|null`,id:`param-uploads-45`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-172`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-167`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-168`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`galleryCtaLabel`,type:`?string`,id:`param-gallery-cta-label-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`galleryCtaUrl`,type:`?string`,id:`param-gallery-cta-url-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`galleryCtaNewTab`,type:`?bool`,id:`param-gallery-cta-new-tab-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`galleryCtaVariant`,type:`Enums\\\\GalleryCtaVariant|string|null`,id:`param-gallery-cta-variant-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaSize`,type:`Enums\\\\GalleryCtaSize|string|null`,id:`param-gallery-cta-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaRadius`,type:`Enums\\\\GalleryCtaRadius|string|null`,id:`param-gallery-cta-radius-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaColor`,type:`?string`,id:`param-gallery-cta-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`galleryCtaColorLight`,type:`?string`,id:`param-gallery-cta-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`galleryCtaTextColor`,type:`?string`,id:`param-gallery-cta-text-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`galleryCtaTextColorLight`,type:`?string`,id:`param-gallery-cta-text-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`galleryCtaHoverColor`,type:`?string`,id:`param-gallery-cta-hover-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`galleryCtaHoverColorLight`,type:`?string`,id:`param-gallery-cta-hover-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`galleryCtaStyle`,type:`Enums\\\\GalleryCtaStyle|string|null`,id:`param-gallery-cta-style-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaShadowColor`,type:`?string`,id:`param-gallery-cta-shadow-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`galleryCtaShadowColorLight`,type:`?string`,id:`param-gallery-cta-shadow-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`galleryCtaAnimation`,type:`Enums\\\\GalleryCtaAnimation|string|null`,id:`param-gallery-cta-animation-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaIcon`,type:`?string`,id:`param-gallery-cta-icon-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`galleryCtaIconFamily`,type:`Enums\\\\GalleryCtaIconFamily|string|null`,id:`param-gallery-cta-icon-family-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaIconPosition`,type:`Enums\\\\GalleryCtaIconPosition|string|null`,id:`param-gallery-cta-icon-position-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaIconNudge`,type:`?bool`,id:`param-gallery-cta-icon-nudge-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-169`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`GalleryFullWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryFullWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`gallery-full`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\GalleryFullWidgetType|string`,id:`param-type-58`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`gallery-full`}),`. One of `,_jsx(_components.code,{children:`gallery-full`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-173`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-65`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryEyebrow`,type:`?string`,id:`param-gallery-eyebrow-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`galleryEyebrowColor`,type:`?string`,id:`param-gallery-eyebrow-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`galleryEyebrowColorLight`,type:`?string`,id:`param-gallery-eyebrow-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`galleryEyebrowWeight`,type:`Enums\\\\GalleryEyebrowWeight|string|null`,id:`param-gallery-eyebrow-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryEyebrowSize`,type:`Enums\\\\GalleryEyebrowSize|string|null`,id:`param-gallery-eyebrow-size-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryHeading`,type:`?string`,id:`param-gallery-heading-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the photos.`]})}),_jsx(ResponseField,{name:`galleryHeadingColor`,type:`?string`,id:`param-gallery-heading-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`galleryHeadingColorLight`,type:`?string`,id:`param-gallery-heading-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryHeadingWeight`,type:`Enums\\\\GalleryHeadingWeight|string|null`,id:`param-gallery-heading-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryIntro`,type:`?string`,id:`param-gallery-intro-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`galleryIntroColor`,type:`?string`,id:`param-gallery-intro-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`galleryIntroColorLight`,type:`?string`,id:`param-gallery-intro-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryIntroWeight`,type:`Enums\\\\GalleryIntroWeight|string|null`,id:`param-gallery-intro-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryIntroSize`,type:`Enums\\\\GalleryIntroSize|string|null`,id:`param-gallery-intro-size-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryAlign`,type:`Enums\\\\GalleryAlign|string|null`,id:`param-gallery-align-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`gallerySource`,type:`Enums\\\\GallerySource|string|null`,id:`param-gallery-source-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Album: a curated set you pick and order by hand — best for a designed page. Folder: automatically shows every image filed in a media-library folder (newest first) — best for bulk collections you organize in the media manager. Feed: a set that refreshes itself on a schedule from an external photo store, so the gallery shows different photos over time. One of `,_jsx(_components.code,{children:`album`}),`, `,_jsx(_components.code,{children:`folder`}),`, `,_jsx(_components.code,{children:`feed`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`album`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-album-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Photo Album to display. Create and fill albums in the Photo Albums manager. The related `,_jsx(_components.code,{children:`photo-album`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryFolder`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-gallery-folder-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The media-library folder to display. Every image filed in it (and its subfolders, if enabled) is shown, newest first. The related `,_jsx(_components.code,{children:`image-folder`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryIncludeSubfolders`,type:`?bool`,id:`param-gallery-include-subfolders-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Also show images filed in folders inside the selected folder.`]})}),_jsx(ResponseField,{name:`photoFeed`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-photo-feed-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Photo Feed to display. This gallery stays pointed at the feed while the feed replaces its photos on its own schedule. Create and configure feeds in the Photo Feeds manager. The related `,_jsx(_components.code,{children:`photo-feed`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryMaxPhotos`,type:`?int`,id:`param-gallery-max-photos-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The most photos to show. 0 (default) shows everything in the selected source (folder photos are newest-first). 0 to 200.`]})}),_jsx(ResponseField,{name:`galleryLayout`,type:`Enums\\\\GalleryLayout|string|null`,id:`param-gallery-layout-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Mosaic Photo Wall: an edge-to-edge wall where rows are scaled to a common height (like Flickr / Google Photos), cropped around each photo’s focal point — the richest option. Masonry: a staggered grid that hugs each photo’s shape. Grid: a tidy, uniform grid. Spotlight: every group of eight opens on an oversized lead photo, sides alternating on wide screens. Shaped Tiles: a portrait grid whose tiles cycle through slab, arch and orb shapes. Scrolling Banner: one edge-to-edge row that drifts sideways forever, so a long album reads as a ribbon of photos rather than a block — the option for a band between two sections rather than a gallery page. Panorama Wall: several rows, far wider than the screen, traveling sideways at slightly different speeds — and the visitor can push it along or against with a drag or a trackpad swipe. Vertical Ribbon: a band of columns running down the page instead of across it, neighboring columns traveling opposite ways, so the section reads as a moving curtain of photographs. One of `,_jsx(_components.code,{children:`justified`}),`, `,_jsx(_components.code,{children:`masonry`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`shaped`}),`, `,_jsx(_components.code,{children:`banner`}),`, `,_jsx(_components.code,{children:`panorama`}),`, `,_jsx(_components.code,{children:`ribbon`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryColumns`,type:`Enums\\\\GalleryColumns|string|null`,id:`param-gallery-columns-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many tiles per row (grid, shaped tiles) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout; Spotlight sets its own pattern.) One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryJustifiedHeight`,type:`Enums\\\\GalleryJustifiedHeight|string|null`,id:`param-gallery-justified-height-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerHeight`,type:`Enums\\\\GalleryBannerHeight|string|null`,id:`param-gallery-banner-height-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How tall the moving row stands. Each photo keeps its own shape, so a taller banner shows wider photos and fewer of them at once. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerSpeed`,type:`Enums\\\\GalleryBannerSpeed|string|null`,id:`param-gallery-banner-speed-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the row drifts. It also surges briefly with the page’s own scrolling, then settles back — so the band reacts to the visitor instead of ignoring them. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerDirection`,type:`Enums\\\\GalleryBannerDirection|string|null`,id:`param-gallery-banner-direction-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Banner direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerFade`,type:`?bool`,id:`param-gallery-banner-fade-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fades the row out at both ends so photos scroll in and out instead of being cut off by a hard edge.`]})}),_jsx(ResponseField,{name:`galleryPanoramaRows`,type:`Enums\\\\GalleryPanoramaRows|string|null`,id:`param-gallery-panorama-rows-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many rows of photos the wall is dealt across. Photos go into the rows in turn, so consecutive shots land in different rows rather than stacking up together. Deep walls want a big set — a row needs at least three photos of its own, so a small album quietly uses fewer, fuller rows than you pick here. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`7`}),`, `,_jsx(_components.code,{children:`8`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaHeight`,type:`Enums\\\\GalleryPanoramaHeight|string|null`,id:`param-gallery-panorama-height-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How tall each row stands, so the wall’s total depth is this times the number of rows — an eight-row Tall panorama fills a screen and then some. Each photo keeps its own shape, so taller rows show wider photos and fewer of them. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaSpeed`,type:`Enums\\\\GalleryPanoramaSpeed|string|null`,id:`param-gallery-panorama-speed-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the wall travels. Each row takes a slightly different share of this, so the rows shear gently against each other and the block reads as depth rather than as one sliding sheet. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDirection`,type:`Enums\\\\GalleryPanoramaDirection|string|null`,id:`param-gallery-panorama-direction-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Travel direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDrag`,type:`?bool`,id:`param-gallery-panorama-drag-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Dragging the wall (or swiping sideways on a trackpad or phone) pushes it along or against its travel, and it glides back into its own pace when let go. Vertical scrolling always still scrolls the page. Needs site animations on in Site design → Motion.`]})}),_jsx(ResponseField,{name:`galleryPanoramaFade`,type:`?bool`,id:`param-gallery-panorama-fade-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fades the rows out at both ends so photos travel in and out instead of being cut off by a hard edge.`]})}),_jsx(ResponseField,{name:`galleryRibbonColumns`,type:`Enums\\\\GalleryRibbonColumns|string|null`,id:`param-gallery-ribbon-columns-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many columns of photos the band is dealt across. Photos go into the columns in turn, so consecutive shots land in different columns rather than stacking up together. Narrow screens show fewer columns than you pick here (two on a phone, three on a tablet) — because photos in a 50-pixel sliver are not photos. A column needs at least three photos of its own, so a small album quietly uses fewer, fuller columns. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonHeight`,type:`Enums\\\\GalleryRibbonHeight|string|null`,id:`param-gallery-ribbon-height-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How tall the band stands — the window the columns travel through, not the columns themselves, which are always far taller than it. Each photo keeps its own shape and fills its column’s width, so the columns show more photos at once the taller the band is. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonSpeed`,type:`Enums\\\\GalleryRibbonSpeed|string|null`,id:`param-gallery-ribbon-speed-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the columns travel. Each takes a slightly different share of this, so the band reads as a weave rather than as one sheet sliding. Slower than the sideways layouts at every setting on purpose: this moves along the same axis the visitor scrolls in, where the same speed feels far more urgent. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonDirection`,type:`Enums\\\\GalleryRibbonDirection|string|null`,id:`param-gallery-ribbon-direction-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which way the first column travels. With alternating columns on (below), its neighbors go the other way. One of `,_jsx(_components.code,{children:`up`}),`, `,_jsx(_components.code,{children:`down`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonAlternate`,type:`?bool`,id:`param-gallery-ribbon-alternate-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Send neighboring columns opposite ways, which is what makes the band read as a weave. Turn it off and the whole band travels one way together — quieter, and closer to a conventional scrolling wall.`]})}),_jsx(ResponseField,{name:`galleryRibbonFade`,type:`?bool`,id:`param-gallery-ribbon-fade-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fades the columns out at the top and bottom so photos travel in and out instead of being cut off by a hard edge.`]})}),_jsx(ResponseField,{name:`galleryJustifiedVary`,type:`?bool`,id:`param-gallery-justified-vary-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. For albums where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.`]})}),_jsx(ResponseField,{name:`galleryGap`,type:`Enums\\\\GalleryGap|string|null`,id:`param-gallery-gap-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between tiles. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRadius`,type:`Enums\\\\GalleryRadius|string|null`,id:`param-gallery-radius-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardStyle`,type:`Enums\\\\GalleryCardStyle|string|null`,id:`param-gallery-card-style-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The tile surface. Raised floats each photo on a soft shadow (default); Plain is a clean edge-to-edge wall; Luxe / Outline / Poster frame it; Ticket / Bracket / Forge / Press add graphic structure. The photo fills the tile, so fill-based looks (Tint, Inlay) read as their frame + elevation. On the Shaped Tiles layout the structural looks (Ticket / Bracket / Forge / Press) fall back to their plain surface — their rectangular marks can’t follow an arch or orb. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColor`,type:`?string`,id:`param-gallery-card-style-accent-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColorLight`,type:`?string`,id:`param-gallery-card-style-accent-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryCardStyleForgeScope`,type:`Enums\\\\GalleryCardStyleForgeScope|string|null`,id:`param-gallery-card-style-forge-scope-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardStyleForgeWeight`,type:`Enums\\\\GalleryCardStyleForgeWeight|string|null`,id:`param-gallery-card-style-forge-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardHover`,type:`Enums\\\\GalleryCardHover|string|null`,id:`param-gallery-card-hover-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a tile does on hover, on top of the surface above. Glow (default) / Lift read best on photo tiles; Press collapses a Poster offset; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryShowCaption`,type:`?bool`,id:`param-gallery-show-caption-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overlay each photo’s alt text on hover. Off by default (a clean photo wall). The caption always shows in the lightbox.`]})}),_jsx(ResponseField,{name:`galleryCaptionSize`,type:`Enums\\\\GalleryCaptionSize|string|null`,id:`param-gallery-caption-size-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCaptionWeight`,type:`Enums\\\\GalleryCaptionWeight|string|null`,id:`param-gallery-caption-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryLightbox`,type:`?bool`,id:`param-gallery-lightbox-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Clicking a photo opens it full-size in an on-site lightbox (with previous / next). Turn off for a purely decorative wall that doesn’t enlarge.`]})}),_jsx(ResponseField,{name:`galleryAccentColor`,type:`?string`,id:`param-gallery-accent-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — color of the hover wash / glow. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`galleryAccentColorLight`,type:`?string`,id:`param-gallery-accent-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryDrift`,type:`Enums\\\\GalleryDrift|string|null`,id:`param-gallery-drift-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A very slow pan-and-zoom on every photo, each tile on its own rhythm, so the wall stays quietly alive instead of holding perfectly still. Off by default: a still gallery costs nothing to keep on screen, and this runs continuously for as long as the page is open. Turn it on if you also switch on “Rotate photos automatically” below — a photo changing on a wall that is otherwise frozen reads as a glitch. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryParallax`,type:`Enums\\\\GalleryParallax|string|null`,id:`param-gallery-parallax-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sets every photo at its own depth: as the page scrolls, some slide with it and some against it, so the wall has layers instead of being one flat plane. It only moves while the visitor scrolls — nothing happens when the page is still. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryShuffle`,type:`Enums\\\\GalleryShuffle|string|null`,id:`param-gallery-shuffle-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Every so often two photos trade places on the wall, gliding past each other into their new squares. Nothing resizes and nothing else on the wall moves — the grid’s squares are identical, so the photos simply swap seats. It holds still while a visitor’s pointer or keyboard is anywhere in the gallery, so nothing ever moves out from under a click. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryShuffleBatch`,type:`?int`,id:`param-gallery-shuffle-batch-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Two photos swap with each other; three or more pass their seats along in a ring, so more of the wall is moving at once. Higher numbers read as the wall dealing itself a new hand rather than as two photos changing places. 2 to 6.`]})}),_jsx(ResponseField,{name:`galleryRotate`,type:`?bool`,id:`param-gallery-rotate-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Photos fade out a few at a time and are replaced from the rest of the source, so the gallery keeps changing while a visitor watches. Needs more photos in the source than are on screen — set “Maximum photos” above to less than the source holds. Set “Ambient drift” above to Subtle as well: a photo changing on a wall that is otherwise perfectly still reads as a glitch rather than as movement. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion.`]})}),_jsx(ResponseField,{name:`galleryRotateStyle`,type:`Enums\\\\GalleryRotateStyle|string|null`,id:`param-gallery-rotate-style-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cross-fade: the next photo dissolves over the old one as it eases in — the quietest change. Fade through a color: the tile also dips towards a flat color while the photos dissolve, so it reads as “phasing out” without ever going blank. Slide in: the next photo travels in over the old one, which drifts the same way behind it. Zoom through: the next photo settles out of a slight enlargement. Soften through: the photo blurs out of focus and the next one comes back into it. Wipe across: a clean edge travels over the tile, leaving the next photo behind it. Turn over: the tile turns like a card and comes back showing the next photo — the boldest of the seven. One of `,_jsx(_components.code,{children:`cross`}),`, `,_jsx(_components.code,{children:`veil`}),`, `,_jsx(_components.code,{children:`push`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`blur`}),`, `,_jsx(_components.code,{children:`wipe`}),`, `,_jsx(_components.code,{children:`turn`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateOrder`,type:`Enums\\\\GalleryRotateOrder|string|null`,id:`param-gallery-rotate-order-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scattered spreads the changes over the whole wall, never twice in the same corner and never the same tile twice in a row. The other three move through the wall in a set direction, so the changes read as one gesture crossing the gallery rather than as separate events. One of `,_jsx(_components.code,{children:`scatter`}),`, `,_jsx(_components.code,{children:`wave`}),`, `,_jsx(_components.code,{children:`columns`}),`, `,_jsx(_components.code,{children:`rows`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateColor`,type:`?string`,id:`param-gallery-rotate-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to dip through the page background, which suits both themes. Set white for a brighter bloom, or the brand accent for a bolder pulse. The dip never reaches full strength, so the photo always shows through.`]})}),_jsx(ResponseField,{name:`galleryRotateColorLight`,type:`?string`,id:`param-gallery-rotate-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryRotatePace`,type:`Enums\\\\GalleryRotatePace|string|null`,id:`param-gallery-rotate-pace-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The gap between one group of changes and the next. The real timing is deliberately uneven around this figure so the wall never feels metronomic. One of `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`, `,_jsx(_components.code,{children:`rapid`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateBatch`,type:`?int`,id:`param-gallery-rotate-batch-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many tiles change per group. They never start on the same frame — each one follows the one before it by a beat, so a group reads as a ripple rather than a blink. 1 is the calmest; higher numbers keep more of the wall in motion. 1 to 6.`]})}),_jsx(ResponseField,{name:`galleryRotateFade`,type:`Enums\\\\GalleryRotateFade|string|null`,id:`param-gallery-rotate-fade-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The length of one change, from the old photo to the new. Longer reads as a gentle phase; shorter as a snap — and short changes are the ones that read as choppy, so lean long. One of `,_jsx(_components.code,{children:`quick`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`lingering`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateReserve`,type:`?int`,id:`param-gallery-rotate-reserve-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many photos beyond the ones on screen to send to the browser for the rotation to draw from — the bigger this is, the longer the gallery goes before a visitor sees a repeat. Retired photos go back to the end of the queue, so it cycles the whole reserve and then starts over. Cheap to raise: a reserved photo is a few URLs, well under 100 bytes once the page is compressed, and its image file is only fetched when it is about to appear. 0 to 500.`]})}),_jsx(ResponseField,{name:`galleryBg`,type:`Enums\\\\GalleryBg|string|null`,id:`param-gallery-bg-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBgCustom`,type:`?string`,id:`param-gallery-bg-custom-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`galleryBgLight`,type:`Enums\\\\GalleryBgLight|string|null`,id:`param-gallery-bg-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBgLightCustom`,type:`?string`,id:`param-gallery-bg-light-custom-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`galleryFontOverrides`,type:`Collection\u003cint, GalleryFullWidgetGalleryFontOverridesItem>|null`,id:`param-gallery-font-overrides-3`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`GalleryFullWidgetGalleryFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryFullWidgetGalleryFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryFullWidgetGalleryFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-174`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, GalleryFullWidgetGalleryFontOverridesItemUploadsItem>|null`,id:`param-uploads-46`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`GalleryFullWidgetGalleryFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryFullWidgetGalleryFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryFullWidgetGalleryFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-175`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-170`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-171`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`galleryCtaLabel`,type:`?string`,id:`param-gallery-cta-label-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`galleryCtaUrl`,type:`?string`,id:`param-gallery-cta-url-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`galleryCtaNewTab`,type:`?bool`,id:`param-gallery-cta-new-tab-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`galleryCtaVariant`,type:`Enums\\\\GalleryCtaVariant|string|null`,id:`param-gallery-cta-variant-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaSize`,type:`Enums\\\\GalleryCtaSize|string|null`,id:`param-gallery-cta-size-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaRadius`,type:`Enums\\\\GalleryCtaRadius|string|null`,id:`param-gallery-cta-radius-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaColor`,type:`?string`,id:`param-gallery-cta-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`galleryCtaColorLight`,type:`?string`,id:`param-gallery-cta-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`galleryCtaTextColor`,type:`?string`,id:`param-gallery-cta-text-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`galleryCtaTextColorLight`,type:`?string`,id:`param-gallery-cta-text-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`galleryCtaHoverColor`,type:`?string`,id:`param-gallery-cta-hover-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`galleryCtaHoverColorLight`,type:`?string`,id:`param-gallery-cta-hover-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`galleryCtaStyle`,type:`Enums\\\\GalleryCtaStyle|string|null`,id:`param-gallery-cta-style-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaShadowColor`,type:`?string`,id:`param-gallery-cta-shadow-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`galleryCtaShadowColorLight`,type:`?string`,id:`param-gallery-cta-shadow-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`galleryCtaAnimation`,type:`Enums\\\\GalleryCtaAnimation|string|null`,id:`param-gallery-cta-animation-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaIcon`,type:`?string`,id:`param-gallery-cta-icon-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`galleryCtaIconFamily`,type:`Enums\\\\GalleryCtaIconFamily|string|null`,id:`param-gallery-cta-icon-family-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaIconPosition`,type:`Enums\\\\GalleryCtaIconPosition|string|null`,id:`param-gallery-cta-icon-position-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaIconNudge`,type:`?bool`,id:`param-gallery-cta-icon-nudge-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-172`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`PricingWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`pricing`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\PricingWidgetType|string`,id:`param-type-59`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`pricing`}),`. One of `,_jsx(_components.code,{children:`pricing`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-176`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-66`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingEyebrowEnabled`,type:`?bool`,id:`param-pricing-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the heading (e.g. “Pricing”).`]})}),_jsx(ResponseField,{name:`pricingEyebrow`,type:`?string`,id:`param-pricing-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow.`]})}),_jsx(ResponseField,{name:`pricingEyebrowColor`,type:`?string`,id:`param-pricing-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`pricingEyebrowColorLight`,type:`?string`,id:`param-pricing-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`pricingEyebrowWeight`,type:`Enums\\\\PricingEyebrowWeight|string|null`,id:`param-pricing-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingEyebrowSize`,type:`Enums\\\\PricingEyebrowSize|string|null`,id:`param-pricing-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingHeading`,type:`?string`,id:`param-pricing-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the cards.`]})}),_jsx(ResponseField,{name:`pricingHeadingColor`,type:`?string`,id:`param-pricing-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`pricingHeadingColorLight`,type:`?string`,id:`param-pricing-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`pricingHeadingWeight`,type:`Enums\\\\PricingHeadingWeight|string|null`,id:`param-pricing-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingHeadingSize`,type:`Enums\\\\PricingHeadingSize|string|null`,id:`param-pricing-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingIntro`,type:`?string`,id:`param-pricing-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`pricingIntroColor`,type:`?string`,id:`param-pricing-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`pricingIntroColorLight`,type:`?string`,id:`param-pricing-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`pricingIntroWeight`,type:`Enums\\\\PricingIntroWeight|string|null`,id:`param-pricing-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingIntroSize`,type:`Enums\\\\PricingIntroSize|string|null`,id:`param-pricing-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingColumns`,type:`Enums\\\\PricingColumns|string|null`,id:`param-pricing-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto fits as many as comfortably fit and works for any number of cards. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingGap`,type:`Enums\\\\PricingGap|string|null`,id:`param-pricing-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCardStyle`,type:`Enums\\\\PricingCardStyle|string|null`,id:`param-pricing-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The base treatment for every tier (a highlighted tier always gets its own bold framed look). Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCardStyleRadius`,type:`Enums\\\\PricingCardStyleRadius|string|null`,id:`param-pricing-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCardStyleAccentColor`,type:`?string`,id:`param-pricing-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`pricingCardStyleAccentColorLight`,type:`?string`,id:`param-pricing-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`pricingCardStyleForgeScope`,type:`Enums\\\\PricingCardStyleForgeScope|string|null`,id:`param-pricing-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCardStyleForgeWeight`,type:`Enums\\\\PricingCardStyleForgeWeight|string|null`,id:`param-pricing-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingAlign`,type:`Enums\\\\PricingAlign|string|null`,id:`param-pricing-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Aligns the section header and the text inside each card. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingEqualHeight`,type:`?bool`,id:`param-pricing-equal-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Stretch every card to the tallest one and pin each button to the bottom, so the cards line up even with uneven feature lists.`]})}),_jsx(ResponseField,{name:`pricingFeatureMarkers`,type:`?bool`,id:`param-pricing-feature-markers-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A check (included) or cross (not included) before each feature. Off = a plain list.`]})}),_jsx(ResponseField,{name:`pricingCardHover`,type:`Enums\\\\PricingCardHover|string|null`,id:`param-pricing-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How a card reacts to the pointer. Rise floats it up on an accent underglow; Selection ring previews the highlighted look + tints the price; Spotlight washes accent light over the price; Checklist lights up the ✓ marks one-by-one; Tilt is a 3-D parallax that only runs when site animations are on. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`rise`}),`, `,_jsx(_components.code,{children:`ring`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`checklist`}),`, `,_jsx(_components.code,{children:`tilt`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingHoverColor`,type:`?string`,id:`param-pricing-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Border / glow / spotlight / checkmark color on hover. Leave empty to use the highlight accent (then the site accent).`]})}),_jsx(ResponseField,{name:`pricingHoverColorLight`,type:`?string`,id:`param-pricing-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover accent.`]})}),_jsx(ResponseField,{name:`pricingEntrance`,type:`Enums\\\\PricingEntrance|string|null`,id:`param-pricing-entrance-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How the cards animate in as they scroll into view. Featured-led makes the highlighted tier settle last with a little emphasis (draws the eye to the recommended plan); Simple stagger fades them in evenly. Only plays when site animations are on (Site design → Motion) — otherwise the cards are simply shown. One of `,_jsx(_components.code,{children:`featured`}),`, `,_jsx(_components.code,{children:`stagger`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingNameSize`,type:`Enums\\\\PricingNameSize|string|null`,id:`param-pricing-name-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size of each card’s name / title. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingPriceSize`,type:`Enums\\\\PricingPriceSize|string|null`,id:`param-pricing-price-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size of the price amount (the period and price note scale with it). One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingDescSize`,type:`Enums\\\\PricingDescSize|string|null`,id:`param-pricing-desc-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size of each card’s description blurb. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeatureSize`,type:`Enums\\\\PricingFeatureSize|string|null`,id:`param-pricing-feature-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size of the feature list text (notes and check marks scale with it). One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingHighlightBadge`,type:`?string`,id:`param-pricing-highlight-badge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Ribbon text shown on a highlighted tier that doesn’t set its own badge. Each tier can override it (or badge a non-highlighted tier) below. Leave empty for no automatic badge.`]})}),_jsx(ResponseField,{name:`pricingAccentColor`,type:`?string`,id:`param-pricing-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Color for the highlighted tier’s border + ring and each tier’s badge. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`pricingAccentColorLight`,type:`?string`,id:`param-pricing-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme accent.`]})}),_jsxs(ResponseField,{name:`pricingTiers`,type:`Collection\u003cint, PricingWidgetPricingTiersItem>|null`,id:`param-pricing-tiers-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PricingWidgetPricingTiersItem`}),`. Each card is one tier / package / service. Toggle “Highlight” on the one you want to stand out.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingTiersItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingTiersItem)`,children:[_jsx(ResponseField,{name:`name`,type:`string`,id:`param-name-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Tier / package / service name — e.g. “Starter”, “Studio”, “Agency”.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-177`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-7`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-7`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-7`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`iconAnimation`,type:`Enums\\\\IconAnimation|string|null`,id:`param-icon-animation-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconSize`,type:`Enums\\\\IconSize|string|null`,id:`param-icon-size-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconGap`,type:`Enums\\\\IconGap|string|null`,id:`param-icon-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Breathing room below the icon, before the card name. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`badge`,type:`?string`,id:`param-badge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small ribbon on the card, e.g. “Best value”, “Limited spots”. Overrides the default highlight badge for this tier; works on any tier, highlighted or not. Empty on a highlighted tier falls back to the section’s “Default highlight badge”.`]})}),_jsx(ResponseField,{name:`highlighted`,type:`?bool`,id:`param-highlighted-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Emphasize this tier — accent border + ring, a subtle lift, and the Featured button look.`]})}),_jsx(ResponseField,{name:`textAlign`,type:`Enums\\\\TextAlign|string|null`,id:`param-text-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How this card’s text lines up. Normal = the section default (a centered section keeps the feature list left-aligned, as now). Center also centers the feature list; Left / Right align everything that way. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`price`,type:`?string`,id:`param-price-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Free text, so it fits any model — “`,`$45\", \"From $`,`200”, “Custom”, “Call for quote”.`]})}),_jsx(ResponseField,{name:`period`,type:`?string`,id:`param-period-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Shown after the price, e.g. ”/ month”, “per night”, “per session”. Leave empty for a flat price.`]})}),_jsx(ResponseField,{name:`priceNote`,type:`?string`,id:`param-price-note-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small line under the price, e.g. “per seat”, “billed annually”, ”+ tax”.`]})}),_jsx(ResponseField,{name:`description`,type:`?string`,id:`param-description-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A short blurb under the name.`]})}),_jsxs(ResponseField,{name:`features`,type:`Collection\u003cint, PricingWidgetPricingTiersItemFeaturesItem>|null`,id:`param-features-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PricingWidgetPricingTiersItemFeaturesItem`}),`. The bullet list of what’s included.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingTiersItemFeaturesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingTiersItemFeaturesItem)`,children:[_jsx(ResponseField,{name:`text`,type:`string`,id:`param-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Feature.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-178`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`included`,type:`?bool`,id:`param-included-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. On = a check mark; off = a crossed-out / muted line (e.g. a feature this tier lacks).`]})}),_jsx(ResponseField,{name:`note`,type:`?string`,id:`param-note-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small qualifier shown after the feature, e.g. “up to 5”, “add-on”.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-173`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`ctaLabel`,type:`?string`,id:`param-cta-label-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. This card’s button text. Leave empty to use the shared button label (set in the Pricing · Buttons tab); clear it everywhere to hide the button.`]})}),_jsx(ResponseField,{name:`ctaUrl`,type:`?string`,id:`param-cta-url-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/contact-us) or full URL. Leave empty to inherit the shared button link.`]})}),_jsx(ResponseField,{name:`ctaNewTab`,type:`?bool`,id:`param-cta-new-tab-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Open button in new tab.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-174`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`pricingBg`,type:`Enums\\\\PricingBg|string|null`,id:`param-pricing-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingBgCustom`,type:`?string`,id:`param-pricing-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`pricingBgLight`,type:`Enums\\\\PricingBgLight|string|null`,id:`param-pricing-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingBgLightCustom`,type:`?string`,id:`param-pricing-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`pricingFontOverrides`,type:`Collection\u003cint, PricingWidgetPricingFontOverridesItem>|null`,id:`param-pricing-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PricingWidgetPricingFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-179`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PricingWidgetPricingFontOverridesItemUploadsItem>|null`,id:`param-uploads-47`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PricingWidgetPricingFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-180`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-175`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-176`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`pricingFeaturedCtaLabel`,type:`?string`,id:`param-pricing-featured-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaUrl`,type:`?string`,id:`param-pricing-featured-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaNewTab`,type:`?bool`,id:`param-pricing-featured-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaVariant`,type:`Enums\\\\PricingFeaturedCtaVariant|string|null`,id:`param-pricing-featured-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaSize`,type:`Enums\\\\PricingFeaturedCtaSize|string|null`,id:`param-pricing-featured-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaRadius`,type:`Enums\\\\PricingFeaturedCtaRadius|string|null`,id:`param-pricing-featured-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaColor`,type:`?string`,id:`param-pricing-featured-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaColorLight`,type:`?string`,id:`param-pricing-featured-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaTextColor`,type:`?string`,id:`param-pricing-featured-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaTextColorLight`,type:`?string`,id:`param-pricing-featured-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaHoverColor`,type:`?string`,id:`param-pricing-featured-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaHoverColorLight`,type:`?string`,id:`param-pricing-featured-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaStyle`,type:`Enums\\\\PricingFeaturedCtaStyle|string|null`,id:`param-pricing-featured-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaShadowColor`,type:`?string`,id:`param-pricing-featured-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaShadowColorLight`,type:`?string`,id:`param-pricing-featured-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaAnimation`,type:`Enums\\\\PricingFeaturedCtaAnimation|string|null`,id:`param-pricing-featured-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIcon`,type:`?string`,id:`param-pricing-featured-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIconFamily`,type:`Enums\\\\PricingFeaturedCtaIconFamily|string|null`,id:`param-pricing-featured-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIconPosition`,type:`Enums\\\\PricingFeaturedCtaIconPosition|string|null`,id:`param-pricing-featured-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIconNudge`,type:`?bool`,id:`param-pricing-featured-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`pricingCtaLabel`,type:`?string`,id:`param-pricing-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`pricingCtaUrl`,type:`?string`,id:`param-pricing-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`pricingCtaNewTab`,type:`?bool`,id:`param-pricing-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`pricingCtaVariant`,type:`Enums\\\\PricingCtaVariant|string|null`,id:`param-pricing-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaSize`,type:`Enums\\\\PricingCtaSize|string|null`,id:`param-pricing-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaRadius`,type:`Enums\\\\PricingCtaRadius|string|null`,id:`param-pricing-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaColor`,type:`?string`,id:`param-pricing-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`pricingCtaColorLight`,type:`?string`,id:`param-pricing-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`pricingCtaTextColor`,type:`?string`,id:`param-pricing-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`pricingCtaTextColorLight`,type:`?string`,id:`param-pricing-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`pricingCtaHoverColor`,type:`?string`,id:`param-pricing-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`pricingCtaHoverColorLight`,type:`?string`,id:`param-pricing-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`pricingCtaStyle`,type:`Enums\\\\PricingCtaStyle|string|null`,id:`param-pricing-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaShadowColor`,type:`?string`,id:`param-pricing-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`pricingCtaShadowColorLight`,type:`?string`,id:`param-pricing-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`pricingCtaAnimation`,type:`Enums\\\\PricingCtaAnimation|string|null`,id:`param-pricing-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaIcon`,type:`?string`,id:`param-pricing-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`pricingCtaIconFamily`,type:`Enums\\\\PricingCtaIconFamily|string|null`,id:`param-pricing-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaIconPosition`,type:`Enums\\\\PricingCtaIconPosition|string|null`,id:`param-pricing-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaIconNudge`,type:`?bool`,id:`param-pricing-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-54`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-177`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`NewsletterWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\NewsletterWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`newsletter`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\NewsletterWidgetType|string`,id:`param-type-60`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`newsletter`}),`. One of `,_jsx(_components.code,{children:`newsletter`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-181`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-67`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterForm`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-newsletter-form-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Form (Forms manager) that receives these submissions and routes them — configure its destinations on the form’s Actions tab. Create one if you have not yet. The related `,_jsx(_components.code,{children:`@apostrophecms/form`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowEnabled`,type:`?bool`,id:`param-newsletter-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show eyebrow.`]})}),_jsx(ResponseField,{name:`newsletterEyebrow`,type:`?string`,id:`param-newsletter-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowColor`,type:`?string`,id:`param-newsletter-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowColorLight`,type:`?string`,id:`param-newsletter-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowWeight`,type:`Enums\\\\NewsletterEyebrowWeight|string|null`,id:`param-newsletter-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowSize`,type:`Enums\\\\NewsletterEyebrowSize|string|null`,id:`param-newsletter-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterHeading`,type:`?string`,id:`param-newsletter-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading.`]})}),_jsx(ResponseField,{name:`newsletterHeadingColor`,type:`?string`,id:`param-newsletter-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`newsletterHeadingColorLight`,type:`?string`,id:`param-newsletter-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`newsletterHeadingWeight`,type:`Enums\\\\NewsletterHeadingWeight|string|null`,id:`param-newsletter-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterHeadingSize`,type:`Enums\\\\NewsletterHeadingSize|string|null`,id:`param-newsletter-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterIntro`,type:`?string`,id:`param-newsletter-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`newsletterIntroColor`,type:`?string`,id:`param-newsletter-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`newsletterIntroColorLight`,type:`?string`,id:`param-newsletter-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`newsletterIntroWeight`,type:`Enums\\\\NewsletterIntroWeight|string|null`,id:`param-newsletter-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterIntroSize`,type:`Enums\\\\NewsletterIntroSize|string|null`,id:`param-newsletter-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterBand`,type:`Enums\\\\NewsletterBand|string|null`,id:`param-newsletter-band-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterAccentColor`,type:`?string`,id:`param-newsletter-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The accent band color. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`newsletterAccentColorLight`,type:`?string`,id:`param-newsletter-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`newsletterAlign`,type:`Enums\\\\NewsletterAlign|string|null`,id:`param-newsletter-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterLayout`,type:`Enums\\\\NewsletterLayout|string|null`,id:`param-newsletter-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Inline puts the field + button on one row (stacks on small screens); Stacked always stacks them. One of `,_jsx(_components.code,{children:`inline`}),`, `,_jsx(_components.code,{children:`stacked`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterWidth`,type:`Enums\\\\NewsletterWidth|string|null`,id:`param-newsletter-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Content width. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterNameEnabled`,type:`?bool`,id:`param-newsletter-name-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Collect a name.`]})}),_jsx(ResponseField,{name:`newsletterNameLabel`,type:`?string`,id:`param-newsletter-name-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name label.`]})}),_jsx(ResponseField,{name:`newsletterNamePlaceholder`,type:`?string`,id:`param-newsletter-name-placeholder-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name placeholder.`]})}),_jsx(ResponseField,{name:`newsletterEmailLabel`,type:`?string`,id:`param-newsletter-email-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Email label.`]})}),_jsx(ResponseField,{name:`newsletterEmailPlaceholder`,type:`?string`,id:`param-newsletter-email-placeholder-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Email placeholder.`]})}),_jsx(ResponseField,{name:`newsletterConsentEnabled`,type:`?bool`,id:`param-newsletter-consent-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional opt-in checkbox (e.g. for GDPR-style explicit consent).`]})}),_jsx(ResponseField,{name:`newsletterConsentText`,type:`?string`,id:`param-newsletter-consent-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Consent statement.`]})}),_jsx(ResponseField,{name:`newsletterDisclaimer`,type:`?string`,id:`param-newsletter-disclaimer-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small line under the form, e.g. an unsubscribe note.`]})}),_jsx(ResponseField,{name:`newsletterSuccessMessage`,type:`?string`,id:`param-newsletter-success-message-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Success message.`]})}),_jsx(ResponseField,{name:`newsletterErrorMessage`,type:`?string`,id:`param-newsletter-error-message-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Error message.`]})}),_jsx(ResponseField,{name:`newsletterBg`,type:`Enums\\\\NewsletterBg|string|null`,id:`param-newsletter-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterBgCustom`,type:`?string`,id:`param-newsletter-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`newsletterBgLight`,type:`Enums\\\\NewsletterBgLight|string|null`,id:`param-newsletter-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterBgLightCustom`,type:`?string`,id:`param-newsletter-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`newsletterFontOverrides`,type:`Collection\u003cint, NewsletterWidgetNewsletterFontOverridesItem>|null`,id:`param-newsletter-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`NewsletterWidgetNewsletterFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`NewsletterWidgetNewsletterFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\NewsletterWidgetNewsletterFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-182`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, NewsletterWidgetNewsletterFontOverridesItemUploadsItem>|null`,id:`param-uploads-48`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`NewsletterWidgetNewsletterFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`NewsletterWidgetNewsletterFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\NewsletterWidgetNewsletterFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-183`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-178`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-179`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`newsletterSubmitLabel`,type:`?string`,id:`param-newsletter-submit-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`newsletterSubmitVariant`,type:`Enums\\\\NewsletterSubmitVariant|string|null`,id:`param-newsletter-submit-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitSize`,type:`Enums\\\\NewsletterSubmitSize|string|null`,id:`param-newsletter-submit-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitRadius`,type:`Enums\\\\NewsletterSubmitRadius|string|null`,id:`param-newsletter-submit-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitColor`,type:`?string`,id:`param-newsletter-submit-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`newsletterSubmitColorLight`,type:`?string`,id:`param-newsletter-submit-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`newsletterSubmitTextColor`,type:`?string`,id:`param-newsletter-submit-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`newsletterSubmitTextColorLight`,type:`?string`,id:`param-newsletter-submit-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`newsletterSubmitHoverColor`,type:`?string`,id:`param-newsletter-submit-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`newsletterSubmitHoverColorLight`,type:`?string`,id:`param-newsletter-submit-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`newsletterSubmitStyle`,type:`Enums\\\\NewsletterSubmitStyle|string|null`,id:`param-newsletter-submit-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitShadowColor`,type:`?string`,id:`param-newsletter-submit-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`newsletterSubmitShadowColorLight`,type:`?string`,id:`param-newsletter-submit-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`newsletterSubmitAnimation`,type:`Enums\\\\NewsletterSubmitAnimation|string|null`,id:`param-newsletter-submit-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIcon`,type:`?string`,id:`param-newsletter-submit-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIconFamily`,type:`Enums\\\\NewsletterSubmitIconFamily|string|null`,id:`param-newsletter-submit-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIconPosition`,type:`Enums\\\\NewsletterSubmitIconPosition|string|null`,id:`param-newsletter-submit-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIconNudge`,type:`?bool`,id:`param-newsletter-submit-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-55`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-180`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`SmsSignupWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SmsSignupWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`sms-signup`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\SmsSignupWidgetType|string`,id:`param-type-61`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`sms-signup`}),`. One of `,_jsx(_components.code,{children:`sms-signup`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupConsentText`,type:`string`,id:`param-sms-signup-consent-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Shown beside a required checkbox; the form shows only once this is filled in. Be specific about what they are agreeing to. The brand name is added automatically from Site settings.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-184`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-68`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupForm`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-sms-signup-form-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Form (Forms manager) that receives these SMS opt-ins and routes them — configure its destinations on the form’s Actions tab. The related `,_jsx(_components.code,{children:`@apostrophecms/form`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowEnabled`,type:`?bool`,id:`param-sms-signup-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show eyebrow.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrow`,type:`?string`,id:`param-sms-signup-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowColor`,type:`?string`,id:`param-sms-signup-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowColorLight`,type:`?string`,id:`param-sms-signup-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowWeight`,type:`Enums\\\\SmsSignupEyebrowWeight|string|null`,id:`param-sms-signup-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowSize`,type:`Enums\\\\SmsSignupEyebrowSize|string|null`,id:`param-sms-signup-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupHeading`,type:`?string`,id:`param-sms-signup-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading.`]})}),_jsx(ResponseField,{name:`smsSignupHeadingColor`,type:`?string`,id:`param-sms-signup-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`smsSignupHeadingColorLight`,type:`?string`,id:`param-sms-signup-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`smsSignupHeadingWeight`,type:`Enums\\\\SmsSignupHeadingWeight|string|null`,id:`param-sms-signup-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupHeadingSize`,type:`Enums\\\\SmsSignupHeadingSize|string|null`,id:`param-sms-signup-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupIntro`,type:`?string`,id:`param-sms-signup-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`smsSignupIntroColor`,type:`?string`,id:`param-sms-signup-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`smsSignupIntroColorLight`,type:`?string`,id:`param-sms-signup-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`smsSignupIntroWeight`,type:`Enums\\\\SmsSignupIntroWeight|string|null`,id:`param-sms-signup-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupIntroSize`,type:`Enums\\\\SmsSignupIntroSize|string|null`,id:`param-sms-signup-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupBand`,type:`Enums\\\\SmsSignupBand|string|null`,id:`param-sms-signup-band-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupAccentColor`,type:`?string`,id:`param-sms-signup-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The accent band color. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`smsSignupAccentColorLight`,type:`?string`,id:`param-sms-signup-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`smsSignupAlign`,type:`Enums\\\\SmsSignupAlign|string|null`,id:`param-sms-signup-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupLayout`,type:`Enums\\\\SmsSignupLayout|string|null`,id:`param-sms-signup-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Inline puts the field + button on one row (stacks on small screens); Stacked always stacks them. One of `,_jsx(_components.code,{children:`inline`}),`, `,_jsx(_components.code,{children:`stacked`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupWidth`,type:`Enums\\\\SmsSignupWidth|string|null`,id:`param-sms-signup-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Content width. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupNameEnabled`,type:`?bool`,id:`param-sms-signup-name-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Collect a name.`]})}),_jsx(ResponseField,{name:`smsSignupNameLabel`,type:`?string`,id:`param-sms-signup-name-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name label.`]})}),_jsx(ResponseField,{name:`smsSignupNamePlaceholder`,type:`?string`,id:`param-sms-signup-name-placeholder-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name placeholder.`]})}),_jsx(ResponseField,{name:`smsSignupPhoneLabel`,type:`?string`,id:`param-sms-signup-phone-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Phone label.`]})}),_jsx(ResponseField,{name:`smsSignupPhonePlaceholder`,type:`?string`,id:`param-sms-signup-phone-placeholder-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Phone placeholder.`]})}),_jsx(ResponseField,{name:`smsSignupTermsText`,type:`?string`,id:`param-sms-signup-terms-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Carrier-compliance fine print shown under the form.`]})}),_jsx(ResponseField,{name:`smsSignupPrivacyUrl`,type:`?string`,id:`param-sms-signup-privacy-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — linked from the fine print.`]})}),_jsx(ResponseField,{name:`smsSignupTermsUrl`,type:`?string`,id:`param-sms-signup-terms-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — linked from the fine print.`]})}),_jsx(ResponseField,{name:`smsSignupSuccessMessage`,type:`?string`,id:`param-sms-signup-success-message-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Success message.`]})}),_jsx(ResponseField,{name:`smsSignupErrorMessage`,type:`?string`,id:`param-sms-signup-error-message-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Error message.`]})}),_jsx(ResponseField,{name:`smsSignupBg`,type:`Enums\\\\SmsSignupBg|string|null`,id:`param-sms-signup-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupBgCustom`,type:`?string`,id:`param-sms-signup-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`smsSignupBgLight`,type:`Enums\\\\SmsSignupBgLight|string|null`,id:`param-sms-signup-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupBgLightCustom`,type:`?string`,id:`param-sms-signup-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`smsSignupFontOverrides`,type:`Collection\u003cint, SmsSignupWidgetSmsSignupFontOverridesItem>|null`,id:`param-sms-signup-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`SmsSignupWidgetSmsSignupFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`SmsSignupWidgetSmsSignupFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SmsSignupWidgetSmsSignupFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-185`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem>|null`,id:`param-uploads-49`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-186`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-181`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-182`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`smsSignupSubmitLabel`,type:`?string`,id:`param-sms-signup-submit-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitVariant`,type:`Enums\\\\SmsSignupSubmitVariant|string|null`,id:`param-sms-signup-submit-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitSize`,type:`Enums\\\\SmsSignupSubmitSize|string|null`,id:`param-sms-signup-submit-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitRadius`,type:`Enums\\\\SmsSignupSubmitRadius|string|null`,id:`param-sms-signup-submit-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitColor`,type:`?string`,id:`param-sms-signup-submit-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitColorLight`,type:`?string`,id:`param-sms-signup-submit-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`smsSignupSubmitTextColor`,type:`?string`,id:`param-sms-signup-submit-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`smsSignupSubmitTextColorLight`,type:`?string`,id:`param-sms-signup-submit-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitHoverColor`,type:`?string`,id:`param-sms-signup-submit-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitHoverColorLight`,type:`?string`,id:`param-sms-signup-submit-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitStyle`,type:`Enums\\\\SmsSignupSubmitStyle|string|null`,id:`param-sms-signup-submit-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitShadowColor`,type:`?string`,id:`param-sms-signup-submit-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitShadowColorLight`,type:`?string`,id:`param-sms-signup-submit-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitAnimation`,type:`Enums\\\\SmsSignupSubmitAnimation|string|null`,id:`param-sms-signup-submit-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIcon`,type:`?string`,id:`param-sms-signup-submit-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIconFamily`,type:`Enums\\\\SmsSignupSubmitIconFamily|string|null`,id:`param-sms-signup-submit-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIconPosition`,type:`Enums\\\\SmsSignupSubmitIconPosition|string|null`,id:`param-sms-signup-submit-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIconNudge`,type:`?bool`,id:`param-sms-signup-submit-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-56`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-183`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`FormRenderWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FormRenderWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`form-render`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FormRenderWidgetType|string`,id:`param-type-62`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`form-render`}),`. One of `,_jsx(_components.code,{children:`form-render`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-187`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-69`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`form`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-form-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The form to show here. Build and edit the form itself in the Forms manager (create one there first if needed). The related `,_jsx(_components.code,{children:`@apostrophecms/form`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`styleOverride`,type:`?bool`,id:`param-style-override-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Off: the form renders with the styling saved on the form itself. On: the styling below replaces it here only — the form’s fields and other placements are unaffected.`]})}),_jsxs(ResponseField,{name:`formFontOverrides`,type:`Collection\u003cint, FormRenderWidgetFormFontOverridesItem>|null`,id:`param-form-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FormRenderWidgetFormFontOverridesItem`}),`. Optional. Set part of this form in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FormRenderWidgetFormFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FormRenderWidgetFormFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-188`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FormRenderWidgetFormFontOverridesItemUploadsItem>|null`,id:`param-uploads-50`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FormRenderWidgetFormFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FormRenderWidgetFormFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FormRenderWidgetFormFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-189`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-184`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-185`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`formEyebrowEnabled`,type:`?bool`,id:`param-form-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show eyebrow.`]})}),_jsx(ResponseField,{name:`formEyebrow`,type:`?string`,id:`param-form-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`formEyebrowColor`,type:`?string`,id:`param-form-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`formEyebrowColorLight`,type:`?string`,id:`param-form-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`formEyebrowWeight`,type:`Enums\\\\FormEyebrowWeight|string|null`,id:`param-form-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formEyebrowSize`,type:`Enums\\\\FormEyebrowSize|string|null`,id:`param-form-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formHeading`,type:`?string`,id:`param-form-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading.`]})}),_jsx(ResponseField,{name:`formHeadingColor`,type:`?string`,id:`param-form-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`formHeadingColorLight`,type:`?string`,id:`param-form-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`formHeadingWeight`,type:`Enums\\\\FormHeadingWeight|string|null`,id:`param-form-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formHeadingSize`,type:`Enums\\\\FormHeadingSize|string|null`,id:`param-form-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formIntro`,type:`?string`,id:`param-form-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`formIntroColor`,type:`?string`,id:`param-form-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`formIntroColorLight`,type:`?string`,id:`param-form-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`formIntroWeight`,type:`Enums\\\\FormIntroWeight|string|null`,id:`param-form-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formIntroSize`,type:`Enums\\\\FormIntroSize|string|null`,id:`param-form-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formBand`,type:`Enums\\\\FormBand|string|null`,id:`param-form-band-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formAccentColor`,type:`?string`,id:`param-form-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The accent band color. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`formAccentColorLight`,type:`?string`,id:`param-form-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`formAlign`,type:`Enums\\\\FormAlign|string|null`,id:`param-form-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Alignment of the section header (the form fields stay left-aligned for legibility). One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formWidth`,type:`Enums\\\\FormWidth|string|null`,id:`param-form-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Content width. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formLabelGap`,type:`Enums\\\\FormLabelGap|string|null`,id:`param-form-label-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vertical space between each field’s label and its input. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`, `,_jsx(_components.code,{children:`spacious`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formBg`,type:`Enums\\\\FormBg|string|null`,id:`param-form-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formBgCustom`,type:`?string`,id:`param-form-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`formBgLight`,type:`Enums\\\\FormBgLight|string|null`,id:`param-form-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formBgLightCustom`,type:`?string`,id:`param-form-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`formSubmitLabel`,type:`?string`,id:`param-form-submit-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`formSubmitVariant`,type:`Enums\\\\FormSubmitVariant|string|null`,id:`param-form-submit-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitSize`,type:`Enums\\\\FormSubmitSize|string|null`,id:`param-form-submit-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitRadius`,type:`Enums\\\\FormSubmitRadius|string|null`,id:`param-form-submit-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitColor`,type:`?string`,id:`param-form-submit-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`formSubmitColorLight`,type:`?string`,id:`param-form-submit-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`formSubmitTextColor`,type:`?string`,id:`param-form-submit-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`formSubmitTextColorLight`,type:`?string`,id:`param-form-submit-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`formSubmitHoverColor`,type:`?string`,id:`param-form-submit-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`formSubmitHoverColorLight`,type:`?string`,id:`param-form-submit-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`formSubmitStyle`,type:`Enums\\\\FormSubmitStyle|string|null`,id:`param-form-submit-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitShadowColor`,type:`?string`,id:`param-form-submit-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`formSubmitShadowColorLight`,type:`?string`,id:`param-form-submit-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`formSubmitAnimation`,type:`Enums\\\\FormSubmitAnimation|string|null`,id:`param-form-submit-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitIcon`,type:`?string`,id:`param-form-submit-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`formSubmitIconFamily`,type:`Enums\\\\FormSubmitIconFamily|string|null`,id:`param-form-submit-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitIconPosition`,type:`Enums\\\\FormSubmitIconPosition|string|null`,id:`param-form-submit-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitIconNudge`,type:`?bool`,id:`param-form-submit-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-57`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-186`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`FinalCtaWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FinalCtaWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`final-cta`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FinalCtaWidgetType|string`,id:`param-type-63`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`final-cta`}),`. One of `,_jsx(_components.code,{children:`final-cta`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-190`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-70`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaAlign`,type:`Enums\\\\CtaAlign|string|null`,id:`param-cta-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Content alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaEyebrowEnabled`,type:`?bool`,id:`param-cta-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show eyebrow / kicker.`]})}),_jsx(ResponseField,{name:`ctaEyebrow`,type:`?string`,id:`param-cta-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`ctaEyebrowColor`,type:`?string`,id:`param-cta-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`ctaEyebrowColorLight`,type:`?string`,id:`param-cta-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`ctaEyebrowWeight`,type:`Enums\\\\CtaEyebrowWeight|string|null`,id:`param-cta-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaEyebrowSize`,type:`Enums\\\\CtaEyebrowSize|string|null`,id:`param-cta-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaIconPlacement`,type:`Enums\\\\CtaIconPlacement|string|null`,id:`param-cta-icon-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An optional Font Awesome icon above the headline. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`top`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaIcon`,type:`?string`,id:`param-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`ctaIconFamily`,type:`Enums\\\\CtaIconFamily|string|null`,id:`param-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaIconColor`,type:`?string`,id:`param-cta-icon-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`ctaIconAnimation`,type:`Enums\\\\CtaIconAnimation|string|null`,id:`param-cta-icon-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaIconSize`,type:`Enums\\\\CtaIconSize|string|null`,id:`param-cta-icon-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaIconTilt`,type:`Enums\\\\CtaIconTilt|string|null`,id:`param-cta-icon-tilt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A slight rotation for a more playful look. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaHeadline`,type:`?string`,id:`param-cta-headline-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Headline.`]})}),_jsx(ResponseField,{name:`ctaHeadlineColor`,type:`?string`,id:`param-cta-headline-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the headline color. Leave empty for the on-accent (legible-on-band) default.`]})}),_jsx(ResponseField,{name:`ctaHeadlineColorLight`,type:`?string`,id:`param-cta-headline-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the on-accent default.`]})}),_jsx(ResponseField,{name:`ctaHeadlineWeight`,type:`Enums\\\\CtaHeadlineWeight|string|null`,id:`param-cta-headline-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Headline weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaBody`,type:`?string`,id:`param-cta-body-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Supporting copy.`]})}),_jsx(ResponseField,{name:`ctaBodyColor`,type:`?string`,id:`param-cta-body-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the supporting-copy color. Leave empty for the softened on-accent default.`]})}),_jsx(ResponseField,{name:`ctaBodyColorLight`,type:`?string`,id:`param-cta-body-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the softened on-accent default.`]})}),_jsx(ResponseField,{name:`ctaBodyWeight`,type:`Enums\\\\CtaBodyWeight|string|null`,id:`param-cta-body-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaBackgroundType`,type:`Enums\\\\CtaBackgroundType|string|null`,id:`param-cta-background-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid keeps the loud color block; Image places a photo behind the text with a readability overlay. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`image`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaBackgroundColor`,type:`?string`,id:`param-cta-background-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The solid band color (and the fallback behind a background image). Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`ctaBackgroundColorLight`,type:`?string`,id:`param-cta-background-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`ctaImage`,type:`?ImageArea`,id:`param-cta-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An `,_jsx(_components.code,{children:`ImageArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`ctaOverlayColor`,type:`?string`,id:`param-cta-overlay-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scrim over the image to keep the text readable. Leave empty to use the accent color.`]})}),_jsx(ResponseField,{name:`ctaOverlayColorLight`,type:`?string`,id:`param-cta-overlay-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme overlay, then the accent.`]})}),_jsx(ResponseField,{name:`ctaOverlayOpacity`,type:`?float`,id:`param-cta-overlay-opacity-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overlay opacity (%). 0 to 100.`]})}),_jsx(ResponseField,{name:`ctaRings`,type:`?bool`,id:`param-cta-rings-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The two large outlined circles on the band.`]})}),_jsx(ResponseField,{name:`ctaRingColor`,type:`?string`,id:`param-cta-ring-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Drawn at a low opacity. Leave empty to use the on-accent (white-ish) default.`]})}),_jsxs(ResponseField,{name:`ctaFontOverrides`,type:`Collection\u003cint, FinalCtaWidgetCtaFontOverridesItem>|null`,id:`param-cta-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FinalCtaWidgetCtaFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FinalCtaWidgetCtaFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FinalCtaWidgetCtaFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-191`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FinalCtaWidgetCtaFontOverridesItemUploadsItem>|null`,id:`param-uploads-51`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FinalCtaWidgetCtaFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FinalCtaWidgetCtaFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FinalCtaWidgetCtaFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-192`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-187`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-188`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`ctaPrimaryLabel`,type:`?string`,id:`param-cta-primary-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`ctaPrimaryUrl`,type:`?string`,id:`param-cta-primary-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`ctaPrimaryNewTab`,type:`?bool`,id:`param-cta-primary-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`ctaPrimaryVariant`,type:`Enums\\\\CtaPrimaryVariant|string|null`,id:`param-cta-primary-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimarySize`,type:`Enums\\\\CtaPrimarySize|string|null`,id:`param-cta-primary-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimaryRadius`,type:`Enums\\\\CtaPrimaryRadius|string|null`,id:`param-cta-primary-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimaryColor`,type:`?string`,id:`param-cta-primary-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`ctaPrimaryColorLight`,type:`?string`,id:`param-cta-primary-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`ctaPrimaryTextColor`,type:`?string`,id:`param-cta-primary-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`ctaPrimaryTextColorLight`,type:`?string`,id:`param-cta-primary-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`ctaPrimaryHoverColor`,type:`?string`,id:`param-cta-primary-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`ctaPrimaryHoverColorLight`,type:`?string`,id:`param-cta-primary-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`ctaPrimaryStyle`,type:`Enums\\\\CtaPrimaryStyle|string|null`,id:`param-cta-primary-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimaryShadowColor`,type:`?string`,id:`param-cta-primary-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`ctaPrimaryShadowColorLight`,type:`?string`,id:`param-cta-primary-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`ctaPrimaryAnimation`,type:`Enums\\\\CtaPrimaryAnimation|string|null`,id:`param-cta-primary-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIcon`,type:`?string`,id:`param-cta-primary-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIconFamily`,type:`Enums\\\\CtaPrimaryIconFamily|string|null`,id:`param-cta-primary-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIconPosition`,type:`Enums\\\\CtaPrimaryIconPosition|string|null`,id:`param-cta-primary-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIconNudge`,type:`?bool`,id:`param-cta-primary-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`ctaSecondaryLabel`,type:`?string`,id:`param-cta-secondary-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`ctaSecondaryUrl`,type:`?string`,id:`param-cta-secondary-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`ctaSecondaryNewTab`,type:`?bool`,id:`param-cta-secondary-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`ctaSecondaryVariant`,type:`Enums\\\\CtaSecondaryVariant|string|null`,id:`param-cta-secondary-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondarySize`,type:`Enums\\\\CtaSecondarySize|string|null`,id:`param-cta-secondary-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondaryRadius`,type:`Enums\\\\CtaSecondaryRadius|string|null`,id:`param-cta-secondary-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondaryColor`,type:`?string`,id:`param-cta-secondary-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`ctaSecondaryColorLight`,type:`?string`,id:`param-cta-secondary-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`ctaSecondaryTextColor`,type:`?string`,id:`param-cta-secondary-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`ctaSecondaryTextColorLight`,type:`?string`,id:`param-cta-secondary-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`ctaSecondaryHoverColor`,type:`?string`,id:`param-cta-secondary-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`ctaSecondaryHoverColorLight`,type:`?string`,id:`param-cta-secondary-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`ctaSecondaryStyle`,type:`Enums\\\\CtaSecondaryStyle|string|null`,id:`param-cta-secondary-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondaryShadowColor`,type:`?string`,id:`param-cta-secondary-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`ctaSecondaryShadowColorLight`,type:`?string`,id:`param-cta-secondary-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`ctaSecondaryAnimation`,type:`Enums\\\\CtaSecondaryAnimation|string|null`,id:`param-cta-secondary-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIcon`,type:`?string`,id:`param-cta-secondary-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIconFamily`,type:`Enums\\\\CtaSecondaryIconFamily|string|null`,id:`param-cta-secondary-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIconPosition`,type:`Enums\\\\CtaSecondaryIconPosition|string|null`,id:`param-cta-secondary-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIconNudge`,type:`?bool`,id:`param-cta-secondary-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-58`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-189`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-190`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`comingSoonIcon`,type:`?string`,id:`param-coming-soon-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`comingSoonIconFamily`,type:`Enums\\\\ComingSoonIconFamily|string|null`,id:`param-coming-soon-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`comingSoonIconColor`,type:`?string`,id:`param-coming-soon-icon-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`comingSoonIconAnimation`,type:`Enums\\\\ComingSoonIconAnimation|string|null`,id:`param-coming-soon-icon-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`comingSoonIconSize`,type:`Enums\\\\ComingSoonIconSize|string|null`,id:`param-coming-soon-icon-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`comingSoonNote`,type:`?string`,id:`param-coming-soon-note-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Shown under the icon while this page has no content. Leave empty for a tasteful default line.`]})}),_jsx(ResponseField,{name:`backLinkColor`,type:`?string`,id:`param-back-link-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Color of the ”← back” link at the top of every post. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`backLinkColorLight`,type:`?string`,id:`param-back-link-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`backLinkWeight`,type:`Enums\\\\BackLinkWeight|string|null`,id:`param-back-link-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Back link weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backLinkSize`,type:`Enums\\\\BackLinkSize|string|null`,id:`param-back-link-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Back link size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`aboveSections`,type:`?SectionsArea`,id:`param-above-sections-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`SectionsArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`page-header`}),`. Its fields are listed under the first `,_jsx(_components.code,{children:`SectionsArea`}),` above.`]})}),_jsxs(ResponseField,{name:`postList`,type:`?BlogListArea`,id:`param-post-list-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`BlogListArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`blog-list`}),`.`]}),_jsxs(Expandable,{title:`BlogListArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-71`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-193`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The area’s id, set by the site: leave it out when you write one.`]})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, BlogListWidget>|null`,id:`param-items-10`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`BlogListWidget`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them). At most 1 items.`]}),_jsxs(Expandable,{title:`BlogListWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`blog-list`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\BlogListWidgetType|string`,id:`param-type-64`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`blog-list`}),`. One of `,_jsx(_components.code,{children:`blog-list`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-194`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-72`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogLayout`,type:`Enums\\\\BlogLayout|string|null`,id:`param-blog-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How posts are arranged. One of `,_jsx(_components.code,{children:`card`}),`, `,_jsx(_components.code,{children:`list`}),`, `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`featured`}),`, `,_jsx(_components.code,{children:`masonry`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogColumns`,type:`Enums\\\\BlogColumns|string|null`,id:`param-blog-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Applies to the Card grid and Masonry layouts. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogEntrance`,type:`Enums\\\\BlogEntrance|string|null`,id:`param-blog-entrance-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How posts animate in as they scroll into view. Only plays when site animations are on (Site design → Motion) — otherwise the posts are simply shown. In the Featured + grid layout the banner rises first, then the grid staggers in. One of `,_jsx(_components.code,{children:`stagger`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardImageAspect`,type:`Enums\\\\BlogCardImageAspect|string|null`,id:`param-blog-card-image-aspect-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Aspect ratio of the featured image. Choose “Hidden” for text-only cards. One of `,_jsx(_components.code,{children:`16/10`}),`, `,_jsx(_components.code,{children:`4/3`}),`, `,_jsx(_components.code,{children:`3/2`}),`, `,_jsx(_components.code,{children:`1/1`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardImageHover`,type:`Enums\\\\BlogCardImageHover|string|null`,id:`param-blog-card-image-hover-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Image hover. One of `,_jsx(_components.code,{children:`zoom`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardImageFill`,type:`?bool`,id:`param-blog-card-image-fill-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Use the featured image as the full card background, with the title and meta overlaid on a dark scrim. Posts with no image fall back to a normal card.`]})}),_jsx(ResponseField,{name:`blogCardPreset`,type:`Enums\\\\BlogCardPreset|string|null`,id:`param-blog-card-preset-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card surface. Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. (On image-led cards the photo covers the top edge.) One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardPresetRadius`,type:`Enums\\\\BlogCardPresetRadius|string|null`,id:`param-blog-card-preset-radius-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardPresetAccentColor`,type:`?string`,id:`param-blog-card-preset-accent-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`blogCardPresetAccentColorLight`,type:`?string`,id:`param-blog-card-preset-accent-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`blogCardPresetForgeScope`,type:`Enums\\\\BlogCardPresetForgeScope|string|null`,id:`param-blog-card-preset-forge-scope-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardPresetForgeWeight`,type:`Enums\\\\BlogCardPresetForgeWeight|string|null`,id:`param-blog-card-preset-forge-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardHover`,type:`Enums\\\\BlogCardHover|string|null`,id:`param-blog-card-hover-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt (3-D + glare), Magnetic and Spotlight follow the cursor (need site animations on). The Hover color below tints these. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardHoverColor`,type:`?string`,id:`param-blog-card-hover-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Border / shadow / glow color on hover. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`blogCardHoverColorLight`,type:`?string`,id:`param-blog-card-hover-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardShowCategory`,type:`?bool`,id:`param-blog-card-show-category-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show category.`]})}),_jsx(ResponseField,{name:`blogCardCategoryStyle`,type:`Enums\\\\BlogCardCategoryStyle|string|null`,id:`param-blog-card-category-style-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How the category badge uses its color (set per category under Blog Categories). Filled = colored background; Outline = colored border + text; Minimal = colored text only. One of `,_jsx(_components.code,{children:`filled`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`minimal`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardShowDate`,type:`?bool`,id:`param-blog-card-show-date-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show date.`]})}),_jsx(ResponseField,{name:`blogCardShowExcerpt`,type:`?bool`,id:`param-blog-card-show-excerpt-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show excerpt.`]})}),_jsx(ResponseField,{name:`blogCardExcerptLines`,type:`Enums\\\\BlogCardExcerptLines|string|null`,id:`param-blog-card-excerpt-lines-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many lines of the excerpt to show before truncating. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardShowAuthor`,type:`?bool`,id:`param-blog-card-show-author-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show author.`]})}),_jsx(ResponseField,{name:`blogCardShowReadMore`,type:`?bool`,id:`param-blog-card-show-read-more-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show “Read post” link.`]})}),_jsx(ResponseField,{name:`blogCardReadMorePlacement`,type:`Enums\\\\BlogCardReadMorePlacement|string|null`,id:`param-blog-card-read-more-placement-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto puts it on the right of horizontal cards (list / compact / featured) and below the text on grid cards. Or force one placement everywhere. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`below`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreColor`,type:`?string`,id:`param-blog-card-read-more-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the “Read post” link color. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreColorLight`,type:`?string`,id:`param-blog-card-read-more-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColor`,type:`?string`,id:`param-blog-card-read-more-hover-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Color of the “Read post” link when the card is hovered. Leave empty to use the accent color.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColorLight`,type:`?string`,id:`param-blog-card-read-more-hover-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardTitleColor`,type:`?string`,id:`param-blog-card-title-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the card title color. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`blogCardTitleColorLight`,type:`?string`,id:`param-blog-card-title-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`blogCardTitleWeight`,type:`Enums\\\\BlogCardTitleWeight|string|null`,id:`param-blog-card-title-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardTitleHoverColor`,type:`?string`,id:`param-blog-card-title-hover-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Title color when the card is hovered. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`blogCardTitleHoverColorLight`,type:`?string`,id:`param-blog-card-title-hover-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardTextColor`,type:`?string`,id:`param-blog-card-text-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the excerpt text color. Leave empty for the muted default.`]})}),_jsx(ResponseField,{name:`blogCardTextColorLight`,type:`?string`,id:`param-blog-card-text-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.`]})}),_jsx(ResponseField,{name:`blogCardTextWeight`,type:`Enums\\\\BlogCardTextWeight|string|null`,id:`param-blog-card-text-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Excerpt weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardMetaColor`,type:`?string`,id:`param-blog-card-meta-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Date / meta line color. Leave empty for the faint default.`]})}),_jsx(ResponseField,{name:`blogCardMetaColorLight`,type:`?string`,id:`param-blog-card-meta-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the faint default.`]})}),_jsx(ResponseField,{name:`blogBg`,type:`Enums\\\\BlogBg|string|null`,id:`param-blog-bg-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogBgCustom`,type:`?string`,id:`param-blog-bg-custom-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`blogBgLight`,type:`Enums\\\\BlogBgLight|string|null`,id:`param-blog-bg-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogBgLightCustom`,type:`?string`,id:`param-blog-bg-light-custom-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`blogFontOverrides`,type:`Collection\u003cint, BlogListWidgetBlogFontOverridesItem>|null`,id:`param-blog-font-overrides-3`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`BlogListWidgetBlogFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`BlogListWidgetBlogFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListWidgetBlogFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-195`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, BlogListWidgetBlogFontOverridesItemUploadsItem>|null`,id:`param-uploads-52`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`BlogListWidgetBlogFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`BlogListWidgetBlogFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListWidgetBlogFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-196`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-191`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-192`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-59`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-193`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-194`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`belowSections`,type:`?SectionsArea`,id:`param-below-sections-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`SectionsArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`SectionsArea`}),` above.`]})}),_jsx(ResponseField,{name:`backButtonLabel`,type:`?string`,id:`param-back-button-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`backButtonVariant`,type:`Enums\\\\BackButtonVariant|string|null`,id:`param-back-button-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonSize`,type:`Enums\\\\BackButtonSize|string|null`,id:`param-back-button-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonRadius`,type:`Enums\\\\BackButtonRadius|string|null`,id:`param-back-button-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonColor`,type:`?string`,id:`param-back-button-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`backButtonColorLight`,type:`?string`,id:`param-back-button-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`backButtonTextColor`,type:`?string`,id:`param-back-button-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`backButtonTextColorLight`,type:`?string`,id:`param-back-button-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`backButtonHoverColor`,type:`?string`,id:`param-back-button-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`backButtonHoverColorLight`,type:`?string`,id:`param-back-button-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`backButtonStyle`,type:`Enums\\\\BackButtonStyle|string|null`,id:`param-back-button-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonShadowColor`,type:`?string`,id:`param-back-button-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`backButtonShadowColorLight`,type:`?string`,id:`param-back-button-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`backButtonAnimation`,type:`Enums\\\\BackButtonAnimation|string|null`,id:`param-back-button-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonIcon`,type:`?string`,id:`param-back-button-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`backButtonIconFamily`,type:`Enums\\\\BackButtonIconFamily|string|null`,id:`param-back-button-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonIconPosition`,type:`Enums\\\\BackButtonIconPosition|string|null`,id:`param-back-button-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonIconNudge`,type:`?bool`,id:`param-back-button-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsxs(ResponseField,{name:`postFontOverrides`,type:`Collection\u003cint, PagePostFontOverridesItem>|null`,id:`param-post-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PagePostFontOverridesItem`}),`. Optional. Set part of every post in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). An individual post can replace this on its own Fonts tab. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePostFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePostFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-197`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PagePostFontOverridesItemUploadsItem>|null`,id:`param-uploads-53`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PagePostFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePostFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePostFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-198`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-195`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-196`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`postTextSize`,type:`Enums\\\\PostTextSize|string|null`,id:`param-post-text-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postTextWeight`,type:`Enums\\\\PostTextWeight|string|null`,id:`param-post-text-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postContentWidth`,type:`Enums\\\\PostContentWidth|string|null`,id:`param-post-content-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Reading measure — how wide the article column gets. Posts that contain section widgets open to Full width automatically so the widgets have room. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`, `,_jsx(_components.code,{children:`xwide`}),`, `,_jsx(_components.code,{children:`full`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postLineHeight`,type:`Enums\\\\PostLineHeight|string|null`,id:`param-post-line-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Line height. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`relaxed`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postAccentColor`,type:`?string`,id:`param-post-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Links, the blockquote rule, and heading accents. Leave empty to use the site link color.`]})}),_jsx(ResponseField,{name:`postAccentColorLight`,type:`?string`,id:`param-post-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the link color.`]})}),_jsx(ResponseField,{name:`postHeadingWeight`,type:`Enums\\\\PostHeadingWeight|string|null`,id:`param-post-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postHeadingColor`,type:`?string`,id:`param-post-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides in-article heading color. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`postHeadingColorLight`,type:`?string`,id:`param-post-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsxs(ResponseField,{name:`blogPostCss`,type:`?PostCustomCSS`,id:`param-blog-post-css-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`PostCustomCSS`}),`. CSS for every blog post’s page: the title band, the article and its parts. It wins over Site design → Custom CSS → Blog post.`]}),_jsxs(Expandable,{title:`PostCustomCSS (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PostCustomCSS)`,children:[_jsx(ResponseField,{name:`slots`,type:`array\u003cstring, string>|null`,id:`param-slots-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The CSS typed into each part slot, by slot name.`]})}),_jsx(ResponseField,{name:`css`,type:`?string`,id:`param-css-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The compiled CSS (read only: rebuilt from `,_jsx(_components.code,{children:`slots`}),`).`]})}),_jsx(ResponseField,{name:`mark`,type:`?string`,id:`param-mark-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The site’s check mark for `,_jsx(_components.code,{children:`css`}),` (read only).`]})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-197`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`children`,type:`Collection\u003cint, Page>|null`,id:`param-children-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`Page`}),`. Its child pages, each with its own `,_jsx(_components.code,{children:`_children`}),` where the request asked for more levels. Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`url`,type:`?string`,id:`param-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Full URL to the page. Format: an absolute URL.`]})}),_jsx(ResponseField,{name:`edit`,type:`?bool`,id:`param-edit-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether current user can edit this page.`]})}),_jsx(ResponseField,{name:`publish`,type:`?bool`,id:`param-publish-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether current user can publish this page.`]})}),_jsx(ResponseField,{name:`copyOfId`,type:`?string`,id:`param-copy-of-id-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The `,_jsx(_components.code,{children:`_id`}),` of the piece/page that was copied to create this document (only present if created via `,_jsx(_components.code,{children:`_copyingId`}),`)`]})}),_jsx(ResponseField,{name:`publishedDoc`,type:`?Page`,id:`param-published-doc-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`Page`}),`. A page: the fields every page has, and each page type’s own (`,_jsx(_components.code,{children:`type`}),` says which page type it is; a field belongs only to the page types that define it). Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`draftDoc`,type:`?Page`,id:`param-draft-doc-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`Page`}),`. A page: the fields every page has, and each page type’s own (`,_jsx(_components.code,{children:`type`}),` says which page type it is; a field belongs only to the page types that define it). Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`aposShareKey`,type:`?string`,id:`param-apos-share-key-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The draft’s preview share key, while its share link is on: the link is the draft’s `,_jsx(_components.code,{children:`_url`}),` with `,_jsx(_components.code,{children:`aposShareKey`}),` and `,_jsx(_components.code,{children:`aposShareId`}),` (the draft’s `,_jsx(_components.code,{children:`_id`}),`) in its query. Absent otherwise, and on published documents.`]})}),_jsx(ResponseField,{name:`scheduledPublish`,type:`?string`,id:`param-scheduled-publish-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An ISO 8601 date and time, e.g. `,_jsx(_components.code,{children:`2026-10-21T14:30:00.000Z`}),`.`]})}),_jsx(ResponseField,{name:`scheduledUnpublish`,type:`?string`,id:`param-scheduled-unpublish-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An ISO 8601 date and time, e.g. `,_jsx(_components.code,{children:`2026-10-21T14:30:00.000Z`}),`.`]})}),_jsx(ResponseField,{name:`seoTitle`,type:`?string`,id:`param-seo-title-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overrides the document title in the browser tab and search results. Leave blank to use the regular title.`]})}),_jsx(ResponseField,{name:`seoDescription`,type:`?string`,id:`param-seo-description-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Shown in search results and link previews. Aim for 150–160 characters.`]})}),_jsx(ResponseField,{name:`seoImage`,type:`?ImageArea`,id:`param-seo-image-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An `,_jsx(_components.code,{children:`ImageArea`}),`. Used for Open Graph / social link previews. Recommended 1200×630. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`pageFontOverrides`,type:`Collection\u003cint, PagePageFontOverridesItem>|null`,id:`param-page-font-overrides-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PagePageFontOverridesItem`}),`. Optional. Set part of this page in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). Individual sections can still override this for themselves. At most 4 items. Its fields are listed under the first `,_jsx(_components.code,{children:`PagePageFontOverridesItem`}),` above.`]})}),_jsx(ResponseField,{name:`footerMarqueeMode`,type:`Enums\\\\FooterMarqueeMode|string|null`,id:`param-footer-marquee-mode-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The ribbon of phrases scrolling across the top of the footer. Its phrases and the site-wide default are set in Site design → Footer: Marquee. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`on`}),`, `,_jsx(_components.code,{children:`off`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`sections`,type:`?SectionsArea`,id:`param-sections-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`SectionsArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`page-header`}),`. Its fields are listed under the first `,_jsx(_components.code,{children:`SectionsArea`}),` above.`]})}),_jsx(ResponseField,{name:`comingSoonIcon`,type:`?string`,id:`param-coming-soon-icon-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`comingSoonIconFamily`,type:`Enums\\\\ComingSoonIconFamily|string|null`,id:`param-coming-soon-icon-family-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`comingSoonIconColor`,type:`?string`,id:`param-coming-soon-icon-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`comingSoonIconAnimation`,type:`Enums\\\\ComingSoonIconAnimation|string|null`,id:`param-coming-soon-icon-animation-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`comingSoonIconSize`,type:`Enums\\\\ComingSoonIconSize|string|null`,id:`param-coming-soon-icon-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`comingSoonNote`,type:`?string`,id:`param-coming-soon-note-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Shown under the icon while this page has no content. Leave empty for a tasteful default line.`]})}),_jsx(ResponseField,{name:`backLinkColor`,type:`?string`,id:`param-back-link-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Color of the ”← back” link at the top of every post. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`backLinkColorLight`,type:`?string`,id:`param-back-link-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`backLinkWeight`,type:`Enums\\\\BackLinkWeight|string|null`,id:`param-back-link-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Back link weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backLinkSize`,type:`Enums\\\\BackLinkSize|string|null`,id:`param-back-link-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Back link size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`aboveSections`,type:`?SectionsArea`,id:`param-above-sections-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`SectionsArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`page-header`}),`. Its fields are listed under the first `,_jsx(_components.code,{children:`SectionsArea`}),` above.`]})}),_jsx(ResponseField,{name:`postList`,type:`?BlogListArea`,id:`param-post-list-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`BlogListArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`blog-list`}),`. Its fields are listed under the first `,_jsx(_components.code,{children:`BlogListArea`}),` above.`]})}),_jsx(ResponseField,{name:`belowSections`,type:`?SectionsArea`,id:`param-below-sections-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`SectionsArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`SectionsArea`}),` above.`]})}),_jsx(ResponseField,{name:`backButtonLabel`,type:`?string`,id:`param-back-button-label-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`backButtonVariant`,type:`Enums\\\\BackButtonVariant|string|null`,id:`param-back-button-variant-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonSize`,type:`Enums\\\\BackButtonSize|string|null`,id:`param-back-button-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonRadius`,type:`Enums\\\\BackButtonRadius|string|null`,id:`param-back-button-radius-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonColor`,type:`?string`,id:`param-back-button-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`backButtonColorLight`,type:`?string`,id:`param-back-button-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`backButtonTextColor`,type:`?string`,id:`param-back-button-text-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`backButtonTextColorLight`,type:`?string`,id:`param-back-button-text-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`backButtonHoverColor`,type:`?string`,id:`param-back-button-hover-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`backButtonHoverColorLight`,type:`?string`,id:`param-back-button-hover-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`backButtonStyle`,type:`Enums\\\\BackButtonStyle|string|null`,id:`param-back-button-style-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonShadowColor`,type:`?string`,id:`param-back-button-shadow-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`backButtonShadowColorLight`,type:`?string`,id:`param-back-button-shadow-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`backButtonAnimation`,type:`Enums\\\\BackButtonAnimation|string|null`,id:`param-back-button-animation-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonIcon`,type:`?string`,id:`param-back-button-icon-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`backButtonIconFamily`,type:`Enums\\\\BackButtonIconFamily|string|null`,id:`param-back-button-icon-family-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonIconPosition`,type:`Enums\\\\BackButtonIconPosition|string|null`,id:`param-back-button-icon-position-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonIconNudge`,type:`?bool`,id:`param-back-button-icon-nudge-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`postFontOverrides`,type:`Collection\u003cint, PagePostFontOverridesItem>|null`,id:`param-post-font-overrides-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PagePostFontOverridesItem`}),`. Optional. Set part of every post in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). An individual post can replace this on its own Fonts tab. At most 4 items. Its fields are listed under the first `,_jsx(_components.code,{children:`PagePostFontOverridesItem`}),` above.`]})}),_jsx(ResponseField,{name:`postTextSize`,type:`Enums\\\\PostTextSize|string|null`,id:`param-post-text-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postTextWeight`,type:`Enums\\\\PostTextWeight|string|null`,id:`param-post-text-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postContentWidth`,type:`Enums\\\\PostContentWidth|string|null`,id:`param-post-content-width-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Reading measure — how wide the article column gets. Posts that contain section widgets open to Full width automatically so the widgets have room. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`, `,_jsx(_components.code,{children:`xwide`}),`, `,_jsx(_components.code,{children:`full`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postLineHeight`,type:`Enums\\\\PostLineHeight|string|null`,id:`param-post-line-height-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Line height. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`relaxed`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postAccentColor`,type:`?string`,id:`param-post-accent-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Links, the blockquote rule, and heading accents. Leave empty to use the site link color.`]})}),_jsx(ResponseField,{name:`postAccentColorLight`,type:`?string`,id:`param-post-accent-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the link color.`]})}),_jsx(ResponseField,{name:`postHeadingWeight`,type:`Enums\\\\PostHeadingWeight|string|null`,id:`param-post-heading-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postHeadingColor`,type:`?string`,id:`param-post-heading-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides in-article heading color. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`postHeadingColorLight`,type:`?string`,id:`param-post-heading-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`blogPostCss`,type:`?PostCustomCSS`,id:`param-blog-post-css-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`PostCustomCSS`}),`. CSS for every blog post’s page: the title band, the article and its parts. It wins over Site design → Custom CSS → Blog post. Its fields are listed under the first `,_jsx(_components.code,{children:`PostCustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-198`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Accordion,{title:`Errors`,icon:`triangle-exclamation`,id:`errors`,children:[_jsxs(_components.p,{children:[`Nothing to catch: the SDK retries what is safe, and Laravel logs and renders the rest (see `,_jsx(_components.a,{href:`/laravel/errors`,children:`Errors and testing`}),`).`]}),_jsxs(ResponseField,{name:`ValidationFailed`,type:`400`,id:`param-validation-failed`,children:[_jsxs(_components.p,{children:[`The site refused what was sent: `,_jsx(_components.code,{children:`errors()`}),` lists each field’s problem, `,_jsx(_components.code,{children:`siteMessage()`}),` the first.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`errors()`}),` (field → messages), `,_jsx(_components.code,{children:`siteMessage()`}),`.`]})]}),_jsxs(ResponseField,{name:`AuthenticationFailed`,type:`401`,id:`param-authentication-failed`,children:[_jsx(_components.p,{children:`The API key is missing or refused (malformed, revoked, expired), or a signature its signing mode needs is missing or stale.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`siteMessage()`}),`, `,_jsx(_components.code,{children:`errorName()`}),`, `,_jsx(_components.code,{children:`data()`}),`.`]})]}),_jsxs(ResponseField,{name:`Forbidden`,type:`403`,id:`param-forbidden`,children:[_jsxs(_components.p,{children:[`The key may not do this: a scope it lacks, or an address outside its allowlist. `,_jsx(_components.code,{children:`siteMessage()`}),` names it.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`siteMessage()`}),`, `,_jsx(_components.code,{children:`errorName()`}),`, `,_jsx(_components.code,{children:`data()`}),`.`]})]}),_jsxs(ResponseField,{name:`SiteError`,type:`500`,id:`param-site-error`,children:[_jsx(_components.p,{children:`The site failed. Its logs say why.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No: a write may have landed. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`siteMessage()`}),`, `,_jsx(_components.code,{children:`errorName()`}),`, `,_jsx(_components.code,{children:`data()`}),`.`]})]}),_jsxs(ResponseField,{name:`SiteUnreachable`,type:`no answer`,id:`param-site-unreachable`,children:[_jsx(_components.p,{children:`No answer: DNS, a refused connection, TLS, or the timeout (15 s per attempt by default).`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` Only when nothing reached the site (`,_jsx(_components.code,{children:`neverConnected()`}),`); never after a timeout, when it may have landed. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`reason()`}),`, `,_jsx(_components.code,{children:`neverConnected()`}),`.`]})]}),_jsxs(ResponseField,{name:`RequestNotSent`,type:`not sent`,id:`param-request-not-sent`,children:[_jsxs(_components.p,{children:[`The client refused to send it (e.g. a path segment of `,_jsx(_components.code,{children:`..`}),`); the site never saw it.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`reason()`}),` (what to change).`]})]}),_jsxs(ResponseField,{name:`SiteRequestFailed`,type:`any other`,id:`param-site-request-failed`,children:[_jsx(_components.p,{children:`Any other status, or a success whose JSON doesn’t match this SDK version’s types (update the SDK).`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`reason()`}),`, `,_jsx(_components.code,{children:`status()`}),`.`]})]}),_jsxs(ResponseField,{name:`UnknownSite`,type:`setup`,id:`param-unknown-site`,children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Attract::site('acme')`}),` named a slug that isn’t under `,_jsx(_components.code,{children:`sites`}),` in `,_jsx(_components.code,{children:`config/fetchski-attract.php`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No: nothing was sent. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`getMessage()`}),`, `,_jsx(_components.code,{children:`$e->slug`}),`.`]})]}),_jsxs(ResponseField,{name:`SiteConfigurationError`,type:`setup`,id:`param-site-configuration-error`,children:[_jsxs(_components.p,{children:[`The site’s config entry is wrong: no `,_jsx(_components.code,{children:`url`}),`, a malformed `,_jsx(_components.code,{children:`api_key`}),`, a key filed under another slug, or no default site.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No: nothing was sent. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`getMessage()`}),` (what to fix).`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`behavior`,children:`Behavior`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Access:`}),` an API key with `,_jsx(_components.code,{children:`content:pages:write`}),` (or a master above it: `,_jsx(_components.code,{children:`content:pages:all`}),`, `,_jsx(_components.code,{children:`content:all`}),`, `,_jsx(_components.code,{children:`admin:all`}),`). In published mode (the default) it goes live too, so the key also needs `,_jsx(_components.code,{children:`content:pages:publish`}),` (or a master above it); send `,_jsx(_components.code,{children:`aposMode=draft`}),` to change only the draft. A signed-in person may call it as far as their own permissions allow; anyone else gets 403.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Rate limit:`}),` the key’s own writes-per-minute limit, set when the key is created (default 120); over it, 429 with `,_jsx(_components.code,{children:`Retry-After`}),`. The client waits and retries for you; you see `,_jsx(_components.code,{children:`RateLimited`}),` only if that runs out.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Retries:`}),` a write is sent again only after a 429 (refused before it acted) or when it never reached the site. After a timeout or a 5xx it may have landed: check before you send it again.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Timeout:`}),` 15 s per attempt by default; raise `,_jsx(_components.code,{children:`timeout`}),` in `,_jsx(_components.code,{children:`config/fetchski-attract.php`}),` for longer.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`test-it`,children:`Test it`}),`\n`,_jsxs(_components.p,{children:[`It calls the route above with the SDK faked: the fake answers every call with a valid example, so nothing leaves your machine and no config or key is needed. Save it as `,_jsx(_components.code,{children:`tests/Feature/CreatePageTest.php`}),`, then run your tests:`]}),`\n`,_jsx(CodeBlock,{filename:`tests/Feature/CreatePageTest.php`,numberOfLines:`26`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`26`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c?php`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`declare`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(strict_types=`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`namespace`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Tests\\\\Feature`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` App\\\\Models\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`User`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Fetchski\\\\AttractCmsLaravel\\\\Facades\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Illuminate\\\\Foundation\\\\Testing\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`RefreshDatabase`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Tests\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`TestCase`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`final`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` class`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` CreatePageTest`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` extends`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` TestCase`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` use`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` RefreshDatabase`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:` test_create_page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(): `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`void`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`fake`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` $this`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`actingAs`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`User`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`factory`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`()->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`create`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`())`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`postJson`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'/page'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`assertOk`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`assertCalled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'pages.createPage'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:`Terminal`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`php`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` artisan`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` test`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Answer with your own values:`}),` fake `,_jsx(_components.code,{children:`pages.createPage`}),` with `,_jsx(_components.code,{children:`Page::factory()->make([...])`}),`, the fields you give over a valid example.`]}),`\n`,_jsx(CodeBlock,{filename:`tests/Feature/CreatePageAnswerTest.php`,numberOfLines:`23`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`23`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c?php`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`declare`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(strict_types=`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`namespace`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Tests\\\\Feature`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Fetchski\\\\AttractCmsLaravel\\\\Data\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Fetchski\\\\AttractCmsLaravel\\\\Facades\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Tests\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`TestCase`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`final`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` class`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` CreatePageAnswerTest`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` extends`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` TestCase`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:` test_create_page_answers_your_values`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(): `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`void`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`fake`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`([`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` 'pages.createPage'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` => `}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`factory`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`()->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`make`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`([`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'id'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` => `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'Your value'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`]),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ]);`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` $page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`pages`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`()->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`createPage`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`type`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'default-page'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`title`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'About Us'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` $this`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`assertSame`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'Your value'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`$page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`List pages`,icon:`list`,href:`/laravel/reference/pages/list-pages`,children:_jsx(_components.p,{children:_jsx(_components.code,{children:`Attract::pages()->listPages()`})})}),_jsx(Card,{title:`Archive pages`,icon:`box-archive`,href:`/laravel/reference/pages/archive-pages`,children:_jsx(_components.p,{children:_jsx(_components.code,{children:`Attract::pages()->archivePages()`})})}),_jsx(Card,{title:`Copy pages to another locale`,icon:`language`,href:`/laravel/reference/pages/localize-pages`,children:_jsx(_components.p,{children:_jsx(_components.code,{children:`Attract::pages()->localizePages()`})})}),_jsx(Card,{title:`Publish pages`,icon:`paper-plane`,href:`/laravel/reference/pages/publish-pages`,children:_jsx(_components.p,{children:_jsx(_components.code,{children:`Attract::pages()->publishPages()`})})}),_jsx(Card,{title:`Restore pages`,icon:`box-open`,href:`/laravel/reference/pages/restore-pages`,children:_jsx(_components.p,{children:_jsx(_components.code,{children:`Attract::pages()->restorePages()`})})}),_jsx(Card,{title:`Get a page`,icon:`eye`,href:`/laravel/reference/pages/get-page`,children:_jsx(_components.p,{children:_jsx(_components.code,{children:`Attract::pages()->getPage()`})})})]}),`\n`,_jsx(Card,{title:`POST /@apostrophecms/page`,icon:`code`,href:`/api-reference/pages/create-a-page`,arrow:true,horizontal:true,children:_jsx(_components.p,{children:`The endpoint this calls, in the API reference: the HTTP request and answer, and every rule the site checks.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Create a page","sidebarTitle":"Create","description":"Creates a page.","icon":"plus","href":"/laravel/reference/pages/create-page"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CodeBlock,Columns,Expandable,Heading,ParamField,RequestExample,ResponseExample,ResponseField,Step,Steps,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!RequestExample)_missingMdxReference(`RequestExample`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(RequestExample,{children:_jsx(CodeBlock,{filename:`Laravel`,wrap:`true`,numberOfLines:`3`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Fetchski\\\\AttractCmsLaravel\\\\Facades\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`$page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`pages`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`()->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`createPage`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`type`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'default-page'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`title`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'About Us'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})})}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200`,wrap:`true`,numberOfLines:`101`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`101`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"ckhdscx5900054z9k88uqs16w:en:published\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"aposDocId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"ckhdscx5900054z9k88uqs16w\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"aposLocale\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"en\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"aposMode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"published\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"archived\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"createdAt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2023-01-15T10:30:00.000Z\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"updatedAt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2024-12-18T14:20:00.000Z\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"titleSortified\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"about us\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"slug\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"/about-us\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"path\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"/about-us\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"rank\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"level\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"orphan\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"parked\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"visibility\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"public\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"@apostrophecms/page\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"About Us\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"main\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_ancestors\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_children\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_url\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"https://example.com/about-us\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_edit\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_publish\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"copyOfId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"ckhdscx5900054z9k88uqs16w:en:published\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_publishedDoc\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"ckhdscx5900054z9k88uqs16w:en:published\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"aposDocId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"ckhdscx5900054z9k88uqs16w\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"aposLocale\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"en\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"updatedAt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2024-12-18T14:20:00.000Z\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"slug\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"/about-us\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"path\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"/about-us\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"level\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"visibility\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"public\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"@apostrophecms/page\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"About Us\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_draftDoc\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"ckhdscx5900054z9k88uqs16w:en:published\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"aposDocId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"ckhdscx5900054z9k88uqs16w\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"aposLocale\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"en\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"updatedAt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2024-12-18T14:20:00.000Z\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"slug\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"/about-us\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"path\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"/about-us\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"level\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"visibility\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"public\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"@apostrophecms/page\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"About Us\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"aposShareKey\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"k3v9x2m7q1z8w4p6\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"scheduledPublish\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example scheduled publish\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"scheduledUnpublish\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example scheduled unpublish\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"seoTitle\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example seo title\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"seoDescription\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example seo description\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"seoImage\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"pageFontOverrides\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"footerMarqueeMode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"inherit\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"sections\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"comingSoonIcon\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"sparkles\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"comingSoonIconFamily\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"classic-regular\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"comingSoonIconColor\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example coming soon icon color\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"comingSoonIconAnimation\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"none\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"comingSoonIconSize\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"5x\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"comingSoonNote\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example coming soon note\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backLinkColor\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example back link color\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backLinkColorLight\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example back link color light\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backLinkWeight\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"semibold\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backLinkSize\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"normal\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"aboveSections\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"postList\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"belowSections\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonLabel\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Back to all posts\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonVariant\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"outline\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonSize\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"normal\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonRadius\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"slight\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonColor\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"--fetchski-accent\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonColorLight\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example back button color light\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonTextColor\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"--fetchski-ink\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonTextColorLight\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example back button text color light\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonHoverColor\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example back button hover color\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonHoverColorLight\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example back button hover color light\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonStyle\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"sweep\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonShadowColor\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example back button shadow color\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonShadowColorLight\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example back button shadow color light\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonAnimation\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"lift-scale\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonIcon\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"arrow-left\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonIconFamily\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"classic-regular\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonIconPosition\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"before\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"backButtonIconNudge\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"postFontOverrides\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"postTextSize\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"normal\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"postTextWeight\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"normal\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"postContentWidth\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"normal\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"postLineHeight\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"normal\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"postAccentColor\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example post accent color\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"postAccentColorLight\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example post accent color light\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"postHeadingWeight\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"bold\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"postHeadingColor\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example post heading color\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"postHeadingColorLight\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Example post heading color light\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"blogPostCss\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(Heading,{level:`2`,id:`in-your-app`,children:`In your app`}),`\n`,_jsxs(_components.p,{children:[`A controller answers a route on your app: it calls `,_jsx(_components.code,{children:`createPage()`}),` and returns the answer.`]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Add the controller`,icon:`file-code`,children:[_jsx(CodeBlock,{filename:`app/Http/Controllers/CreatePageController.php`,numberOfLines:`16`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c?php`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`declare`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(strict_types=`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`namespace`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` App\\\\Http\\\\Controllers`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Fetchski\\\\AttractCmsLaravel\\\\Data\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Fetchski\\\\AttractCmsLaravel\\\\Facades\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`final`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` class`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` CreatePageController`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:` __invoke`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(): `}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Page`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`pages`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`()->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`createPage`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`type`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'default-page'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`title`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'About Us'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:`The other values are the example’s: take yours from the request, a form or your database.`})]}),_jsxs(Step,{title:`Add the route`,icon:`route`,children:[_jsx(CodeBlock,{filename:`routes/web.php`,numberOfLines:`4`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` App\\\\Http\\\\Controllers\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`CreatePageController`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Illuminate\\\\Support\\\\Facades\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Route`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Route`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`post`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'/page'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`CreatePageController`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`class`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`)->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`middleware`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'auth'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`It acts with your key’s access, so `,_jsx(_components.code,{children:`auth`}),` lets only your signed-in users reach it.`]})]}),_jsx(Step,{title:`Call it`,icon:`play`,children:_jsxs(_components.p,{children:[`Your own page’s form or script sends `,_jsx(_components.code,{children:`POST /page`}),` (a form adds `,_jsx(_components.code,{children:`@csrf`}),`, as every web route checks it), and gets back its answer as JSON. Test it, below, calls it.`]})})]}),`\n`,_jsxs(Tip,{children:[_jsxs(_components.p,{children:[`To keep the call in an Action instead, this writes `,_jsx(_components.code,{children:`app/Actions/Attract/CreatePage.php`}),` (an invokable Action that calls `,_jsx(_components.code,{children:`createPage()`}),`) and its test under `,_jsx(_components.code,{children:`tests/Feature/Actions/Attract/`}),` (Pest when your app has it):`]}),_jsx(CodeBlock,{filename:`Terminal`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`php`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` artisan`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` make:attract-action`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` pages.createPage`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`call-it-from-the-terminal`,children:`Call it from the terminal`}),`\n`,_jsx(CodeBlock,{filename:`Terminal`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`php`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` artisan`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` attract:call`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` pages.createPage`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` type=default-page`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` 'title=About Us'`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`It calls `,_jsx(_components.code,{children:`createPage()`}),` on your default site and prints its answer as JSON. It writes, so it asks first: add `,_jsx(_components.code,{children:`--force`}),` to skip the question in a script. See `,_jsx(_components.a,{href:`/call-command`,children:`Call any method from the terminal`}),` for every argument type.`]}),`\n`,_jsxs(_components.p,{children:[`Send its `,_jsx(_components.code,{children:`title`}),` and `,_jsx(_components.code,{children:`type`}),` (one of the site’s page types; anything else is refused with the list). It goes in as the last child of the home page unless `,_jsx(_components.code,{children:`_targetId`}),` (a page’s `,_jsx(_components.code,{children:`_id`}),`, or `,_jsx(_components.code,{children:`_home`}),`) and `,_jsx(_components.code,{children:`_position`}),` (`,_jsx(_components.code,{children:`firstChild`}),`, `,_jsx(_components.code,{children:`lastChild`}),`, `,_jsx(_components.code,{children:`before`}),` or `,_jsx(_components.code,{children:`after`}),`) place it. Create it as a draft (`,_jsx(_components.code,{children:`aposMode: draft`}),`), then publish it.`]}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Required parameters`,icon:`asterisk`,defaultOpen:true,id:`required-parameters`,children:[_jsxs(_components.p,{children:[`Named arguments, e.g. `,_jsx(_components.code,{children:`createPage(type: …)`}),`; leave out the optional ones.`]}),_jsx(ParamField,{body:`type`,type:`string`,required:true,id:`param-type`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The page type: one of the site’s page types (the `,_jsx(_components.code,{children:`type`}),` its pages carry). Anything else is refused with the list.`]})}),_jsx(ParamField,{body:`title`,type:`string`,required:true,id:`param-title`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Page title. At most 100 characters.`]})})]}),_jsxs(Accordion,{title:`Optional parameters`,icon:`sliders`,id:`optional-parameters`,children:[_jsx(ParamField,{query:`aposMode`,type:`Enums\\\\AposMode|string|null`,id:`param-apos-mode`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"published\"`}),`. `,_jsx(_components.code,{children:`published`}),` (the default) or `,_jsx(_components.code,{children:`draft`}),`. Drafts need a credential that may see them: an API key with the type’s write scope (`,_jsx(_components.code,{children:`content:\u003ctype>:write`}),`), or a signed-in editor. The public and a key with only the read scope get 403. One of `,_jsx(_components.code,{children:`draft`}),`, `,_jsx(_components.code,{children:`published`}),`.`]})}),_jsx(ParamField,{query:`aposLocale`,type:`?string`,id:`param-apos-locale`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. The locale to read or write, e.g. `,_jsx(_components.code,{children:`en`}),` (default: the site’s default locale).`]})}),_jsx(ParamField,{body:`targetId`,type:`?string`,id:`param-target-id`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. The page to place it beside or under, by `,_jsx(_components.code,{children:`_id`}),` (`,_jsx(_components.code,{children:`_home`}),` and `,_jsx(_components.code,{children:`_archive`}),` work too). Default `,_jsx(_components.code,{children:`_home`}),`.`]})}),_jsx(ParamField,{body:`position`,type:`Enums\\\\Position|string|null`,id:`param-position`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Where, relative to `,_jsx(_components.code,{children:`_targetId`}),`. Default `,_jsx(_components.code,{children:`lastChild`}),`. One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`, `,_jsx(_components.code,{children:`firstChild`}),`, `,_jsx(_components.code,{children:`lastChild`}),`.`]})}),_jsx(ParamField,{body:`copyingId`,type:`?string`,id:`param-copying-id`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Copy this existing page’s fields (by `,_jsx(_components.code,{children:`_id`}),`) into the new one.`]})}),_jsx(ParamField,{body:`slug`,type:`?string`,id:`param-slug`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. URL slug for the page.`]})}),_jsx(ParamField,{body:`orphan`,type:`?bool`,id:`param-orphan`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`false`}),`. Whether page is orphaned (not in tree structure)`]})}),_jsx(ParamField,{body:`visibility`,type:`Enums\\\\FlatPageResponseResultsItemVisibility|string|null`,id:`param-visibility`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"public\"`}),`. Page visibility setting. One of `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`loginRequired`}),`, `,_jsx(_components.code,{children:`private`}),`.`]})}),_jsxs(ParamField,{body:`main`,type:`MainArea|array\u003cstring, mixed>|null`,id:`param-main`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`MainArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MainArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id`,children:_jsx(_components.p,{children:`The area’s id, set by the site: leave it out when you write one.`})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, RichTextWidget|ImageWidget|VideoWidget>|null`,id:`param-items`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`MainAreaItem`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them).`]}),_jsxs(Expandable,{title:`MainAreaItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MainAreaItem)`,children:[_jsxs(_components.p,{children:[`A widget in an area that takes `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`, `,_jsx(_components.code,{children:`@apostrophecms/image`}),`, `,_jsx(_components.code,{children:`@apostrophecms/video`}),`: the one its `,_jsx(_components.code,{children:`type`}),` names.`]}),_jsxs(Expandable,{title:`RichTextWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\RichTextWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\RichTextWidgetType|string`,required:true,id:`param-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-1`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-1`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`content`,type:`?string`,id:`param-content`,children:_jsxs(_components.p,{children:[`The text as HTML, e.g. `,_jsx(_components.code,{children:`\u003ch2>Our story\u003c/h2>\u003cp>It began with \u003cstrong>one\u003c/strong> idea.\u003c/p>`}),`. The site keeps the tags and styles this area’s editor offers (paragraphs, headings, bold, italic, links, lists…) and removes the rest.`]})}),_jsxs(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot.`]}),_jsxs(Expandable,{title:`CustomCSS (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CustomCSS)`,children:[_jsx(ResponseField,{name:`slots`,type:`array\u003cstring, string>|null`,id:`param-slots`,children:_jsx(_components.p,{children:`The CSS typed into each part slot, by slot name.`})}),_jsx(ResponseField,{name:`css`,type:`?string`,id:`param-css`,children:_jsxs(_components.p,{children:[`The compiled CSS (read only: rebuilt from `,_jsx(_components.code,{children:`slots`}),`).`]})}),_jsx(ResponseField,{name:`mark`,type:`?string`,id:`param-mark`,children:_jsxs(_components.p,{children:[`The site’s check mark for `,_jsx(_components.code,{children:`css`}),` (read only).`]})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`ImageWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ImageWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/image`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\ImageWidgetType|string`,required:true,id:`param-type-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/image`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/image`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-2`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-2`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`image`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-image`,children:_jsxs(_components.p,{children:[`The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`caption`,type:`?string`,id:`param-caption`,children:_jsx(_components.p,{children:`Caption.`})}),_jsx(ResponseField,{name:`linkTo`,type:`Enums\\\\LinkTo|string|null`,id:`param-link-to`,children:_jsxs(_components.p,{children:[`Link To… One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`@apostrophecms/any-page-type`}),`, `,_jsx(_components.code,{children:`_url`}),`.`]})}),_jsx(ResponseField,{name:`apostrophecmsAnyPageType`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-apostrophecms-any-page-type`,children:_jsxs(_components.p,{children:[`The related `,_jsx(_components.code,{children:`@apostrophecms/any-page-type`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`linkHref`,type:`?string`,id:`param-link-href`,children:_jsx(_components.p,{children:`apostrophe:linkHrefHelp When set, a URL; empty or null when not.`})}),_jsx(ResponseField,{name:`linkHrefTitle`,type:`?string`,id:`param-link-href-title`,children:_jsx(_components.p,{children:`Link Title.`})}),_jsx(ResponseField,{name:`linkTitle`,type:`?string`,id:`param-link-title`,children:_jsx(_components.p,{children:`If empty, the title of the related document will be used.`})}),_jsx(ResponseField,{name:`linkTarget`,type:`Collection\u003cint, Enums\\\\LinkTarget|string>|null`,id:`param-link-target`,children:_jsxs(_components.p,{children:[`Link Target. Each one of `,_jsx(_components.code,{children:`_blank`}),`.`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-1`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-1`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`VideoWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\VideoWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/video`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\VideoWidgetType|string`,required:true,id:`param-type-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/video`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/video`}),`.`]})}),_jsx(ResponseField,{name:`video`,type:`array\u003cstring, mixed>`,required:true,id:`param-video`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Enter the URL for a media source you wish to embed (e.g., YouTube, Vimeo, or other hosted video URL).`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-3`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-3`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-2`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-2`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-3`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ParamField,{body:`scheduledPublish`,type:`?string`,id:`param-scheduled-publish`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. An ISO 8601 date and time, e.g. `,_jsx(_components.code,{children:`2026-10-21T14:30:00.000Z`}),`.`]})}),_jsx(ParamField,{body:`scheduledUnpublish`,type:`?string`,id:`param-scheduled-unpublish`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. An ISO 8601 date and time, e.g. `,_jsx(_components.code,{children:`2026-10-21T14:30:00.000Z`}),`.`]})}),_jsx(ParamField,{body:`seoTitle`,type:`?string`,id:`param-seo-title`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"\"`}),`. Overrides the document title in the browser tab and search results. Leave blank to use the regular title.`]})}),_jsx(ParamField,{body:`seoDescription`,type:`?string`,id:`param-seo-description`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"\"`}),`. Shown in search results and link previews. Aim for 150–160 characters.`]})}),_jsxs(ParamField,{body:`seoImage`,type:`ImageArea|array\u003cstring, mixed>|null`,id:`param-seo-image`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Used for Open Graph / social link previews. Recommended 1200×630. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`ImageArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ImageArea)`,children:[_jsxs(_components.p,{children:[`Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-4`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-4`,children:_jsx(_components.p,{children:`The area’s id, set by the site: leave it out when you write one.`})}),_jsx(ResponseField,{name:`items`,type:`Collection\u003cint, ImageWidget>|null`,id:`param-items-1`,children:_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`ImageWidget`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them). At most 1 items. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageWidget`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-4`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsxs(ParamField,{body:`pageFontOverrides`,type:`array\u003cint, PagePageFontOverridesItem|array\u003cstring, mixed>>|Collection\u003cint, PagePageFontOverridesItem|array\u003cstring, mixed>>|null`,id:`param-page-font-overrides`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional. Set part of this page in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). Individual sections can still override this for themselves. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePageFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePageFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-5`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PagePageFontOverridesItemUploadsItem>|null`,id:`param-uploads`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PagePageFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePageFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePageFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-6`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-5`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-6`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ParamField,{body:`footerMarqueeMode`,type:`Enums\\\\FooterMarqueeMode|string|null`,id:`param-footer-marquee-mode`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"inherit\"`}),`. The ribbon of phrases scrolling across the top of the footer. Its phrases and the site-wide default are set in Site design → Footer: Marquee. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`on`}),`, `,_jsx(_components.code,{children:`off`}),`.`]})}),_jsxs(ParamField,{body:`sections`,type:`SectionsArea|array\u003cstring, mixed>|null`,id:`param-sections`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`page-header`}),`.`]}),_jsxs(Expandable,{title:`SectionsArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SectionsArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-5`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-7`,children:_jsx(_components.p,{children:`The area’s id, set by the site: leave it out when you write one.`})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, PageHeaderWidget|HeroWidget|LayoutWidget|IntroWidget|FeatureWidget|StatsWidget|LogosWidget|StepsWidget|MediaTextWidget|DeviceMockWidget|TeamWidget|FaqWidget|ServiceMapWidget|BlogPreviewWidget|CookieDeclarationWidget|RichTextWidget|GoogleReviewsWidget|TestimonialsWidget|InstagramFeedWidget|GalleryPreviewWidget|GalleryFullWidget|PricingWidget|NewsletterWidget|SmsSignupWidget|FormRenderWidget|FinalCtaWidget>|null`,id:`param-items-2`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`SectionsAreaItem`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them).`]}),_jsxs(Expandable,{title:`SectionsAreaItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SectionsAreaItem)`,children:[_jsxs(_components.p,{children:[`A widget in an area that takes `,_jsx(_components.code,{children:`page-header`}),`, `,_jsx(_components.code,{children:`hero`}),`, `,_jsx(_components.code,{children:`@apostrophecms/layout`}),`, `,_jsx(_components.code,{children:`intro`}),`, `,_jsx(_components.code,{children:`feature`}),`, `,_jsx(_components.code,{children:`stats`}),`, `,_jsx(_components.code,{children:`logos`}),`, `,_jsx(_components.code,{children:`steps`}),`, `,_jsx(_components.code,{children:`media-text`}),`, `,_jsx(_components.code,{children:`device-mock`}),`, `,_jsx(_components.code,{children:`team`}),`, `,_jsx(_components.code,{children:`faq`}),`, `,_jsx(_components.code,{children:`service-map`}),`, `,_jsx(_components.code,{children:`blog-preview`}),`, `,_jsx(_components.code,{children:`cookie-declaration`}),`, `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`, `,_jsx(_components.code,{children:`google-reviews`}),`, `,_jsx(_components.code,{children:`testimonials`}),`, `,_jsx(_components.code,{children:`instagram-feed`}),`, `,_jsx(_components.code,{children:`gallery-preview`}),`, `,_jsx(_components.code,{children:`gallery-full`}),`, `,_jsx(_components.code,{children:`pricing`}),`, `,_jsx(_components.code,{children:`newsletter`}),`, `,_jsx(_components.code,{children:`sms-signup`}),`, `,_jsx(_components.code,{children:`form-render`}),`, `,_jsx(_components.code,{children:`final-cta`}),`: the one its `,_jsx(_components.code,{children:`type`}),` names.`]}),_jsxs(Expandable,{title:`PageHeaderWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PageHeaderWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`page-header`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\PageHeaderWidgetType|string`,required:true,id:`param-type-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`page-header`}),`. One of `,_jsx(_components.code,{children:`page-header`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-8`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-6`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`headline`,type:`?string`,id:`param-headline`,children:_jsx(_components.p,{children:`Optional. Leave empty to show the page title (the usual case). Set it only when the visible heading should read differently from the page’s title in navigation, search results and breadcrumbs.`})}),_jsx(ResponseField,{name:`eyebrowMode`,type:`Enums\\\\EyebrowMode|string|null`,id:`param-eyebrow-mode`,children:_jsxs(_components.p,{children:[`The small label above the title. One of `,_jsx(_components.code,{children:`business`}),`, `,_jsx(_components.code,{children:`custom`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`eyebrow`,type:`?string`,id:`param-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow text.`})}),_jsx(ResponseField,{name:`eyebrowColor`,type:`?string`,id:`param-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`eyebrowColorLight`,type:`?string`,id:`param-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`eyebrowWeight`,type:`Enums\\\\EyebrowWeight|string|null`,id:`param-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`eyebrowSize`,type:`Enums\\\\EyebrowSize|string|null`,id:`param-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`titleColor`,type:`?string`,id:`param-title-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`titleColorLight`,type:`?string`,id:`param-title-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`titleWeight`,type:`Enums\\\\TitleWeight|string|null`,id:`param-title-weight`,children:_jsxs(_components.p,{children:[`Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`titleSize`,type:`Enums\\\\TitleSize|string|null`,id:`param-title-size`,children:_jsxs(_components.p,{children:[`Title size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`leadText`,type:`?string`,id:`param-lead-text`,children:_jsx(_components.p,{children:`Optional intro shown under the page title.`})}),_jsx(ResponseField,{name:`leadColor`,type:`?string`,id:`param-lead-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`leadColorLight`,type:`?string`,id:`param-lead-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`leadWeight`,type:`Enums\\\\LeadWeight|string|null`,id:`param-lead-weight`,children:_jsxs(_components.p,{children:[`Lead weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`leadSize`,type:`Enums\\\\LeadSize|string|null`,id:`param-lead-size`,children:_jsxs(_components.p,{children:[`Lead size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderBg`,type:`Enums\\\\PageHeaderBg|string|null`,id:`param-page-header-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderBgCustom`,type:`?string`,id:`param-page-header-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`pageHeaderBgLight`,type:`Enums\\\\PageHeaderBgLight|string|null`,id:`param-page-header-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderBgLightCustom`,type:`?string`,id:`param-page-header-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`pageHeaderImage`,type:`?ImageArea`,id:`param-page-header-image`,children:_jsxs(_components.p,{children:[`An `,_jsx(_components.code,{children:`ImageArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`pageHeaderOverlayColor`,type:`?string`,id:`param-page-header-overlay-color`,children:_jsx(_components.p,{children:`Scrim behind the text over a background image (only applies when one is set). Leave empty to use the dark surface color.`})}),_jsx(ResponseField,{name:`pageHeaderOverlayColorLight`,type:`?string`,id:`param-page-header-overlay-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme overlay, then the light surface color.`})}),_jsx(ResponseField,{name:`pageHeaderOverlayOpacity`,type:`?float`,id:`param-page-header-overlay-opacity`,children:_jsx(_components.p,{children:`Overlay opacity (%). 0 to 100.`})}),_jsxs(ResponseField,{name:`pageHeaderFontOverrides`,type:`Collection\u003cint, PageHeaderWidgetPageHeaderFontOverridesItem>|null`,id:`param-page-header-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PageHeaderWidgetPageHeaderFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`PageHeaderWidgetPageHeaderFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PageHeaderWidgetPageHeaderFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-9`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-1`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-1`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-1`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-1`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-1`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-1`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-1`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem>|null`,id:`param-uploads-1`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-10`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-1`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-1`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-7`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-1`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-8`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaLabel`,type:`?string`,id:`param-page-header-primary-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaUrl`,type:`?string`,id:`param-page-header-primary-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaNewTab`,type:`?bool`,id:`param-page-header-primary-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaVariant`,type:`Enums\\\\PageHeaderPrimaryCtaVariant|string|null`,id:`param-page-header-primary-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaSize`,type:`Enums\\\\PageHeaderPrimaryCtaSize|string|null`,id:`param-page-header-primary-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaRadius`,type:`Enums\\\\PageHeaderPrimaryCtaRadius|string|null`,id:`param-page-header-primary-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaColor`,type:`?string`,id:`param-page-header-primary-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaColorLight`,type:`?string`,id:`param-page-header-primary-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaTextColor`,type:`?string`,id:`param-page-header-primary-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaTextColorLight`,type:`?string`,id:`param-page-header-primary-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaHoverColor`,type:`?string`,id:`param-page-header-primary-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaHoverColorLight`,type:`?string`,id:`param-page-header-primary-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaStyle`,type:`Enums\\\\PageHeaderPrimaryCtaStyle|string|null`,id:`param-page-header-primary-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaShadowColor`,type:`?string`,id:`param-page-header-primary-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaShadowColorLight`,type:`?string`,id:`param-page-header-primary-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaAnimation`,type:`Enums\\\\PageHeaderPrimaryCtaAnimation|string|null`,id:`param-page-header-primary-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIcon`,type:`?string`,id:`param-page-header-primary-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIconFamily`,type:`Enums\\\\PageHeaderPrimaryCtaIconFamily|string|null`,id:`param-page-header-primary-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIconPosition`,type:`Enums\\\\PageHeaderPrimaryCtaIconPosition|string|null`,id:`param-page-header-primary-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIconNudge`,type:`?bool`,id:`param-page-header-primary-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaLabel`,type:`?string`,id:`param-page-header-secondary-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaUrl`,type:`?string`,id:`param-page-header-secondary-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaNewTab`,type:`?bool`,id:`param-page-header-secondary-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaVariant`,type:`Enums\\\\PageHeaderSecondaryCtaVariant|string|null`,id:`param-page-header-secondary-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaSize`,type:`Enums\\\\PageHeaderSecondaryCtaSize|string|null`,id:`param-page-header-secondary-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaRadius`,type:`Enums\\\\PageHeaderSecondaryCtaRadius|string|null`,id:`param-page-header-secondary-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaColor`,type:`?string`,id:`param-page-header-secondary-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaColorLight`,type:`?string`,id:`param-page-header-secondary-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaTextColor`,type:`?string`,id:`param-page-header-secondary-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaTextColorLight`,type:`?string`,id:`param-page-header-secondary-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaHoverColor`,type:`?string`,id:`param-page-header-secondary-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaHoverColorLight`,type:`?string`,id:`param-page-header-secondary-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaStyle`,type:`Enums\\\\PageHeaderSecondaryCtaStyle|string|null`,id:`param-page-header-secondary-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaShadowColor`,type:`?string`,id:`param-page-header-secondary-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaShadowColorLight`,type:`?string`,id:`param-page-header-secondary-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaAnimation`,type:`Enums\\\\PageHeaderSecondaryCtaAnimation|string|null`,id:`param-page-header-secondary-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIcon`,type:`?string`,id:`param-page-header-secondary-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIconFamily`,type:`Enums\\\\PageHeaderSecondaryCtaIconFamily|string|null`,id:`param-page-header-secondary-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIconPosition`,type:`Enums\\\\PageHeaderSecondaryCtaIconPosition|string|null`,id:`param-page-header-secondary-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIconNudge`,type:`?bool`,id:`param-page-header-secondary-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-3`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-9`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`HeroWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\HeroWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`hero`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\HeroWidgetType|string`,required:true,id:`param-type-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`hero`}),`. One of `,_jsx(_components.code,{children:`hero`}),`.`]})}),_jsx(ResponseField,{name:`heroHeadline`,type:`string`,required:true,id:`param-hero-headline`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Headline.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-11`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-7`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`heroAlign`,type:`Enums\\\\HeroAlign|string|null`,id:`param-hero-align`,children:_jsxs(_components.p,{children:[`Content alignment. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`.`]})}),_jsx(ResponseField,{name:`heroHeight`,type:`Enums\\\\HeroHeight|string|null`,id:`param-hero-height`,children:_jsxs(_components.p,{children:[`Full fills the screen (home pages); Compact is a short banner for interior pages. One of `,_jsx(_components.code,{children:`full`}),`, `,_jsx(_components.code,{children:`tall`}),`, `,_jsx(_components.code,{children:`compact`}),`.`]})}),_jsx(ResponseField,{name:`heroGhostEnabled`,type:`?bool`,id:`param-hero-ghost-enabled`,children:_jsx(_components.p,{children:`Giant outlined word above the headline (same treatment as the footer wordmark). Reveals on hover.`})}),_jsx(ResponseField,{name:`heroGhostText`,type:`?string`,id:`param-hero-ghost-text`,children:_jsx(_components.p,{children:`Keep it short — one word reads best at display size. Leave empty to use the business name.`})}),_jsx(ResponseField,{name:`heroGhostSize`,type:`Enums\\\\HeroGhostSize|string|null`,id:`param-hero-ghost-size`,children:_jsxs(_components.p,{children:[`Ghost wordmark size. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`medium`}),`.`]})}),_jsx(ResponseField,{name:`heroGhostFill`,type:`Enums\\\\HeroGhostFill|string|null`,id:`param-hero-ghost-fill`,children:_jsxs(_components.p,{children:[`Outlined letters that fill on hover one at a time, all at once, or always-solid (no ghost effect). One of `,_jsx(_components.code,{children:`letter`}),`, `,_jsx(_components.code,{children:`word`}),`, `,_jsx(_components.code,{children:`solid`}),`.`]})}),_jsx(ResponseField,{name:`heroGhostFillColor`,type:`?string`,id:`param-hero-ghost-fill-color`,children:_jsx(_components.p,{children:`Optional. Overrides the wordmark fill + outline tint in the dark theme. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`heroGhostFillColorLight`,type:`?string`,id:`param-hero-ghost-fill-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override — handy over a fixed video/photo background that doesn’t switch with the theme. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`heroLockupEnabled`,type:`?bool`,id:`param-hero-lockup-enabled`,children:_jsx(_components.p,{children:`A small line (optional icon + business name) above the headline. Off by default when the ghost wordmark carries the brand.`})}),_jsx(ResponseField,{name:`heroEyebrowEnabled`,type:`?bool`,id:`param-hero-eyebrow-enabled`,children:_jsx(_components.p,{children:`Show eyebrow / kicker.`})}),_jsx(ResponseField,{name:`heroEyebrow`,type:`?string`,id:`param-hero-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`heroEyebrowColor`,type:`?string`,id:`param-hero-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`heroEyebrowColorLight`,type:`?string`,id:`param-hero-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`heroEyebrowWeight`,type:`Enums\\\\HeroEyebrowWeight|string|null`,id:`param-hero-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`heroEyebrowSize`,type:`Enums\\\\HeroEyebrowSize|string|null`,id:`param-hero-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`heroEyebrowPlacement`,type:`Enums\\\\HeroEyebrowPlacement|string|null`,id:`param-hero-eyebrow-placement`,children:_jsxs(_components.p,{children:[`Eyebrow placement. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`belowHeadline`}),`, `,_jsx(_components.code,{children:`aboveCta`}),`.`]})}),_jsx(ResponseField,{name:`heroHeadlineFill`,type:`Enums\\\\HeroHeadlineFill|string|null`,id:`param-hero-headline-fill`,children:_jsxs(_components.p,{children:[`Solid is the standard headline. The outline options give the headline the same ghost treatment as the wordmark, filling on hover. (The accent sticker word stays solid.) One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`letter`}),`, `,_jsx(_components.code,{children:`word`}),`.`]})}),_jsx(ResponseField,{name:`heroHeadlineFillColor`,type:`?string`,id:`param-hero-headline-fill-color`,children:_jsx(_components.p,{children:`Optional. Overrides the headline color in the dark theme. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`heroHeadlineFillColorLight`,type:`?string`,id:`param-hero-headline-fill-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`heroStickerEnabled`,type:`?bool`,id:`param-hero-sticker-enabled`,children:_jsx(_components.p,{children:`Wraps the final headline word in the solid accent “sticker”. Turn off for a plain headline.`})}),_jsx(ResponseField,{name:`heroStickerStyle`,type:`Enums\\\\HeroStickerStyle|string|null`,id:`param-hero-sticker-style`,children:_jsxs(_components.p,{children:[`Dual layers a colored offset shadow behind the patch; single is one flat color. One of `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`single`}),`.`]})}),_jsx(ResponseField,{name:`heroStickerColor`,type:`?string`,id:`param-hero-sticker-color`,children:_jsx(_components.p,{children:`Patch background. Leave empty to use the site primary/accent color.`})}),_jsx(ResponseField,{name:`heroStickerColorSecondary`,type:`?string`,id:`param-hero-sticker-color-secondary`,children:_jsx(_components.p,{children:`Offset-shadow layer. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`heroLinkHoverFill`,type:`?bool`,id:`param-hero-link-hover-fill`,children:_jsx(_components.p,{children:`Hovering either the wordmark or the headline fills both at once. Only available when both are set to fill the whole word/headline on hover.`})}),_jsx(ResponseField,{name:`heroHashtagEnabled`,type:`?bool`,id:`param-hero-hashtag-enabled`,children:_jsx(_components.p,{children:`A bold social hashtag (e.g. #behindthescenes) with its own placement, fill, and optional pill background.`})}),_jsx(ResponseField,{name:`heroHashtagText`,type:`?string`,id:`param-hero-hashtag-text`,children:_jsx(_components.p,{children:`Include the # — e.g. #behindthescenes.`})}),_jsx(ResponseField,{name:`heroHashtagPlacement`,type:`Enums\\\\HeroHashtagPlacement|string|null`,id:`param-hero-hashtag-placement`,children:_jsxs(_components.p,{children:[`Hashtag placement. One of `,_jsx(_components.code,{children:`aboveGhost`}),`, `,_jsx(_components.code,{children:`aboveHeadline`}),`, `,_jsx(_components.code,{children:`belowHeadline`}),`, `,_jsx(_components.code,{children:`aboveCta`}),`.`]})}),_jsx(ResponseField,{name:`heroHashtagSize`,type:`Enums\\\\HeroHashtagSize|string|null`,id:`param-hero-hashtag-size`,children:_jsxs(_components.p,{children:[`Smaller than the headline, but still a prominent element. One of `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`small`}),`.`]})}),_jsx(ResponseField,{name:`heroHashtagFill`,type:`Enums\\\\HeroHashtagFill|string|null`,id:`param-hero-hashtag-fill`,children:_jsxs(_components.p,{children:[`Solid color, or the same outlined “ghost” treatment as the headline that fills on hover. (Ignored when the Solid pill background is used.) One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`letter`}),`, `,_jsx(_components.code,{children:`word`}),`.`]})}),_jsx(ResponseField,{name:`heroHashtagFillColor`,type:`?string`,id:`param-hero-hashtag-fill-color`,children:_jsx(_components.p,{children:`Optional text color (or outline tint). Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`heroHashtagFillColorLight`,type:`?string`,id:`param-hero-hashtag-fill-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`heroHashtagBackground`,type:`Enums\\\\HeroHashtagBackground|string|null`,id:`param-hero-hashtag-background`,children:_jsxs(_components.p,{children:[`An optional patch behind the hashtag — a softer take on the headline sticker. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`.`]})}),_jsx(ResponseField,{name:`heroHashtagBgShape`,type:`Enums\\\\HeroHashtagBgShape|string|null`,id:`param-hero-hashtag-bg-shape`,children:_jsxs(_components.p,{children:[`Rounded pill or a squared patch like the headline sticker. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`heroHashtagBgColor`,type:`?string`,id:`param-hero-hashtag-bg-color`,children:_jsx(_components.p,{children:`Patch fill (solid) or border + text (outline). Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`heroHashtagTilt`,type:`Enums\\\\HeroHashtagTilt|string|null`,id:`param-hero-hashtag-tilt`,children:_jsxs(_components.p,{children:[`A slight rotation, like the headline sticker. Works with or without a background. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`heroIntro`,type:`?string`,id:`param-hero-intro`,children:_jsx(_components.p,{children:`Intro copy.`})}),_jsx(ResponseField,{name:`heroIntroColor`,type:`?string`,id:`param-hero-intro-color`,children:_jsx(_components.p,{children:`Optional. Overrides the intro text color. Leave empty for the muted default.`})}),_jsx(ResponseField,{name:`heroIntroColorLight`,type:`?string`,id:`param-hero-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the muted default.`})}),_jsx(ResponseField,{name:`heroIntroWeight`,type:`Enums\\\\HeroIntroWeight|string|null`,id:`param-hero-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`heroIconPlacement`,type:`Enums\\\\HeroIconPlacement|string|null`,id:`param-hero-icon-placement`,children:_jsxs(_components.p,{children:[`Where to place an optional Font Awesome icon. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lockup`}),`, `,_jsx(_components.code,{children:`aboveHeadline`}),`, `,_jsx(_components.code,{children:`aboveGhost`}),`.`]})}),_jsx(ResponseField,{name:`heroIcon`,type:`?string`,id:`param-hero-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`heroIconFamily`,type:`Enums\\\\HeroIconFamily|string|null`,id:`param-hero-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`heroIconColor`,type:`?string`,id:`param-hero-icon-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the design’s own color rhythm.`})}),_jsx(ResponseField,{name:`heroIconAnimation`,type:`Enums\\\\HeroIconAnimation|string|null`,id:`param-hero-icon-animation`,children:_jsxs(_components.p,{children:[`Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`.`]})}),_jsx(ResponseField,{name:`heroBackgroundType`,type:`Enums\\\\HeroBackgroundType|string|null`,id:`param-hero-background-type`,children:_jsxs(_components.p,{children:[`Background type. One of `,_jsx(_components.code,{children:`gradient`}),`, `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`.`]})}),_jsx(ResponseField,{name:`heroImage`,type:`?ImageArea`,id:`param-hero-image`,children:_jsxs(_components.p,{children:[`An `,_jsx(_components.code,{children:`ImageArea`}),`. Used when background type is Image, and as the poster/fallback for Video. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`heroVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-hero-video`,children:_jsxs(_components.p,{children:[`Pick from the Videos library (⌘K → Videos). Short, muted loop; reduced-motion visitors get the fallback image instead. The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`heroMotionPause`,type:`?bool`,id:`param-hero-motion-pause`,children:_jsx(_components.p,{children:`Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.`})}),_jsxs(ResponseField,{name:`heroFontOverrides`,type:`Collection\u003cint, HeroWidgetHeroFontOverridesItem>|null`,id:`param-hero-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`HeroWidgetHeroFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`HeroWidgetHeroFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\HeroWidgetHeroFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-12`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-2`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-2`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-2`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-2`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-2`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-2`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-2`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, HeroWidgetHeroFontOverridesItemUploadsItem>|null`,id:`param-uploads-2`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`HeroWidgetHeroFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`HeroWidgetHeroFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\HeroWidgetHeroFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-13`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-2`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-2`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-10`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-2`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-11`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`heroPrimaryCtaLabel`,type:`?string`,id:`param-hero-primary-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaUrl`,type:`?string`,id:`param-hero-primary-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaNewTab`,type:`?bool`,id:`param-hero-primary-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`heroPrimaryCtaVariant`,type:`Enums\\\\HeroPrimaryCtaVariant|string|null`,id:`param-hero-primary-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaSize`,type:`Enums\\\\HeroPrimaryCtaSize|string|null`,id:`param-hero-primary-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaRadius`,type:`Enums\\\\HeroPrimaryCtaRadius|string|null`,id:`param-hero-primary-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaColor`,type:`?string`,id:`param-hero-primary-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaColorLight`,type:`?string`,id:`param-hero-primary-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`heroPrimaryCtaTextColor`,type:`?string`,id:`param-hero-primary-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`heroPrimaryCtaTextColorLight`,type:`?string`,id:`param-hero-primary-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaHoverColor`,type:`?string`,id:`param-hero-primary-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaHoverColorLight`,type:`?string`,id:`param-hero-primary-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaStyle`,type:`Enums\\\\HeroPrimaryCtaStyle|string|null`,id:`param-hero-primary-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaShadowColor`,type:`?string`,id:`param-hero-primary-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaShadowColorLight`,type:`?string`,id:`param-hero-primary-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaAnimation`,type:`Enums\\\\HeroPrimaryCtaAnimation|string|null`,id:`param-hero-primary-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIcon`,type:`?string`,id:`param-hero-primary-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`heroPrimaryCtaIconFamily`,type:`Enums\\\\HeroPrimaryCtaIconFamily|string|null`,id:`param-hero-primary-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIconPosition`,type:`Enums\\\\HeroPrimaryCtaIconPosition|string|null`,id:`param-hero-primary-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIconNudge`,type:`?bool`,id:`param-hero-primary-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`heroSecondaryCtaLabel`,type:`?string`,id:`param-hero-secondary-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaUrl`,type:`?string`,id:`param-hero-secondary-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaNewTab`,type:`?bool`,id:`param-hero-secondary-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`heroSecondaryCtaVariant`,type:`Enums\\\\HeroSecondaryCtaVariant|string|null`,id:`param-hero-secondary-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaSize`,type:`Enums\\\\HeroSecondaryCtaSize|string|null`,id:`param-hero-secondary-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaRadius`,type:`Enums\\\\HeroSecondaryCtaRadius|string|null`,id:`param-hero-secondary-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaColor`,type:`?string`,id:`param-hero-secondary-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaColorLight`,type:`?string`,id:`param-hero-secondary-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`heroSecondaryCtaTextColor`,type:`?string`,id:`param-hero-secondary-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`heroSecondaryCtaTextColorLight`,type:`?string`,id:`param-hero-secondary-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaHoverColor`,type:`?string`,id:`param-hero-secondary-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaHoverColorLight`,type:`?string`,id:`param-hero-secondary-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaStyle`,type:`Enums\\\\HeroSecondaryCtaStyle|string|null`,id:`param-hero-secondary-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaShadowColor`,type:`?string`,id:`param-hero-secondary-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaShadowColorLight`,type:`?string`,id:`param-hero-secondary-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaAnimation`,type:`Enums\\\\HeroSecondaryCtaAnimation|string|null`,id:`param-hero-secondary-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIcon`,type:`?string`,id:`param-hero-secondary-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`heroSecondaryCtaIconFamily`,type:`Enums\\\\HeroSecondaryCtaIconFamily|string|null`,id:`param-hero-secondary-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIconPosition`,type:`Enums\\\\HeroSecondaryCtaIconPosition|string|null`,id:`param-hero-secondary-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIconNudge`,type:`?bool`,id:`param-hero-secondary-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-4`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-12`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`LayoutWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/layout`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\LayoutWidgetType|string`,required:true,id:`param-type-6`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/layout`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/layout`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-14`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-8`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsxs(ResponseField,{name:`columns`,type:`?LayoutColumnArea`,id:`param-columns`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`LayoutColumnArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`LayoutColumnArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutColumnArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-9`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-15`,children:_jsx(_components.p,{children:`The area’s id, set by the site: leave it out when you write one.`})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, LayoutColumnWidget>|null`,id:`param-items-3`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`LayoutColumnWidget`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them).`]}),_jsxs(Expandable,{title:`LayoutColumnWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutColumnWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/layout-column`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\LayoutColumnWidgetType|string`,required:true,id:`param-type-7`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/layout-column`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/layout-column`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-16`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-10`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`colstart`,type:`?int`,id:`param-colstart`,children:_jsx(_components.p,{children:`Colstart.`})}),_jsx(ResponseField,{name:`colspan`,type:`?int`,id:`param-colspan`,children:_jsx(_components.p,{children:`Colspan.`})}),_jsx(ResponseField,{name:`rowstart`,type:`?int`,id:`param-rowstart`,children:_jsx(_components.p,{children:`Rowstart.`})}),_jsx(ResponseField,{name:`rowspan`,type:`?int`,id:`param-rowspan`,children:_jsx(_components.p,{children:`Rowspan.`})}),_jsx(ResponseField,{name:`order`,type:`?int`,id:`param-order`,children:_jsx(_components.p,{children:`Order.`})}),_jsxs(ResponseField,{name:`content`,type:`?LayoutColumnContentArea`,id:`param-content-1`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`LayoutColumnContentArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`LayoutColumnContentArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutColumnContentArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-11`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-17`,children:_jsx(_components.p,{children:`The area’s id, set by the site: leave it out when you write one.`})}),_jsx(ResponseField,{name:`items`,type:`Collection\u003cint, RichTextWidget|ImageWidget|VideoWidget|IntroWidget|StatsWidget|StepsWidget|PricingWidget|FaqWidget|DeviceMockWidget>|null`,id:`param-items-4`,children:_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`LayoutColumnContentAreaItem`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them). Its fields are listed under the first `,_jsx(_components.code,{children:`LayoutColumnContentAreaItem`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-13`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`showTablet`,type:`?bool`,id:`param-show-tablet`,children:_jsx(_components.p,{children:`Visible on tablet.`})}),_jsx(ResponseField,{name:`showMobile`,type:`?bool`,id:`param-show-mobile`,children:_jsx(_components.p,{children:`Visible on mobile.`})}),_jsx(ResponseField,{name:`justify`,type:`Enums\\\\Justify|string|null`,id:`param-justify`,children:_jsxs(_components.p,{children:[`Horizontal alignment. One of `,_jsx(_components.code,{children:`stretch`}),`, `,_jsx(_components.code,{children:`start`}),`, `,_jsx(_components.code,{children:`end`}),`, `,_jsx(_components.code,{children:`center`}),`.`]})}),_jsx(ResponseField,{name:`align`,type:`Enums\\\\Align|string|null`,id:`param-align`,children:_jsxs(_components.p,{children:[`Vertical alignment. One of `,_jsx(_components.code,{children:`stretch`}),`, `,_jsx(_components.code,{children:`start`}),`, `,_jsx(_components.code,{children:`end`}),`, `,_jsx(_components.code,{children:`center`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-14`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-15`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-5`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-16`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`IntroWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\IntroWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`intro`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\IntroWidgetType|string`,required:true,id:`param-type-8`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`intro`}),`. One of `,_jsx(_components.code,{children:`intro`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-18`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-12`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`introEyebrow`,type:`?string`,id:`param-intro-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`introEyebrowColor`,type:`?string`,id:`param-intro-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`introEyebrowColorLight`,type:`?string`,id:`param-intro-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`introEyebrowWeight`,type:`Enums\\\\IntroEyebrowWeight|string|null`,id:`param-intro-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`introEyebrowSize`,type:`Enums\\\\IntroEyebrowSize|string|null`,id:`param-intro-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`introHeadline`,type:`?string`,id:`param-intro-headline`,children:_jsx(_components.p,{children:`Headline.`})}),_jsx(ResponseField,{name:`introHeadlineColor`,type:`?string`,id:`param-intro-headline-color`,children:_jsx(_components.p,{children:`Optional. Overrides the headline color. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`introHeadlineColorLight`,type:`?string`,id:`param-intro-headline-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`introHeadlineWeight`,type:`Enums\\\\IntroHeadlineWeight|string|null`,id:`param-intro-headline-weight`,children:_jsxs(_components.p,{children:[`Headline weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`introBody`,type:`?string`,id:`param-intro-body`,children:_jsx(_components.p,{children:`Body copy.`})}),_jsx(ResponseField,{name:`introBodyColor`,type:`?string`,id:`param-intro-body-color`,children:_jsx(_components.p,{children:`Optional. Overrides the body text color. Leave empty for the muted default.`})}),_jsx(ResponseField,{name:`introBodyColorLight`,type:`?string`,id:`param-intro-body-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the muted default.`})}),_jsx(ResponseField,{name:`introBodyWeight`,type:`Enums\\\\IntroBodyWeight|string|null`,id:`param-intro-body-weight`,children:_jsxs(_components.p,{children:[`Body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`introPhotoPlacement`,type:`Enums\\\\IntroPhotoPlacement|string|null`,id:`param-intro-photo-placement`,children:_jsxs(_components.p,{children:[`Where the optional photo sits. Left/right place it beside the text; Full background fills the whole section behind the text (with a readability overlay). One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`, `,_jsx(_components.code,{children:`background`}),`.`]})}),_jsx(ResponseField,{name:`introImage`,type:`?ImageArea`,id:`param-intro-image`,children:_jsxs(_components.p,{children:[`An `,_jsx(_components.code,{children:`ImageArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`introPhotoCorners`,type:`Enums\\\\IntroPhotoCorners|string|null`,id:`param-intro-photo-corners`,children:_jsxs(_components.p,{children:[`Photo corners. One of `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`squared`}),`.`]})}),_jsx(ResponseField,{name:`introPhotoFrame`,type:`Enums\\\\IntroPhotoFrame|string|null`,id:`param-intro-photo-frame`,children:_jsxs(_components.p,{children:[`Border draws a frame around the photo; Offset adds a refined offset accent frame behind it. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`offset`}),`.`]})}),_jsx(ResponseField,{name:`introPhotoFrameColor`,type:`?string`,id:`param-intro-photo-frame-color`,children:_jsx(_components.p,{children:`Border / offset-frame color. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`introPhotoTilt`,type:`Enums\\\\IntroPhotoTilt|string|null`,id:`param-intro-photo-tilt`,children:_jsxs(_components.p,{children:[`A slight rotation for a more playful look. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`introPhotoHover`,type:`Enums\\\\IntroPhotoHover|string|null`,id:`param-intro-photo-hover`,children:_jsxs(_components.p,{children:[`Photo hover effect. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`zoom`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`lift-glow`}),`, `,_jsx(_components.code,{children:`zoom-glow`}),`.`]})}),_jsx(ResponseField,{name:`introOverlayColor`,type:`?string`,id:`param-intro-overlay-color`,children:_jsx(_components.p,{children:`Scrim behind the text over a full-background photo. Leave empty to use the dark surface color.`})}),_jsx(ResponseField,{name:`introOverlayColorLight`,type:`?string`,id:`param-intro-overlay-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme overlay, then the light surface color.`})}),_jsx(ResponseField,{name:`introOverlayOpacity`,type:`?float`,id:`param-intro-overlay-opacity`,children:_jsx(_components.p,{children:`Overlay opacity (%). 0 to 100.`})}),_jsx(ResponseField,{name:`introBg`,type:`Enums\\\\IntroBg|string|null`,id:`param-intro-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`introBgCustom`,type:`?string`,id:`param-intro-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`introBgLight`,type:`Enums\\\\IntroBgLight|string|null`,id:`param-intro-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`introBgLightCustom`,type:`?string`,id:`param-intro-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`introFontOverrides`,type:`Collection\u003cint, IntroWidgetIntroFontOverridesItem>|null`,id:`param-intro-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`IntroWidgetIntroFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`IntroWidgetIntroFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\IntroWidgetIntroFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-19`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-3`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-3`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-3`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-3`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-3`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-3`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-3`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, IntroWidgetIntroFontOverridesItemUploadsItem>|null`,id:`param-uploads-3`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`IntroWidgetIntroFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`IntroWidgetIntroFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\IntroWidgetIntroFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-20`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-3`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-3`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-17`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-3`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-18`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-6`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-19`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`FeatureWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`feature`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FeatureWidgetType|string`,required:true,id:`param-type-9`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`feature`}),`. One of `,_jsx(_components.code,{children:`feature`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-21`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-13`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`featureColumns`,type:`Enums\\\\FeatureColumns|string|null`,id:`param-feature-columns`,children:_jsxs(_components.p,{children:[`Auto fits as many as comfortably fit and works for any number of cards. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`featureGap`,type:`Enums\\\\FeatureGap|string|null`,id:`param-feature-gap`,children:_jsxs(_components.p,{children:[`Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`featureCardSize`,type:`Enums\\\\FeatureCardSize|string|null`,id:`param-feature-card-size`,children:_jsxs(_components.p,{children:[`Scales padding, icon, title, and the index numeral together. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`featureCardStyle`,type:`Enums\\\\FeatureCardStyle|string|null`,id:`param-feature-card-style`,children:_jsxs(_components.p,{children:[`The card treatment. Poster (the default) frames the card with an accent keyline; Raised is a quiet lit card; Luxe a frosted glass panel; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`featureCardStyleRadius`,type:`Enums\\\\FeatureCardStyleRadius|string|null`,id:`param-feature-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`featureCardStyleAccentColor`,type:`?string`,id:`param-feature-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`featureCardStyleAccentColorLight`,type:`?string`,id:`param-feature-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`featureCardStyleForgeScope`,type:`Enums\\\\FeatureCardStyleForgeScope|string|null`,id:`param-feature-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`featureCardStyleForgeWeight`,type:`Enums\\\\FeatureCardStyleForgeWeight|string|null`,id:`param-feature-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`featureCardHover`,type:`Enums\\\\FeatureCardHover|string|null`,id:`param-feature-card-hover`,children:_jsxs(_components.p,{children:[`How a card reacts on hover. Pop is the lift + hard offset shadow; Glow is a soft accent halo. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`.`]})}),_jsx(ResponseField,{name:`featureCardHoverColor`,type:`?string`,id:`param-feature-card-hover-color`,children:_jsx(_components.p,{children:`Border / shadow / glow color on hover. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`featureCardHoverColorLight`,type:`?string`,id:`param-feature-card-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`featureNumbering`,type:`?bool`,id:`param-feature-numbering`,children:_jsx(_components.p,{children:`A big outlined numeral on each card (01, 02, …). Great for step-by-step sequences; turn off when the cards aren’t ordered.`})}),_jsx(ResponseField,{name:`featureNumberFill`,type:`Enums\\\\FeatureNumberFill|string|null`,id:`param-feature-number-fill`,children:_jsxs(_components.p,{children:[`Same treatment as the hero ghost text: all numbers solid, outlined and filling on hover, or always outlined. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`hover`}),`, `,_jsx(_components.code,{children:`outline`}),`.`]})}),_jsx(ResponseField,{name:`featureNumberColor`,type:`?string`,id:`param-feature-number-color`,children:_jsx(_components.p,{children:`Optional. Tints the numeral fill + outline. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`featureNumberColorLight`,type:`?string`,id:`param-feature-number-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`featureTitleColor`,type:`?string`,id:`param-feature-title-color`,children:_jsx(_components.p,{children:`Optional. Overrides the card title color. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`featureTitleColorLight`,type:`?string`,id:`param-feature-title-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`featureTitleWeight`,type:`Enums\\\\FeatureTitleWeight|string|null`,id:`param-feature-title-weight`,children:_jsxs(_components.p,{children:[`Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`featureTextColor`,type:`?string`,id:`param-feature-text-color`,children:_jsx(_components.p,{children:`Optional. Overrides the card text color. Leave empty for the muted default.`})}),_jsx(ResponseField,{name:`featureTextColorLight`,type:`?string`,id:`param-feature-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the muted default.`})}),_jsx(ResponseField,{name:`featureTextWeight`,type:`Enums\\\\FeatureTextWeight|string|null`,id:`param-feature-text-weight`,children:_jsxs(_components.p,{children:[`Text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsxs(ResponseField,{name:`featureCards`,type:`Collection\u003cint, FeatureWidgetFeatureCardsItem>|null`,id:`param-feature-cards`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FeatureWidgetFeatureCardsItem`}),`. Feature cards.`]}),_jsxs(Expandable,{title:`FeatureWidgetFeatureCardsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidgetFeatureCardsItem)`,children:[_jsx(ResponseField,{name:`cardTitle`,type:`string`,required:true,id:`param-card-title`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Title.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-22`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the design’s own color rhythm.`})}),_jsx(ResponseField,{name:`iconAnimation`,type:`Enums\\\\IconAnimation|string|null`,id:`param-icon-animation`,children:_jsxs(_components.p,{children:[`Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`.`]})}),_jsx(ResponseField,{name:`iconSize`,type:`Enums\\\\IconSize|string|null`,id:`param-icon-size`,children:_jsxs(_components.p,{children:[`Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`.`]})}),_jsx(ResponseField,{name:`cardText`,type:`?string`,id:`param-card-text`,children:_jsx(_components.p,{children:`Text.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-20`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`featureBg`,type:`Enums\\\\FeatureBg|string|null`,id:`param-feature-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`featureBgCustom`,type:`?string`,id:`param-feature-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`featureBgLight`,type:`Enums\\\\FeatureBgLight|string|null`,id:`param-feature-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`featureBgLightCustom`,type:`?string`,id:`param-feature-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`featureFontOverrides`,type:`Collection\u003cint, FeatureWidgetFeatureFontOverridesItem>|null`,id:`param-feature-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FeatureWidgetFeatureFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FeatureWidgetFeatureFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidgetFeatureFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-23`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-4`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-4`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-4`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-4`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-4`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-4`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-4`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FeatureWidgetFeatureFontOverridesItemUploadsItem>|null`,id:`param-uploads-4`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FeatureWidgetFeatureFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FeatureWidgetFeatureFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidgetFeatureFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-24`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-4`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-4`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-21`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-4`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-22`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-7`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-23`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`StatsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`stats`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\StatsWidgetType|string`,required:true,id:`param-type-10`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`stats`}),`. One of `,_jsx(_components.code,{children:`stats`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-25`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-14`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`statsEyebrowEnabled`,type:`?bool`,id:`param-stats-eyebrow-enabled`,children:_jsx(_components.p,{children:`A small label above the heading (e.g. “By the numbers”).`})}),_jsx(ResponseField,{name:`statsEyebrow`,type:`?string`,id:`param-stats-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow.`})}),_jsx(ResponseField,{name:`statsEyebrowColor`,type:`?string`,id:`param-stats-eyebrow-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`statsEyebrowColorLight`,type:`?string`,id:`param-stats-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`statsEyebrowWeight`,type:`Enums\\\\StatsEyebrowWeight|string|null`,id:`param-stats-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`statsEyebrowSize`,type:`Enums\\\\StatsEyebrowSize|string|null`,id:`param-stats-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`statsHeading`,type:`?string`,id:`param-stats-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the numbers.`})}),_jsx(ResponseField,{name:`statsHeadingColor`,type:`?string`,id:`param-stats-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`statsHeadingColorLight`,type:`?string`,id:`param-stats-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`statsHeadingWeight`,type:`Enums\\\\StatsHeadingWeight|string|null`,id:`param-stats-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`statsColumns`,type:`Enums\\\\StatsColumns|string|null`,id:`param-stats-columns`,children:_jsxs(_components.p,{children:[`Auto fits as many as comfortably fit and works for any number of stats. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`statsGap`,type:`Enums\\\\StatsGap|string|null`,id:`param-stats-gap`,children:_jsxs(_components.p,{children:[`Gap between stats. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`statsSize`,type:`Enums\\\\StatsSize|string|null`,id:`param-stats-size`,children:_jsxs(_components.p,{children:[`The baseline scale for the whole stat (value / icon / label / description stay proportional). Fine-tune any single element with its own size control below. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`statsAlign`,type:`Enums\\\\StatsAlign|string|null`,id:`param-stats-align`,children:_jsxs(_components.p,{children:[`Alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`statsDividers`,type:`?bool`,id:`param-stats-dividers`,children:_jsx(_components.p,{children:`A hairline rule between each stat — the classic “by the numbers” rail.`})}),_jsx(ResponseField,{name:`statsCountUp`,type:`?bool`,id:`param-stats-count-up`,children:_jsx(_components.p,{children:`Numbers tick up from zero when the band scrolls into view. Non-numeric values and reduced-motion visitors simply show the final value.`})}),_jsx(ResponseField,{name:`statsIconSize`,type:`Enums\\\\StatsIconSize|string|null`,id:`param-stats-icon-size`,children:_jsxs(_components.p,{children:[`Size of the icon above each number, independent of the overall stat size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`xxl`}),`.`]})}),_jsx(ResponseField,{name:`statsIconGap`,type:`Enums\\\\StatsIconGap|string|null`,id:`param-stats-icon-gap`,children:_jsxs(_components.p,{children:[`Space between the icon and the number below it. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`statsValueSize`,type:`Enums\\\\StatsValueSize|string|null`,id:`param-stats-value-size`,children:_jsxs(_components.p,{children:[`Value size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`xs`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`.`]})}),_jsx(ResponseField,{name:`statsValueWeight`,type:`Enums\\\\StatsValueWeight|string|null`,id:`param-stats-value-weight`,children:_jsxs(_components.p,{children:[`Value weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`statsValueColor`,type:`?string`,id:`param-stats-value-color`,children:_jsx(_components.p,{children:`The big numeral. Optional — leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`statsValueColorLight`,type:`?string`,id:`param-stats-value-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`statsLabelSize`,type:`Enums\\\\StatsLabelSize|string|null`,id:`param-stats-label-size`,children:_jsxs(_components.p,{children:[`Label size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`xs`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`.`]})}),_jsx(ResponseField,{name:`statsLabelWeight`,type:`Enums\\\\StatsLabelWeight|string|null`,id:`param-stats-label-weight`,children:_jsxs(_components.p,{children:[`Label weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`statsLabelColor`,type:`?string`,id:`param-stats-label-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`statsLabelColorLight`,type:`?string`,id:`param-stats-label-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`statsDescriptionSize`,type:`Enums\\\\StatsDescriptionSize|string|null`,id:`param-stats-description-size`,children:_jsxs(_components.p,{children:[`Description size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`xs`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`.`]})}),_jsx(ResponseField,{name:`statsDescriptionWeight`,type:`Enums\\\\StatsDescriptionWeight|string|null`,id:`param-stats-description-weight`,children:_jsxs(_components.p,{children:[`Description weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`statsDescriptionColor`,type:`?string`,id:`param-stats-description-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`statsDescriptionColorLight`,type:`?string`,id:`param-stats-description-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsxs(ResponseField,{name:`stats`,type:`Collection\u003cint, StatsWidgetStatsItem>|null`,id:`param-stats`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`StatsWidgetStatsItem`}),`. Stats.`]}),_jsxs(Expandable,{title:`StatsWidgetStatsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidgetStatsItem)`,children:[_jsx(ResponseField,{name:`value`,type:`string`,required:true,id:`param-value`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The number, e.g. 500, 4.9, 12 — symbols go in the prefix/suffix so the count-up animates the number alone.`]})}),_jsx(ResponseField,{name:`label`,type:`string`,required:true,id:`param-label`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Label.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-26`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-1`,children:_jsx(_components.p,{children:`Optional Font Awesome icon shown above the number (e.g. star, bolt, chart-line). Leave empty for no icon.`})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-1`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-1`,children:_jsx(_components.p,{children:`Optional — leave empty to use the design’s own color rhythm.`})}),_jsx(ResponseField,{name:`valuePrefix`,type:`?string`,id:`param-value-prefix`,children:_jsx(_components.p,{children:`Optional, shown before the number (e.g. $, ~, >). Kept out of the count-up.`})}),_jsx(ResponseField,{name:`valueSuffix`,type:`?string`,id:`param-value-suffix`,children:_jsx(_components.p,{children:`Optional, shown after the number (e.g. +, %, k, yrs, ★).`})}),_jsx(ResponseField,{name:`description`,type:`?string`,id:`param-description`,children:_jsx(_components.p,{children:`Optional small text under the label.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-24`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`statsBg`,type:`Enums\\\\StatsBg|string|null`,id:`param-stats-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`statsBgCustom`,type:`?string`,id:`param-stats-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`statsBgLight`,type:`Enums\\\\StatsBgLight|string|null`,id:`param-stats-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`statsBgLightCustom`,type:`?string`,id:`param-stats-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`statsFontOverrides`,type:`Collection\u003cint, StatsWidgetStatsFontOverridesItem>|null`,id:`param-stats-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`StatsWidgetStatsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`StatsWidgetStatsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidgetStatsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-27`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-5`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-5`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-5`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-5`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-5`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-5`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-5`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, StatsWidgetStatsFontOverridesItemUploadsItem>|null`,id:`param-uploads-5`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`StatsWidgetStatsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`StatsWidgetStatsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidgetStatsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-28`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-5`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-5`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-25`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-5`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-26`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`statsCtaLabel`,type:`?string`,id:`param-stats-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`statsCtaUrl`,type:`?string`,id:`param-stats-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`statsCtaNewTab`,type:`?bool`,id:`param-stats-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`statsCtaVariant`,type:`Enums\\\\StatsCtaVariant|string|null`,id:`param-stats-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaSize`,type:`Enums\\\\StatsCtaSize|string|null`,id:`param-stats-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaRadius`,type:`Enums\\\\StatsCtaRadius|string|null`,id:`param-stats-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaColor`,type:`?string`,id:`param-stats-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`statsCtaColorLight`,type:`?string`,id:`param-stats-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`statsCtaTextColor`,type:`?string`,id:`param-stats-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`statsCtaTextColorLight`,type:`?string`,id:`param-stats-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`statsCtaHoverColor`,type:`?string`,id:`param-stats-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`statsCtaHoverColorLight`,type:`?string`,id:`param-stats-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`statsCtaStyle`,type:`Enums\\\\StatsCtaStyle|string|null`,id:`param-stats-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaShadowColor`,type:`?string`,id:`param-stats-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`statsCtaShadowColorLight`,type:`?string`,id:`param-stats-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`statsCtaAnimation`,type:`Enums\\\\StatsCtaAnimation|string|null`,id:`param-stats-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaIcon`,type:`?string`,id:`param-stats-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`statsCtaIconFamily`,type:`Enums\\\\StatsCtaIconFamily|string|null`,id:`param-stats-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaIconPosition`,type:`Enums\\\\StatsCtaIconPosition|string|null`,id:`param-stats-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`statsCtaIconNudge`,type:`?bool`,id:`param-stats-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-8`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-27`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`LogosWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`logos`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\LogosWidgetType|string`,required:true,id:`param-type-11`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`logos`}),`. One of `,_jsx(_components.code,{children:`logos`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-29`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-15`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`logosEyebrowEnabled`,type:`?bool`,id:`param-logos-eyebrow-enabled`,children:_jsx(_components.p,{children:`A small label above the heading (e.g. “Trusted by”).`})}),_jsx(ResponseField,{name:`logosEyebrow`,type:`?string`,id:`param-logos-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow.`})}),_jsx(ResponseField,{name:`logosEyebrowColor`,type:`?string`,id:`param-logos-eyebrow-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`logosEyebrowColorLight`,type:`?string`,id:`param-logos-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`logosEyebrowWeight`,type:`Enums\\\\LogosEyebrowWeight|string|null`,id:`param-logos-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`logosEyebrowSize`,type:`Enums\\\\LogosEyebrowSize|string|null`,id:`param-logos-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`logosHeading`,type:`?string`,id:`param-logos-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the logos.`})}),_jsx(ResponseField,{name:`logosHeadingColor`,type:`?string`,id:`param-logos-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`logosHeadingColorLight`,type:`?string`,id:`param-logos-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`logosHeadingWeight`,type:`Enums\\\\LogosHeadingWeight|string|null`,id:`param-logos-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`logosIntro`,type:`?string`,id:`param-logos-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`logosIntroColor`,type:`?string`,id:`param-logos-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`logosIntroColorLight`,type:`?string`,id:`param-logos-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`logosIntroWeight`,type:`Enums\\\\LogosIntroWeight|string|null`,id:`param-logos-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`logosDisplay`,type:`Enums\\\\LogosDisplay|string|null`,id:`param-logos-display`,children:_jsxs(_components.p,{children:[`A slow scrolling ribbon (marquee) or a calm static grid. One of `,_jsx(_components.code,{children:`marquee`}),`, `,_jsx(_components.code,{children:`grid`}),`.`]})}),_jsx(ResponseField,{name:`logosSpeed`,type:`Enums\\\\LogosSpeed|string|null`,id:`param-logos-speed`,children:_jsxs(_components.p,{children:[`Marquee speed. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`logosDirection`,type:`Enums\\\\LogosDirection|string|null`,id:`param-logos-direction`,children:_jsxs(_components.p,{children:[`Marquee direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`logosMotionPause`,type:`?bool`,id:`param-logos-motion-pause`,children:_jsx(_components.p,{children:`Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.`})}),_jsx(ResponseField,{name:`logosColumns`,type:`Enums\\\\LogosColumns|string|null`,id:`param-logos-columns`,children:_jsxs(_components.p,{children:[`Auto fits as many as comfortably fit and works for any number of logos. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`.`]})}),_jsx(ResponseField,{name:`logosGap`,type:`Enums\\\\LogosGap|string|null`,id:`param-logos-gap`,children:_jsxs(_components.p,{children:[`Gap between logos. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`logosSize`,type:`Enums\\\\LogosSize|string|null`,id:`param-logos-size`,children:_jsxs(_components.p,{children:[`The height each logo is scaled to (width follows the logo’s aspect ratio). One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`logosAlign`,type:`Enums\\\\LogosAlign|string|null`,id:`param-logos-align`,children:_jsxs(_components.p,{children:[`Aligns the eyebrow / heading / intro (and the grid when there are few logos). One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`logosTile`,type:`?bool`,id:`param-logos-tile`,children:_jsx(_components.p,{children:`Sets every logo on a raised, bordered card. Off = logos sit straight on the background.`})}),_jsx(ResponseField,{name:`logosGrayscale`,type:`?bool`,id:`param-logos-grayscale`,children:_jsx(_components.p,{children:`Mutes the logos to grayscale and dims them, returning to full color on hover — the classic logo-wall look.`})}),_jsxs(ResponseField,{name:`logos`,type:`Collection\u003cint, LogosWidgetLogosItem>|null`,id:`param-logos`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`LogosWidgetLogosItem`}),`. Logos.`]}),_jsxs(Expandable,{title:`LogosWidgetLogosItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidgetLogosItem)`,children:[_jsx(ResponseField,{name:`image`,type:`Collection\u003cint, array\u003cstring, mixed>>`,required:true,id:`param-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Pick a logo from the Images library. A transparent PNG or an SVG works best. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`name`,type:`string`,required:true,id:`param-name`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Company / partner / certification name — used as the image alt text and the link title.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-30`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`linkUrl`,type:`?string`,id:`param-link-url`,children:_jsx(_components.p,{children:`Make this logo a link, e.g. to the partner’s site. Opens in a new tab for external URLs.`})}),_jsx(ResponseField,{name:`invertDark`,type:`?bool`,id:`param-invert-dark`,children:_jsx(_components.p,{children:`For dark / black logos that would vanish on the dark theme — flips them to light. Leave off for full-color or white logos.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-28`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`logosBg`,type:`Enums\\\\LogosBg|string|null`,id:`param-logos-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`logosBgCustom`,type:`?string`,id:`param-logos-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`logosBgLight`,type:`Enums\\\\LogosBgLight|string|null`,id:`param-logos-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`logosBgLightCustom`,type:`?string`,id:`param-logos-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`logosFontOverrides`,type:`Collection\u003cint, LogosWidgetLogosFontOverridesItem>|null`,id:`param-logos-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`LogosWidgetLogosFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`LogosWidgetLogosFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidgetLogosFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-31`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-6`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-6`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-6`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-6`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-6`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-6`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-6`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, LogosWidgetLogosFontOverridesItemUploadsItem>|null`,id:`param-uploads-6`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`LogosWidgetLogosFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`LogosWidgetLogosFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidgetLogosFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-6`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-32`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-6`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-6`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-29`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-6`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-30`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`logosCtaLabel`,type:`?string`,id:`param-logos-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`logosCtaUrl`,type:`?string`,id:`param-logos-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`logosCtaNewTab`,type:`?bool`,id:`param-logos-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`logosCtaVariant`,type:`Enums\\\\LogosCtaVariant|string|null`,id:`param-logos-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaSize`,type:`Enums\\\\LogosCtaSize|string|null`,id:`param-logos-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaRadius`,type:`Enums\\\\LogosCtaRadius|string|null`,id:`param-logos-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaColor`,type:`?string`,id:`param-logos-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`logosCtaColorLight`,type:`?string`,id:`param-logos-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`logosCtaTextColor`,type:`?string`,id:`param-logos-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`logosCtaTextColorLight`,type:`?string`,id:`param-logos-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`logosCtaHoverColor`,type:`?string`,id:`param-logos-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`logosCtaHoverColorLight`,type:`?string`,id:`param-logos-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`logosCtaStyle`,type:`Enums\\\\LogosCtaStyle|string|null`,id:`param-logos-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaShadowColor`,type:`?string`,id:`param-logos-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`logosCtaShadowColorLight`,type:`?string`,id:`param-logos-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`logosCtaAnimation`,type:`Enums\\\\LogosCtaAnimation|string|null`,id:`param-logos-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaIcon`,type:`?string`,id:`param-logos-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`logosCtaIconFamily`,type:`Enums\\\\LogosCtaIconFamily|string|null`,id:`param-logos-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaIconPosition`,type:`Enums\\\\LogosCtaIconPosition|string|null`,id:`param-logos-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`logosCtaIconNudge`,type:`?bool`,id:`param-logos-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-9`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-31`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`StepsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`steps`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\StepsWidgetType|string`,required:true,id:`param-type-12`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`steps`}),`. One of `,_jsx(_components.code,{children:`steps`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-33`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-16`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`stepsEyebrowEnabled`,type:`?bool`,id:`param-steps-eyebrow-enabled`,children:_jsx(_components.p,{children:`A small label above the heading (e.g. “How it works”).`})}),_jsx(ResponseField,{name:`stepsEyebrow`,type:`?string`,id:`param-steps-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow.`})}),_jsx(ResponseField,{name:`stepsEyebrowColor`,type:`?string`,id:`param-steps-eyebrow-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`stepsEyebrowColorLight`,type:`?string`,id:`param-steps-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`stepsEyebrowWeight`,type:`Enums\\\\StepsEyebrowWeight|string|null`,id:`param-steps-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`stepsEyebrowSize`,type:`Enums\\\\StepsEyebrowSize|string|null`,id:`param-steps-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`stepsHeading`,type:`?string`,id:`param-steps-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the steps.`})}),_jsx(ResponseField,{name:`stepsHeadingColor`,type:`?string`,id:`param-steps-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`stepsHeadingColorLight`,type:`?string`,id:`param-steps-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`stepsHeadingWeight`,type:`Enums\\\\StepsHeadingWeight|string|null`,id:`param-steps-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`stepsHeadingSize`,type:`Enums\\\\StepsHeadingSize|string|null`,id:`param-steps-heading-size`,children:_jsxs(_components.p,{children:[`Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`stepsIntro`,type:`?string`,id:`param-steps-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`stepsIntroColor`,type:`?string`,id:`param-steps-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`stepsIntroColorLight`,type:`?string`,id:`param-steps-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`stepsIntroWeight`,type:`Enums\\\\StepsIntroWeight|string|null`,id:`param-steps-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`stepsIntroSize`,type:`Enums\\\\StepsIntroSize|string|null`,id:`param-steps-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`stepsLayout`,type:`Enums\\\\StepsLayout|string|null`,id:`param-steps-layout`,children:_jsxs(_components.p,{children:[`Horizontal lays the steps across a row (marker on top); Vertical stacks them as a classic timeline (marker on the left). One of `,_jsx(_components.code,{children:`horizontal`}),`, `,_jsx(_components.code,{children:`vertical`}),`.`]})}),_jsx(ResponseField,{name:`stepsColumns`,type:`Enums\\\\StepsColumns|string|null`,id:`param-steps-columns`,children:_jsxs(_components.p,{children:[`Horizontal only. Auto fits as many as comfortably fit and works for any number of steps. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`stepsGap`,type:`Enums\\\\StepsGap|string|null`,id:`param-steps-gap`,children:_jsxs(_components.p,{children:[`Gap between steps. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`stepsAlign`,type:`Enums\\\\StepsAlign|string|null`,id:`param-steps-align`,children:_jsxs(_components.p,{children:[`Horizontal only — aligns the section header and each step’s text. (Vertical is always left-aligned beside its marker.) One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`stepsConnector`,type:`?bool`,id:`param-steps-connector`,children:_jsx(_components.p,{children:`A line linking the step markers into a timeline (down the markers when vertical, across them when horizontal).`})}),_jsx(ResponseField,{name:`stepsCardStyle`,type:`Enums\\\\StepsCardStyle|string|null`,id:`param-steps-card-style`,children:_jsxs(_components.p,{children:[`Plain keeps the connector-linked timeline (just marker + text, no card). Every other style boxes each step — Raised is a quiet lit card, Luxe a frosted glass panel, Outline a plaque frame, Spine adds a color rail, Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`stepsCardStyleRadius`,type:`Enums\\\\StepsCardStyleRadius|string|null`,id:`param-steps-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`stepsCardStyleAccentColor`,type:`?string`,id:`param-steps-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`stepsCardStyleAccentColorLight`,type:`?string`,id:`param-steps-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`stepsCardStyleForgeScope`,type:`Enums\\\\StepsCardStyleForgeScope|string|null`,id:`param-steps-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`stepsCardStyleForgeWeight`,type:`Enums\\\\StepsCardStyleForgeWeight|string|null`,id:`param-steps-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`stepsCardHover`,type:`Enums\\\\StepsCardHover|string|null`,id:`param-steps-card-hover`,children:_jsxs(_components.p,{children:[`What a boxed step does on hover (applies when Step style is not Plain). Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`stepsMarker`,type:`Enums\\\\StepsMarker|string|null`,id:`param-steps-marker`,children:_jsxs(_components.p,{children:[`Number auto-counts 1, 2, 3…; Icon shows each step’s icon (falling back to the number when a step has none); None hides the marker badge. One of `,_jsx(_components.code,{children:`number`}),`, `,_jsx(_components.code,{children:`icon`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`stepsMarkerStyle`,type:`Enums\\\\StepsMarkerStyle|string|null`,id:`param-steps-marker-style`,children:_jsxs(_components.p,{children:[`Soft is a tinted accent badge; Filled is a solid accent badge; Outline is a bordered badge. One of `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`filled`}),`, `,_jsx(_components.code,{children:`outline`}),`.`]})}),_jsx(ResponseField,{name:`stepsMarkerShape`,type:`Enums\\\\StepsMarkerShape|string|null`,id:`param-steps-marker-shape`,children:_jsxs(_components.p,{children:[`Marker shape. One of `,_jsx(_components.code,{children:`circle`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`stepsMarkerSize`,type:`Enums\\\\StepsMarkerSize|string|null`,id:`param-steps-marker-size`,children:_jsxs(_components.p,{children:[`Marker size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`stepsAccentColor`,type:`?string`,id:`param-steps-accent-color`,children:_jsx(_components.p,{children:`Color for the marker badge and the connector line. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`stepsAccentColorLight`,type:`?string`,id:`param-steps-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme accent.`})}),_jsx(ResponseField,{name:`stepsTitleSize`,type:`Enums\\\\StepsTitleSize|string|null`,id:`param-steps-title-size`,children:_jsxs(_components.p,{children:[`Title size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`stepsTitleWeight`,type:`Enums\\\\StepsTitleWeight|string|null`,id:`param-steps-title-weight`,children:_jsxs(_components.p,{children:[`Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`stepsTitleColor`,type:`?string`,id:`param-steps-title-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`stepsTitleColorLight`,type:`?string`,id:`param-steps-title-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`stepsBodySize`,type:`Enums\\\\StepsBodySize|string|null`,id:`param-steps-body-size`,children:_jsxs(_components.p,{children:[`Body size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`stepsBodyWeight`,type:`Enums\\\\StepsBodyWeight|string|null`,id:`param-steps-body-weight`,children:_jsxs(_components.p,{children:[`Body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`stepsBodyColor`,type:`?string`,id:`param-steps-body-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`stepsBodyColorLight`,type:`?string`,id:`param-steps-body-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsxs(ResponseField,{name:`stepsItems`,type:`Collection\u003cint, StepsWidgetStepsItemsItem>|null`,id:`param-steps-items`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`StepsWidgetStepsItemsItem`}),`. Each item is one step in the process. They render in this order; the number marker counts automatically.`]}),_jsxs(Expandable,{title:`StepsWidgetStepsItemsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidgetStepsItemsItem)`,children:[_jsx(ResponseField,{name:`title`,type:`string`,required:true,id:`param-title-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Title.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-34`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-2`,children:_jsx(_components.p,{children:`Optional Font Awesome icon for this step (e.g. calendar-check, circle-check, gear). Shown in the marker when the section marker is set to “Icon”; otherwise the step is numbered.`})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-2`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-2`,children:_jsx(_components.p,{children:`Optional — leave empty to use the design’s own color rhythm.`})}),_jsx(ResponseField,{name:`number`,type:`?string`,id:`param-number`,children:_jsx(_components.p,{children:`Overrides the auto number for this step’s marker, e.g. “01” or “A”. Leave empty to auto-count.`})}),_jsx(ResponseField,{name:`body`,type:`?string`,id:`param-body`,children:_jsx(_components.p,{children:`Optional description under the title.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-32`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`stepsBg`,type:`Enums\\\\StepsBg|string|null`,id:`param-steps-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`stepsBgCustom`,type:`?string`,id:`param-steps-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`stepsBgLight`,type:`Enums\\\\StepsBgLight|string|null`,id:`param-steps-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`stepsBgLightCustom`,type:`?string`,id:`param-steps-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`stepsFontOverrides`,type:`Collection\u003cint, StepsWidgetStepsFontOverridesItem>|null`,id:`param-steps-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`StepsWidgetStepsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`StepsWidgetStepsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidgetStepsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-35`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-7`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-7`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-7`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-7`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-7`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-7`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-7`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, StepsWidgetStepsFontOverridesItemUploadsItem>|null`,id:`param-uploads-7`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`StepsWidgetStepsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`StepsWidgetStepsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidgetStepsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-7`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-36`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-7`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-7`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-33`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-7`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-34`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`stepsCtaLabel`,type:`?string`,id:`param-steps-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`stepsCtaUrl`,type:`?string`,id:`param-steps-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`stepsCtaNewTab`,type:`?bool`,id:`param-steps-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`stepsCtaVariant`,type:`Enums\\\\StepsCtaVariant|string|null`,id:`param-steps-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaSize`,type:`Enums\\\\StepsCtaSize|string|null`,id:`param-steps-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaRadius`,type:`Enums\\\\StepsCtaRadius|string|null`,id:`param-steps-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaColor`,type:`?string`,id:`param-steps-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`stepsCtaColorLight`,type:`?string`,id:`param-steps-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`stepsCtaTextColor`,type:`?string`,id:`param-steps-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`stepsCtaTextColorLight`,type:`?string`,id:`param-steps-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`stepsCtaHoverColor`,type:`?string`,id:`param-steps-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`stepsCtaHoverColorLight`,type:`?string`,id:`param-steps-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`stepsCtaStyle`,type:`Enums\\\\StepsCtaStyle|string|null`,id:`param-steps-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaShadowColor`,type:`?string`,id:`param-steps-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`stepsCtaShadowColorLight`,type:`?string`,id:`param-steps-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`stepsCtaAnimation`,type:`Enums\\\\StepsCtaAnimation|string|null`,id:`param-steps-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaIcon`,type:`?string`,id:`param-steps-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`stepsCtaIconFamily`,type:`Enums\\\\StepsCtaIconFamily|string|null`,id:`param-steps-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaIconPosition`,type:`Enums\\\\StepsCtaIconPosition|string|null`,id:`param-steps-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`stepsCtaIconNudge`,type:`?bool`,id:`param-steps-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-10`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-35`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`MediaTextWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`media-text`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\MediaTextWidgetType|string`,required:true,id:`param-type-13`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`media-text`}),`. One of `,_jsx(_components.code,{children:`media-text`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-37`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-17`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowEnabled`,type:`?bool`,id:`param-media-text-eyebrow-enabled`,children:_jsx(_components.p,{children:`A small label above the section heading (e.g. “Why us”).`})}),_jsx(ResponseField,{name:`mediaTextEyebrow`,type:`?string`,id:`param-media-text-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow.`})}),_jsx(ResponseField,{name:`mediaTextEyebrowColor`,type:`?string`,id:`param-media-text-eyebrow-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`mediaTextEyebrowColorLight`,type:`?string`,id:`param-media-text-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`mediaTextEyebrowWeight`,type:`Enums\\\\MediaTextEyebrowWeight|string|null`,id:`param-media-text-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowSize`,type:`Enums\\\\MediaTextEyebrowSize|string|null`,id:`param-media-text-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextHeading`,type:`?string`,id:`param-media-text-heading`,children:_jsx(_components.p,{children:`Optional section heading above the blocks. Leave empty to show just the blocks.`})}),_jsx(ResponseField,{name:`mediaTextHeadingColor`,type:`?string`,id:`param-media-text-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`mediaTextHeadingColorLight`,type:`?string`,id:`param-media-text-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`mediaTextHeadingWeight`,type:`Enums\\\\MediaTextHeadingWeight|string|null`,id:`param-media-text-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextHeadingSize`,type:`Enums\\\\MediaTextHeadingSize|string|null`,id:`param-media-text-heading-size`,children:_jsxs(_components.p,{children:[`Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextIntro`,type:`?string`,id:`param-media-text-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`mediaTextIntroColor`,type:`?string`,id:`param-media-text-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`mediaTextIntroColorLight`,type:`?string`,id:`param-media-text-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`mediaTextIntroWeight`,type:`Enums\\\\MediaTextIntroWeight|string|null`,id:`param-media-text-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextIntroSize`,type:`Enums\\\\MediaTextIntroSize|string|null`,id:`param-media-text-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextAlign`,type:`Enums\\\\MediaTextAlign|string|null`,id:`param-media-text-align`,children:_jsxs(_components.p,{children:[`Aligns the section header and the text inside each block. (Side-by-side rows usually read best left-aligned.) One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextRatio`,type:`Enums\\\\MediaTextRatio|string|null`,id:`param-media-text-ratio`,children:_jsxs(_components.p,{children:[`For media-left / media-right rows: how the two columns share the width. One of `,_jsx(_components.code,{children:`balanced`}),`, `,_jsx(_components.code,{children:`media`}),`, `,_jsx(_components.code,{children:`text`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextVAlign`,type:`Enums\\\\MediaTextVAlign|string|null`,id:`param-media-text-v-align`,children:_jsxs(_components.p,{children:[`For media-left / media-right rows: how the text lines up against the media. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`top`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextMediaRatio`,type:`Enums\\\\MediaTextMediaRatio|string|null`,id:`param-media-text-media-ratio`,children:_jsxs(_components.p,{children:[`Aspect ratio of the media frame. Auto keeps an image at its natural shape (videos and embeds always use a ratio). One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`landscape`}),`, `,_jsx(_components.code,{children:`standard`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextMediaRadius`,type:`Enums\\\\MediaTextMediaRadius|string|null`,id:`param-media-text-media-radius`,children:_jsxs(_components.p,{children:[`Media corners. One of `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextGap`,type:`Enums\\\\MediaTextGap|string|null`,id:`param-media-text-gap`,children:_jsxs(_components.p,{children:[`Gap between blocks. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextDividers`,type:`?bool`,id:`param-media-text-dividers`,children:_jsx(_components.p,{children:`A hairline rule between blocks.`})}),_jsx(ResponseField,{name:`mediaTextBlockEyebrowColor`,type:`?string`,id:`param-media-text-block-eyebrow-color`,children:_jsx(_components.p,{children:`Each block’s eyebrow color. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`mediaTextBlockEyebrowColorLight`,type:`?string`,id:`param-media-text-block-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`mediaTextBlockEyebrowWeight`,type:`Enums\\\\MediaTextBlockEyebrowWeight|string|null`,id:`param-media-text-block-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Block eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingColor`,type:`?string`,id:`param-media-text-block-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingColorLight`,type:`?string`,id:`param-media-text-block-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingWeight`,type:`Enums\\\\MediaTextBlockHeadingWeight|string|null`,id:`param-media-text-block-heading-weight`,children:_jsxs(_components.p,{children:[`Block heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingSize`,type:`Enums\\\\MediaTextBlockHeadingSize|string|null`,id:`param-media-text-block-heading-size`,children:_jsxs(_components.p,{children:[`Block heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextBodyColor`,type:`?string`,id:`param-media-text-body-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`mediaTextBodyColorLight`,type:`?string`,id:`param-media-text-body-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`mediaTextBodyWeight`,type:`Enums\\\\MediaTextBodyWeight|string|null`,id:`param-media-text-body-weight`,children:_jsxs(_components.p,{children:[`Block body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextBodySize`,type:`Enums\\\\MediaTextBodySize|string|null`,id:`param-media-text-body-size`,children:_jsxs(_components.p,{children:[`Block body size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsxs(ResponseField,{name:`mediaTextBlocks`,type:`Collection\u003cint, MediaTextWidgetMediaTextBlocksItem>|null`,id:`param-media-text-blocks`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`MediaTextWidgetMediaTextBlocksItem`}),`. Each block is one media + text row. They render top to bottom in this order; alternate “Media left” / “Media right” for a classic zig-zag.`]}),_jsxs(Expandable,{title:`MediaTextWidgetMediaTextBlocksItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidgetMediaTextBlocksItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-38`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`layout`,type:`Enums\\\\Layout|string|null`,id:`param-layout`,children:_jsxs(_components.p,{children:[`Media left / right place the media beside the text; Stacked puts media above the text; Full-bleed runs the media edge-to-edge with the text below. One of `,_jsx(_components.code,{children:`media-left`}),`, `,_jsx(_components.code,{children:`media-right`}),`, `,_jsx(_components.code,{children:`stacked`}),`, `,_jsx(_components.code,{children:`full`}),`.`]})}),_jsx(ResponseField,{name:`mediaType`,type:`Enums\\\\MediaTextWidgetMediaTextBlocksItemMediaType|string|null`,id:`param-media-type`,children:_jsxs(_components.p,{children:[`Pick where the media comes from. “None” makes this a text-only block. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`, `,_jsx(_components.code,{children:`embed`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`image`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-image-2`,children:_jsxs(_components.p,{children:[`Pick an image from the Images library. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`imageAlt`,type:`?string`,id:`param-image-alt`,children:_jsx(_components.p,{children:`Describe the image for screen readers and SEO. Leave empty to use the library image’s own alt text. Set to a single space for a purely decorative image.`})}),_jsx(ResponseField,{name:`video`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-video-1`,children:_jsxs(_components.p,{children:[`Pick a clip from the Videos library (⌘K → Videos). The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`videoAutoplay`,type:`?bool`,id:`param-video-autoplay`,children:_jsx(_components.p,{children:`Play automatically as a muted, looping background clip (a pause button is shown, and reduced-motion visitors get the poster image). Off = a normal video with play controls.`})}),_jsx(ResponseField,{name:`embedUrl`,type:`?string`,id:`param-embed-url`,children:_jsxs(_components.p,{children:[`Paste a YouTube or Vimeo link, e.g. `,_jsx(_components.a,{href:`https://youtu.be/%E2%80%A6`,children:`https://youtu.be/…`}),` or `,_jsx(_components.a,{href:`https://vimeo.com/%E2%80%A6`,children:`https://vimeo.com/…`}),`.`]})}),_jsx(ResponseField,{name:`eyebrow`,type:`?string`,id:`param-eyebrow-1`,children:_jsx(_components.p,{children:`A small label above the block heading.`})}),_jsx(ResponseField,{name:`heading`,type:`?string`,id:`param-heading`,children:_jsx(_components.p,{children:`The block’s headline.`})}),_jsx(ResponseField,{name:`body`,type:`?string`,id:`param-body-1`,children:_jsx(_components.p,{children:`A paragraph or two. Leave a blank line between paragraphs.`})}),_jsx(ResponseField,{name:`ctaLabel`,type:`?string`,id:`param-cta-label`,children:_jsx(_components.p,{children:`This block’s button text. Leave empty (with no link) to hide the button.`})}),_jsx(ResponseField,{name:`ctaUrl`,type:`?string`,id:`param-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/about-us) or full URL.`})}),_jsx(ResponseField,{name:`ctaNewTab`,type:`?bool`,id:`param-cta-new-tab`,children:_jsx(_components.p,{children:`Open button in new tab.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-36`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`mediaTextBg`,type:`Enums\\\\MediaTextBg|string|null`,id:`param-media-text-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextBgCustom`,type:`?string`,id:`param-media-text-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`mediaTextBgLight`,type:`Enums\\\\MediaTextBgLight|string|null`,id:`param-media-text-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextBgLightCustom`,type:`?string`,id:`param-media-text-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`mediaTextFontOverrides`,type:`Collection\u003cint, MediaTextWidgetMediaTextFontOverridesItem>|null`,id:`param-media-text-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`MediaTextWidgetMediaTextFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`MediaTextWidgetMediaTextFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidgetMediaTextFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-39`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-8`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-8`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-8`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-8`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-8`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-8`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-8`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, MediaTextWidgetMediaTextFontOverridesItemUploadsItem>|null`,id:`param-uploads-8`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`MediaTextWidgetMediaTextFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`MediaTextWidgetMediaTextFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidgetMediaTextFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-8`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-40`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-8`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-8`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-37`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-8`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-38`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`mediaTextCtaVariant`,type:`Enums\\\\MediaTextCtaVariant|string|null`,id:`param-media-text-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaSize`,type:`Enums\\\\MediaTextCtaSize|string|null`,id:`param-media-text-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaRadius`,type:`Enums\\\\MediaTextCtaRadius|string|null`,id:`param-media-text-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaColor`,type:`?string`,id:`param-media-text-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`mediaTextCtaColorLight`,type:`?string`,id:`param-media-text-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`mediaTextCtaTextColor`,type:`?string`,id:`param-media-text-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`mediaTextCtaTextColorLight`,type:`?string`,id:`param-media-text-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`mediaTextCtaHoverColor`,type:`?string`,id:`param-media-text-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`mediaTextCtaHoverColorLight`,type:`?string`,id:`param-media-text-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`mediaTextCtaStyle`,type:`Enums\\\\MediaTextCtaStyle|string|null`,id:`param-media-text-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaShadowColor`,type:`?string`,id:`param-media-text-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`mediaTextCtaShadowColorLight`,type:`?string`,id:`param-media-text-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`mediaTextCtaAnimation`,type:`Enums\\\\MediaTextCtaAnimation|string|null`,id:`param-media-text-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIcon`,type:`?string`,id:`param-media-text-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`mediaTextCtaIconFamily`,type:`Enums\\\\MediaTextCtaIconFamily|string|null`,id:`param-media-text-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIconPosition`,type:`Enums\\\\MediaTextCtaIconPosition|string|null`,id:`param-media-text-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIconNudge`,type:`?bool`,id:`param-media-text-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-11`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-39`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`DeviceMockWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\DeviceMockWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`device-mock`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\DeviceMockWidgetType|string`,required:true,id:`param-type-14`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`device-mock`}),`. One of `,_jsx(_components.code,{children:`device-mock`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-41`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-18`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockArrangement`,type:`Enums\\\\DeviceMockArrangement|string|null`,id:`param-device-mock-arrangement`,children:_jsxs(_components.p,{children:[`Which devices to show. Duo overlaps a phone on the corner of a desktop browser; Trio adds a TV behind them (on narrow screens Trio drops the TV and shows as a Duo). Each device used gets its own screen tab. One of `,_jsx(_components.code,{children:`duo`}),`, `,_jsx(_components.code,{children:`trio`}),`, `,_jsx(_components.code,{children:`desktop`}),`, `,_jsx(_components.code,{children:`phone`}),`, `,_jsx(_components.code,{children:`tv`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockTextPlacement`,type:`Enums\\\\DeviceMockTextPlacement|string|null`,id:`param-device-mock-text-placement`,children:_jsxs(_components.p,{children:[`Where the eyebrow / heading / intro / button sit. Left or right puts the text in a column beside the devices (stacked above them on narrow screens); None shows the devices only. One of `,_jsx(_components.code,{children:`above`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockSize`,type:`Enums\\\\DeviceMockSize|string|null`,id:`param-device-mock-size`,children:_jsxs(_components.p,{children:[`How large the devices render within the section. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockBrowserRatio`,type:`Enums\\\\DeviceMockBrowserRatio|string|null`,id:`param-device-mock-browser-ratio`,children:_jsxs(_components.p,{children:[`The browser window’s content area. Match your desktop captures. One of `,_jsx(_components.code,{children:`16:10`}),`, `,_jsx(_components.code,{children:`16:9`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockBrowserUrl`,type:`?string`,id:`param-device-mock-browser-url`,children:_jsx(_components.p,{children:`The address shown in the browser toolbar — decoration only, not a link.`})}),_jsx(ResponseField,{name:`deviceMockPhoneStatusBar`,type:`?bool`,id:`param-device-mock-phone-status-bar`,children:_jsx(_components.p,{children:`Adds a time / signal / battery bar across the top of the phone screen. Leave off for native phone screenshots — they already include the real status bar.`})}),_jsx(ResponseField,{name:`deviceMockPhoneTime`,type:`?string`,id:`param-device-mock-phone-time`,children:_jsx(_components.p,{children:`Status bar time.`})}),_jsx(ResponseField,{name:`deviceMockMotionPause`,type:`?bool`,id:`param-device-mock-motion-pause`,children:_jsx(_components.p,{children:`Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.`})}),_jsx(ResponseField,{name:`deviceMockEyebrowEnabled`,type:`?bool`,id:`param-device-mock-eyebrow-enabled`,children:_jsx(_components.p,{children:`A small label above the heading (e.g. “Product tour”).`})}),_jsx(ResponseField,{name:`deviceMockEyebrow`,type:`?string`,id:`param-device-mock-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`deviceMockEyebrowColor`,type:`?string`,id:`param-device-mock-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`deviceMockEyebrowColorLight`,type:`?string`,id:`param-device-mock-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`deviceMockEyebrowWeight`,type:`Enums\\\\DeviceMockEyebrowWeight|string|null`,id:`param-device-mock-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockEyebrowSize`,type:`Enums\\\\DeviceMockEyebrowSize|string|null`,id:`param-device-mock-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockHeading`,type:`?string`,id:`param-device-mock-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the devices.`})}),_jsx(ResponseField,{name:`deviceMockHeadingColor`,type:`?string`,id:`param-device-mock-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`deviceMockHeadingColorLight`,type:`?string`,id:`param-device-mock-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`deviceMockHeadingWeight`,type:`Enums\\\\DeviceMockHeadingWeight|string|null`,id:`param-device-mock-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockHeadingSize`,type:`Enums\\\\DeviceMockHeadingSize|string|null`,id:`param-device-mock-heading-size`,children:_jsxs(_components.p,{children:[`Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockIntro`,type:`?string`,id:`param-device-mock-intro`,children:_jsx(_components.p,{children:`Optional short paragraph under the heading.`})}),_jsx(ResponseField,{name:`deviceMockIntroColor`,type:`?string`,id:`param-device-mock-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`deviceMockIntroColorLight`,type:`?string`,id:`param-device-mock-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`deviceMockIntroWeight`,type:`Enums\\\\DeviceMockIntroWeight|string|null`,id:`param-device-mock-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockIntroSize`,type:`Enums\\\\DeviceMockIntroSize|string|null`,id:`param-device-mock-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCaption`,type:`?string`,id:`param-device-mock-caption`,children:_jsx(_components.p,{children:`A short line shown under the devices.`})}),_jsx(ResponseField,{name:`deviceMockTvMediaType`,type:`Enums\\\\DeviceMockTvMediaType|string|null`,id:`param-device-mock-tv-media-type`,children:_jsxs(_components.p,{children:[`A still screenshot, or a short looping screen recording. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockTvImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-tv-image`,children:_jsxs(_components.p,{children:[`Use a native-resolution 16:9 capture of the screen with NO device frame (the frame is drawn for you) — e.g. 1920 × 1080 or 3840 × 2160. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockTvImageAlt`,type:`?string`,id:`param-device-mock-tv-image-alt`,children:_jsx(_components.p,{children:`Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.`})}),_jsx(ResponseField,{name:`deviceMockTvVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-tv-video`,children:_jsxs(_components.p,{children:[`Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution 16:9 capture of the screen with NO device frame (the frame is drawn for you) — e.g. 1920 × 1080 or 3840 × 2160. The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockTvVideoAlt`,type:`?string`,id:`param-device-mock-tv-video-alt`,children:_jsx(_components.p,{children:`Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.`})}),_jsx(ResponseField,{name:`deviceMockTvFit`,type:`Enums\\\\DeviceMockTvFit|string|null`,id:`param-device-mock-tv-fit`,children:_jsxs(_components.p,{children:[`Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of `,_jsx(_components.code,{children:`cover`}),`, `,_jsx(_components.code,{children:`contain`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockTvAnchor`,type:`Enums\\\\DeviceMockTvAnchor|string|null`,id:`param-device-mock-tv-anchor`,children:_jsxs(_components.p,{children:[`Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`bottom`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopMediaType`,type:`Enums\\\\DeviceMockDesktopMediaType|string|null`,id:`param-device-mock-desktop-media-type`,children:_jsxs(_components.p,{children:[`A still screenshot, or a short looping screen recording. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-desktop-image`,children:_jsxs(_components.p,{children:[`Use a native-resolution capture of the page content only — no browser toolbar and no device frame (both are drawn for you). 16:10 (e.g. 2880 × 1800) or 16:9 (e.g. 2560 × 1440), matching the “Desktop screen shape” setting. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopImageAlt`,type:`?string`,id:`param-device-mock-desktop-image-alt`,children:_jsx(_components.p,{children:`Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.`})}),_jsx(ResponseField,{name:`deviceMockDesktopVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-desktop-video`,children:_jsxs(_components.p,{children:[`Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution capture of the page content only — no browser toolbar and no device frame (both are drawn for you). 16:10 (e.g. 2880 × 1800) or 16:9 (e.g. 2560 × 1440), matching the “Desktop screen shape” setting. The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopVideoAlt`,type:`?string`,id:`param-device-mock-desktop-video-alt`,children:_jsx(_components.p,{children:`Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.`})}),_jsx(ResponseField,{name:`deviceMockDesktopFit`,type:`Enums\\\\DeviceMockDesktopFit|string|null`,id:`param-device-mock-desktop-fit`,children:_jsxs(_components.p,{children:[`Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of `,_jsx(_components.code,{children:`cover`}),`, `,_jsx(_components.code,{children:`contain`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopAnchor`,type:`Enums\\\\DeviceMockDesktopAnchor|string|null`,id:`param-device-mock-desktop-anchor`,children:_jsxs(_components.p,{children:[`Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`bottom`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneMediaType`,type:`Enums\\\\DeviceMockPhoneMediaType|string|null`,id:`param-device-mock-phone-media-type`,children:_jsxs(_components.p,{children:[`A still screenshot, or a short looping screen recording. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-phone-image`,children:_jsxs(_components.p,{children:[`Use a native-resolution portrait screenshot with NO device frame (the frame is drawn for you) — e.g. 1179 × 2556 or 1290 × 2796 (about 9:19.5). The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneImageAlt`,type:`?string`,id:`param-device-mock-phone-image-alt`,children:_jsx(_components.p,{children:`Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.`})}),_jsx(ResponseField,{name:`deviceMockPhoneVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-phone-video`,children:_jsxs(_components.p,{children:[`Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution portrait screenshot with NO device frame (the frame is drawn for you) — e.g. 1179 × 2556 or 1290 × 2796 (about 9:19.5). The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneVideoAlt`,type:`?string`,id:`param-device-mock-phone-video-alt`,children:_jsx(_components.p,{children:`Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.`})}),_jsx(ResponseField,{name:`deviceMockPhoneFit`,type:`Enums\\\\DeviceMockPhoneFit|string|null`,id:`param-device-mock-phone-fit`,children:_jsxs(_components.p,{children:[`Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of `,_jsx(_components.code,{children:`cover`}),`, `,_jsx(_components.code,{children:`contain`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneAnchor`,type:`Enums\\\\DeviceMockPhoneAnchor|string|null`,id:`param-device-mock-phone-anchor`,children:_jsxs(_components.p,{children:[`Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`bottom`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockBg`,type:`Enums\\\\DeviceMockBg|string|null`,id:`param-device-mock-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockBgCustom`,type:`?string`,id:`param-device-mock-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`deviceMockBgLight`,type:`Enums\\\\DeviceMockBgLight|string|null`,id:`param-device-mock-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockBgLightCustom`,type:`?string`,id:`param-device-mock-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`deviceMockFontOverrides`,type:`Collection\u003cint, DeviceMockWidgetDeviceMockFontOverridesItem>|null`,id:`param-device-mock-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`DeviceMockWidgetDeviceMockFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`DeviceMockWidgetDeviceMockFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\DeviceMockWidgetDeviceMockFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-42`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-9`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-9`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-9`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-9`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-9`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-9`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-9`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem>|null`,id:`param-uploads-9`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-9`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-43`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-9`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-9`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-40`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-9`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-41`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`deviceMockCtaLabel`,type:`?string`,id:`param-device-mock-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`deviceMockCtaUrl`,type:`?string`,id:`param-device-mock-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`deviceMockCtaNewTab`,type:`?bool`,id:`param-device-mock-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`deviceMockCtaVariant`,type:`Enums\\\\DeviceMockCtaVariant|string|null`,id:`param-device-mock-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaSize`,type:`Enums\\\\DeviceMockCtaSize|string|null`,id:`param-device-mock-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaRadius`,type:`Enums\\\\DeviceMockCtaRadius|string|null`,id:`param-device-mock-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaColor`,type:`?string`,id:`param-device-mock-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`deviceMockCtaColorLight`,type:`?string`,id:`param-device-mock-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`deviceMockCtaTextColor`,type:`?string`,id:`param-device-mock-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`deviceMockCtaTextColorLight`,type:`?string`,id:`param-device-mock-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`deviceMockCtaHoverColor`,type:`?string`,id:`param-device-mock-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`deviceMockCtaHoverColorLight`,type:`?string`,id:`param-device-mock-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`deviceMockCtaStyle`,type:`Enums\\\\DeviceMockCtaStyle|string|null`,id:`param-device-mock-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaShadowColor`,type:`?string`,id:`param-device-mock-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`deviceMockCtaShadowColorLight`,type:`?string`,id:`param-device-mock-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`deviceMockCtaAnimation`,type:`Enums\\\\DeviceMockCtaAnimation|string|null`,id:`param-device-mock-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIcon`,type:`?string`,id:`param-device-mock-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`deviceMockCtaIconFamily`,type:`Enums\\\\DeviceMockCtaIconFamily|string|null`,id:`param-device-mock-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIconPosition`,type:`Enums\\\\DeviceMockCtaIconPosition|string|null`,id:`param-device-mock-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIconNudge`,type:`?bool`,id:`param-device-mock-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-12`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-42`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`TeamWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TeamWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`team`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\TeamWidgetType|string`,required:true,id:`param-type-15`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`team`}),`. One of `,_jsx(_components.code,{children:`team`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-44`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-19`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`teamEyebrow`,type:`?string`,id:`param-team-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`teamEyebrowColor`,type:`?string`,id:`param-team-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`teamEyebrowColorLight`,type:`?string`,id:`param-team-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`teamEyebrowWeight`,type:`Enums\\\\TeamEyebrowWeight|string|null`,id:`param-team-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`teamEyebrowSize`,type:`Enums\\\\TeamEyebrowSize|string|null`,id:`param-team-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamHeading`,type:`?string`,id:`param-team-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the team.`})}),_jsx(ResponseField,{name:`teamHeadingColor`,type:`?string`,id:`param-team-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`teamHeadingColorLight`,type:`?string`,id:`param-team-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamHeadingWeight`,type:`Enums\\\\TeamHeadingWeight|string|null`,id:`param-team-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`teamIntro`,type:`?string`,id:`param-team-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`teamIntroColor`,type:`?string`,id:`param-team-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`teamIntroColorLight`,type:`?string`,id:`param-team-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamIntroWeight`,type:`Enums\\\\TeamIntroWeight|string|null`,id:`param-team-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`teamIntroSize`,type:`Enums\\\\TeamIntroSize|string|null`,id:`param-team-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamAlign`,type:`Enums\\\\TeamAlign|string|null`,id:`param-team-align`,children:_jsxs(_components.p,{children:[`Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`teamFeaturedOnly`,type:`?bool`,id:`param-team-featured-only`,children:_jsx(_components.p,{children:`Show only members you have flagged “Featured” in the Team Members manager — e.g. a short leadership row on the home page.`})}),_jsx(ResponseField,{name:`teamCount`,type:`?int`,id:`param-team-count`,children:_jsx(_components.p,{children:`The most members to show, in the manager’s sort order. 1 to 50.`})}),_jsx(ResponseField,{name:`teamLayout`,type:`Enums\\\\TeamLayout|string|null`,id:`param-team-layout`,children:_jsxs(_components.p,{children:[`Grid: a tidy multi-row grid (the full team page). Carousel: a continuous auto-scrolling marquee (needs site animations enabled — falls back to the grid when they are off). Spotlight: featured members large on top, the rest in a smaller grid. List: wide rows with the full bio. Scatter: a playful arrangement with varied spacing so the cards float freely. One of `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`list`}),`, `,_jsx(_components.code,{children:`scatter`}),`.`]})}),_jsx(ResponseField,{name:`teamColumns`,type:`Enums\\\\TeamColumns|string|null`,id:`param-team-columns`,children:_jsxs(_components.p,{children:[`How many cards per row. Auto fits as many as comfortably fit (the Scatter layout composes on three columns when set to Auto). One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`teamSpotlightHeroes`,type:`Enums\\\\TeamSpotlightHeroes|string|null`,id:`param-team-spotlight-heroes`,children:_jsxs(_components.p,{children:[`How many members lead the section at full size. Members flagged “Featured” fill the spots first, in the manager’s sort order; any extra featured members join the rows below. One of `,_jsx(_components.code,{children:`1`}),`, `,_jsx(_components.code,{children:`2`}),`.`]})}),_jsx(ResponseField,{name:`teamSpotlightColumns`,type:`Enums\\\\TeamSpotlightColumns|string|null`,id:`param-team-spotlight-columns`,children:_jsxs(_components.p,{children:[`How many of the remaining members sit on each row under the featured spots. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`.`]})}),_jsx(ResponseField,{name:`teamSpeed`,type:`Enums\\\\TeamSpeed|string|null`,id:`param-team-speed`,children:_jsxs(_components.p,{children:[`How fast the carousel auto-scrolls. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`teamDirection`,type:`Enums\\\\TeamDirection|string|null`,id:`param-team-direction`,children:_jsxs(_components.p,{children:[`Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`teamScatter`,type:`Enums\\\\TeamScatter|string|null`,id:`param-team-scatter`,children:_jsxs(_components.p,{children:[`How far the cards drift from a tidy grid. Subtle keeps a loose grid; Wild pushes the offsets to their playful maximum. One of `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`playful`}),`, `,_jsx(_components.code,{children:`wild`}),`.`]})}),_jsx(ResponseField,{name:`teamGap`,type:`Enums\\\\TeamGap|string|null`,id:`param-team-gap`,children:_jsxs(_components.p,{children:[`Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`teamCardLayout`,type:`Enums\\\\TeamCardLayout|string|null`,id:`param-team-card-layout`,children:_jsxs(_components.p,{children:[`Portrait: the photo on top, name/role/bio below — the classic team card. Overlay: a full-bleed photo with a solid color panel over its lower edge holding the name and role. Profile: a horizontal bar — avatar left, name/role/tagline right. Roster: minimal — just the avatar, name and role. (The List section layout always uses its own wide row.) One of `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`overlay`}),`, `,_jsx(_components.code,{children:`profile`}),`, `,_jsx(_components.code,{children:`roster`}),`.`]})}),_jsx(ResponseField,{name:`teamPhotoAspect`,type:`Enums\\\\TeamPhotoAspect|string|null`,id:`param-team-photo-aspect`,children:_jsxs(_components.p,{children:[`The photo’s aspect ratio on the photo-led card layouts. One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`teamAvatarShape`,type:`Enums\\\\TeamAvatarShape|string|null`,id:`param-team-avatar-shape`,children:_jsxs(_components.p,{children:[`The photo’s outline. Squircle is a soft superellipse-style corner (approximated with heavy rounding). One of `,_jsx(_components.code,{children:`circle`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`squircle`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`teamAvatarSize`,type:`Enums\\\\TeamAvatarSize|string|null`,id:`param-team-avatar-size`,children:_jsxs(_components.p,{children:[`Avatar size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamAvatarBorder`,type:`Enums\\\\TeamAvatarBorder|string|null`,id:`param-team-avatar-border`,children:_jsxs(_components.p,{children:[`A ring around the photo in the avatar color. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`hairline`}),`, `,_jsx(_components.code,{children:`thin`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`teamAvatarTreatment`,type:`Enums\\\\TeamAvatarTreatment|string|null`,id:`param-team-avatar-treatment`,children:_jsxs(_components.p,{children:[`A flat color accent behind the photo. Panel offsets a solid block behind it; Halo draws a soft concentric disc. Both use the avatar color. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`panel`}),`, `,_jsx(_components.code,{children:`halo`}),`.`]})}),_jsx(ResponseField,{name:`teamAvatarColor`,type:`?string`,id:`param-team-avatar-color`,children:_jsx(_components.p,{children:`Colors the border and the backdrop treatment. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`teamAvatarColorLight`,type:`?string`,id:`param-team-avatar-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamShowRole`,type:`?bool`,id:`param-team-show-role`,children:_jsx(_components.p,{children:`Show role / title.`})}),_jsx(ResponseField,{name:`teamShowBio`,type:`?bool`,id:`param-team-show-bio`,children:_jsx(_components.p,{children:`Shown on the Portrait and Profile cards and the List rows. The Overlay and Roster layouts stay bio-free by design.`})}),_jsx(ResponseField,{name:`teamShowTagline`,type:`?bool`,id:`param-team-show-tagline`,children:_jsx(_components.p,{children:`The member’s one-liner, shown on the Profile and Roster cards and the List rows.`})}),_jsx(ResponseField,{name:`teamHoverPhoto`,type:`?bool`,id:`param-team-hover-photo`,children:_jsx(_components.p,{children:`Cross-fades to a member’s alternate photo on hover (set per member; does nothing for members without one, and stays off for visitors who prefer reduced motion).`})}),_jsx(ResponseField,{name:`teamCardStyle`,type:`Enums\\\\TeamCardStyle|string|null`,id:`param-team-card-style`,children:_jsxs(_components.p,{children:[`The card treatment. Outline (the default) is a plaque frame — a framed-portrait look; Raised is a quiet lit card; Luxe a frosted glass panel; Ticket/Bracket/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`teamCardStyleRadius`,type:`Enums\\\\TeamCardStyleRadius|string|null`,id:`param-team-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`teamCardStyleAccentColor`,type:`?string`,id:`param-team-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`teamCardStyleAccentColorLight`,type:`?string`,id:`param-team-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamCardHover`,type:`Enums\\\\TeamCardHover|string|null`,id:`param-team-card-hover`,children:_jsxs(_components.p,{children:[`What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`teamCardAlign`,type:`Enums\\\\TeamCardAlign|string|null`,id:`param-team-card-align`,children:_jsxs(_components.p,{children:[`How the name, role and bio align inside each card (the Profile card and List rows are always left-aligned beside the avatar). One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`teamAccentColor`,type:`?string`,id:`param-team-accent-color`,children:_jsx(_components.p,{children:`Optional — the lettered-avatar fallback background and the role color default. Leave empty to use the brand accent. (The icon row has its own colors on the Social links tab.)`})}),_jsx(ResponseField,{name:`teamAccentColorLight`,type:`?string`,id:`param-team-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamPanelColor`,type:`?string`,id:`param-team-panel-color`,children:_jsx(_components.p,{children:`The solid panel over the photo on the Overlay card. Leave empty to use the card color.`})}),_jsx(ResponseField,{name:`teamPanelColorLight`,type:`?string`,id:`param-team-panel-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamNameSize`,type:`Enums\\\\TeamNameSize|string|null`,id:`param-team-name-size`,children:_jsxs(_components.p,{children:[`Name size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamNameWeight`,type:`Enums\\\\TeamNameWeight|string|null`,id:`param-team-name-weight`,children:_jsxs(_components.p,{children:[`Name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`teamNameColor`,type:`?string`,id:`param-team-name-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`teamNameColorLight`,type:`?string`,id:`param-team-name-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamRoleSize`,type:`Enums\\\\TeamRoleSize|string|null`,id:`param-team-role-size`,children:_jsxs(_components.p,{children:[`Role size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamRoleWeight`,type:`Enums\\\\TeamRoleWeight|string|null`,id:`param-team-role-weight`,children:_jsxs(_components.p,{children:[`Role weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`teamRoleColor`,type:`?string`,id:`param-team-role-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the accent color.`})}),_jsx(ResponseField,{name:`teamRoleColorLight`,type:`?string`,id:`param-team-role-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamBioSize`,type:`Enums\\\\TeamBioSize|string|null`,id:`param-team-bio-size`,children:_jsxs(_components.p,{children:[`Bio size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamBioWeight`,type:`Enums\\\\TeamBioWeight|string|null`,id:`param-team-bio-weight`,children:_jsxs(_components.p,{children:[`Bio weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`teamBioColor`,type:`?string`,id:`param-team-bio-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`teamBioColorLight`,type:`?string`,id:`param-team-bio-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamBioClamp`,type:`Enums\\\\TeamBioClamp|string|null`,id:`param-team-bio-clamp`,children:_jsxs(_components.p,{children:[`Cap each bio at this many lines (the rest is truncated with an ellipsis) so one long bio can’t blow up the card height. The List layout always shows the full bio. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`6`}),`.`]})}),_jsx(ResponseField,{name:`teamTaglineColor`,type:`?string`,id:`param-team-tagline-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the faint text color.`})}),_jsx(ResponseField,{name:`teamTaglineColorLight`,type:`?string`,id:`param-team-tagline-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`teamShowSocials`,type:`?bool`,id:`param-team-show-socials`,children:_jsx(_components.p,{children:`The member’s social profile icons (set per member in the Team Members manager).`})}),_jsx(ResponseField,{name:`teamShowContact`,type:`?bool`,id:`param-team-show-contact`,children:_jsx(_components.p,{children:`Off by default — turns each member’s email and phone (when set) into icon links. Only enable when you want those details public.`})}),_jsx(ResponseField,{name:`teamSocialVariant`,type:`Enums\\\\TeamSocialVariant|string|null`,id:`param-team-social-variant`,children:_jsxs(_components.p,{children:[`Icon style. One of `,_jsx(_components.code,{children:`bare`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`solid`}),`.`]})}),_jsx(ResponseField,{name:`teamSocialSize`,type:`Enums\\\\TeamSocialSize|string|null`,id:`param-team-social-size`,children:_jsxs(_components.p,{children:[`Icon size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`teamSocialSpacing`,type:`Enums\\\\TeamSocialSpacing|string|null`,id:`param-team-social-spacing`,children:_jsxs(_components.p,{children:[`Gap between the icons. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`loose`}),`.`]})}),_jsx(ResponseField,{name:`teamSocialHover`,type:`Enums\\\\TeamSocialHover|string|null`,id:`param-team-social-hover`,children:_jsxs(_components.p,{children:[`Hover to each platform’s own brand color, or to the site accent (or a chosen hover color). One of `,_jsx(_components.code,{children:`brand`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`teamSocialColor`,type:`?string`,id:`param-team-social-color`,children:_jsx(_components.p,{children:`Resting icon color. Leave empty for the muted default.`})}),_jsx(ResponseField,{name:`teamSocialColorLight`,type:`?string`,id:`param-team-social-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the muted default.`})}),_jsx(ResponseField,{name:`teamSocialHoverColor`,type:`?string`,id:`param-team-social-hover-color`,children:_jsx(_components.p,{children:`Used when “Hover color” is Accent / custom. Leave empty for the site accent.`})}),_jsx(ResponseField,{name:`teamSocialHoverColorLight`,type:`?string`,id:`param-team-social-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`teamBg`,type:`Enums\\\\TeamBg|string|null`,id:`param-team-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`teamBgCustom`,type:`?string`,id:`param-team-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`teamBgLight`,type:`Enums\\\\TeamBgLight|string|null`,id:`param-team-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`teamBgLightCustom`,type:`?string`,id:`param-team-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`teamFontOverrides`,type:`Collection\u003cint, TeamWidgetTeamFontOverridesItem>|null`,id:`param-team-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`TeamWidgetTeamFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`TeamWidgetTeamFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TeamWidgetTeamFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-45`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-10`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-10`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-10`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-10`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-10`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-10`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-10`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, TeamWidgetTeamFontOverridesItemUploadsItem>|null`,id:`param-uploads-10`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`TeamWidgetTeamFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`TeamWidgetTeamFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TeamWidgetTeamFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-10`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-46`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-10`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-10`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-43`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-10`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-44`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`teamCtaLabel`,type:`?string`,id:`param-team-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`teamCtaUrl`,type:`?string`,id:`param-team-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`teamCtaNewTab`,type:`?bool`,id:`param-team-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`teamCtaVariant`,type:`Enums\\\\TeamCtaVariant|string|null`,id:`param-team-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaSize`,type:`Enums\\\\TeamCtaSize|string|null`,id:`param-team-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaRadius`,type:`Enums\\\\TeamCtaRadius|string|null`,id:`param-team-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaColor`,type:`?string`,id:`param-team-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`teamCtaColorLight`,type:`?string`,id:`param-team-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`teamCtaTextColor`,type:`?string`,id:`param-team-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`teamCtaTextColorLight`,type:`?string`,id:`param-team-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`teamCtaHoverColor`,type:`?string`,id:`param-team-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`teamCtaHoverColorLight`,type:`?string`,id:`param-team-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`teamCtaStyle`,type:`Enums\\\\TeamCtaStyle|string|null`,id:`param-team-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaShadowColor`,type:`?string`,id:`param-team-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`teamCtaShadowColorLight`,type:`?string`,id:`param-team-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`teamCtaAnimation`,type:`Enums\\\\TeamCtaAnimation|string|null`,id:`param-team-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaIcon`,type:`?string`,id:`param-team-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`teamCtaIconFamily`,type:`Enums\\\\TeamCtaIconFamily|string|null`,id:`param-team-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaIconPosition`,type:`Enums\\\\TeamCtaIconPosition|string|null`,id:`param-team-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`teamCtaIconNudge`,type:`?bool`,id:`param-team-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-13`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-45`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`FaqWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FaqWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`faq`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FaqWidgetType|string`,required:true,id:`param-type-16`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`faq`}),`. One of `,_jsx(_components.code,{children:`faq`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-47`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-20`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`faqEyebrow`,type:`?string`,id:`param-faq-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`faqEyebrowColor`,type:`?string`,id:`param-faq-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`faqEyebrowColorLight`,type:`?string`,id:`param-faq-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`faqEyebrowWeight`,type:`Enums\\\\FaqEyebrowWeight|string|null`,id:`param-faq-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`faqEyebrowSize`,type:`Enums\\\\FaqEyebrowSize|string|null`,id:`param-faq-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`faqHeading`,type:`?string`,id:`param-faq-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the questions.`})}),_jsx(ResponseField,{name:`faqHeadingColor`,type:`?string`,id:`param-faq-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`faqHeadingColorLight`,type:`?string`,id:`param-faq-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqHeadingWeight`,type:`Enums\\\\FaqHeadingWeight|string|null`,id:`param-faq-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`faqIntro`,type:`?string`,id:`param-faq-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`faqIntroColor`,type:`?string`,id:`param-faq-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`faqIntroColorLight`,type:`?string`,id:`param-faq-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqIntroWeight`,type:`Enums\\\\FaqIntroWeight|string|null`,id:`param-faq-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`faqIntroSize`,type:`Enums\\\\FaqIntroSize|string|null`,id:`param-faq-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`faqAlign`,type:`Enums\\\\FaqAlign|string|null`,id:`param-faq-align`,children:_jsxs(_components.p,{children:[`The Split layout always sets its header column left. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`faqFeaturedOnly`,type:`?bool`,id:`param-faq-featured-only`,children:_jsx(_components.p,{children:`Show only questions you have flagged “Featured” in the FAQs manager — e.g. a short top-questions block on the home page, linking out to the full FAQ page.`})}),_jsx(ResponseField,{name:`faqCount`,type:`?int`,id:`param-faq-count`,children:_jsx(_components.p,{children:`The most questions to show, in the manager’s sort order. Raise it for a full FAQ page. 1 to 50.`})}),_jsx(ResponseField,{name:`faqCategories`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-faq-categories`,children:_jsxs(_components.p,{children:[`Optional filter. Leave empty to show questions from every category. Manage the list under FAQ Categories. The related `,_jsx(_components.code,{children:`faq-category`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document; a document the site can’t find is left out.`]})}),_jsx(ResponseField,{name:`faqGroupBy`,type:`Enums\\\\FaqGroupBy|string|null`,id:`param-faq-group-by`,children:_jsxs(_components.p,{children:[`By category renders a subheading per FAQ category, in the order picked in the category filter (or, with no filter, the FAQ Categories sort order); questions without a category are listed last. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`category`}),`.`]})}),_jsx(ResponseField,{name:`faqLayout`,type:`Enums\\\\FaqLayout|string|null`,id:`param-faq-layout`,children:_jsxs(_components.p,{children:[`Accordion: a single centered column of collapsing questions — the classic FAQ. Split: the header (and button) sit in a left column with the accordion beside them. Two columns: the accordion flows across two columns. Open panels: every answer visible in a card grid — no collapsing. One of `,_jsx(_components.code,{children:`accordion`}),`, `,_jsx(_components.code,{children:`split`}),`, `,_jsx(_components.code,{children:`columns`}),`, `,_jsx(_components.code,{children:`panels`}),`.`]})}),_jsx(ResponseField,{name:`faqPanelColumns`,type:`Enums\\\\FaqPanelColumns|string|null`,id:`param-faq-panel-columns`,children:_jsxs(_components.p,{children:[`How many open panels sit per row (they stack on small screens). One of `,_jsx(_components.code,{children:`1`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`.`]})}),_jsx(ResponseField,{name:`faqOpenMode`,type:`Enums\\\\FaqOpenMode|string|null`,id:`param-faq-open-mode`,children:_jsxs(_components.p,{children:[`One at a time closes the previous answer when a new one opens; Independent lets visitors hold several open. One of `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`multiple`}),`.`]})}),_jsx(ResponseField,{name:`faqFirstOpen`,type:`?bool`,id:`param-faq-first-open`,children:_jsx(_components.p,{children:`Starts the section with the first answer expanded so the block never reads as an empty list of rows.`})}),_jsx(ResponseField,{name:`faqMarker`,type:`Enums\\\\FaqMarker|string|null`,id:`param-faq-marker`,children:_jsxs(_components.p,{children:[`The disclosure marker on each question. Plus rotates into a close mark; Chevron flips. One of `,_jsx(_components.code,{children:`plus`}),`, `,_jsx(_components.code,{children:`chevron`}),`.`]})}),_jsx(ResponseField,{name:`faqGap`,type:`Enums\\\\FaqGap|string|null`,id:`param-faq-gap`,children:_jsxs(_components.p,{children:[`Space between questions. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`faqSchema`,type:`?bool`,id:`param-faq-schema`,children:_jsx(_components.p,{children:`Adds this section’s questions to the page’s schema.org FAQPage markup so search engines can read them (all FAQ sections on a page share one FAQPage block). Costs nothing when on; turn off only to exclude these questions.`})}),_jsx(ResponseField,{name:`faqCardStyle`,type:`Enums\\\\FaqCardStyle|string|null`,id:`param-faq-card-style`,children:_jsxs(_components.p,{children:[`The question-row treatment. Plain (the default) is the classic divided list — hairlines between questions. Any other style turns each question into a card: Raised is a quiet lit card, Outline a framed row, Luxe frosted glass; Ticket/Bracket/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`faqCardStyleRadius`,type:`Enums\\\\FaqCardStyleRadius|string|null`,id:`param-faq-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`faqCardStyleAccentColor`,type:`?string`,id:`param-faq-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`faqCardStyleAccentColorLight`,type:`?string`,id:`param-faq-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqCardStyleForgeScope`,type:`Enums\\\\FaqCardStyleForgeScope|string|null`,id:`param-faq-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`faqCardStyleForgeWeight`,type:`Enums\\\\FaqCardStyleForgeWeight|string|null`,id:`param-faq-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`faqCardHover`,type:`Enums\\\\FaqCardHover|string|null`,id:`param-faq-card-hover`,children:_jsxs(_components.p,{children:[`What a question row does on hover. None (the default) keeps the accordion calm — the open/close motion is the interaction. The card effects (Lift/Glow/…) suit the card styles; the cursor-tracked ones need site animations on. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`faqAccentColor`,type:`?string`,id:`param-faq-accent-color`,children:_jsx(_components.p,{children:`Optional — colors the toggle icon and the open question’s highlight. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`faqAccentColorLight`,type:`?string`,id:`param-faq-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqQuestionSize`,type:`Enums\\\\FaqQuestionSize|string|null`,id:`param-faq-question-size`,children:_jsxs(_components.p,{children:[`Question size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`faqQuestionWeight`,type:`Enums\\\\FaqQuestionWeight|string|null`,id:`param-faq-question-weight`,children:_jsxs(_components.p,{children:[`Question weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`faqQuestionColor`,type:`?string`,id:`param-faq-question-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`faqQuestionColorLight`,type:`?string`,id:`param-faq-question-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqAnswerSize`,type:`Enums\\\\FaqAnswerSize|string|null`,id:`param-faq-answer-size`,children:_jsxs(_components.p,{children:[`Answer size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`faqAnswerWeight`,type:`Enums\\\\FaqAnswerWeight|string|null`,id:`param-faq-answer-weight`,children:_jsxs(_components.p,{children:[`Answer weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`faqAnswerColor`,type:`?string`,id:`param-faq-answer-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`faqAnswerColorLight`,type:`?string`,id:`param-faq-answer-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqGroupHeadingWeight`,type:`Enums\\\\FaqGroupHeadingWeight|string|null`,id:`param-faq-group-heading-weight`,children:_jsxs(_components.p,{children:[`Category heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`faqGroupHeadingColor`,type:`?string`,id:`param-faq-group-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`faqGroupHeadingColorLight`,type:`?string`,id:`param-faq-group-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`faqBg`,type:`Enums\\\\FaqBg|string|null`,id:`param-faq-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`faqBgCustom`,type:`?string`,id:`param-faq-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`faqBgLight`,type:`Enums\\\\FaqBgLight|string|null`,id:`param-faq-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`faqBgLightCustom`,type:`?string`,id:`param-faq-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`faqFontOverrides`,type:`Collection\u003cint, FaqWidgetFaqFontOverridesItem>|null`,id:`param-faq-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FaqWidgetFaqFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FaqWidgetFaqFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FaqWidgetFaqFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-48`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-11`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-11`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-11`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-11`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-11`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-11`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-11`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FaqWidgetFaqFontOverridesItemUploadsItem>|null`,id:`param-uploads-11`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FaqWidgetFaqFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FaqWidgetFaqFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FaqWidgetFaqFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-11`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-49`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-11`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-11`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-46`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-11`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-47`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`faqCtaLabel`,type:`?string`,id:`param-faq-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`faqCtaUrl`,type:`?string`,id:`param-faq-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`faqCtaNewTab`,type:`?bool`,id:`param-faq-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`faqCtaVariant`,type:`Enums\\\\FaqCtaVariant|string|null`,id:`param-faq-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaSize`,type:`Enums\\\\FaqCtaSize|string|null`,id:`param-faq-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaRadius`,type:`Enums\\\\FaqCtaRadius|string|null`,id:`param-faq-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaColor`,type:`?string`,id:`param-faq-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`faqCtaColorLight`,type:`?string`,id:`param-faq-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`faqCtaTextColor`,type:`?string`,id:`param-faq-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`faqCtaTextColorLight`,type:`?string`,id:`param-faq-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`faqCtaHoverColor`,type:`?string`,id:`param-faq-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`faqCtaHoverColorLight`,type:`?string`,id:`param-faq-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`faqCtaStyle`,type:`Enums\\\\FaqCtaStyle|string|null`,id:`param-faq-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaShadowColor`,type:`?string`,id:`param-faq-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`faqCtaShadowColorLight`,type:`?string`,id:`param-faq-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`faqCtaAnimation`,type:`Enums\\\\FaqCtaAnimation|string|null`,id:`param-faq-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaIcon`,type:`?string`,id:`param-faq-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`faqCtaIconFamily`,type:`Enums\\\\FaqCtaIconFamily|string|null`,id:`param-faq-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaIconPosition`,type:`Enums\\\\FaqCtaIconPosition|string|null`,id:`param-faq-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`faqCtaIconNudge`,type:`?bool`,id:`param-faq-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-14`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-48`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`ServiceMapWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`service-map`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\ServiceMapWidgetType|string`,required:true,id:`param-type-17`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`service-map`}),`. One of `,_jsx(_components.code,{children:`service-map`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-50`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-21`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrow`,type:`?string`,id:`param-service-map-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`serviceMapEyebrowColor`,type:`?string`,id:`param-service-map-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`serviceMapEyebrowColorLight`,type:`?string`,id:`param-service-map-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`serviceMapEyebrowWeight`,type:`Enums\\\\ServiceMapEyebrowWeight|string|null`,id:`param-service-map-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrowSize`,type:`Enums\\\\ServiceMapEyebrowSize|string|null`,id:`param-service-map-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapHeading`,type:`?string`,id:`param-service-map-heading`,children:_jsx(_components.p,{children:`Heading.`})}),_jsx(ResponseField,{name:`serviceMapHeadingColor`,type:`?string`,id:`param-service-map-heading-color`,children:_jsx(_components.p,{children:`Optional. Leave empty for the standard ink color.`})}),_jsx(ResponseField,{name:`serviceMapHeadingColorLight`,type:`?string`,id:`param-service-map-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapHeadingWeight`,type:`Enums\\\\ServiceMapHeadingWeight|string|null`,id:`param-service-map-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapIntro`,type:`?string`,id:`param-service-map-intro`,children:_jsx(_components.p,{children:`Optional short paragraph under the heading. The data source’s own description (service days etc.) shows in the result panel, not here.`})}),_jsx(ResponseField,{name:`serviceMapIntroSize`,type:`Enums\\\\ServiceMapIntroSize|string|null`,id:`param-service-map-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapHeight`,type:`Enums\\\\ServiceMapHeight|string|null`,id:`param-service-map-height`,children:_jsxs(_components.p,{children:[`Map height. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`standard`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapTheme`,type:`Enums\\\\ServiceMapTheme|string|null`,id:`param-service-map-theme`,children:_jsxs(_components.p,{children:[`Curated light/dark basemap pairs — each follows the visitor’s theme toggle. “Site palette” derives the basemap from this site’s own colors. One of `,_jsx(_components.code,{children:`palette`}),`, `,_jsx(_components.code,{children:`classic`}),`, `,_jsx(_components.code,{children:`silver`}),`, `,_jsx(_components.code,{children:`retro`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapFrameRadius`,type:`Enums\\\\ServiceMapFrameRadius|string|null`,id:`param-service-map-frame-radius`,children:_jsxs(_components.p,{children:[`Map corner radius. One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapFrameBorderColor`,type:`?string`,id:`param-service-map-frame-border-color`,children:_jsx(_components.p,{children:`Optional. Leave empty for the standard hairline — set it to match a colored border on the zone cards.`})}),_jsx(ResponseField,{name:`serviceMapFrameBorderColorLight`,type:`?string`,id:`param-service-map-frame-border-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapFrameGlowColor`,type:`?string`,id:`param-service-map-frame-glow-color`,children:_jsx(_components.p,{children:`Optional soft glow around the map frame — pairs with a glowing zone-card style. Leave empty for none.`})}),_jsx(ResponseField,{name:`serviceMapFrameGlowColorLight`,type:`?string`,id:`param-service-map-frame-glow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapSchema`,type:`?bool`,id:`param-service-map-schema`,children:_jsx(_components.p,{children:`On pages with this section, upgrades the business structured data from the compact site-wide form to the full detail: every public place name, every zip code, and area boundaries. Costs visitors nothing; turn off to keep this page at the compact site-wide form. (Requires structured data on in Site settings → SEO; demo map data is never published.)`})}),_jsx(ResponseField,{name:`serviceMapShowLegend`,type:`?bool`,id:`param-service-map-show-legend`,children:_jsx(_components.p,{children:`The legend card overlaid on the map. The zone cards below the map always carry the same information for screen readers and when the map can’t load.`})}),_jsx(ResponseField,{name:`serviceMapKeySwatchSize`,type:`Enums\\\\ServiceMapKeySwatchSize|string|null`,id:`param-service-map-key-swatch-size`,children:_jsxs(_components.p,{children:[`Key swatch size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapKeyJustify`,type:`Enums\\\\ServiceMapKeyJustify|string|null`,id:`param-service-map-key-justify`,children:_jsxs(_components.p,{children:[`Key text justification. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextSize`,type:`Enums\\\\ServiceMapKeyTextSize|string|null`,id:`param-service-map-key-text-size`,children:_jsxs(_components.p,{children:[`Key text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextWeight`,type:`Enums\\\\ServiceMapKeyTextWeight|string|null`,id:`param-service-map-key-text-weight`,children:_jsxs(_components.p,{children:[`Key text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextColor`,type:`?string`,id:`param-service-map-key-text-color`,children:_jsx(_components.p,{children:`Optional. Leave empty for the standard ink color.`})}),_jsx(ResponseField,{name:`serviceMapKeyTextColorLight`,type:`?string`,id:`param-service-map-key-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapKeyRadius`,type:`Enums\\\\ServiceMapKeyRadius|string|null`,id:`param-service-map-key-radius`,children:_jsxs(_components.p,{children:[`Key corner radius. One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapKeyBorderColor`,type:`?string`,id:`param-service-map-key-border-color`,children:_jsx(_components.p,{children:`Optional. Leave empty for the standard hairline — set it to match the map frame or the zone cards.`})}),_jsx(ResponseField,{name:`serviceMapKeyBorderColorLight`,type:`?string`,id:`param-service-map-key-border-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapKeyGlowColor`,type:`?string`,id:`param-service-map-key-glow-color`,children:_jsx(_components.p,{children:`Optional soft glow around the key card. Leave empty for none.`})}),_jsx(ResponseField,{name:`serviceMapKeyGlowColorLight`,type:`?string`,id:`param-service-map-key-glow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapShowCards`,type:`?bool`,id:`param-service-map-show-cards`,children:_jsx(_components.p,{children:`The zone/pricing cards under the map. Turning this off hides them visually — they stay in the page for screen readers and no-JavaScript visitors (the map itself isn’t accessible).`})}),_jsx(ResponseField,{name:`serviceMapCardStyle`,type:`Enums\\\\ServiceMapCardStyle|string|null`,id:`param-service-map-card-style`,children:_jsxs(_components.p,{children:[`The card surface. Raised is a quiet lit card; Luxe is a frosted glass panel; Outline is a double-rule plaque frame; Plain has no chrome; Poster frames the card with an accent keyline; Spine embeds a color rail along the top; Tint washes the card in the accent color. Showstoppers: Ticket punches notches into the sides, Bracket draws only corner marks, Forge is a machined plate with an engraved frame, Press is a punched index card with a margin rule, Inlay recesses the content into a well. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardStyleRadius`,type:`Enums\\\\ServiceMapCardStyleRadius|string|null`,id:`param-service-map-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardStyleAccentColor`,type:`?string`,id:`param-service-map-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`serviceMapCardStyleAccentColorLight`,type:`?string`,id:`param-service-map-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapCardsHover`,type:`Enums\\\\ServiceMapCardsHover|string|null`,id:`param-service-map-cards-hover`,children:_jsxs(_components.p,{children:[`What a card does on hover. Lift/Pop/Press/Glow/Outline are instant CSS effects; Sheen sweeps a soft light across; Tilt, Magnetic and Spotlight follow the cursor (these need site animations on — visitors who prefer reduced motion see the resting card). Pick a different one per section so a page feels varied, not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSwatchSize`,type:`Enums\\\\ServiceMapCardsSwatchSize|string|null`,id:`param-service-map-cards-swatch-size`,children:_jsxs(_components.p,{children:[`Card swatch size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsJustify`,type:`Enums\\\\ServiceMapCardsJustify|string|null`,id:`param-service-map-cards-justify`,children:_jsxs(_components.p,{children:[`Card text justification. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsNameWeight`,type:`Enums\\\\ServiceMapCardsNameWeight|string|null`,id:`param-service-map-cards-name-weight`,children:_jsxs(_components.p,{children:[`Zone name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsTextSize`,type:`Enums\\\\ServiceMapCardsTextSize|string|null`,id:`param-service-map-cards-text-size`,children:_jsxs(_components.p,{children:[`Card text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsTextColor`,type:`?string`,id:`param-service-map-cards-text-color`,children:_jsx(_components.p,{children:`Optional. Colors the zone names; supporting copy stays muted. Leave empty for the standard ink color.`})}),_jsx(ResponseField,{name:`serviceMapCardsTextColorLight`,type:`?string`,id:`param-service-map-cards-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapCardsSubSize`,type:`Enums\\\\ServiceMapCardsSubSize|string|null`,id:`param-service-map-cards-sub-size`,children:_jsxs(_components.p,{children:[`The price and detail lines under each zone name — sized relative to the card text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSubWeight`,type:`Enums\\\\ServiceMapCardsSubWeight|string|null`,id:`param-service-map-cards-sub-weight`,children:_jsxs(_components.p,{children:[`Supporting text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSubColor`,type:`?string`,id:`param-service-map-cards-sub-color`,children:_jsx(_components.p,{children:`Optional. Leave empty for the standard muted color.`})}),_jsx(ResponseField,{name:`serviceMapCardsSubColorLight`,type:`?string`,id:`param-service-map-cards-sub-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`serviceMapIncludedLabel`,type:`?string`,id:`param-service-map-included-label`,children:_jsxs(_components.p,{children:[`Optional label shown instead of “`,`$0” wherever a zone has no fee (key, cards, results). Clear it to show the plain price — $`,`0 doesn’t always mean included.`]})}),_jsxs(ResponseField,{name:`serviceMapZoneOverrides`,type:`Collection\u003cint, ServiceMapWidgetServiceMapZoneOverridesItem>|null`,id:`param-service-map-zone-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`ServiceMapWidgetServiceMapZoneOverridesItem`}),`. Per-zone display overrides, matched by the zone name the data source provides. Rename a zone, replace its price text, or hide it entirely — the underlying data is never changed.`]}),_jsxs(Expandable,{title:`ServiceMapWidgetServiceMapZoneOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidgetServiceMapZoneOverridesItem)`,children:[_jsx(ResponseField,{name:`zoneName`,type:`string`,required:true,id:`param-zone-name`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Case-insensitive match against the zone name in the map data.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-51`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`displayName`,type:`?string`,id:`param-display-name`,children:_jsx(_components.p,{children:`Optional replacement name shown everywhere this zone appears.`})}),_jsx(ResponseField,{name:`priceLabel`,type:`?string`,id:`param-price-label`,children:_jsx(_components.p,{children:`Optional replacement for the price text (e.g. “Included”, “Call us”). Overrides the zero-price label too.`})}),_jsx(ResponseField,{name:`hide`,type:`?bool`,id:`param-hide`,children:_jsx(_components.p,{children:`The zone stays on the map and in search results — it just leaves the key and cards.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-49`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`serviceMapShowSearch`,type:`?bool`,id:`param-service-map-show-search`,children:_jsx(_components.p,{children:`Show the “check your area” search.`})}),_jsx(ResponseField,{name:`serviceMapSearchLabel`,type:`?string`,id:`param-service-map-search-label`,children:_jsx(_components.p,{children:`Search label.`})}),_jsx(ResponseField,{name:`serviceMapSearchPlaceholder`,type:`?string`,id:`param-service-map-search-placeholder`,children:_jsx(_components.p,{children:`Search placeholder.`})}),_jsx(ResponseField,{name:`serviceMapSearchJustify`,type:`Enums\\\\ServiceMapSearchJustify|string|null`,id:`param-service-map-search-justify`,children:_jsxs(_components.p,{children:[`Positions the search box and button above the map. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapSearchInputRadius`,type:`Enums\\\\ServiceMapSearchInputRadius|string|null`,id:`param-service-map-search-input-radius`,children:_jsxs(_components.p,{children:[`Same radius scale as the buttons, so the box and button can match. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapAutocomplete`,type:`?bool`,id:`param-service-map-autocomplete`,children:_jsx(_components.p,{children:`Google address autocomplete under the search box (needs the Places API enabled on the key — see the setup guide in Connections → Google Maps). ZIP-only typing never triggers suggestions when the data source is zip-based.`})}),_jsx(ResponseField,{name:`serviceMapOutsideAreaText`,type:`?string`,id:`param-service-map-outside-area-text`,children:_jsx(_components.p,{children:`Shown when a searched location doesn’t fall in any zone (or the premium radius).`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonText`,type:`?string`,id:`param-service-map-search-button-text`,children:_jsx(_components.p,{children:`Leave empty for “Check”. The button’s look is configured in the Search button tab.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonVariant`,type:`Enums\\\\ServiceMapSearchButtonVariant|string|null`,id:`param-service-map-search-button-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonSize`,type:`Enums\\\\ServiceMapSearchButtonSize|string|null`,id:`param-service-map-search-button-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonRadius`,type:`Enums\\\\ServiceMapSearchButtonRadius|string|null`,id:`param-service-map-search-button-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonColor`,type:`?string`,id:`param-service-map-search-button-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonColorLight`,type:`?string`,id:`param-service-map-search-button-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonTextColor`,type:`?string`,id:`param-service-map-search-button-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonTextColorLight`,type:`?string`,id:`param-service-map-search-button-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonHoverColor`,type:`?string`,id:`param-service-map-search-button-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonHoverColorLight`,type:`?string`,id:`param-service-map-search-button-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonStyle`,type:`Enums\\\\ServiceMapSearchButtonStyle|string|null`,id:`param-service-map-search-button-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonShadowColor`,type:`?string`,id:`param-service-map-search-button-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonShadowColorLight`,type:`?string`,id:`param-service-map-search-button-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`serviceMapSearchButtonAnimation`,type:`Enums\\\\ServiceMapSearchButtonAnimation|string|null`,id:`param-service-map-search-button-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapPanelPlacement`,type:`Enums\\\\ServiceMapPanelPlacement|string|null`,id:`param-service-map-panel-placement`,children:_jsxs(_components.p,{children:[`Popup placement. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`corner`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapPanelLook`,type:`Enums\\\\ServiceMapPanelLook|string|null`,id:`param-service-map-panel-look`,children:_jsxs(_components.p,{children:[`Popup style. One of `,_jsx(_components.code,{children:`overlay`}),`, `,_jsx(_components.code,{children:`solid`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapPanelShowQuery`,type:`?bool`,id:`param-service-map-panel-show-query`,children:_jsx(_components.p,{children:`Repeats the searched ZIP code or address at the top of the result popup.`})}),_jsx(ResponseField,{name:`serviceMapPanelShowCity`,type:`?bool`,id:`param-service-map-panel-show-city`,children:_jsx(_components.p,{children:`Looks up the locality for a searched ZIP code (one extra Geocoding API call per search) and shows it beside the searched value.`})}),_jsx(ResponseField,{name:`serviceMapPanelTextSize`,type:`Enums\\\\ServiceMapPanelTextSize|string|null`,id:`param-service-map-panel-text-size`,children:_jsxs(_components.p,{children:[`Popup text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapPanelTitleWeight`,type:`Enums\\\\ServiceMapPanelTitleWeight|string|null`,id:`param-service-map-panel-title-weight`,children:_jsxs(_components.p,{children:[`Popup title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapShowPremium`,type:`?bool`,id:`param-service-map-show-premium`,children:_jsx(_components.p,{children:`When the data carries a premium (distance-priced) service, include it in search results and the zone cards. Sources without their own premium block use the pricing set in Service area map → Areas and pricing.`})}),_jsx(ResponseField,{name:`serviceMapShowPremiumRing`,type:`?bool`,id:`param-service-map-show-premium-ring`,children:_jsx(_components.p,{children:`Needs a premium range limit (miles) — with no limit there is no ring to draw.`})}),_jsx(ResponseField,{name:`serviceMapPremiumEstimateNote`,type:`?string`,id:`param-service-map-premium-estimate-note`,children:_jsx(_components.p,{children:`Premium estimate note.`})}),_jsx(ResponseField,{name:`serviceMapPremiumUnavailableText`,type:`?string`,id:`param-service-map-premium-unavailable-text`,children:_jsx(_components.p,{children:`Shown when a distance estimate isn’t possible (e.g. the Distance Matrix API isn’t enabled on the key).`})}),_jsx(ResponseField,{name:`serviceMapMarkerImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-service-map-marker-image`,children:_jsxs(_components.p,{children:[`Optional logo/pin image for the business marker. Leave empty for a simple accent-color pin. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerImageLight`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-service-map-marker-image-light`,children:_jsxs(_components.p,{children:[`Optional light-theme variant. Falls back to the dark-theme image. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerLabel`,type:`?string`,id:`param-service-map-marker-label`,children:_jsx(_components.p,{children:`Accessible name + hover title for the marker. Leave empty to use the business name from Site settings.`})}),_jsx(ResponseField,{name:`serviceMapMarkerSize`,type:`Enums\\\\ServiceMapMarkerSize|string|null`,id:`param-service-map-marker-size`,children:_jsxs(_components.p,{children:[`Marker size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerBounce`,type:`?bool`,id:`param-service-map-marker-bounce`,children:_jsx(_components.p,{children:`The business marker gently bobs in place. Automatically disabled for visitors who prefer reduced motion.`})}),_jsx(ResponseField,{name:`serviceMapShowLocation`,type:`?bool`,id:`param-service-map-show-location`,children:_jsx(_components.p,{children:`Adds the business location (named by its label in Service area map → Your location) as the FIRST entry of the map key and zone cards.`})}),_jsx(ResponseField,{name:`serviceMapBg`,type:`Enums\\\\ServiceMapBg|string|null`,id:`param-service-map-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapBgCustom`,type:`?string`,id:`param-service-map-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`serviceMapBgLight`,type:`Enums\\\\ServiceMapBgLight|string|null`,id:`param-service-map-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`serviceMapBgLightCustom`,type:`?string`,id:`param-service-map-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`serviceMapFontOverrides`,type:`Collection\u003cint, ServiceMapWidgetServiceMapFontOverridesItem>|null`,id:`param-service-map-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`ServiceMapWidgetServiceMapFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`ServiceMapWidgetServiceMapFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidgetServiceMapFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-52`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-12`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-12`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-12`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-12`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-12`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-12`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-12`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, ServiceMapWidgetServiceMapFontOverridesItemUploadsItem>|null`,id:`param-uploads-12`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`ServiceMapWidgetServiceMapFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`ServiceMapWidgetServiceMapFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidgetServiceMapFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-12`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-53`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-12`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-12`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-50`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-12`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-51`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-15`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-52`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`BlogPreviewWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogPreviewWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`blog-preview`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\BlogPreviewWidgetType|string`,required:true,id:`param-type-18`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`blog-preview`}),`. One of `,_jsx(_components.code,{children:`blog-preview`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-54`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-22`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`blogHeading`,type:`?string`,id:`param-blog-heading`,children:_jsx(_components.p,{children:`Heading.`})}),_jsx(ResponseField,{name:`blogSubheading`,type:`?string`,id:`param-blog-subheading`,children:_jsx(_components.p,{children:`Subheading.`})}),_jsx(ResponseField,{name:`blogCardImageAspect`,type:`Enums\\\\BlogCardImageAspect|string|null`,id:`param-blog-card-image-aspect`,children:_jsxs(_components.p,{children:[`Aspect ratio of the featured image. Choose “Hidden” for text-only cards. One of `,_jsx(_components.code,{children:`16/10`}),`, `,_jsx(_components.code,{children:`4/3`}),`, `,_jsx(_components.code,{children:`3/2`}),`, `,_jsx(_components.code,{children:`1/1`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardImageHover`,type:`Enums\\\\BlogCardImageHover|string|null`,id:`param-blog-card-image-hover`,children:_jsxs(_components.p,{children:[`Image hover. One of `,_jsx(_components.code,{children:`zoom`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardImageFill`,type:`?bool`,id:`param-blog-card-image-fill`,children:_jsx(_components.p,{children:`Use the featured image as the full card background, with the title and meta overlaid on a dark scrim. Posts with no image fall back to a normal card.`})}),_jsx(ResponseField,{name:`blogCardPreset`,type:`Enums\\\\BlogCardPreset|string|null`,id:`param-blog-card-preset`,children:_jsxs(_components.p,{children:[`The card surface. Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. (On image-led cards the photo covers the top edge.) One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`blogCardPresetRadius`,type:`Enums\\\\BlogCardPresetRadius|string|null`,id:`param-blog-card-preset-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`blogCardPresetAccentColor`,type:`?string`,id:`param-blog-card-preset-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`blogCardPresetAccentColorLight`,type:`?string`,id:`param-blog-card-preset-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`blogCardPresetForgeScope`,type:`Enums\\\\BlogCardPresetForgeScope|string|null`,id:`param-blog-card-preset-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`blogCardPresetForgeWeight`,type:`Enums\\\\BlogCardPresetForgeWeight|string|null`,id:`param-blog-card-preset-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`blogCardHover`,type:`Enums\\\\BlogCardHover|string|null`,id:`param-blog-card-hover`,children:_jsxs(_components.p,{children:[`What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt (3-D + glare), Magnetic and Spotlight follow the cursor (need site animations on). The Hover color below tints these. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`blogCardHoverColor`,type:`?string`,id:`param-blog-card-hover-color`,children:_jsx(_components.p,{children:`Border / shadow / glow color on hover. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`blogCardHoverColorLight`,type:`?string`,id:`param-blog-card-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardShowCategory`,type:`?bool`,id:`param-blog-card-show-category`,children:_jsx(_components.p,{children:`Show category.`})}),_jsx(ResponseField,{name:`blogCardCategoryStyle`,type:`Enums\\\\BlogCardCategoryStyle|string|null`,id:`param-blog-card-category-style`,children:_jsxs(_components.p,{children:[`How the category badge uses its color (set per category under Blog Categories). Filled = colored background; Outline = colored border + text; Minimal = colored text only. One of `,_jsx(_components.code,{children:`filled`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`minimal`}),`.`]})}),_jsx(ResponseField,{name:`blogCardShowDate`,type:`?bool`,id:`param-blog-card-show-date`,children:_jsx(_components.p,{children:`Show date.`})}),_jsx(ResponseField,{name:`blogCardShowExcerpt`,type:`?bool`,id:`param-blog-card-show-excerpt`,children:_jsx(_components.p,{children:`Show excerpt.`})}),_jsx(ResponseField,{name:`blogCardExcerptLines`,type:`Enums\\\\BlogCardExcerptLines|string|null`,id:`param-blog-card-excerpt-lines`,children:_jsxs(_components.p,{children:[`How many lines of the excerpt to show before truncating. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardShowAuthor`,type:`?bool`,id:`param-blog-card-show-author`,children:_jsx(_components.p,{children:`Show author.`})}),_jsx(ResponseField,{name:`blogCardShowReadMore`,type:`?bool`,id:`param-blog-card-show-read-more`,children:_jsx(_components.p,{children:`Show “Read post” link.`})}),_jsx(ResponseField,{name:`blogCardReadMorePlacement`,type:`Enums\\\\BlogCardReadMorePlacement|string|null`,id:`param-blog-card-read-more-placement`,children:_jsxs(_components.p,{children:[`Auto puts it on the right of horizontal cards (list / compact / featured) and below the text on grid cards. Or force one placement everywhere. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`below`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreColor`,type:`?string`,id:`param-blog-card-read-more-color`,children:_jsx(_components.p,{children:`Optional. Overrides the “Read post” link color. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`blogCardReadMoreColorLight`,type:`?string`,id:`param-blog-card-read-more-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColor`,type:`?string`,id:`param-blog-card-read-more-hover-color`,children:_jsx(_components.p,{children:`Optional. Color of the “Read post” link when the card is hovered. Leave empty to use the accent color.`})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColorLight`,type:`?string`,id:`param-blog-card-read-more-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardTitleColor`,type:`?string`,id:`param-blog-card-title-color`,children:_jsx(_components.p,{children:`Optional. Overrides the card title color. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`blogCardTitleColorLight`,type:`?string`,id:`param-blog-card-title-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`blogCardTitleWeight`,type:`Enums\\\\BlogCardTitleWeight|string|null`,id:`param-blog-card-title-weight`,children:_jsxs(_components.p,{children:[`Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`blogCardTitleHoverColor`,type:`?string`,id:`param-blog-card-title-hover-color`,children:_jsx(_components.p,{children:`Optional. Title color when the card is hovered. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`blogCardTitleHoverColorLight`,type:`?string`,id:`param-blog-card-title-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardTextColor`,type:`?string`,id:`param-blog-card-text-color`,children:_jsx(_components.p,{children:`Optional. Overrides the excerpt text color. Leave empty for the muted default.`})}),_jsx(ResponseField,{name:`blogCardTextColorLight`,type:`?string`,id:`param-blog-card-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the muted default.`})}),_jsx(ResponseField,{name:`blogCardTextWeight`,type:`Enums\\\\BlogCardTextWeight|string|null`,id:`param-blog-card-text-weight`,children:_jsxs(_components.p,{children:[`Excerpt weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`blogCardMetaColor`,type:`?string`,id:`param-blog-card-meta-color`,children:_jsx(_components.p,{children:`Date / meta line color. Leave empty for the faint default.`})}),_jsx(ResponseField,{name:`blogCardMetaColorLight`,type:`?string`,id:`param-blog-card-meta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the faint default.`})}),_jsx(ResponseField,{name:`blogBg`,type:`Enums\\\\BlogBg|string|null`,id:`param-blog-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`blogBgCustom`,type:`?string`,id:`param-blog-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`blogBgLight`,type:`Enums\\\\BlogBgLight|string|null`,id:`param-blog-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`blogBgLightCustom`,type:`?string`,id:`param-blog-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`blogFontOverrides`,type:`Collection\u003cint, BlogPreviewWidgetBlogFontOverridesItem>|null`,id:`param-blog-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`BlogPreviewWidgetBlogFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`BlogPreviewWidgetBlogFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogPreviewWidgetBlogFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-55`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-13`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-13`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-13`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-13`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-13`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-13`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-13`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, BlogPreviewWidgetBlogFontOverridesItemUploadsItem>|null`,id:`param-uploads-13`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`BlogPreviewWidgetBlogFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`BlogPreviewWidgetBlogFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogPreviewWidgetBlogFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-13`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-56`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-13`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-13`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-53`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-13`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-54`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`blogCtaLabel`,type:`?string`,id:`param-blog-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`blogCtaUrl`,type:`?string`,id:`param-blog-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`blogCtaNewTab`,type:`?bool`,id:`param-blog-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`blogCtaVariant`,type:`Enums\\\\BlogCtaVariant|string|null`,id:`param-blog-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaSize`,type:`Enums\\\\BlogCtaSize|string|null`,id:`param-blog-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaRadius`,type:`Enums\\\\BlogCtaRadius|string|null`,id:`param-blog-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaColor`,type:`?string`,id:`param-blog-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`blogCtaColorLight`,type:`?string`,id:`param-blog-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`blogCtaTextColor`,type:`?string`,id:`param-blog-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`blogCtaTextColorLight`,type:`?string`,id:`param-blog-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`blogCtaHoverColor`,type:`?string`,id:`param-blog-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`blogCtaHoverColorLight`,type:`?string`,id:`param-blog-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`blogCtaStyle`,type:`Enums\\\\BlogCtaStyle|string|null`,id:`param-blog-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaShadowColor`,type:`?string`,id:`param-blog-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`blogCtaShadowColorLight`,type:`?string`,id:`param-blog-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`blogCtaAnimation`,type:`Enums\\\\BlogCtaAnimation|string|null`,id:`param-blog-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaIcon`,type:`?string`,id:`param-blog-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`blogCtaIconFamily`,type:`Enums\\\\BlogCtaIconFamily|string|null`,id:`param-blog-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaIconPosition`,type:`Enums\\\\BlogCtaIconPosition|string|null`,id:`param-blog-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`blogCtaIconNudge`,type:`?bool`,id:`param-blog-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-16`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-55`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`CookieDeclarationWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CookieDeclarationWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`cookie-declaration`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\CookieDeclarationWidgetType|string`,required:true,id:`param-type-19`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`cookie-declaration`}),`. One of `,_jsx(_components.code,{children:`cookie-declaration`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-57`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-23`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`cookieDeclEyebrow`,type:`?string`,id:`param-cookie-decl-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow.`})}),_jsx(ResponseField,{name:`cookieDeclHeading`,type:`?string`,id:`param-cookie-decl-heading`,children:_jsx(_components.p,{children:`Heading.`})}),_jsx(ResponseField,{name:`cookieDeclIntro`,type:`?string`,id:`param-cookie-decl-intro`,children:_jsx(_components.p,{children:`Introduction.`})}),_jsx(ResponseField,{name:`cookieDeclShowStatus`,type:`?bool`,id:`param-cookie-decl-show-status`,children:_jsx(_components.p,{children:`A short block naming what this visitor has allowed, with a button that reopens the preferences panel. Withdrawal has to be as easy as consent, so leave this on unless the page offers another way.`})}),_jsx(ResponseField,{name:`cookieDeclShowTable`,type:`?bool`,id:`param-cookie-decl-show-table`,children:_jsx(_components.p,{children:`Provider, type, duration and domain per entry. Off leaves the plain-language disclosures alone, which reads better but tells a technical reader less.`})}),_jsx(ResponseField,{name:`cookieDeclLayout`,type:`Enums\\\\CookieDeclLayout|string|null`,id:`param-cookie-decl-layout`,children:_jsxs(_components.p,{children:[`Layout. One of `,_jsx(_components.code,{children:`stacked`}),`, `,_jsx(_components.code,{children:`compact`}),`.`]})}),_jsx(ResponseField,{name:`cookieDeclBg`,type:`Enums\\\\CookieDeclBg|string|null`,id:`param-cookie-decl-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`cookieDeclBgCustom`,type:`?string`,id:`param-cookie-decl-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`cookieDeclBgLight`,type:`Enums\\\\CookieDeclBgLight|string|null`,id:`param-cookie-decl-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`cookieDeclBgLightCustom`,type:`?string`,id:`param-cookie-decl-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`cookieDeclFontOverrides`,type:`Collection\u003cint, CookieDeclarationWidgetCookieDeclFontOverridesItem>|null`,id:`param-cookie-decl-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`CookieDeclarationWidgetCookieDeclFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`CookieDeclarationWidgetCookieDeclFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CookieDeclarationWidgetCookieDeclFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-58`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-14`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-14`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-14`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-14`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-14`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-14`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-14`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem>|null`,id:`param-uploads-14`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-14`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-59`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-14`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-14`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-56`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-14`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-57`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-17`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-58`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`RichTextWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\RichTextWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\RichTextWidgetType|string`,required:true,id:`param-type-20`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-60`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-24`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`content`,type:`?string`,id:`param-content-2`,children:_jsxs(_components.p,{children:[`The text as HTML, e.g. `,_jsx(_components.code,{children:`\u003ch2>Our story\u003c/h2>\u003cp>It began with \u003cstrong>one\u003c/strong> idea.\u003c/p>`}),`. The site keeps the tags and styles this area’s editor offers (paragraphs, headings, bold, italic, links, lists…) and removes the rest.`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-18`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-59`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`GoogleReviewsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GoogleReviewsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`google-reviews`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\GoogleReviewsWidgetType|string`,required:true,id:`param-type-21`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`google-reviews`}),`. One of `,_jsx(_components.code,{children:`google-reviews`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-61`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-25`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`reviewsEyebrow`,type:`?string`,id:`param-reviews-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`reviewsEyebrowColor`,type:`?string`,id:`param-reviews-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`reviewsEyebrowColorLight`,type:`?string`,id:`param-reviews-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`reviewsEyebrowWeight`,type:`Enums\\\\ReviewsEyebrowWeight|string|null`,id:`param-reviews-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsEyebrowSize`,type:`Enums\\\\ReviewsEyebrowSize|string|null`,id:`param-reviews-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`reviewsHeading`,type:`?string`,id:`param-reviews-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the reviews.`})}),_jsx(ResponseField,{name:`reviewsHeadingColor`,type:`?string`,id:`param-reviews-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`reviewsHeadingColorLight`,type:`?string`,id:`param-reviews-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsHeadingWeight`,type:`Enums\\\\ReviewsHeadingWeight|string|null`,id:`param-reviews-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsIntro`,type:`?string`,id:`param-reviews-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`reviewsIntroColor`,type:`?string`,id:`param-reviews-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`reviewsIntroColorLight`,type:`?string`,id:`param-reviews-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsIntroWeight`,type:`Enums\\\\ReviewsIntroWeight|string|null`,id:`param-reviews-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsIntroSize`,type:`Enums\\\\ReviewsIntroSize|string|null`,id:`param-reviews-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`reviewsAlign`,type:`Enums\\\\ReviewsAlign|string|null`,id:`param-reviews-align`,children:_jsxs(_components.p,{children:[`Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`reviewsMinRating`,type:`Enums\\\\ReviewsMinRating|string|null`,id:`param-reviews-min-rating`,children:_jsxs(_components.p,{children:[`Only show reviews at or above this star rating. One of `,_jsx(_components.code,{children:`0`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`.`]})}),_jsx(ResponseField,{name:`reviewsFeaturedOnly`,type:`?bool`,id:`param-reviews-featured-only`,children:_jsx(_components.p,{children:`Show only reviews you have flagged “Featured” in the Google Reviews manager — hand-curate exactly which appear.`})}),_jsx(ResponseField,{name:`reviewsCount`,type:`?int`,id:`param-reviews-count`,children:_jsx(_components.p,{children:`The most reviews to show (newest first). 1 to 30.`})}),_jsx(ResponseField,{name:`reviewsLayout`,type:`Enums\\\\ReviewsLayout|string|null`,id:`param-reviews-layout`,children:_jsxs(_components.p,{children:[`Animated carousel: a continuous, auto-scrolling marquee of cards (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered, Pinterest-style grid that hugs each review’s length. One of `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`masonry`}),`.`]})}),_jsx(ResponseField,{name:`reviewsColumns`,type:`Enums\\\\ReviewsColumns|string|null`,id:`param-reviews-columns`,children:_jsxs(_components.p,{children:[`How many cards per row (grid) or columns (masonry). Auto fits as many as comfortably fit. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`reviewsSpeed`,type:`Enums\\\\ReviewsSpeed|string|null`,id:`param-reviews-speed`,children:_jsxs(_components.p,{children:[`How fast the carousel auto-scrolls. The review carousel runs on its own (gentler) speed scale than the logos/footer marquees so two never scroll in lockstep. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`reviewsDirection`,type:`Enums\\\\ReviewsDirection|string|null`,id:`param-reviews-direction`,children:_jsxs(_components.p,{children:[`Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`reviewsGap`,type:`Enums\\\\ReviewsGap|string|null`,id:`param-reviews-gap`,children:_jsxs(_components.p,{children:[`Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`reviewsShowAvatar`,type:`?bool`,id:`param-reviews-show-avatar`,children:_jsx(_components.p,{children:`Show the reviewer’s Google avatar (falls back to a lettered initial when missing or anonymous).`})}),_jsx(ResponseField,{name:`reviewsShowRating`,type:`?bool`,id:`param-reviews-show-rating`,children:_jsx(_components.p,{children:`Show star rating.`})}),_jsx(ResponseField,{name:`reviewsShowDate`,type:`?bool`,id:`param-reviews-show-date`,children:_jsx(_components.p,{children:`Show review date.`})}),_jsx(ResponseField,{name:`reviewsShowReply`,type:`?bool`,id:`param-reviews-show-reply`,children:_jsx(_components.p,{children:`Include the business’s public reply beneath a review when there is one.`})}),_jsx(ResponseField,{name:`reviewsShowAttribution`,type:`?bool`,id:`param-reviews-show-attribution`,children:_jsx(_components.p,{children:`A small Google attribution lockup under the section — recommended when showing Google reviews.`})}),_jsx(ResponseField,{name:`reviewsCardStyle`,type:`Enums\\\\ReviewsCardStyle|string|null`,id:`param-reviews-card-style`,children:_jsxs(_components.p,{children:[`The card surface. Raised is a quiet lit card; Luxe is a frosted glass panel; Outline is a double-rule plaque frame; Plain has no chrome; Poster frames the card with an accent keyline; Spine embeds a color rail along the top; Tint washes the card in the accent color. Showstoppers: Ticket punches notches into the sides, Bracket draws only corner marks, Forge is a machined plate with an engraved frame, Press is a punched index card with a margin rule, Inlay recesses the content into a well. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleRadius`,type:`Enums\\\\ReviewsCardStyleRadius|string|null`,id:`param-reviews-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleAccentColor`,type:`?string`,id:`param-reviews-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`reviewsCardStyleAccentColorLight`,type:`?string`,id:`param-reviews-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsCardStyleForgeScope`,type:`Enums\\\\ReviewsCardStyleForgeScope|string|null`,id:`param-reviews-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleForgeWeight`,type:`Enums\\\\ReviewsCardStyleForgeWeight|string|null`,id:`param-reviews-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardHover`,type:`Enums\\\\ReviewsCardHover|string|null`,id:`param-reviews-card-hover`,children:_jsxs(_components.p,{children:[`What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardWidth`,type:`Enums\\\\ReviewsCardWidth|string|null`,id:`param-reviews-card-width`,children:_jsxs(_components.p,{children:[`Sets the carousel card width and the minimum card width in the grid/masonry layouts. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardHeight`,type:`Enums\\\\ReviewsCardHeight|string|null`,id:`param-reviews-card-height`,children:_jsxs(_components.p,{children:[`Auto hugs the content; the taller presets give every card a consistent minimum height (grid + carousel). The masonry layout ignores this and staggers card heights itself. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCardAlign`,type:`Enums\\\\ReviewsCardAlign|string|null`,id:`param-reviews-card-align`,children:_jsxs(_components.p,{children:[`How the avatar, name, stars and text align inside each card. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`reviewsStarColor`,type:`?string`,id:`param-reviews-star-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use a warm amber. Applies in both themes.`})}),_jsx(ResponseField,{name:`reviewsAccentColor`,type:`?string`,id:`param-reviews-accent-color`,children:_jsx(_components.p,{children:`Optional — background of the lettered fallback avatar. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`reviewsAccentColorLight`,type:`?string`,id:`param-reviews-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsNameSize`,type:`Enums\\\\ReviewsNameSize|string|null`,id:`param-reviews-name-size`,children:_jsxs(_components.p,{children:[`Name size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`reviewsNameWeight`,type:`Enums\\\\ReviewsNameWeight|string|null`,id:`param-reviews-name-weight`,children:_jsxs(_components.p,{children:[`Name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsNameColor`,type:`?string`,id:`param-reviews-name-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`reviewsNameColorLight`,type:`?string`,id:`param-reviews-name-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsDateSize`,type:`Enums\\\\ReviewsDateSize|string|null`,id:`param-reviews-date-size`,children:_jsxs(_components.p,{children:[`Date size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`reviewsDateWeight`,type:`Enums\\\\ReviewsDateWeight|string|null`,id:`param-reviews-date-weight`,children:_jsxs(_components.p,{children:[`Date weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsDateColor`,type:`?string`,id:`param-reviews-date-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the faint text color.`})}),_jsx(ResponseField,{name:`reviewsDateColorLight`,type:`?string`,id:`param-reviews-date-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsTextSize`,type:`Enums\\\\ReviewsTextSize|string|null`,id:`param-reviews-text-size`,children:_jsxs(_components.p,{children:[`Review text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`reviewsTextWeight`,type:`Enums\\\\ReviewsTextWeight|string|null`,id:`param-reviews-text-weight`,children:_jsxs(_components.p,{children:[`Review text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`reviewsTextColor`,type:`?string`,id:`param-reviews-text-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`reviewsTextColorLight`,type:`?string`,id:`param-reviews-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`reviewsTextClamp`,type:`Enums\\\\ReviewsTextClamp|string|null`,id:`param-reviews-text-clamp`,children:_jsxs(_components.p,{children:[`Cap each review at this many lines (the rest is truncated with an ellipsis) so one very long review can’t blow up the card height — important once real, lengthy reviews come in. Choose “Full text” to never truncate. Short reviews are unaffected. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`8`}),`, `,_jsx(_components.code,{children:`12`}),`.`]})}),_jsx(ResponseField,{name:`reviewsBg`,type:`Enums\\\\ReviewsBg|string|null`,id:`param-reviews-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`reviewsBgCustom`,type:`?string`,id:`param-reviews-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`reviewsBgLight`,type:`Enums\\\\ReviewsBgLight|string|null`,id:`param-reviews-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`reviewsBgLightCustom`,type:`?string`,id:`param-reviews-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`reviewsFontOverrides`,type:`Collection\u003cint, GoogleReviewsWidgetReviewsFontOverridesItem>|null`,id:`param-reviews-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`GoogleReviewsWidgetReviewsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`GoogleReviewsWidgetReviewsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GoogleReviewsWidgetReviewsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-62`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-15`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-15`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-15`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-15`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-15`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-15`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-15`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem>|null`,id:`param-uploads-15`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-15`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-63`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-15`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-15`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-60`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-15`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-61`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`reviewsCtaLabel`,type:`?string`,id:`param-reviews-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`reviewsCtaUrl`,type:`?string`,id:`param-reviews-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`reviewsCtaNewTab`,type:`?bool`,id:`param-reviews-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`reviewsCtaVariant`,type:`Enums\\\\ReviewsCtaVariant|string|null`,id:`param-reviews-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaSize`,type:`Enums\\\\ReviewsCtaSize|string|null`,id:`param-reviews-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaRadius`,type:`Enums\\\\ReviewsCtaRadius|string|null`,id:`param-reviews-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaColor`,type:`?string`,id:`param-reviews-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`reviewsCtaColorLight`,type:`?string`,id:`param-reviews-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`reviewsCtaTextColor`,type:`?string`,id:`param-reviews-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`reviewsCtaTextColorLight`,type:`?string`,id:`param-reviews-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`reviewsCtaHoverColor`,type:`?string`,id:`param-reviews-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`reviewsCtaHoverColorLight`,type:`?string`,id:`param-reviews-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`reviewsCtaStyle`,type:`Enums\\\\ReviewsCtaStyle|string|null`,id:`param-reviews-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaShadowColor`,type:`?string`,id:`param-reviews-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`reviewsCtaShadowColorLight`,type:`?string`,id:`param-reviews-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`reviewsCtaAnimation`,type:`Enums\\\\ReviewsCtaAnimation|string|null`,id:`param-reviews-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaIcon`,type:`?string`,id:`param-reviews-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`reviewsCtaIconFamily`,type:`Enums\\\\ReviewsCtaIconFamily|string|null`,id:`param-reviews-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaIconPosition`,type:`Enums\\\\ReviewsCtaIconPosition|string|null`,id:`param-reviews-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`reviewsCtaIconNudge`,type:`?bool`,id:`param-reviews-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-19`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-62`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`TestimonialsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TestimonialsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`testimonials`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\TestimonialsWidgetType|string`,required:true,id:`param-type-22`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`testimonials`}),`. One of `,_jsx(_components.code,{children:`testimonials`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-64`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-26`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrow`,type:`?string`,id:`param-testimonials-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`testimonialsEyebrowColor`,type:`?string`,id:`param-testimonials-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`testimonialsEyebrowColorLight`,type:`?string`,id:`param-testimonials-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`testimonialsEyebrowWeight`,type:`Enums\\\\TestimonialsEyebrowWeight|string|null`,id:`param-testimonials-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrowSize`,type:`Enums\\\\TestimonialsEyebrowSize|string|null`,id:`param-testimonials-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsHeading`,type:`?string`,id:`param-testimonials-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the testimonials.`})}),_jsx(ResponseField,{name:`testimonialsHeadingColor`,type:`?string`,id:`param-testimonials-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`testimonialsHeadingColorLight`,type:`?string`,id:`param-testimonials-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsHeadingWeight`,type:`Enums\\\\TestimonialsHeadingWeight|string|null`,id:`param-testimonials-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsIntro`,type:`?string`,id:`param-testimonials-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`testimonialsIntroColor`,type:`?string`,id:`param-testimonials-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`testimonialsIntroColorLight`,type:`?string`,id:`param-testimonials-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsIntroWeight`,type:`Enums\\\\TestimonialsIntroWeight|string|null`,id:`param-testimonials-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsIntroSize`,type:`Enums\\\\TestimonialsIntroSize|string|null`,id:`param-testimonials-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsAlign`,type:`Enums\\\\TestimonialsAlign|string|null`,id:`param-testimonials-align`,children:_jsxs(_components.p,{children:[`Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsFeaturedOnly`,type:`?bool`,id:`param-testimonials-featured-only`,children:_jsx(_components.p,{children:`Show only testimonials you have flagged “Featured” in the Testimonials manager — hand-curate exactly which appear.`})}),_jsx(ResponseField,{name:`testimonialsCount`,type:`?int`,id:`param-testimonials-count`,children:_jsx(_components.p,{children:`The most testimonials to show (featured first). 1 to 30.`})}),_jsx(ResponseField,{name:`testimonialsLayout`,type:`Enums\\\\TestimonialsLayout|string|null`,id:`param-testimonials-layout`,children:_jsxs(_components.p,{children:[`Animated carousel: a continuous, auto-scrolling marquee of cards (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered, Pinterest-style grid that hugs each quote’s length. One of `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`masonry`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsColumns`,type:`Enums\\\\TestimonialsColumns|string|null`,id:`param-testimonials-columns`,children:_jsxs(_components.p,{children:[`How many cards per row (grid) or columns (masonry). Auto fits as many as comfortably fit. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsSpeed`,type:`Enums\\\\TestimonialsSpeed|string|null`,id:`param-testimonials-speed`,children:_jsxs(_components.p,{children:[`How fast the carousel auto-scrolls. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsDirection`,type:`Enums\\\\TestimonialsDirection|string|null`,id:`param-testimonials-direction`,children:_jsxs(_components.p,{children:[`Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsGap`,type:`Enums\\\\TestimonialsGap|string|null`,id:`param-testimonials-gap`,children:_jsxs(_components.p,{children:[`Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardLayout`,type:`Enums\\\\TestimonialsCardLayout|string|null`,id:`param-testimonials-card-layout`,children:_jsxs(_components.p,{children:[`Quote-led: a large quotation mark over the quote, with the author in a footer (the classic testimonial look). Accent bar: the quote beside a bold accent bar. Classic: the author on top (photo + name), then the quote — like a review card. One of `,_jsx(_components.code,{children:`quote`}),`, `,_jsx(_components.code,{children:`bar`}),`, `,_jsx(_components.code,{children:`classic`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsShowQuoteMark`,type:`?bool`,id:`param-testimonials-show-quote-mark`,children:_jsx(_components.p,{children:`The oversized “ glyph on the quote-led and accent-bar layouts.`})}),_jsx(ResponseField,{name:`testimonialsShowAvatar`,type:`?bool`,id:`param-testimonials-show-avatar`,children:_jsx(_components.p,{children:`Show the author’s photo (falls back to a lettered initial when none is set).`})}),_jsx(ResponseField,{name:`testimonialsShowTitle`,type:`?bool`,id:`param-testimonials-show-title`,children:_jsx(_components.p,{children:`Show author role / context.`})}),_jsx(ResponseField,{name:`testimonialsShowRating`,type:`?bool`,id:`param-testimonials-show-rating`,children:_jsx(_components.p,{children:`Off by default — a testimonial usually leads with the quote. Turn on to show each testimonial’s star rating.`})}),_jsx(ResponseField,{name:`testimonialsLinkLabel`,type:`?string`,id:`param-testimonials-link-label`,children:_jsx(_components.p,{children:`The text for a testimonial’s optional “Source link” (set per testimonial in the Testimonials manager). Shown only on testimonials that have a link.`})}),_jsx(ResponseField,{name:`testimonialsCardStyle`,type:`Enums\\\\TestimonialsCardStyle|string|null`,id:`param-testimonials-card-style`,children:_jsxs(_components.p,{children:[`The card treatment. Spine (the default) embeds a color rail along the top; Raised is a quiet lit card; Luxe a frosted glass panel; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleRadius`,type:`Enums\\\\TestimonialsCardStyleRadius|string|null`,id:`param-testimonials-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleAccentColor`,type:`?string`,id:`param-testimonials-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`testimonialsCardStyleAccentColorLight`,type:`?string`,id:`param-testimonials-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsCardStyleForgeScope`,type:`Enums\\\\TestimonialsCardStyleForgeScope|string|null`,id:`param-testimonials-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleForgeWeight`,type:`Enums\\\\TestimonialsCardStyleForgeWeight|string|null`,id:`param-testimonials-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardHover`,type:`Enums\\\\TestimonialsCardHover|string|null`,id:`param-testimonials-card-hover`,children:_jsxs(_components.p,{children:[`What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardWidth`,type:`Enums\\\\TestimonialsCardWidth|string|null`,id:`param-testimonials-card-width`,children:_jsxs(_components.p,{children:[`Sets the carousel card width and the minimum card width in the grid/masonry layouts. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardHeight`,type:`Enums\\\\TestimonialsCardHeight|string|null`,id:`param-testimonials-card-height`,children:_jsxs(_components.p,{children:[`Auto hugs the content; the taller presets give every card a consistent minimum height (grid + carousel). The masonry layout ignores this and staggers card heights itself. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCardAlign`,type:`Enums\\\\TestimonialsCardAlign|string|null`,id:`param-testimonials-card-align`,children:_jsxs(_components.p,{children:[`How the quote and author align inside each card. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsStarColor`,type:`?string`,id:`param-testimonials-star-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use a warm amber. Applies in both themes (only when ratings are shown).`})}),_jsx(ResponseField,{name:`testimonialsAccentColor`,type:`?string`,id:`param-testimonials-accent-color`,children:_jsx(_components.p,{children:`Optional — the quotation mark, the accent bar, and the lettered-avatar background. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`testimonialsAccentColorLight`,type:`?string`,id:`param-testimonials-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsNameSize`,type:`Enums\\\\TestimonialsNameSize|string|null`,id:`param-testimonials-name-size`,children:_jsxs(_components.p,{children:[`Name size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsNameWeight`,type:`Enums\\\\TestimonialsNameWeight|string|null`,id:`param-testimonials-name-weight`,children:_jsxs(_components.p,{children:[`Name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsNameColor`,type:`?string`,id:`param-testimonials-name-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`testimonialsNameColorLight`,type:`?string`,id:`param-testimonials-name-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsTitleSize`,type:`Enums\\\\TestimonialsTitleSize|string|null`,id:`param-testimonials-title-size`,children:_jsxs(_components.p,{children:[`Role size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsTitleWeight`,type:`Enums\\\\TestimonialsTitleWeight|string|null`,id:`param-testimonials-title-weight`,children:_jsxs(_components.p,{children:[`Role weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsTitleColor`,type:`?string`,id:`param-testimonials-title-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the faint text color.`})}),_jsx(ResponseField,{name:`testimonialsTitleColorLight`,type:`?string`,id:`param-testimonials-title-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsQuoteSize`,type:`Enums\\\\TestimonialsQuoteSize|string|null`,id:`param-testimonials-quote-size`,children:_jsxs(_components.p,{children:[`Quote size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteWeight`,type:`Enums\\\\TestimonialsQuoteWeight|string|null`,id:`param-testimonials-quote-weight`,children:_jsxs(_components.p,{children:[`Quote weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteColor`,type:`?string`,id:`param-testimonials-quote-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the theme text color.`})}),_jsx(ResponseField,{name:`testimonialsQuoteColorLight`,type:`?string`,id:`param-testimonials-quote-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`testimonialsQuoteClamp`,type:`Enums\\\\TestimonialsQuoteClamp|string|null`,id:`param-testimonials-quote-clamp`,children:_jsxs(_components.p,{children:[`Cap each quote at this many lines (the rest is truncated with an ellipsis) so one very long testimonial can’t blow up the card height. Choose “Full text” to never truncate. Short quotes are unaffected. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`8`}),`, `,_jsx(_components.code,{children:`12`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsBg`,type:`Enums\\\\TestimonialsBg|string|null`,id:`param-testimonials-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsBgCustom`,type:`?string`,id:`param-testimonials-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`testimonialsBgLight`,type:`Enums\\\\TestimonialsBgLight|string|null`,id:`param-testimonials-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsBgLightCustom`,type:`?string`,id:`param-testimonials-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`testimonialsFontOverrides`,type:`Collection\u003cint, TestimonialsWidgetTestimonialsFontOverridesItem>|null`,id:`param-testimonials-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`TestimonialsWidgetTestimonialsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`TestimonialsWidgetTestimonialsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TestimonialsWidgetTestimonialsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-65`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-16`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-16`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-16`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-16`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-16`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-16`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-16`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem>|null`,id:`param-uploads-16`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-16`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-66`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-16`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-16`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-63`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-16`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-64`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`testimonialsCtaLabel`,type:`?string`,id:`param-testimonials-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`testimonialsCtaUrl`,type:`?string`,id:`param-testimonials-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`testimonialsCtaNewTab`,type:`?bool`,id:`param-testimonials-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`testimonialsCtaVariant`,type:`Enums\\\\TestimonialsCtaVariant|string|null`,id:`param-testimonials-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaSize`,type:`Enums\\\\TestimonialsCtaSize|string|null`,id:`param-testimonials-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaRadius`,type:`Enums\\\\TestimonialsCtaRadius|string|null`,id:`param-testimonials-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaColor`,type:`?string`,id:`param-testimonials-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`testimonialsCtaColorLight`,type:`?string`,id:`param-testimonials-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`testimonialsCtaTextColor`,type:`?string`,id:`param-testimonials-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`testimonialsCtaTextColorLight`,type:`?string`,id:`param-testimonials-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`testimonialsCtaHoverColor`,type:`?string`,id:`param-testimonials-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`testimonialsCtaHoverColorLight`,type:`?string`,id:`param-testimonials-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`testimonialsCtaStyle`,type:`Enums\\\\TestimonialsCtaStyle|string|null`,id:`param-testimonials-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaShadowColor`,type:`?string`,id:`param-testimonials-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`testimonialsCtaShadowColorLight`,type:`?string`,id:`param-testimonials-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`testimonialsCtaAnimation`,type:`Enums\\\\TestimonialsCtaAnimation|string|null`,id:`param-testimonials-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIcon`,type:`?string`,id:`param-testimonials-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`testimonialsCtaIconFamily`,type:`Enums\\\\TestimonialsCtaIconFamily|string|null`,id:`param-testimonials-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIconPosition`,type:`Enums\\\\TestimonialsCtaIconPosition|string|null`,id:`param-testimonials-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIconNudge`,type:`?bool`,id:`param-testimonials-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-20`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-65`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`InstagramFeedWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\InstagramFeedWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`instagram-feed`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\InstagramFeedWidgetType|string`,required:true,id:`param-type-23`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`instagram-feed`}),`. One of `,_jsx(_components.code,{children:`instagram-feed`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-67`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-27`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`instagramEyebrow`,type:`?string`,id:`param-instagram-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`instagramEyebrowColor`,type:`?string`,id:`param-instagram-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`instagramEyebrowColorLight`,type:`?string`,id:`param-instagram-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`instagramEyebrowWeight`,type:`Enums\\\\InstagramEyebrowWeight|string|null`,id:`param-instagram-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`instagramEyebrowSize`,type:`Enums\\\\InstagramEyebrowSize|string|null`,id:`param-instagram-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`instagramHeading`,type:`?string`,id:`param-instagram-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the feed.`})}),_jsx(ResponseField,{name:`instagramHeadingColor`,type:`?string`,id:`param-instagram-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`instagramHeadingColorLight`,type:`?string`,id:`param-instagram-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`instagramHeadingWeight`,type:`Enums\\\\InstagramHeadingWeight|string|null`,id:`param-instagram-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`instagramIntro`,type:`?string`,id:`param-instagram-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`instagramIntroColor`,type:`?string`,id:`param-instagram-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`instagramIntroColorLight`,type:`?string`,id:`param-instagram-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`instagramIntroWeight`,type:`Enums\\\\InstagramIntroWeight|string|null`,id:`param-instagram-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`instagramIntroSize`,type:`Enums\\\\InstagramIntroSize|string|null`,id:`param-instagram-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`instagramAlign`,type:`Enums\\\\InstagramAlign|string|null`,id:`param-instagram-align`,children:_jsxs(_components.p,{children:[`Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`instagramFeaturedOnly`,type:`?bool`,id:`param-instagram-featured-only`,children:_jsx(_components.p,{children:`Show only posts you have flagged “Featured” in the Instagram Posts manager — hand-curate exactly which appear.`})}),_jsx(ResponseField,{name:`instagramCount`,type:`?int`,id:`param-instagram-count`,children:_jsx(_components.p,{children:`The most posts to show (newest first). 1 to 30.`})}),_jsx(ResponseField,{name:`instagramMediaFilter`,type:`Enums\\\\InstagramMediaFilter|string|null`,id:`param-instagram-media-filter`,children:_jsxs(_components.p,{children:[`Filter this feed by media type. “Photos” keeps image and album posts; “Videos \u0026 reels” keeps only video posts. This is per-feed display only — it doesn’t change what gets synced. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`photos`}),`, `,_jsx(_components.code,{children:`videos`}),`.`]})}),_jsx(ResponseField,{name:`instagramLayout`,type:`Enums\\\\InstagramLayout|string|null`,id:`param-instagram-layout`,children:_jsxs(_components.p,{children:[`Carousel: a continuous, auto-scrolling marquee strip (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered grid that hugs each image’s shape. Mosaic Photo Wall: an edge-to-edge, gap-free photo wall where rows are scaled to a common height (like Flickr / Google Photos) — the richest option for photos. One of `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`masonry`}),`, `,_jsx(_components.code,{children:`justified`}),`.`]})}),_jsx(ResponseField,{name:`instagramColumns`,type:`Enums\\\\InstagramColumns|string|null`,id:`param-instagram-columns`,children:_jsxs(_components.p,{children:[`How many tiles per row (grid) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout.) One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`.`]})}),_jsx(ResponseField,{name:`instagramJustifiedHeight`,type:`Enums\\\\InstagramJustifiedHeight|string|null`,id:`param-instagram-justified-height`,children:_jsxs(_components.p,{children:[`The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`instagramJustifiedVary`,type:`?bool`,id:`param-instagram-justified-vary`,children:_jsx(_components.p,{children:`For feeds where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.`})}),_jsx(ResponseField,{name:`instagramSpeed`,type:`Enums\\\\InstagramSpeed|string|null`,id:`param-instagram-speed`,children:_jsxs(_components.p,{children:[`How fast the carousel auto-scrolls. The feed runs on its own speed scale so two marquees on a page never scroll in lockstep. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`instagramDirection`,type:`Enums\\\\InstagramDirection|string|null`,id:`param-instagram-direction`,children:_jsxs(_components.p,{children:[`Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`instagramGap`,type:`Enums\\\\InstagramGap|string|null`,id:`param-instagram-gap`,children:_jsxs(_components.p,{children:[`Gap between tiles. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`instagramAspect`,type:`Enums\\\\InstagramAspect|string|null`,id:`param-instagram-aspect`,children:_jsxs(_components.p,{children:[`Crop each image to a consistent shape. “Original” keeps each image’s own ratio (best with the masonry layout). One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`landscape`}),`, `,_jsx(_components.code,{children:`original`}),`.`]})}),_jsx(ResponseField,{name:`instagramCardWidth`,type:`Enums\\\\InstagramCardWidth|string|null`,id:`param-instagram-card-width`,children:_jsxs(_components.p,{children:[`Sets the carousel tile width and the minimum tile width in the grid/masonry layouts. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`instagramRadius`,type:`Enums\\\\InstagramRadius|string|null`,id:`param-instagram-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`.`]})}),_jsx(ResponseField,{name:`instagramCardHover`,type:`Enums\\\\InstagramCardHover|string|null`,id:`param-instagram-card-hover`,children:_jsxs(_components.p,{children:[`What a tile does on hover. Lift/Glow are best for image tiles; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`instagramShowVideoBadge`,type:`?bool`,id:`param-instagram-show-video-badge`,children:_jsx(_components.p,{children:`A small corner glyph marking a video, reel, or carousel album.`})}),_jsx(ResponseField,{name:`instagramShowPermalinkIcon`,type:`?bool`,id:`param-instagram-show-permalink-icon`,children:_jsx(_components.p,{children:`A corner Instagram glyph on each tile — the one opt-in link out to the post (opens in a new tab). The tile itself opens the on-site lightbox.`})}),_jsx(ResponseField,{name:`instagramShowCardLikes`,type:`?bool`,id:`param-instagram-show-card-likes`,children:_jsx(_components.p,{children:`A small heart + like count in the bottom corner of each tile. Off by default. (A post whose account hides like counts on Instagram shows nothing.)`})}),_jsx(ResponseField,{name:`instagramGlyphSize`,type:`Enums\\\\InstagramGlyphSize|string|null`,id:`param-instagram-glyph-size`,children:_jsxs(_components.p,{children:[`Size of the corner glyph, the video/reel badge, and the play affordance on video tiles. All three options are larger than the old fixed size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`instagramShowCaption`,type:`?bool`,id:`param-instagram-show-caption`,children:_jsx(_components.p,{children:`Off by default (the classic image-only grid). When on, choose where the caption appears below.`})}),_jsx(ResponseField,{name:`instagramCaptionMode`,type:`Enums\\\\InstagramCaptionMode|string|null`,id:`param-instagram-caption-mode`,children:_jsxs(_components.p,{children:[`Caption placement. One of `,_jsx(_components.code,{children:`below`}),`, `,_jsx(_components.code,{children:`hover`}),`.`]})}),_jsx(ResponseField,{name:`instagramAccentColor`,type:`?string`,id:`param-instagram-accent-color`,children:_jsx(_components.p,{children:`Optional — color of the corner glyph + the hover wash. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`instagramAccentColorLight`,type:`?string`,id:`param-instagram-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`instagramLikeColor`,type:`?string`,id:`param-instagram-like-color`,children:_jsx(_components.p,{children:`Optional — color of the like heart on the tiles and in the lightbox. Leave empty to use the brand coral.`})}),_jsx(ResponseField,{name:`instagramLikeColorLight`,type:`?string`,id:`param-instagram-like-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`instagramCaptionClamp`,type:`Enums\\\\InstagramCaptionClamp|string|null`,id:`param-instagram-caption-clamp`,children:_jsxs(_components.p,{children:[`Cap each caption at this many lines so a long caption can’t blow up the tile. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`1`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`instagramCaptionSize`,type:`Enums\\\\InstagramCaptionSize|string|null`,id:`param-instagram-caption-size`,children:_jsxs(_components.p,{children:[`Caption size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`instagramCaptionWeight`,type:`Enums\\\\InstagramCaptionWeight|string|null`,id:`param-instagram-caption-weight`,children:_jsxs(_components.p,{children:[`Caption weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`instagramCaptionColor`,type:`?string`,id:`param-instagram-caption-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color (below mode) / white (hover mode).`})}),_jsx(ResponseField,{name:`instagramCaptionColorLight`,type:`?string`,id:`param-instagram-caption-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`instagramShowLikes`,type:`?bool`,id:`param-instagram-show-likes`,children:_jsx(_components.p,{children:`Show the post’s like count in the lightbox. (An account that hides like counts on Instagram reports none — then nothing shows.)`})}),_jsx(ResponseField,{name:`instagramCommentsDisplay`,type:`Enums\\\\InstagramCommentsDisplay|string|null`,id:`param-instagram-comments-display`,children:_jsxs(_components.p,{children:[`How comments appear in the lightbox. “Count only” shows just the total. “Full list” shows the actual comments — requires “Fetch post comments” in Connections → Instagram to be on so the comment text is synced. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`count`}),`, `,_jsx(_components.code,{children:`list`}),`.`]})}),_jsx(ResponseField,{name:`instagramShowCommentAuthors`,type:`?bool`,id:`param-instagram-show-comment-authors`,children:_jsx(_components.p,{children:`Show each commenter’s Instagram handle next to their comment. Turn off for a cleaner, anonymous list of just the comment text.`})}),_jsx(ResponseField,{name:`instagramLightboxShowPermalink`,type:`?bool`,id:`param-instagram-lightbox-show-permalink`,children:_jsx(_components.p,{children:`The opt-in outbound link in the lightbox. Turn it off to keep visitors fully on your site (the corner glyph on each tile is a separate setting).`})}),_jsx(ResponseField,{name:`instagramBg`,type:`Enums\\\\InstagramBg|string|null`,id:`param-instagram-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`instagramBgCustom`,type:`?string`,id:`param-instagram-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`instagramBgLight`,type:`Enums\\\\InstagramBgLight|string|null`,id:`param-instagram-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`instagramBgLightCustom`,type:`?string`,id:`param-instagram-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`instagramFontOverrides`,type:`Collection\u003cint, InstagramFeedWidgetInstagramFontOverridesItem>|null`,id:`param-instagram-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`InstagramFeedWidgetInstagramFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`InstagramFeedWidgetInstagramFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\InstagramFeedWidgetInstagramFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-68`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-17`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-17`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-17`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-17`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-17`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-17`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-17`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, InstagramFeedWidgetInstagramFontOverridesItemUploadsItem>|null`,id:`param-uploads-17`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`InstagramFeedWidgetInstagramFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`InstagramFeedWidgetInstagramFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\InstagramFeedWidgetInstagramFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-17`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-69`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-17`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-17`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-66`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-17`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-67`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`instagramCtaLabel`,type:`?string`,id:`param-instagram-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`instagramCtaUrl`,type:`?string`,id:`param-instagram-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`instagramCtaNewTab`,type:`?bool`,id:`param-instagram-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`instagramCtaVariant`,type:`Enums\\\\InstagramCtaVariant|string|null`,id:`param-instagram-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaSize`,type:`Enums\\\\InstagramCtaSize|string|null`,id:`param-instagram-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaRadius`,type:`Enums\\\\InstagramCtaRadius|string|null`,id:`param-instagram-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaColor`,type:`?string`,id:`param-instagram-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`instagramCtaColorLight`,type:`?string`,id:`param-instagram-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`instagramCtaTextColor`,type:`?string`,id:`param-instagram-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`instagramCtaTextColorLight`,type:`?string`,id:`param-instagram-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`instagramCtaHoverColor`,type:`?string`,id:`param-instagram-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`instagramCtaHoverColorLight`,type:`?string`,id:`param-instagram-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`instagramCtaStyle`,type:`Enums\\\\InstagramCtaStyle|string|null`,id:`param-instagram-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaShadowColor`,type:`?string`,id:`param-instagram-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`instagramCtaShadowColorLight`,type:`?string`,id:`param-instagram-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`instagramCtaAnimation`,type:`Enums\\\\InstagramCtaAnimation|string|null`,id:`param-instagram-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaIcon`,type:`?string`,id:`param-instagram-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`instagramCtaIconFamily`,type:`Enums\\\\InstagramCtaIconFamily|string|null`,id:`param-instagram-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaIconPosition`,type:`Enums\\\\InstagramCtaIconPosition|string|null`,id:`param-instagram-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`instagramCtaIconNudge`,type:`?bool`,id:`param-instagram-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-21`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-68`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`GalleryPreviewWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryPreviewWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`gallery-preview`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\GalleryPreviewWidgetType|string`,required:true,id:`param-type-24`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`gallery-preview`}),`. One of `,_jsx(_components.code,{children:`gallery-preview`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-70`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-28`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`galleryEyebrow`,type:`?string`,id:`param-gallery-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`galleryEyebrowColor`,type:`?string`,id:`param-gallery-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`galleryEyebrowColorLight`,type:`?string`,id:`param-gallery-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`galleryEyebrowWeight`,type:`Enums\\\\GalleryEyebrowWeight|string|null`,id:`param-gallery-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryEyebrowSize`,type:`Enums\\\\GalleryEyebrowSize|string|null`,id:`param-gallery-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`galleryHeading`,type:`?string`,id:`param-gallery-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the photos.`})}),_jsx(ResponseField,{name:`galleryHeadingColor`,type:`?string`,id:`param-gallery-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`galleryHeadingColorLight`,type:`?string`,id:`param-gallery-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryHeadingWeight`,type:`Enums\\\\GalleryHeadingWeight|string|null`,id:`param-gallery-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryIntro`,type:`?string`,id:`param-gallery-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`galleryIntroColor`,type:`?string`,id:`param-gallery-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`galleryIntroColorLight`,type:`?string`,id:`param-gallery-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryIntroWeight`,type:`Enums\\\\GalleryIntroWeight|string|null`,id:`param-gallery-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryIntroSize`,type:`Enums\\\\GalleryIntroSize|string|null`,id:`param-gallery-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`galleryAlign`,type:`Enums\\\\GalleryAlign|string|null`,id:`param-gallery-align`,children:_jsxs(_components.p,{children:[`Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`gallerySource`,type:`Enums\\\\GallerySource|string|null`,id:`param-gallery-source`,children:_jsxs(_components.p,{children:[`Album: a curated set you pick and order by hand — best for a designed page. Folder: automatically shows every image filed in a media-library folder (newest first) — best for bulk collections you organize in the media manager. Feed: a set that refreshes itself on a schedule from an external photo store, so the gallery shows different photos over time. One of `,_jsx(_components.code,{children:`album`}),`, `,_jsx(_components.code,{children:`folder`}),`, `,_jsx(_components.code,{children:`feed`}),`.`]})}),_jsx(ResponseField,{name:`album`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-album`,children:_jsxs(_components.p,{children:[`The Photo Album to display. Create and fill albums in the Photo Albums manager. The related `,_jsx(_components.code,{children:`photo-album`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryFolder`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-gallery-folder`,children:_jsxs(_components.p,{children:[`The media-library folder to display. Every image filed in it (and its subfolders, if enabled) is shown, newest first. The related `,_jsx(_components.code,{children:`image-folder`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryIncludeSubfolders`,type:`?bool`,id:`param-gallery-include-subfolders`,children:_jsx(_components.p,{children:`Also show images filed in folders inside the selected folder.`})}),_jsx(ResponseField,{name:`photoFeed`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-photo-feed`,children:_jsxs(_components.p,{children:[`The Photo Feed to display. This gallery stays pointed at the feed while the feed replaces its photos on its own schedule. Create and configure feeds in the Photo Feeds manager. The related `,_jsx(_components.code,{children:`photo-feed`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryMaxPhotos`,type:`?int`,id:`param-gallery-max-photos`,children:_jsx(_components.p,{children:`Cap the teaser to this many photos. 0 shows everything in the selected source (folder photos are newest-first). 0 to 200.`})}),_jsx(ResponseField,{name:`galleryLayout`,type:`Enums\\\\GalleryLayout|string|null`,id:`param-gallery-layout`,children:_jsxs(_components.p,{children:[`Mosaic Photo Wall: an edge-to-edge wall where rows are scaled to a common height (like Flickr / Google Photos), cropped around each photo’s focal point — the richest option. Masonry: a staggered grid that hugs each photo’s shape. Grid: a tidy, uniform grid. Spotlight: every group of eight opens on an oversized lead photo, sides alternating on wide screens. Shaped Tiles: a portrait grid whose tiles cycle through slab, arch and orb shapes. Scrolling Banner: one edge-to-edge row that drifts sideways forever, so a long album reads as a ribbon of photos rather than a block — the option for a band between two sections rather than a gallery page. Panorama Wall: several rows, far wider than the screen, traveling sideways at slightly different speeds — and the visitor can push it along or against with a drag or a trackpad swipe. Vertical Ribbon: a band of columns running down the page instead of across it, neighboring columns traveling opposite ways, so the section reads as a moving curtain of photographs. One of `,_jsx(_components.code,{children:`justified`}),`, `,_jsx(_components.code,{children:`masonry`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`shaped`}),`, `,_jsx(_components.code,{children:`banner`}),`, `,_jsx(_components.code,{children:`panorama`}),`, `,_jsx(_components.code,{children:`ribbon`}),`.`]})}),_jsx(ResponseField,{name:`galleryColumns`,type:`Enums\\\\GalleryColumns|string|null`,id:`param-gallery-columns`,children:_jsxs(_components.p,{children:[`How many tiles per row (grid, shaped tiles) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout; Spotlight sets its own pattern.) One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`.`]})}),_jsx(ResponseField,{name:`galleryJustifiedHeight`,type:`Enums\\\\GalleryJustifiedHeight|string|null`,id:`param-gallery-justified-height`,children:_jsxs(_components.p,{children:[`The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerHeight`,type:`Enums\\\\GalleryBannerHeight|string|null`,id:`param-gallery-banner-height`,children:_jsxs(_components.p,{children:[`How tall the moving row stands. Each photo keeps its own shape, so a taller banner shows wider photos and fewer of them at once. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerSpeed`,type:`Enums\\\\GalleryBannerSpeed|string|null`,id:`param-gallery-banner-speed`,children:_jsxs(_components.p,{children:[`How fast the row drifts. It also surges briefly with the page’s own scrolling, then settles back — so the band reacts to the visitor instead of ignoring them. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerDirection`,type:`Enums\\\\GalleryBannerDirection|string|null`,id:`param-gallery-banner-direction`,children:_jsxs(_components.p,{children:[`Banner direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerFade`,type:`?bool`,id:`param-gallery-banner-fade`,children:_jsx(_components.p,{children:`Fades the row out at both ends so photos scroll in and out instead of being cut off by a hard edge.`})}),_jsx(ResponseField,{name:`galleryPanoramaRows`,type:`Enums\\\\GalleryPanoramaRows|string|null`,id:`param-gallery-panorama-rows`,children:_jsxs(_components.p,{children:[`How many rows of photos the wall is dealt across. Photos go into the rows in turn, so consecutive shots land in different rows rather than stacking up together. Deep walls want a big set — a row needs at least three photos of its own, so a small album quietly uses fewer, fuller rows than you pick here. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`7`}),`, `,_jsx(_components.code,{children:`8`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaHeight`,type:`Enums\\\\GalleryPanoramaHeight|string|null`,id:`param-gallery-panorama-height`,children:_jsxs(_components.p,{children:[`How tall each row stands, so the wall’s total depth is this times the number of rows — an eight-row Tall panorama fills a screen and then some. Each photo keeps its own shape, so taller rows show wider photos and fewer of them. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaSpeed`,type:`Enums\\\\GalleryPanoramaSpeed|string|null`,id:`param-gallery-panorama-speed`,children:_jsxs(_components.p,{children:[`How fast the wall travels. Each row takes a slightly different share of this, so the rows shear gently against each other and the block reads as depth rather than as one sliding sheet. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDirection`,type:`Enums\\\\GalleryPanoramaDirection|string|null`,id:`param-gallery-panorama-direction`,children:_jsxs(_components.p,{children:[`Travel direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDrag`,type:`?bool`,id:`param-gallery-panorama-drag`,children:_jsx(_components.p,{children:`Dragging the wall (or swiping sideways on a trackpad or phone) pushes it along or against its travel, and it glides back into its own pace when let go. Vertical scrolling always still scrolls the page. Needs site animations on in Site design → Motion.`})}),_jsx(ResponseField,{name:`galleryPanoramaFade`,type:`?bool`,id:`param-gallery-panorama-fade`,children:_jsx(_components.p,{children:`Fades the rows out at both ends so photos travel in and out instead of being cut off by a hard edge.`})}),_jsx(ResponseField,{name:`galleryRibbonColumns`,type:`Enums\\\\GalleryRibbonColumns|string|null`,id:`param-gallery-ribbon-columns`,children:_jsxs(_components.p,{children:[`How many columns of photos the band is dealt across. Photos go into the columns in turn, so consecutive shots land in different columns rather than stacking up together. Narrow screens show fewer columns than you pick here (two on a phone, three on a tablet) — because photos in a 50-pixel sliver are not photos. A column needs at least three photos of its own, so a small album quietly uses fewer, fuller columns. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonHeight`,type:`Enums\\\\GalleryRibbonHeight|string|null`,id:`param-gallery-ribbon-height`,children:_jsxs(_components.p,{children:[`How tall the band stands — the window the columns travel through, not the columns themselves, which are always far taller than it. Each photo keeps its own shape and fills its column’s width, so the columns show more photos at once the taller the band is. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonSpeed`,type:`Enums\\\\GalleryRibbonSpeed|string|null`,id:`param-gallery-ribbon-speed`,children:_jsxs(_components.p,{children:[`How fast the columns travel. Each takes a slightly different share of this, so the band reads as a weave rather than as one sheet sliding. Slower than the sideways layouts at every setting on purpose: this moves along the same axis the visitor scrolls in, where the same speed feels far more urgent. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonDirection`,type:`Enums\\\\GalleryRibbonDirection|string|null`,id:`param-gallery-ribbon-direction`,children:_jsxs(_components.p,{children:[`Which way the first column travels. With alternating columns on (below), its neighbors go the other way. One of `,_jsx(_components.code,{children:`up`}),`, `,_jsx(_components.code,{children:`down`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonAlternate`,type:`?bool`,id:`param-gallery-ribbon-alternate`,children:_jsx(_components.p,{children:`Send neighboring columns opposite ways, which is what makes the band read as a weave. Turn it off and the whole band travels one way together — quieter, and closer to a conventional scrolling wall.`})}),_jsx(ResponseField,{name:`galleryRibbonFade`,type:`?bool`,id:`param-gallery-ribbon-fade`,children:_jsx(_components.p,{children:`Fades the columns out at the top and bottom so photos travel in and out instead of being cut off by a hard edge.`})}),_jsx(ResponseField,{name:`galleryJustifiedVary`,type:`?bool`,id:`param-gallery-justified-vary`,children:_jsx(_components.p,{children:`For albums where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.`})}),_jsx(ResponseField,{name:`galleryGap`,type:`Enums\\\\GalleryGap|string|null`,id:`param-gallery-gap`,children:_jsxs(_components.p,{children:[`Gap between tiles. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`galleryRadius`,type:`Enums\\\\GalleryRadius|string|null`,id:`param-gallery-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardStyle`,type:`Enums\\\\GalleryCardStyle|string|null`,id:`param-gallery-card-style`,children:_jsxs(_components.p,{children:[`The tile surface. Raised floats each photo on a soft shadow (default); Plain is a clean edge-to-edge wall; Luxe / Outline / Poster frame it; Ticket / Bracket / Forge / Press add graphic structure. The photo fills the tile, so fill-based looks (Tint, Inlay) read as their frame + elevation. On the Shaped Tiles layout the structural looks (Ticket / Bracket / Forge / Press) fall back to their plain surface — their rectangular marks can’t follow an arch or orb. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColor`,type:`?string`,id:`param-gallery-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColorLight`,type:`?string`,id:`param-gallery-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryCardStyleForgeScope`,type:`Enums\\\\GalleryCardStyleForgeScope|string|null`,id:`param-gallery-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardStyleForgeWeight`,type:`Enums\\\\GalleryCardStyleForgeWeight|string|null`,id:`param-gallery-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardHover`,type:`Enums\\\\GalleryCardHover|string|null`,id:`param-gallery-card-hover`,children:_jsxs(_components.p,{children:[`What a tile does on hover, on top of the surface above. Glow (default) / Lift read best on photo tiles; Press collapses a Poster offset; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`galleryShowCaption`,type:`?bool`,id:`param-gallery-show-caption`,children:_jsx(_components.p,{children:`Overlay each photo’s alt text on hover. Off by default (a clean photo wall). The caption always shows in the lightbox.`})}),_jsx(ResponseField,{name:`galleryCaptionSize`,type:`Enums\\\\GalleryCaptionSize|string|null`,id:`param-gallery-caption-size`,children:_jsxs(_components.p,{children:[`Caption size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`galleryCaptionWeight`,type:`Enums\\\\GalleryCaptionWeight|string|null`,id:`param-gallery-caption-weight`,children:_jsxs(_components.p,{children:[`Caption weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryLightbox`,type:`?bool`,id:`param-gallery-lightbox`,children:_jsx(_components.p,{children:`Clicking a photo opens it full-size in an on-site lightbox (with previous / next). Turn off for a purely decorative wall that doesn’t enlarge.`})}),_jsx(ResponseField,{name:`galleryAccentColor`,type:`?string`,id:`param-gallery-accent-color`,children:_jsx(_components.p,{children:`Optional — color of the hover wash / glow. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`galleryAccentColorLight`,type:`?string`,id:`param-gallery-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryDrift`,type:`Enums\\\\GalleryDrift|string|null`,id:`param-gallery-drift`,children:_jsxs(_components.p,{children:[`A very slow pan-and-zoom on every photo, each tile on its own rhythm, so the wall stays quietly alive instead of holding perfectly still. Off by default: a still gallery costs nothing to keep on screen, and this runs continuously for as long as the page is open. Turn it on if you also switch on “Rotate photos automatically” below — a photo changing on a wall that is otherwise frozen reads as a glitch. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`galleryParallax`,type:`Enums\\\\GalleryParallax|string|null`,id:`param-gallery-parallax`,children:_jsxs(_components.p,{children:[`Sets every photo at its own depth: as the page scrolls, some slide with it and some against it, so the wall has layers instead of being one flat plane. It only moves while the visitor scrolls — nothing happens when the page is still. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`galleryShuffle`,type:`Enums\\\\GalleryShuffle|string|null`,id:`param-gallery-shuffle`,children:_jsxs(_components.p,{children:[`Every so often two photos trade places on the wall, gliding past each other into their new squares. Nothing resizes and nothing else on the wall moves — the grid’s squares are identical, so the photos simply swap seats. It holds still while a visitor’s pointer or keyboard is anywhere in the gallery, so nothing ever moves out from under a click. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`.`]})}),_jsx(ResponseField,{name:`galleryShuffleBatch`,type:`?int`,id:`param-gallery-shuffle-batch`,children:_jsx(_components.p,{children:`Two photos swap with each other; three or more pass their seats along in a ring, so more of the wall is moving at once. Higher numbers read as the wall dealing itself a new hand rather than as two photos changing places. 2 to 6.`})}),_jsx(ResponseField,{name:`galleryRotate`,type:`?bool`,id:`param-gallery-rotate`,children:_jsx(_components.p,{children:`Photos fade out a few at a time and are replaced from the rest of the source, so the gallery keeps changing while a visitor watches. Needs more photos in the source than are on screen — set “Maximum photos” above to less than the source holds. Set “Ambient drift” above to Subtle as well: a photo changing on a wall that is otherwise perfectly still reads as a glitch rather than as movement. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion.`})}),_jsx(ResponseField,{name:`galleryRotateStyle`,type:`Enums\\\\GalleryRotateStyle|string|null`,id:`param-gallery-rotate-style`,children:_jsxs(_components.p,{children:[`Cross-fade: the next photo dissolves over the old one as it eases in — the quietest change. Fade through a color: the tile also dips towards a flat color while the photos dissolve, so it reads as “phasing out” without ever going blank. Slide in: the next photo travels in over the old one, which drifts the same way behind it. Zoom through: the next photo settles out of a slight enlargement. Soften through: the photo blurs out of focus and the next one comes back into it. Wipe across: a clean edge travels over the tile, leaving the next photo behind it. Turn over: the tile turns like a card and comes back showing the next photo — the boldest of the seven. One of `,_jsx(_components.code,{children:`cross`}),`, `,_jsx(_components.code,{children:`veil`}),`, `,_jsx(_components.code,{children:`push`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`blur`}),`, `,_jsx(_components.code,{children:`wipe`}),`, `,_jsx(_components.code,{children:`turn`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateOrder`,type:`Enums\\\\GalleryRotateOrder|string|null`,id:`param-gallery-rotate-order`,children:_jsxs(_components.p,{children:[`Scattered spreads the changes over the whole wall, never twice in the same corner and never the same tile twice in a row. The other three move through the wall in a set direction, so the changes read as one gesture crossing the gallery rather than as separate events. One of `,_jsx(_components.code,{children:`scatter`}),`, `,_jsx(_components.code,{children:`wave`}),`, `,_jsx(_components.code,{children:`columns`}),`, `,_jsx(_components.code,{children:`rows`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateColor`,type:`?string`,id:`param-gallery-rotate-color`,children:_jsx(_components.p,{children:`Optional — leave empty to dip through the page background, which suits both themes. Set white for a brighter bloom, or the brand accent for a bolder pulse. The dip never reaches full strength, so the photo always shows through.`})}),_jsx(ResponseField,{name:`galleryRotateColorLight`,type:`?string`,id:`param-gallery-rotate-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryRotatePace`,type:`Enums\\\\GalleryRotatePace|string|null`,id:`param-gallery-rotate-pace`,children:_jsxs(_components.p,{children:[`The gap between one group of changes and the next. The real timing is deliberately uneven around this figure so the wall never feels metronomic. One of `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`, `,_jsx(_components.code,{children:`rapid`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateBatch`,type:`?int`,id:`param-gallery-rotate-batch`,children:_jsx(_components.p,{children:`How many tiles change per group. They never start on the same frame — each one follows the one before it by a beat, so a group reads as a ripple rather than a blink. 1 is the calmest; higher numbers keep more of the wall in motion. 1 to 6.`})}),_jsx(ResponseField,{name:`galleryRotateFade`,type:`Enums\\\\GalleryRotateFade|string|null`,id:`param-gallery-rotate-fade`,children:_jsxs(_components.p,{children:[`The length of one change, from the old photo to the new. Longer reads as a gentle phase; shorter as a snap — and short changes are the ones that read as choppy, so lean long. One of `,_jsx(_components.code,{children:`quick`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`lingering`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateReserve`,type:`?int`,id:`param-gallery-rotate-reserve`,children:_jsx(_components.p,{children:`How many photos beyond the ones on screen to send to the browser for the rotation to draw from — the bigger this is, the longer the gallery goes before a visitor sees a repeat. Retired photos go back to the end of the queue, so it cycles the whole reserve and then starts over. Cheap to raise: a reserved photo is a few URLs, well under 100 bytes once the page is compressed, and its image file is only fetched when it is about to appear. 0 to 500.`})}),_jsx(ResponseField,{name:`galleryBg`,type:`Enums\\\\GalleryBg|string|null`,id:`param-gallery-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`galleryBgCustom`,type:`?string`,id:`param-gallery-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`galleryBgLight`,type:`Enums\\\\GalleryBgLight|string|null`,id:`param-gallery-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`galleryBgLightCustom`,type:`?string`,id:`param-gallery-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`galleryFontOverrides`,type:`Collection\u003cint, GalleryPreviewWidgetGalleryFontOverridesItem>|null`,id:`param-gallery-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`GalleryPreviewWidgetGalleryFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryPreviewWidgetGalleryFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryPreviewWidgetGalleryFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-71`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-18`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-18`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-18`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-18`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-18`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-18`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-18`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem>|null`,id:`param-uploads-18`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-18`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-72`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-18`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-18`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-69`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-18`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-70`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`galleryCtaLabel`,type:`?string`,id:`param-gallery-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`galleryCtaUrl`,type:`?string`,id:`param-gallery-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`galleryCtaNewTab`,type:`?bool`,id:`param-gallery-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`galleryCtaVariant`,type:`Enums\\\\GalleryCtaVariant|string|null`,id:`param-gallery-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaSize`,type:`Enums\\\\GalleryCtaSize|string|null`,id:`param-gallery-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaRadius`,type:`Enums\\\\GalleryCtaRadius|string|null`,id:`param-gallery-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaColor`,type:`?string`,id:`param-gallery-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`galleryCtaColorLight`,type:`?string`,id:`param-gallery-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`galleryCtaTextColor`,type:`?string`,id:`param-gallery-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`galleryCtaTextColorLight`,type:`?string`,id:`param-gallery-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`galleryCtaHoverColor`,type:`?string`,id:`param-gallery-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`galleryCtaHoverColorLight`,type:`?string`,id:`param-gallery-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`galleryCtaStyle`,type:`Enums\\\\GalleryCtaStyle|string|null`,id:`param-gallery-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaShadowColor`,type:`?string`,id:`param-gallery-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`galleryCtaShadowColorLight`,type:`?string`,id:`param-gallery-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`galleryCtaAnimation`,type:`Enums\\\\GalleryCtaAnimation|string|null`,id:`param-gallery-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaIcon`,type:`?string`,id:`param-gallery-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`galleryCtaIconFamily`,type:`Enums\\\\GalleryCtaIconFamily|string|null`,id:`param-gallery-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaIconPosition`,type:`Enums\\\\GalleryCtaIconPosition|string|null`,id:`param-gallery-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaIconNudge`,type:`?bool`,id:`param-gallery-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-22`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-71`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`GalleryFullWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryFullWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`gallery-full`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\GalleryFullWidgetType|string`,required:true,id:`param-type-25`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`gallery-full`}),`. One of `,_jsx(_components.code,{children:`gallery-full`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-73`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-29`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`galleryEyebrow`,type:`?string`,id:`param-gallery-eyebrow-1`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`galleryEyebrowColor`,type:`?string`,id:`param-gallery-eyebrow-color-1`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`galleryEyebrowColorLight`,type:`?string`,id:`param-gallery-eyebrow-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`galleryEyebrowWeight`,type:`Enums\\\\GalleryEyebrowWeight|string|null`,id:`param-gallery-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryEyebrowSize`,type:`Enums\\\\GalleryEyebrowSize|string|null`,id:`param-gallery-eyebrow-size-1`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`galleryHeading`,type:`?string`,id:`param-gallery-heading-1`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the photos.`})}),_jsx(ResponseField,{name:`galleryHeadingColor`,type:`?string`,id:`param-gallery-heading-color-1`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`galleryHeadingColorLight`,type:`?string`,id:`param-gallery-heading-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryHeadingWeight`,type:`Enums\\\\GalleryHeadingWeight|string|null`,id:`param-gallery-heading-weight-1`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryIntro`,type:`?string`,id:`param-gallery-intro-1`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`galleryIntroColor`,type:`?string`,id:`param-gallery-intro-color-1`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`galleryIntroColorLight`,type:`?string`,id:`param-gallery-intro-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryIntroWeight`,type:`Enums\\\\GalleryIntroWeight|string|null`,id:`param-gallery-intro-weight-1`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryIntroSize`,type:`Enums\\\\GalleryIntroSize|string|null`,id:`param-gallery-intro-size-1`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`galleryAlign`,type:`Enums\\\\GalleryAlign|string|null`,id:`param-gallery-align-1`,children:_jsxs(_components.p,{children:[`Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`gallerySource`,type:`Enums\\\\GallerySource|string|null`,id:`param-gallery-source-1`,children:_jsxs(_components.p,{children:[`Album: a curated set you pick and order by hand — best for a designed page. Folder: automatically shows every image filed in a media-library folder (newest first) — best for bulk collections you organize in the media manager. Feed: a set that refreshes itself on a schedule from an external photo store, so the gallery shows different photos over time. One of `,_jsx(_components.code,{children:`album`}),`, `,_jsx(_components.code,{children:`folder`}),`, `,_jsx(_components.code,{children:`feed`}),`.`]})}),_jsx(ResponseField,{name:`album`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-album-1`,children:_jsxs(_components.p,{children:[`The Photo Album to display. Create and fill albums in the Photo Albums manager. The related `,_jsx(_components.code,{children:`photo-album`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryFolder`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-gallery-folder-1`,children:_jsxs(_components.p,{children:[`The media-library folder to display. Every image filed in it (and its subfolders, if enabled) is shown, newest first. The related `,_jsx(_components.code,{children:`image-folder`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryIncludeSubfolders`,type:`?bool`,id:`param-gallery-include-subfolders-1`,children:_jsx(_components.p,{children:`Also show images filed in folders inside the selected folder.`})}),_jsx(ResponseField,{name:`photoFeed`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-photo-feed-1`,children:_jsxs(_components.p,{children:[`The Photo Feed to display. This gallery stays pointed at the feed while the feed replaces its photos on its own schedule. Create and configure feeds in the Photo Feeds manager. The related `,_jsx(_components.code,{children:`photo-feed`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryMaxPhotos`,type:`?int`,id:`param-gallery-max-photos-1`,children:_jsx(_components.p,{children:`The most photos to show. 0 (default) shows everything in the selected source (folder photos are newest-first). 0 to 200.`})}),_jsx(ResponseField,{name:`galleryLayout`,type:`Enums\\\\GalleryLayout|string|null`,id:`param-gallery-layout-1`,children:_jsxs(_components.p,{children:[`Mosaic Photo Wall: an edge-to-edge wall where rows are scaled to a common height (like Flickr / Google Photos), cropped around each photo’s focal point — the richest option. Masonry: a staggered grid that hugs each photo’s shape. Grid: a tidy, uniform grid. Spotlight: every group of eight opens on an oversized lead photo, sides alternating on wide screens. Shaped Tiles: a portrait grid whose tiles cycle through slab, arch and orb shapes. Scrolling Banner: one edge-to-edge row that drifts sideways forever, so a long album reads as a ribbon of photos rather than a block — the option for a band between two sections rather than a gallery page. Panorama Wall: several rows, far wider than the screen, traveling sideways at slightly different speeds — and the visitor can push it along or against with a drag or a trackpad swipe. Vertical Ribbon: a band of columns running down the page instead of across it, neighboring columns traveling opposite ways, so the section reads as a moving curtain of photographs. One of `,_jsx(_components.code,{children:`justified`}),`, `,_jsx(_components.code,{children:`masonry`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`shaped`}),`, `,_jsx(_components.code,{children:`banner`}),`, `,_jsx(_components.code,{children:`panorama`}),`, `,_jsx(_components.code,{children:`ribbon`}),`.`]})}),_jsx(ResponseField,{name:`galleryColumns`,type:`Enums\\\\GalleryColumns|string|null`,id:`param-gallery-columns-1`,children:_jsxs(_components.p,{children:[`How many tiles per row (grid, shaped tiles) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout; Spotlight sets its own pattern.) One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`.`]})}),_jsx(ResponseField,{name:`galleryJustifiedHeight`,type:`Enums\\\\GalleryJustifiedHeight|string|null`,id:`param-gallery-justified-height-1`,children:_jsxs(_components.p,{children:[`The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerHeight`,type:`Enums\\\\GalleryBannerHeight|string|null`,id:`param-gallery-banner-height-1`,children:_jsxs(_components.p,{children:[`How tall the moving row stands. Each photo keeps its own shape, so a taller banner shows wider photos and fewer of them at once. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerSpeed`,type:`Enums\\\\GalleryBannerSpeed|string|null`,id:`param-gallery-banner-speed-1`,children:_jsxs(_components.p,{children:[`How fast the row drifts. It also surges briefly with the page’s own scrolling, then settles back — so the band reacts to the visitor instead of ignoring them. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerDirection`,type:`Enums\\\\GalleryBannerDirection|string|null`,id:`param-gallery-banner-direction-1`,children:_jsxs(_components.p,{children:[`Banner direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`galleryBannerFade`,type:`?bool`,id:`param-gallery-banner-fade-1`,children:_jsx(_components.p,{children:`Fades the row out at both ends so photos scroll in and out instead of being cut off by a hard edge.`})}),_jsx(ResponseField,{name:`galleryPanoramaRows`,type:`Enums\\\\GalleryPanoramaRows|string|null`,id:`param-gallery-panorama-rows-1`,children:_jsxs(_components.p,{children:[`How many rows of photos the wall is dealt across. Photos go into the rows in turn, so consecutive shots land in different rows rather than stacking up together. Deep walls want a big set — a row needs at least three photos of its own, so a small album quietly uses fewer, fuller rows than you pick here. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`7`}),`, `,_jsx(_components.code,{children:`8`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaHeight`,type:`Enums\\\\GalleryPanoramaHeight|string|null`,id:`param-gallery-panorama-height-1`,children:_jsxs(_components.p,{children:[`How tall each row stands, so the wall’s total depth is this times the number of rows — an eight-row Tall panorama fills a screen and then some. Each photo keeps its own shape, so taller rows show wider photos and fewer of them. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaSpeed`,type:`Enums\\\\GalleryPanoramaSpeed|string|null`,id:`param-gallery-panorama-speed-1`,children:_jsxs(_components.p,{children:[`How fast the wall travels. Each row takes a slightly different share of this, so the rows shear gently against each other and the block reads as depth rather than as one sliding sheet. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDirection`,type:`Enums\\\\GalleryPanoramaDirection|string|null`,id:`param-gallery-panorama-direction-1`,children:_jsxs(_components.p,{children:[`Travel direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDrag`,type:`?bool`,id:`param-gallery-panorama-drag-1`,children:_jsx(_components.p,{children:`Dragging the wall (or swiping sideways on a trackpad or phone) pushes it along or against its travel, and it glides back into its own pace when let go. Vertical scrolling always still scrolls the page. Needs site animations on in Site design → Motion.`})}),_jsx(ResponseField,{name:`galleryPanoramaFade`,type:`?bool`,id:`param-gallery-panorama-fade-1`,children:_jsx(_components.p,{children:`Fades the rows out at both ends so photos travel in and out instead of being cut off by a hard edge.`})}),_jsx(ResponseField,{name:`galleryRibbonColumns`,type:`Enums\\\\GalleryRibbonColumns|string|null`,id:`param-gallery-ribbon-columns-1`,children:_jsxs(_components.p,{children:[`How many columns of photos the band is dealt across. Photos go into the columns in turn, so consecutive shots land in different columns rather than stacking up together. Narrow screens show fewer columns than you pick here (two on a phone, three on a tablet) — because photos in a 50-pixel sliver are not photos. A column needs at least three photos of its own, so a small album quietly uses fewer, fuller columns. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonHeight`,type:`Enums\\\\GalleryRibbonHeight|string|null`,id:`param-gallery-ribbon-height-1`,children:_jsxs(_components.p,{children:[`How tall the band stands — the window the columns travel through, not the columns themselves, which are always far taller than it. Each photo keeps its own shape and fills its column’s width, so the columns show more photos at once the taller the band is. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonSpeed`,type:`Enums\\\\GalleryRibbonSpeed|string|null`,id:`param-gallery-ribbon-speed-1`,children:_jsxs(_components.p,{children:[`How fast the columns travel. Each takes a slightly different share of this, so the band reads as a weave rather than as one sheet sliding. Slower than the sideways layouts at every setting on purpose: this moves along the same axis the visitor scrolls in, where the same speed feels far more urgent. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonDirection`,type:`Enums\\\\GalleryRibbonDirection|string|null`,id:`param-gallery-ribbon-direction-1`,children:_jsxs(_components.p,{children:[`Which way the first column travels. With alternating columns on (below), its neighbors go the other way. One of `,_jsx(_components.code,{children:`up`}),`, `,_jsx(_components.code,{children:`down`}),`.`]})}),_jsx(ResponseField,{name:`galleryRibbonAlternate`,type:`?bool`,id:`param-gallery-ribbon-alternate-1`,children:_jsx(_components.p,{children:`Send neighboring columns opposite ways, which is what makes the band read as a weave. Turn it off and the whole band travels one way together — quieter, and closer to a conventional scrolling wall.`})}),_jsx(ResponseField,{name:`galleryRibbonFade`,type:`?bool`,id:`param-gallery-ribbon-fade-1`,children:_jsx(_components.p,{children:`Fades the columns out at the top and bottom so photos travel in and out instead of being cut off by a hard edge.`})}),_jsx(ResponseField,{name:`galleryJustifiedVary`,type:`?bool`,id:`param-gallery-justified-vary-1`,children:_jsx(_components.p,{children:`For albums where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.`})}),_jsx(ResponseField,{name:`galleryGap`,type:`Enums\\\\GalleryGap|string|null`,id:`param-gallery-gap-1`,children:_jsxs(_components.p,{children:[`Gap between tiles. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`galleryRadius`,type:`Enums\\\\GalleryRadius|string|null`,id:`param-gallery-radius-1`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardStyle`,type:`Enums\\\\GalleryCardStyle|string|null`,id:`param-gallery-card-style-1`,children:_jsxs(_components.p,{children:[`The tile surface. Raised floats each photo on a soft shadow (default); Plain is a clean edge-to-edge wall; Luxe / Outline / Poster frame it; Ticket / Bracket / Forge / Press add graphic structure. The photo fills the tile, so fill-based looks (Tint, Inlay) read as their frame + elevation. On the Shaped Tiles layout the structural looks (Ticket / Bracket / Forge / Press) fall back to their plain surface — their rectangular marks can’t follow an arch or orb. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColor`,type:`?string`,id:`param-gallery-card-style-accent-color-1`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColorLight`,type:`?string`,id:`param-gallery-card-style-accent-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryCardStyleForgeScope`,type:`Enums\\\\GalleryCardStyleForgeScope|string|null`,id:`param-gallery-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardStyleForgeWeight`,type:`Enums\\\\GalleryCardStyleForgeWeight|string|null`,id:`param-gallery-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`galleryCardHover`,type:`Enums\\\\GalleryCardHover|string|null`,id:`param-gallery-card-hover-1`,children:_jsxs(_components.p,{children:[`What a tile does on hover, on top of the surface above. Glow (default) / Lift read best on photo tiles; Press collapses a Poster offset; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`galleryShowCaption`,type:`?bool`,id:`param-gallery-show-caption-1`,children:_jsx(_components.p,{children:`Overlay each photo’s alt text on hover. Off by default (a clean photo wall). The caption always shows in the lightbox.`})}),_jsx(ResponseField,{name:`galleryCaptionSize`,type:`Enums\\\\GalleryCaptionSize|string|null`,id:`param-gallery-caption-size-1`,children:_jsxs(_components.p,{children:[`Caption size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`galleryCaptionWeight`,type:`Enums\\\\GalleryCaptionWeight|string|null`,id:`param-gallery-caption-weight-1`,children:_jsxs(_components.p,{children:[`Caption weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`galleryLightbox`,type:`?bool`,id:`param-gallery-lightbox-1`,children:_jsx(_components.p,{children:`Clicking a photo opens it full-size in an on-site lightbox (with previous / next). Turn off for a purely decorative wall that doesn’t enlarge.`})}),_jsx(ResponseField,{name:`galleryAccentColor`,type:`?string`,id:`param-gallery-accent-color-1`,children:_jsx(_components.p,{children:`Optional — color of the hover wash / glow. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`galleryAccentColorLight`,type:`?string`,id:`param-gallery-accent-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryDrift`,type:`Enums\\\\GalleryDrift|string|null`,id:`param-gallery-drift-1`,children:_jsxs(_components.p,{children:[`A very slow pan-and-zoom on every photo, each tile on its own rhythm, so the wall stays quietly alive instead of holding perfectly still. Off by default: a still gallery costs nothing to keep on screen, and this runs continuously for as long as the page is open. Turn it on if you also switch on “Rotate photos automatically” below — a photo changing on a wall that is otherwise frozen reads as a glitch. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`galleryParallax`,type:`Enums\\\\GalleryParallax|string|null`,id:`param-gallery-parallax-1`,children:_jsxs(_components.p,{children:[`Sets every photo at its own depth: as the page scrolls, some slide with it and some against it, so the wall has layers instead of being one flat plane. It only moves while the visitor scrolls — nothing happens when the page is still. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`galleryShuffle`,type:`Enums\\\\GalleryShuffle|string|null`,id:`param-gallery-shuffle-1`,children:_jsxs(_components.p,{children:[`Every so often two photos trade places on the wall, gliding past each other into their new squares. Nothing resizes and nothing else on the wall moves — the grid’s squares are identical, so the photos simply swap seats. It holds still while a visitor’s pointer or keyboard is anywhere in the gallery, so nothing ever moves out from under a click. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`.`]})}),_jsx(ResponseField,{name:`galleryShuffleBatch`,type:`?int`,id:`param-gallery-shuffle-batch-1`,children:_jsx(_components.p,{children:`Two photos swap with each other; three or more pass their seats along in a ring, so more of the wall is moving at once. Higher numbers read as the wall dealing itself a new hand rather than as two photos changing places. 2 to 6.`})}),_jsx(ResponseField,{name:`galleryRotate`,type:`?bool`,id:`param-gallery-rotate-1`,children:_jsx(_components.p,{children:`Photos fade out a few at a time and are replaced from the rest of the source, so the gallery keeps changing while a visitor watches. Needs more photos in the source than are on screen — set “Maximum photos” above to less than the source holds. Set “Ambient drift” above to Subtle as well: a photo changing on a wall that is otherwise perfectly still reads as a glitch rather than as movement. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion.`})}),_jsx(ResponseField,{name:`galleryRotateStyle`,type:`Enums\\\\GalleryRotateStyle|string|null`,id:`param-gallery-rotate-style-1`,children:_jsxs(_components.p,{children:[`Cross-fade: the next photo dissolves over the old one as it eases in — the quietest change. Fade through a color: the tile also dips towards a flat color while the photos dissolve, so it reads as “phasing out” without ever going blank. Slide in: the next photo travels in over the old one, which drifts the same way behind it. Zoom through: the next photo settles out of a slight enlargement. Soften through: the photo blurs out of focus and the next one comes back into it. Wipe across: a clean edge travels over the tile, leaving the next photo behind it. Turn over: the tile turns like a card and comes back showing the next photo — the boldest of the seven. One of `,_jsx(_components.code,{children:`cross`}),`, `,_jsx(_components.code,{children:`veil`}),`, `,_jsx(_components.code,{children:`push`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`blur`}),`, `,_jsx(_components.code,{children:`wipe`}),`, `,_jsx(_components.code,{children:`turn`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateOrder`,type:`Enums\\\\GalleryRotateOrder|string|null`,id:`param-gallery-rotate-order-1`,children:_jsxs(_components.p,{children:[`Scattered spreads the changes over the whole wall, never twice in the same corner and never the same tile twice in a row. The other three move through the wall in a set direction, so the changes read as one gesture crossing the gallery rather than as separate events. One of `,_jsx(_components.code,{children:`scatter`}),`, `,_jsx(_components.code,{children:`wave`}),`, `,_jsx(_components.code,{children:`columns`}),`, `,_jsx(_components.code,{children:`rows`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateColor`,type:`?string`,id:`param-gallery-rotate-color-1`,children:_jsx(_components.p,{children:`Optional — leave empty to dip through the page background, which suits both themes. Set white for a brighter bloom, or the brand accent for a bolder pulse. The dip never reaches full strength, so the photo always shows through.`})}),_jsx(ResponseField,{name:`galleryRotateColorLight`,type:`?string`,id:`param-gallery-rotate-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`galleryRotatePace`,type:`Enums\\\\GalleryRotatePace|string|null`,id:`param-gallery-rotate-pace-1`,children:_jsxs(_components.p,{children:[`The gap between one group of changes and the next. The real timing is deliberately uneven around this figure so the wall never feels metronomic. One of `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`, `,_jsx(_components.code,{children:`rapid`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateBatch`,type:`?int`,id:`param-gallery-rotate-batch-1`,children:_jsx(_components.p,{children:`How many tiles change per group. They never start on the same frame — each one follows the one before it by a beat, so a group reads as a ripple rather than a blink. 1 is the calmest; higher numbers keep more of the wall in motion. 1 to 6.`})}),_jsx(ResponseField,{name:`galleryRotateFade`,type:`Enums\\\\GalleryRotateFade|string|null`,id:`param-gallery-rotate-fade-1`,children:_jsxs(_components.p,{children:[`The length of one change, from the old photo to the new. Longer reads as a gentle phase; shorter as a snap — and short changes are the ones that read as choppy, so lean long. One of `,_jsx(_components.code,{children:`quick`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`lingering`}),`.`]})}),_jsx(ResponseField,{name:`galleryRotateReserve`,type:`?int`,id:`param-gallery-rotate-reserve-1`,children:_jsx(_components.p,{children:`How many photos beyond the ones on screen to send to the browser for the rotation to draw from — the bigger this is, the longer the gallery goes before a visitor sees a repeat. Retired photos go back to the end of the queue, so it cycles the whole reserve and then starts over. Cheap to raise: a reserved photo is a few URLs, well under 100 bytes once the page is compressed, and its image file is only fetched when it is about to appear. 0 to 500.`})}),_jsx(ResponseField,{name:`galleryBg`,type:`Enums\\\\GalleryBg|string|null`,id:`param-gallery-bg-1`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`galleryBgCustom`,type:`?string`,id:`param-gallery-bg-custom-1`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`galleryBgLight`,type:`Enums\\\\GalleryBgLight|string|null`,id:`param-gallery-bg-light-1`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`galleryBgLightCustom`,type:`?string`,id:`param-gallery-bg-light-custom-1`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`galleryFontOverrides`,type:`Collection\u003cint, GalleryFullWidgetGalleryFontOverridesItem>|null`,id:`param-gallery-font-overrides-1`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`GalleryFullWidgetGalleryFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryFullWidgetGalleryFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryFullWidgetGalleryFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-74`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-19`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-19`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-19`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-19`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-19`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-19`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-19`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, GalleryFullWidgetGalleryFontOverridesItemUploadsItem>|null`,id:`param-uploads-19`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`GalleryFullWidgetGalleryFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryFullWidgetGalleryFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryFullWidgetGalleryFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-19`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-75`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-19`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-19`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-72`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-19`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-73`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`galleryCtaLabel`,type:`?string`,id:`param-gallery-cta-label-1`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`galleryCtaUrl`,type:`?string`,id:`param-gallery-cta-url-1`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`galleryCtaNewTab`,type:`?bool`,id:`param-gallery-cta-new-tab-1`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`galleryCtaVariant`,type:`Enums\\\\GalleryCtaVariant|string|null`,id:`param-gallery-cta-variant-1`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaSize`,type:`Enums\\\\GalleryCtaSize|string|null`,id:`param-gallery-cta-size-1`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaRadius`,type:`Enums\\\\GalleryCtaRadius|string|null`,id:`param-gallery-cta-radius-1`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaColor`,type:`?string`,id:`param-gallery-cta-color-1`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`galleryCtaColorLight`,type:`?string`,id:`param-gallery-cta-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`galleryCtaTextColor`,type:`?string`,id:`param-gallery-cta-text-color-1`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`galleryCtaTextColorLight`,type:`?string`,id:`param-gallery-cta-text-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`galleryCtaHoverColor`,type:`?string`,id:`param-gallery-cta-hover-color-1`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`galleryCtaHoverColorLight`,type:`?string`,id:`param-gallery-cta-hover-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`galleryCtaStyle`,type:`Enums\\\\GalleryCtaStyle|string|null`,id:`param-gallery-cta-style-1`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaShadowColor`,type:`?string`,id:`param-gallery-cta-shadow-color-1`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`galleryCtaShadowColorLight`,type:`?string`,id:`param-gallery-cta-shadow-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`galleryCtaAnimation`,type:`Enums\\\\GalleryCtaAnimation|string|null`,id:`param-gallery-cta-animation-1`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaIcon`,type:`?string`,id:`param-gallery-cta-icon-1`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`galleryCtaIconFamily`,type:`Enums\\\\GalleryCtaIconFamily|string|null`,id:`param-gallery-cta-icon-family-1`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaIconPosition`,type:`Enums\\\\GalleryCtaIconPosition|string|null`,id:`param-gallery-cta-icon-position-1`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`galleryCtaIconNudge`,type:`?bool`,id:`param-gallery-cta-icon-nudge-1`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-23`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-74`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`PricingWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`pricing`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\PricingWidgetType|string`,required:true,id:`param-type-26`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`pricing`}),`. One of `,_jsx(_components.code,{children:`pricing`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-76`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-30`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`pricingEyebrowEnabled`,type:`?bool`,id:`param-pricing-eyebrow-enabled`,children:_jsx(_components.p,{children:`A small label above the heading (e.g. “Pricing”).`})}),_jsx(ResponseField,{name:`pricingEyebrow`,type:`?string`,id:`param-pricing-eyebrow`,children:_jsx(_components.p,{children:`Eyebrow.`})}),_jsx(ResponseField,{name:`pricingEyebrowColor`,type:`?string`,id:`param-pricing-eyebrow-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`pricingEyebrowColorLight`,type:`?string`,id:`param-pricing-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`pricingEyebrowWeight`,type:`Enums\\\\PricingEyebrowWeight|string|null`,id:`param-pricing-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`pricingEyebrowSize`,type:`Enums\\\\PricingEyebrowSize|string|null`,id:`param-pricing-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingHeading`,type:`?string`,id:`param-pricing-heading`,children:_jsx(_components.p,{children:`Optional. Leave empty to show just the cards.`})}),_jsx(ResponseField,{name:`pricingHeadingColor`,type:`?string`,id:`param-pricing-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`pricingHeadingColorLight`,type:`?string`,id:`param-pricing-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`pricingHeadingWeight`,type:`Enums\\\\PricingHeadingWeight|string|null`,id:`param-pricing-heading-weight`,children:_jsxs(_components.p,{children:[`Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`pricingHeadingSize`,type:`Enums\\\\PricingHeadingSize|string|null`,id:`param-pricing-heading-size`,children:_jsxs(_components.p,{children:[`Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingIntro`,type:`?string`,id:`param-pricing-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`pricingIntroColor`,type:`?string`,id:`param-pricing-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`pricingIntroColorLight`,type:`?string`,id:`param-pricing-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`pricingIntroWeight`,type:`Enums\\\\PricingIntroWeight|string|null`,id:`param-pricing-intro-weight`,children:_jsxs(_components.p,{children:[`Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`pricingIntroSize`,type:`Enums\\\\PricingIntroSize|string|null`,id:`param-pricing-intro-size`,children:_jsxs(_components.p,{children:[`Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingColumns`,type:`Enums\\\\PricingColumns|string|null`,id:`param-pricing-columns`,children:_jsxs(_components.p,{children:[`Auto fits as many as comfortably fit and works for any number of cards. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`pricingGap`,type:`Enums\\\\PricingGap|string|null`,id:`param-pricing-gap`,children:_jsxs(_components.p,{children:[`Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`.`]})}),_jsx(ResponseField,{name:`pricingCardStyle`,type:`Enums\\\\PricingCardStyle|string|null`,id:`param-pricing-card-style`,children:_jsxs(_components.p,{children:[`The base treatment for every tier (a highlighted tier always gets its own bold framed look). Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`pricingCardStyleRadius`,type:`Enums\\\\PricingCardStyleRadius|string|null`,id:`param-pricing-card-style-radius`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`pricingCardStyleAccentColor`,type:`?string`,id:`param-pricing-card-style-accent-color`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`pricingCardStyleAccentColorLight`,type:`?string`,id:`param-pricing-card-style-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`pricingCardStyleForgeScope`,type:`Enums\\\\PricingCardStyleForgeScope|string|null`,id:`param-pricing-card-style-forge-scope`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`pricingCardStyleForgeWeight`,type:`Enums\\\\PricingCardStyleForgeWeight|string|null`,id:`param-pricing-card-style-forge-weight`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`pricingAlign`,type:`Enums\\\\PricingAlign|string|null`,id:`param-pricing-align`,children:_jsxs(_components.p,{children:[`Aligns the section header and the text inside each card. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`pricingEqualHeight`,type:`?bool`,id:`param-pricing-equal-height`,children:_jsx(_components.p,{children:`Stretch every card to the tallest one and pin each button to the bottom, so the cards line up even with uneven feature lists.`})}),_jsx(ResponseField,{name:`pricingFeatureMarkers`,type:`?bool`,id:`param-pricing-feature-markers`,children:_jsx(_components.p,{children:`A check (included) or cross (not included) before each feature. Off = a plain list.`})}),_jsx(ResponseField,{name:`pricingCardHover`,type:`Enums\\\\PricingCardHover|string|null`,id:`param-pricing-card-hover`,children:_jsxs(_components.p,{children:[`How a card reacts to the pointer. Rise floats it up on an accent underglow; Selection ring previews the highlighted look + tints the price; Spotlight washes accent light over the price; Checklist lights up the ✓ marks one-by-one; Tilt is a 3-D parallax that only runs when site animations are on. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`rise`}),`, `,_jsx(_components.code,{children:`ring`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`checklist`}),`, `,_jsx(_components.code,{children:`tilt`}),`.`]})}),_jsx(ResponseField,{name:`pricingHoverColor`,type:`?string`,id:`param-pricing-hover-color`,children:_jsx(_components.p,{children:`Border / glow / spotlight / checkmark color on hover. Leave empty to use the highlight accent (then the site accent).`})}),_jsx(ResponseField,{name:`pricingHoverColorLight`,type:`?string`,id:`param-pricing-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover accent.`})}),_jsx(ResponseField,{name:`pricingEntrance`,type:`Enums\\\\PricingEntrance|string|null`,id:`param-pricing-entrance`,children:_jsxs(_components.p,{children:[`How the cards animate in as they scroll into view. Featured-led makes the highlighted tier settle last with a little emphasis (draws the eye to the recommended plan); Simple stagger fades them in evenly. Only plays when site animations are on (Site design → Motion) — otherwise the cards are simply shown. One of `,_jsx(_components.code,{children:`featured`}),`, `,_jsx(_components.code,{children:`stagger`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`pricingNameSize`,type:`Enums\\\\PricingNameSize|string|null`,id:`param-pricing-name-size`,children:_jsxs(_components.p,{children:[`Size of each card’s name / title. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingPriceSize`,type:`Enums\\\\PricingPriceSize|string|null`,id:`param-pricing-price-size`,children:_jsxs(_components.p,{children:[`Size of the price amount (the period and price note scale with it). One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingDescSize`,type:`Enums\\\\PricingDescSize|string|null`,id:`param-pricing-desc-size`,children:_jsxs(_components.p,{children:[`Size of each card’s description blurb. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeatureSize`,type:`Enums\\\\PricingFeatureSize|string|null`,id:`param-pricing-feature-size`,children:_jsxs(_components.p,{children:[`Size of the feature list text (notes and check marks scale with it). One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`pricingHighlightBadge`,type:`?string`,id:`param-pricing-highlight-badge`,children:_jsx(_components.p,{children:`Ribbon text shown on a highlighted tier that doesn’t set its own badge. Each tier can override it (or badge a non-highlighted tier) below. Leave empty for no automatic badge.`})}),_jsx(ResponseField,{name:`pricingAccentColor`,type:`?string`,id:`param-pricing-accent-color`,children:_jsx(_components.p,{children:`Color for the highlighted tier’s border + ring and each tier’s badge. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`pricingAccentColorLight`,type:`?string`,id:`param-pricing-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme accent.`})}),_jsxs(ResponseField,{name:`pricingTiers`,type:`Collection\u003cint, PricingWidgetPricingTiersItem>|null`,id:`param-pricing-tiers`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PricingWidgetPricingTiersItem`}),`. Each card is one tier / package / service. Toggle “Highlight” on the one you want to stand out.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingTiersItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingTiersItem)`,children:[_jsx(ResponseField,{name:`name`,type:`string`,required:true,id:`param-name-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Tier / package / service name — e.g. “Starter”, “Studio”, “Agency”.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-77`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-3`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-3`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-3`,children:_jsx(_components.p,{children:`Optional — leave empty to use the design’s own color rhythm.`})}),_jsx(ResponseField,{name:`iconAnimation`,type:`Enums\\\\IconAnimation|string|null`,id:`param-icon-animation-1`,children:_jsxs(_components.p,{children:[`Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`.`]})}),_jsx(ResponseField,{name:`iconSize`,type:`Enums\\\\IconSize|string|null`,id:`param-icon-size-1`,children:_jsxs(_components.p,{children:[`Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`.`]})}),_jsx(ResponseField,{name:`iconGap`,type:`Enums\\\\IconGap|string|null`,id:`param-icon-gap`,children:_jsxs(_components.p,{children:[`Breathing room below the icon, before the card name. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`badge`,type:`?string`,id:`param-badge`,children:_jsx(_components.p,{children:`A small ribbon on the card, e.g. “Best value”, “Limited spots”. Overrides the default highlight badge for this tier; works on any tier, highlighted or not. Empty on a highlighted tier falls back to the section’s “Default highlight badge”.`})}),_jsx(ResponseField,{name:`highlighted`,type:`?bool`,id:`param-highlighted`,children:_jsx(_components.p,{children:`Emphasize this tier — accent border + ring, a subtle lift, and the Featured button look.`})}),_jsx(ResponseField,{name:`textAlign`,type:`Enums\\\\TextAlign|string|null`,id:`param-text-align`,children:_jsxs(_components.p,{children:[`How this card’s text lines up. Normal = the section default (a centered section keeps the feature list left-aligned, as now). Center also centers the feature list; Left / Right align everything that way. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`price`,type:`?string`,id:`param-price`,children:_jsxs(_components.p,{children:[`Free text, so it fits any model — “`,`$45\", \"From $`,`200”, “Custom”, “Call for quote”.`]})}),_jsx(ResponseField,{name:`period`,type:`?string`,id:`param-period`,children:_jsx(_components.p,{children:`Shown after the price, e.g. ”/ month”, “per night”, “per session”. Leave empty for a flat price.`})}),_jsx(ResponseField,{name:`priceNote`,type:`?string`,id:`param-price-note`,children:_jsx(_components.p,{children:`A small line under the price, e.g. “per seat”, “billed annually”, ”+ tax”.`})}),_jsx(ResponseField,{name:`description`,type:`?string`,id:`param-description-1`,children:_jsx(_components.p,{children:`A short blurb under the name.`})}),_jsxs(ResponseField,{name:`features`,type:`Collection\u003cint, PricingWidgetPricingTiersItemFeaturesItem>|null`,id:`param-features`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PricingWidgetPricingTiersItemFeaturesItem`}),`. The bullet list of what’s included.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingTiersItemFeaturesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingTiersItemFeaturesItem)`,children:[_jsx(ResponseField,{name:`text`,type:`string`,required:true,id:`param-text`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Feature.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-78`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`included`,type:`?bool`,id:`param-included`,children:_jsx(_components.p,{children:`On = a check mark; off = a crossed-out / muted line (e.g. a feature this tier lacks).`})}),_jsx(ResponseField,{name:`note`,type:`?string`,id:`param-note`,children:_jsx(_components.p,{children:`A small qualifier shown after the feature, e.g. “up to 5”, “add-on”.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-75`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`ctaLabel`,type:`?string`,id:`param-cta-label-1`,children:_jsx(_components.p,{children:`This card’s button text. Leave empty to use the shared button label (set in the Pricing · Buttons tab); clear it everywhere to hide the button.`})}),_jsx(ResponseField,{name:`ctaUrl`,type:`?string`,id:`param-cta-url-1`,children:_jsx(_components.p,{children:`Where the button goes — a path (/contact-us) or full URL. Leave empty to inherit the shared button link.`})}),_jsx(ResponseField,{name:`ctaNewTab`,type:`?bool`,id:`param-cta-new-tab-1`,children:_jsx(_components.p,{children:`Open button in new tab.`})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-76`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`pricingBg`,type:`Enums\\\\PricingBg|string|null`,id:`param-pricing-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`pricingBgCustom`,type:`?string`,id:`param-pricing-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`pricingBgLight`,type:`Enums\\\\PricingBgLight|string|null`,id:`param-pricing-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`pricingBgLightCustom`,type:`?string`,id:`param-pricing-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`pricingFontOverrides`,type:`Collection\u003cint, PricingWidgetPricingFontOverridesItem>|null`,id:`param-pricing-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PricingWidgetPricingFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-79`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-20`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-20`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-20`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-20`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-20`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-20`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-20`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PricingWidgetPricingFontOverridesItemUploadsItem>|null`,id:`param-uploads-20`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PricingWidgetPricingFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-20`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-80`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-20`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-20`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-77`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-20`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-78`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`pricingFeaturedCtaLabel`,type:`?string`,id:`param-pricing-featured-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaUrl`,type:`?string`,id:`param-pricing-featured-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaNewTab`,type:`?bool`,id:`param-pricing-featured-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaVariant`,type:`Enums\\\\PricingFeaturedCtaVariant|string|null`,id:`param-pricing-featured-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaSize`,type:`Enums\\\\PricingFeaturedCtaSize|string|null`,id:`param-pricing-featured-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaRadius`,type:`Enums\\\\PricingFeaturedCtaRadius|string|null`,id:`param-pricing-featured-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaColor`,type:`?string`,id:`param-pricing-featured-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaColorLight`,type:`?string`,id:`param-pricing-featured-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaTextColor`,type:`?string`,id:`param-pricing-featured-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaTextColorLight`,type:`?string`,id:`param-pricing-featured-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaHoverColor`,type:`?string`,id:`param-pricing-featured-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaHoverColorLight`,type:`?string`,id:`param-pricing-featured-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaStyle`,type:`Enums\\\\PricingFeaturedCtaStyle|string|null`,id:`param-pricing-featured-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaShadowColor`,type:`?string`,id:`param-pricing-featured-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaShadowColorLight`,type:`?string`,id:`param-pricing-featured-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaAnimation`,type:`Enums\\\\PricingFeaturedCtaAnimation|string|null`,id:`param-pricing-featured-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIcon`,type:`?string`,id:`param-pricing-featured-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIconFamily`,type:`Enums\\\\PricingFeaturedCtaIconFamily|string|null`,id:`param-pricing-featured-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIconPosition`,type:`Enums\\\\PricingFeaturedCtaIconPosition|string|null`,id:`param-pricing-featured-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIconNudge`,type:`?bool`,id:`param-pricing-featured-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`pricingCtaLabel`,type:`?string`,id:`param-pricing-cta-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`pricingCtaUrl`,type:`?string`,id:`param-pricing-cta-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`pricingCtaNewTab`,type:`?bool`,id:`param-pricing-cta-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`pricingCtaVariant`,type:`Enums\\\\PricingCtaVariant|string|null`,id:`param-pricing-cta-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaSize`,type:`Enums\\\\PricingCtaSize|string|null`,id:`param-pricing-cta-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaRadius`,type:`Enums\\\\PricingCtaRadius|string|null`,id:`param-pricing-cta-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaColor`,type:`?string`,id:`param-pricing-cta-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`pricingCtaColorLight`,type:`?string`,id:`param-pricing-cta-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`pricingCtaTextColor`,type:`?string`,id:`param-pricing-cta-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`pricingCtaTextColorLight`,type:`?string`,id:`param-pricing-cta-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`pricingCtaHoverColor`,type:`?string`,id:`param-pricing-cta-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`pricingCtaHoverColorLight`,type:`?string`,id:`param-pricing-cta-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`pricingCtaStyle`,type:`Enums\\\\PricingCtaStyle|string|null`,id:`param-pricing-cta-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaShadowColor`,type:`?string`,id:`param-pricing-cta-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`pricingCtaShadowColorLight`,type:`?string`,id:`param-pricing-cta-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`pricingCtaAnimation`,type:`Enums\\\\PricingCtaAnimation|string|null`,id:`param-pricing-cta-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaIcon`,type:`?string`,id:`param-pricing-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`pricingCtaIconFamily`,type:`Enums\\\\PricingCtaIconFamily|string|null`,id:`param-pricing-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaIconPosition`,type:`Enums\\\\PricingCtaIconPosition|string|null`,id:`param-pricing-cta-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`pricingCtaIconNudge`,type:`?bool`,id:`param-pricing-cta-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-24`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-79`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`NewsletterWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\NewsletterWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`newsletter`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\NewsletterWidgetType|string`,required:true,id:`param-type-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`newsletter`}),`. One of `,_jsx(_components.code,{children:`newsletter`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-81`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-31`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`newsletterForm`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-newsletter-form`,children:_jsxs(_components.p,{children:[`The Form (Forms manager) that receives these submissions and routes them — configure its destinations on the form’s Actions tab. Create one if you have not yet. The related `,_jsx(_components.code,{children:`@apostrophecms/form`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowEnabled`,type:`?bool`,id:`param-newsletter-eyebrow-enabled`,children:_jsx(_components.p,{children:`Show eyebrow.`})}),_jsx(ResponseField,{name:`newsletterEyebrow`,type:`?string`,id:`param-newsletter-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`newsletterEyebrowColor`,type:`?string`,id:`param-newsletter-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`newsletterEyebrowColorLight`,type:`?string`,id:`param-newsletter-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`newsletterEyebrowWeight`,type:`Enums\\\\NewsletterEyebrowWeight|string|null`,id:`param-newsletter-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowSize`,type:`Enums\\\\NewsletterEyebrowSize|string|null`,id:`param-newsletter-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`newsletterHeading`,type:`?string`,id:`param-newsletter-heading`,children:_jsx(_components.p,{children:`Heading.`})}),_jsx(ResponseField,{name:`newsletterHeadingColor`,type:`?string`,id:`param-newsletter-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`newsletterHeadingColorLight`,type:`?string`,id:`param-newsletter-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`newsletterHeadingWeight`,type:`Enums\\\\NewsletterHeadingWeight|string|null`,id:`param-newsletter-heading-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`newsletterHeadingSize`,type:`Enums\\\\NewsletterHeadingSize|string|null`,id:`param-newsletter-heading-size`,children:_jsxs(_components.p,{children:[`Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`newsletterIntro`,type:`?string`,id:`param-newsletter-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`newsletterIntroColor`,type:`?string`,id:`param-newsletter-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`newsletterIntroColorLight`,type:`?string`,id:`param-newsletter-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`newsletterIntroWeight`,type:`Enums\\\\NewsletterIntroWeight|string|null`,id:`param-newsletter-intro-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`newsletterIntroSize`,type:`Enums\\\\NewsletterIntroSize|string|null`,id:`param-newsletter-intro-size`,children:_jsxs(_components.p,{children:[`Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`newsletterBand`,type:`Enums\\\\NewsletterBand|string|null`,id:`param-newsletter-band`,children:_jsxs(_components.p,{children:[`Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`newsletterAccentColor`,type:`?string`,id:`param-newsletter-accent-color`,children:_jsx(_components.p,{children:`The accent band color. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`newsletterAccentColorLight`,type:`?string`,id:`param-newsletter-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`newsletterAlign`,type:`Enums\\\\NewsletterAlign|string|null`,id:`param-newsletter-align`,children:_jsxs(_components.p,{children:[`Alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`newsletterLayout`,type:`Enums\\\\NewsletterLayout|string|null`,id:`param-newsletter-layout`,children:_jsxs(_components.p,{children:[`Inline puts the field + button on one row (stacks on small screens); Stacked always stacks them. One of `,_jsx(_components.code,{children:`inline`}),`, `,_jsx(_components.code,{children:`stacked`}),`.`]})}),_jsx(ResponseField,{name:`newsletterWidth`,type:`Enums\\\\NewsletterWidth|string|null`,id:`param-newsletter-width`,children:_jsxs(_components.p,{children:[`Content width. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`newsletterNameEnabled`,type:`?bool`,id:`param-newsletter-name-enabled`,children:_jsx(_components.p,{children:`Collect a name.`})}),_jsx(ResponseField,{name:`newsletterNameLabel`,type:`?string`,id:`param-newsletter-name-label`,children:_jsx(_components.p,{children:`Name label.`})}),_jsx(ResponseField,{name:`newsletterNamePlaceholder`,type:`?string`,id:`param-newsletter-name-placeholder`,children:_jsx(_components.p,{children:`Name placeholder.`})}),_jsx(ResponseField,{name:`newsletterEmailLabel`,type:`?string`,id:`param-newsletter-email-label`,children:_jsx(_components.p,{children:`Email label.`})}),_jsx(ResponseField,{name:`newsletterEmailPlaceholder`,type:`?string`,id:`param-newsletter-email-placeholder`,children:_jsx(_components.p,{children:`Email placeholder.`})}),_jsx(ResponseField,{name:`newsletterConsentEnabled`,type:`?bool`,id:`param-newsletter-consent-enabled`,children:_jsx(_components.p,{children:`Optional opt-in checkbox (e.g. for GDPR-style explicit consent).`})}),_jsx(ResponseField,{name:`newsletterConsentText`,type:`?string`,id:`param-newsletter-consent-text`,children:_jsx(_components.p,{children:`Consent statement.`})}),_jsx(ResponseField,{name:`newsletterDisclaimer`,type:`?string`,id:`param-newsletter-disclaimer`,children:_jsx(_components.p,{children:`A small line under the form, e.g. an unsubscribe note.`})}),_jsx(ResponseField,{name:`newsletterSuccessMessage`,type:`?string`,id:`param-newsletter-success-message`,children:_jsx(_components.p,{children:`Success message.`})}),_jsx(ResponseField,{name:`newsletterErrorMessage`,type:`?string`,id:`param-newsletter-error-message`,children:_jsx(_components.p,{children:`Error message.`})}),_jsx(ResponseField,{name:`newsletterBg`,type:`Enums\\\\NewsletterBg|string|null`,id:`param-newsletter-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`newsletterBgCustom`,type:`?string`,id:`param-newsletter-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`newsletterBgLight`,type:`Enums\\\\NewsletterBgLight|string|null`,id:`param-newsletter-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`newsletterBgLightCustom`,type:`?string`,id:`param-newsletter-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`newsletterFontOverrides`,type:`Collection\u003cint, NewsletterWidgetNewsletterFontOverridesItem>|null`,id:`param-newsletter-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`NewsletterWidgetNewsletterFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`NewsletterWidgetNewsletterFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\NewsletterWidgetNewsletterFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-82`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-21`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-21`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-21`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-21`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-21`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-21`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-21`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, NewsletterWidgetNewsletterFontOverridesItemUploadsItem>|null`,id:`param-uploads-21`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`NewsletterWidgetNewsletterFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`NewsletterWidgetNewsletterFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\NewsletterWidgetNewsletterFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-21`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-83`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-21`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-21`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-80`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-21`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-81`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`newsletterSubmitLabel`,type:`?string`,id:`param-newsletter-submit-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`newsletterSubmitVariant`,type:`Enums\\\\NewsletterSubmitVariant|string|null`,id:`param-newsletter-submit-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitSize`,type:`Enums\\\\NewsletterSubmitSize|string|null`,id:`param-newsletter-submit-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitRadius`,type:`Enums\\\\NewsletterSubmitRadius|string|null`,id:`param-newsletter-submit-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitColor`,type:`?string`,id:`param-newsletter-submit-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`newsletterSubmitColorLight`,type:`?string`,id:`param-newsletter-submit-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`newsletterSubmitTextColor`,type:`?string`,id:`param-newsletter-submit-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`newsletterSubmitTextColorLight`,type:`?string`,id:`param-newsletter-submit-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`newsletterSubmitHoverColor`,type:`?string`,id:`param-newsletter-submit-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`newsletterSubmitHoverColorLight`,type:`?string`,id:`param-newsletter-submit-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`newsletterSubmitStyle`,type:`Enums\\\\NewsletterSubmitStyle|string|null`,id:`param-newsletter-submit-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitShadowColor`,type:`?string`,id:`param-newsletter-submit-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`newsletterSubmitShadowColorLight`,type:`?string`,id:`param-newsletter-submit-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`newsletterSubmitAnimation`,type:`Enums\\\\NewsletterSubmitAnimation|string|null`,id:`param-newsletter-submit-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIcon`,type:`?string`,id:`param-newsletter-submit-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`newsletterSubmitIconFamily`,type:`Enums\\\\NewsletterSubmitIconFamily|string|null`,id:`param-newsletter-submit-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIconPosition`,type:`Enums\\\\NewsletterSubmitIconPosition|string|null`,id:`param-newsletter-submit-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIconNudge`,type:`?bool`,id:`param-newsletter-submit-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-25`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-82`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`SmsSignupWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SmsSignupWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`sms-signup`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\SmsSignupWidgetType|string`,required:true,id:`param-type-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`sms-signup`}),`. One of `,_jsx(_components.code,{children:`sms-signup`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupConsentText`,type:`string`,required:true,id:`param-sms-signup-consent-text`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` Shown beside a required checkbox; the form shows only once this is filled in. Be specific about what they are agreeing to. The brand name is added automatically from Site settings.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-84`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-32`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupForm`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-sms-signup-form`,children:_jsxs(_components.p,{children:[`The Form (Forms manager) that receives these SMS opt-ins and routes them — configure its destinations on the form’s Actions tab. The related `,_jsx(_components.code,{children:`@apostrophecms/form`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowEnabled`,type:`?bool`,id:`param-sms-signup-eyebrow-enabled`,children:_jsx(_components.p,{children:`Show eyebrow.`})}),_jsx(ResponseField,{name:`smsSignupEyebrow`,type:`?string`,id:`param-sms-signup-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`smsSignupEyebrowColor`,type:`?string`,id:`param-sms-signup-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`smsSignupEyebrowColorLight`,type:`?string`,id:`param-sms-signup-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`smsSignupEyebrowWeight`,type:`Enums\\\\SmsSignupEyebrowWeight|string|null`,id:`param-sms-signup-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowSize`,type:`Enums\\\\SmsSignupEyebrowSize|string|null`,id:`param-sms-signup-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupHeading`,type:`?string`,id:`param-sms-signup-heading`,children:_jsx(_components.p,{children:`Heading.`})}),_jsx(ResponseField,{name:`smsSignupHeadingColor`,type:`?string`,id:`param-sms-signup-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`smsSignupHeadingColorLight`,type:`?string`,id:`param-sms-signup-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`smsSignupHeadingWeight`,type:`Enums\\\\SmsSignupHeadingWeight|string|null`,id:`param-sms-signup-heading-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupHeadingSize`,type:`Enums\\\\SmsSignupHeadingSize|string|null`,id:`param-sms-signup-heading-size`,children:_jsxs(_components.p,{children:[`Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupIntro`,type:`?string`,id:`param-sms-signup-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`smsSignupIntroColor`,type:`?string`,id:`param-sms-signup-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`smsSignupIntroColorLight`,type:`?string`,id:`param-sms-signup-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`smsSignupIntroWeight`,type:`Enums\\\\SmsSignupIntroWeight|string|null`,id:`param-sms-signup-intro-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupIntroSize`,type:`Enums\\\\SmsSignupIntroSize|string|null`,id:`param-sms-signup-intro-size`,children:_jsxs(_components.p,{children:[`Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupBand`,type:`Enums\\\\SmsSignupBand|string|null`,id:`param-sms-signup-band`,children:_jsxs(_components.p,{children:[`Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupAccentColor`,type:`?string`,id:`param-sms-signup-accent-color`,children:_jsx(_components.p,{children:`The accent band color. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`smsSignupAccentColorLight`,type:`?string`,id:`param-sms-signup-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`smsSignupAlign`,type:`Enums\\\\SmsSignupAlign|string|null`,id:`param-sms-signup-align`,children:_jsxs(_components.p,{children:[`Alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupLayout`,type:`Enums\\\\SmsSignupLayout|string|null`,id:`param-sms-signup-layout`,children:_jsxs(_components.p,{children:[`Inline puts the field + button on one row (stacks on small screens); Stacked always stacks them. One of `,_jsx(_components.code,{children:`inline`}),`, `,_jsx(_components.code,{children:`stacked`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupWidth`,type:`Enums\\\\SmsSignupWidth|string|null`,id:`param-sms-signup-width`,children:_jsxs(_components.p,{children:[`Content width. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupNameEnabled`,type:`?bool`,id:`param-sms-signup-name-enabled`,children:_jsx(_components.p,{children:`Collect a name.`})}),_jsx(ResponseField,{name:`smsSignupNameLabel`,type:`?string`,id:`param-sms-signup-name-label`,children:_jsx(_components.p,{children:`Name label.`})}),_jsx(ResponseField,{name:`smsSignupNamePlaceholder`,type:`?string`,id:`param-sms-signup-name-placeholder`,children:_jsx(_components.p,{children:`Name placeholder.`})}),_jsx(ResponseField,{name:`smsSignupPhoneLabel`,type:`?string`,id:`param-sms-signup-phone-label`,children:_jsx(_components.p,{children:`Phone label.`})}),_jsx(ResponseField,{name:`smsSignupPhonePlaceholder`,type:`?string`,id:`param-sms-signup-phone-placeholder`,children:_jsx(_components.p,{children:`Phone placeholder.`})}),_jsx(ResponseField,{name:`smsSignupTermsText`,type:`?string`,id:`param-sms-signup-terms-text`,children:_jsx(_components.p,{children:`Carrier-compliance fine print shown under the form.`})}),_jsx(ResponseField,{name:`smsSignupPrivacyUrl`,type:`?string`,id:`param-sms-signup-privacy-url`,children:_jsx(_components.p,{children:`Optional — linked from the fine print.`})}),_jsx(ResponseField,{name:`smsSignupTermsUrl`,type:`?string`,id:`param-sms-signup-terms-url`,children:_jsx(_components.p,{children:`Optional — linked from the fine print.`})}),_jsx(ResponseField,{name:`smsSignupSuccessMessage`,type:`?string`,id:`param-sms-signup-success-message`,children:_jsx(_components.p,{children:`Success message.`})}),_jsx(ResponseField,{name:`smsSignupErrorMessage`,type:`?string`,id:`param-sms-signup-error-message`,children:_jsx(_components.p,{children:`Error message.`})}),_jsx(ResponseField,{name:`smsSignupBg`,type:`Enums\\\\SmsSignupBg|string|null`,id:`param-sms-signup-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupBgCustom`,type:`?string`,id:`param-sms-signup-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`smsSignupBgLight`,type:`Enums\\\\SmsSignupBgLight|string|null`,id:`param-sms-signup-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupBgLightCustom`,type:`?string`,id:`param-sms-signup-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`smsSignupFontOverrides`,type:`Collection\u003cint, SmsSignupWidgetSmsSignupFontOverridesItem>|null`,id:`param-sms-signup-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`SmsSignupWidgetSmsSignupFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`SmsSignupWidgetSmsSignupFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SmsSignupWidgetSmsSignupFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-85`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-22`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-22`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-22`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-22`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-22`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-22`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-22`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem>|null`,id:`param-uploads-22`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-22`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-86`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-22`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-22`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-83`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-22`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-84`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`smsSignupSubmitLabel`,type:`?string`,id:`param-sms-signup-submit-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`smsSignupSubmitVariant`,type:`Enums\\\\SmsSignupSubmitVariant|string|null`,id:`param-sms-signup-submit-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitSize`,type:`Enums\\\\SmsSignupSubmitSize|string|null`,id:`param-sms-signup-submit-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitRadius`,type:`Enums\\\\SmsSignupSubmitRadius|string|null`,id:`param-sms-signup-submit-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitColor`,type:`?string`,id:`param-sms-signup-submit-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`smsSignupSubmitColorLight`,type:`?string`,id:`param-sms-signup-submit-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`smsSignupSubmitTextColor`,type:`?string`,id:`param-sms-signup-submit-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`smsSignupSubmitTextColorLight`,type:`?string`,id:`param-sms-signup-submit-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`smsSignupSubmitHoverColor`,type:`?string`,id:`param-sms-signup-submit-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`smsSignupSubmitHoverColorLight`,type:`?string`,id:`param-sms-signup-submit-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`smsSignupSubmitStyle`,type:`Enums\\\\SmsSignupSubmitStyle|string|null`,id:`param-sms-signup-submit-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitShadowColor`,type:`?string`,id:`param-sms-signup-submit-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`smsSignupSubmitShadowColorLight`,type:`?string`,id:`param-sms-signup-submit-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`smsSignupSubmitAnimation`,type:`Enums\\\\SmsSignupSubmitAnimation|string|null`,id:`param-sms-signup-submit-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIcon`,type:`?string`,id:`param-sms-signup-submit-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`smsSignupSubmitIconFamily`,type:`Enums\\\\SmsSignupSubmitIconFamily|string|null`,id:`param-sms-signup-submit-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIconPosition`,type:`Enums\\\\SmsSignupSubmitIconPosition|string|null`,id:`param-sms-signup-submit-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIconNudge`,type:`?bool`,id:`param-sms-signup-submit-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-26`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-85`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`FormRenderWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FormRenderWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`form-render`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FormRenderWidgetType|string`,required:true,id:`param-type-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`form-render`}),`. One of `,_jsx(_components.code,{children:`form-render`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-87`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-33`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`form`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-form`,children:_jsxs(_components.p,{children:[`The form to show here. Build and edit the form itself in the Forms manager (create one there first if needed). The related `,_jsx(_components.code,{children:`@apostrophecms/form`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`styleOverride`,type:`?bool`,id:`param-style-override`,children:_jsx(_components.p,{children:`Off: the form renders with the styling saved on the form itself. On: the styling below replaces it here only — the form’s fields and other placements are unaffected.`})}),_jsxs(ResponseField,{name:`formFontOverrides`,type:`Collection\u003cint, FormRenderWidgetFormFontOverridesItem>|null`,id:`param-form-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FormRenderWidgetFormFontOverridesItem`}),`. Optional. Set part of this form in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FormRenderWidgetFormFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FormRenderWidgetFormFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-88`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-23`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-23`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-23`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-23`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-23`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-23`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-23`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FormRenderWidgetFormFontOverridesItemUploadsItem>|null`,id:`param-uploads-23`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FormRenderWidgetFormFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FormRenderWidgetFormFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FormRenderWidgetFormFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-23`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-89`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-23`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-23`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-86`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-23`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-87`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`formEyebrowEnabled`,type:`?bool`,id:`param-form-eyebrow-enabled`,children:_jsx(_components.p,{children:`Show eyebrow.`})}),_jsx(ResponseField,{name:`formEyebrow`,type:`?string`,id:`param-form-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`formEyebrowColor`,type:`?string`,id:`param-form-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`formEyebrowColorLight`,type:`?string`,id:`param-form-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`formEyebrowWeight`,type:`Enums\\\\FormEyebrowWeight|string|null`,id:`param-form-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`formEyebrowSize`,type:`Enums\\\\FormEyebrowSize|string|null`,id:`param-form-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`formHeading`,type:`?string`,id:`param-form-heading`,children:_jsx(_components.p,{children:`Heading.`})}),_jsx(ResponseField,{name:`formHeadingColor`,type:`?string`,id:`param-form-heading-color`,children:_jsx(_components.p,{children:`Optional — leave empty to track the theme text color.`})}),_jsx(ResponseField,{name:`formHeadingColorLight`,type:`?string`,id:`param-form-heading-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`formHeadingWeight`,type:`Enums\\\\FormHeadingWeight|string|null`,id:`param-form-heading-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`formHeadingSize`,type:`Enums\\\\FormHeadingSize|string|null`,id:`param-form-heading-size`,children:_jsxs(_components.p,{children:[`Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`formIntro`,type:`?string`,id:`param-form-intro`,children:_jsx(_components.p,{children:`Optional short sentence under the heading.`})}),_jsx(ResponseField,{name:`formIntroColor`,type:`?string`,id:`param-form-intro-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the muted text color.`})}),_jsx(ResponseField,{name:`formIntroColorLight`,type:`?string`,id:`param-form-intro-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`formIntroWeight`,type:`Enums\\\\FormIntroWeight|string|null`,id:`param-form-intro-weight`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`formIntroSize`,type:`Enums\\\\FormIntroSize|string|null`,id:`param-form-intro-size`,children:_jsxs(_components.p,{children:[`Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`.`]})}),_jsx(ResponseField,{name:`formBand`,type:`Enums\\\\FormBand|string|null`,id:`param-form-band`,children:_jsxs(_components.p,{children:[`Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`formAccentColor`,type:`?string`,id:`param-form-accent-color`,children:_jsx(_components.p,{children:`The accent band color. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`formAccentColorLight`,type:`?string`,id:`param-form-accent-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`formAlign`,type:`Enums\\\\FormAlign|string|null`,id:`param-form-align`,children:_jsxs(_components.p,{children:[`Alignment of the section header (the form fields stay left-aligned for legibility). One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`formWidth`,type:`Enums\\\\FormWidth|string|null`,id:`param-form-width`,children:_jsxs(_components.p,{children:[`Content width. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`.`]})}),_jsx(ResponseField,{name:`formLabelGap`,type:`Enums\\\\FormLabelGap|string|null`,id:`param-form-label-gap`,children:_jsxs(_components.p,{children:[`Vertical space between each field’s label and its input. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`, `,_jsx(_components.code,{children:`spacious`}),`.`]})}),_jsx(ResponseField,{name:`formBg`,type:`Enums\\\\FormBg|string|null`,id:`param-form-bg`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`formBgCustom`,type:`?string`,id:`param-form-bg-custom`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`formBgLight`,type:`Enums\\\\FormBgLight|string|null`,id:`param-form-bg-light`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`formBgLightCustom`,type:`?string`,id:`param-form-bg-light-custom`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`formSubmitLabel`,type:`?string`,id:`param-form-submit-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`formSubmitVariant`,type:`Enums\\\\FormSubmitVariant|string|null`,id:`param-form-submit-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitSize`,type:`Enums\\\\FormSubmitSize|string|null`,id:`param-form-submit-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitRadius`,type:`Enums\\\\FormSubmitRadius|string|null`,id:`param-form-submit-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitColor`,type:`?string`,id:`param-form-submit-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`formSubmitColorLight`,type:`?string`,id:`param-form-submit-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`formSubmitTextColor`,type:`?string`,id:`param-form-submit-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`formSubmitTextColorLight`,type:`?string`,id:`param-form-submit-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`formSubmitHoverColor`,type:`?string`,id:`param-form-submit-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`formSubmitHoverColorLight`,type:`?string`,id:`param-form-submit-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`formSubmitStyle`,type:`Enums\\\\FormSubmitStyle|string|null`,id:`param-form-submit-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitShadowColor`,type:`?string`,id:`param-form-submit-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`formSubmitShadowColorLight`,type:`?string`,id:`param-form-submit-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`formSubmitAnimation`,type:`Enums\\\\FormSubmitAnimation|string|null`,id:`param-form-submit-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitIcon`,type:`?string`,id:`param-form-submit-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`formSubmitIconFamily`,type:`Enums\\\\FormSubmitIconFamily|string|null`,id:`param-form-submit-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitIconPosition`,type:`Enums\\\\FormSubmitIconPosition|string|null`,id:`param-form-submit-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`formSubmitIconNudge`,type:`?bool`,id:`param-form-submit-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-27`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-88`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]}),_jsxs(Expandable,{title:`FinalCtaWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FinalCtaWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`final-cta`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FinalCtaWidgetType|string`,required:true,id:`param-type-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`final-cta`}),`. One of `,_jsx(_components.code,{children:`final-cta`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-90`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-34`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`ctaAlign`,type:`Enums\\\\CtaAlign|string|null`,id:`param-cta-align`,children:_jsxs(_components.p,{children:[`Content alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`.`]})}),_jsx(ResponseField,{name:`ctaEyebrowEnabled`,type:`?bool`,id:`param-cta-eyebrow-enabled`,children:_jsx(_components.p,{children:`Show eyebrow / kicker.`})}),_jsx(ResponseField,{name:`ctaEyebrow`,type:`?string`,id:`param-cta-eyebrow`,children:_jsx(_components.p,{children:`Small label shown above the title.`})}),_jsx(ResponseField,{name:`ctaEyebrowColor`,type:`?string`,id:`param-cta-eyebrow-color`,children:_jsx(_components.p,{children:`Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`})}),_jsx(ResponseField,{name:`ctaEyebrowColorLight`,type:`?string`,id:`param-cta-eyebrow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the mint default.`})}),_jsx(ResponseField,{name:`ctaEyebrowWeight`,type:`Enums\\\\CtaEyebrowWeight|string|null`,id:`param-cta-eyebrow-weight`,children:_jsxs(_components.p,{children:[`Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`ctaEyebrowSize`,type:`Enums\\\\CtaEyebrowSize|string|null`,id:`param-cta-eyebrow-size`,children:_jsxs(_components.p,{children:[`Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ResponseField,{name:`ctaIconPlacement`,type:`Enums\\\\CtaIconPlacement|string|null`,id:`param-cta-icon-placement`,children:_jsxs(_components.p,{children:[`An optional Font Awesome icon above the headline. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`top`}),`.`]})}),_jsx(ResponseField,{name:`ctaIcon`,type:`?string`,id:`param-cta-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`ctaIconFamily`,type:`Enums\\\\CtaIconFamily|string|null`,id:`param-cta-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`ctaIconColor`,type:`?string`,id:`param-cta-icon-color`,children:_jsx(_components.p,{children:`Optional — leave empty to use the design’s own color rhythm.`})}),_jsx(ResponseField,{name:`ctaIconAnimation`,type:`Enums\\\\CtaIconAnimation|string|null`,id:`param-cta-icon-animation`,children:_jsxs(_components.p,{children:[`Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`.`]})}),_jsx(ResponseField,{name:`ctaIconSize`,type:`Enums\\\\CtaIconSize|string|null`,id:`param-cta-icon-size`,children:_jsxs(_components.p,{children:[`Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`.`]})}),_jsx(ResponseField,{name:`ctaIconTilt`,type:`Enums\\\\CtaIconTilt|string|null`,id:`param-cta-icon-tilt`,children:_jsxs(_components.p,{children:[`A slight rotation for a more playful look. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`ctaHeadline`,type:`?string`,id:`param-cta-headline`,children:_jsx(_components.p,{children:`Headline.`})}),_jsx(ResponseField,{name:`ctaHeadlineColor`,type:`?string`,id:`param-cta-headline-color`,children:_jsx(_components.p,{children:`Optional. Overrides the headline color. Leave empty for the on-accent (legible-on-band) default.`})}),_jsx(ResponseField,{name:`ctaHeadlineColorLight`,type:`?string`,id:`param-cta-headline-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the on-accent default.`})}),_jsx(ResponseField,{name:`ctaHeadlineWeight`,type:`Enums\\\\CtaHeadlineWeight|string|null`,id:`param-cta-headline-weight`,children:_jsxs(_components.p,{children:[`Headline weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`ctaBody`,type:`?string`,id:`param-cta-body`,children:_jsx(_components.p,{children:`Supporting copy.`})}),_jsx(ResponseField,{name:`ctaBodyColor`,type:`?string`,id:`param-cta-body-color`,children:_jsx(_components.p,{children:`Optional. Overrides the supporting-copy color. Leave empty for the softened on-accent default.`})}),_jsx(ResponseField,{name:`ctaBodyColorLight`,type:`?string`,id:`param-cta-body-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the softened on-accent default.`})}),_jsx(ResponseField,{name:`ctaBodyWeight`,type:`Enums\\\\CtaBodyWeight|string|null`,id:`param-cta-body-weight`,children:_jsxs(_components.p,{children:[`Body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`ctaBackgroundType`,type:`Enums\\\\CtaBackgroundType|string|null`,id:`param-cta-background-type`,children:_jsxs(_components.p,{children:[`Solid keeps the loud color block; Image places a photo behind the text with a readability overlay. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`image`}),`.`]})}),_jsx(ResponseField,{name:`ctaBackgroundColor`,type:`?string`,id:`param-cta-background-color`,children:_jsx(_components.p,{children:`The solid band color (and the fallback behind a background image). Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`ctaBackgroundColorLight`,type:`?string`,id:`param-cta-background-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`ctaImage`,type:`?ImageArea`,id:`param-cta-image`,children:_jsxs(_components.p,{children:[`An `,_jsx(_components.code,{children:`ImageArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`ctaOverlayColor`,type:`?string`,id:`param-cta-overlay-color`,children:_jsx(_components.p,{children:`Scrim over the image to keep the text readable. Leave empty to use the accent color.`})}),_jsx(ResponseField,{name:`ctaOverlayColorLight`,type:`?string`,id:`param-cta-overlay-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme overlay, then the accent.`})}),_jsx(ResponseField,{name:`ctaOverlayOpacity`,type:`?float`,id:`param-cta-overlay-opacity`,children:_jsx(_components.p,{children:`Overlay opacity (%). 0 to 100.`})}),_jsx(ResponseField,{name:`ctaRings`,type:`?bool`,id:`param-cta-rings`,children:_jsx(_components.p,{children:`The two large outlined circles on the band.`})}),_jsx(ResponseField,{name:`ctaRingColor`,type:`?string`,id:`param-cta-ring-color`,children:_jsx(_components.p,{children:`Drawn at a low opacity. Leave empty to use the on-accent (white-ish) default.`})}),_jsxs(ResponseField,{name:`ctaFontOverrides`,type:`Collection\u003cint, FinalCtaWidgetCtaFontOverridesItem>|null`,id:`param-cta-font-overrides`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FinalCtaWidgetCtaFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FinalCtaWidgetCtaFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FinalCtaWidgetCtaFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-91`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-24`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-24`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-24`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-24`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-24`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-24`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-24`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FinalCtaWidgetCtaFontOverridesItemUploadsItem>|null`,id:`param-uploads-24`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`FinalCtaWidgetCtaFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FinalCtaWidgetCtaFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FinalCtaWidgetCtaFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-24`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-92`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-24`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-24`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-89`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-24`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-90`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`ctaPrimaryLabel`,type:`?string`,id:`param-cta-primary-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`ctaPrimaryUrl`,type:`?string`,id:`param-cta-primary-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`ctaPrimaryNewTab`,type:`?bool`,id:`param-cta-primary-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`ctaPrimaryVariant`,type:`Enums\\\\CtaPrimaryVariant|string|null`,id:`param-cta-primary-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimarySize`,type:`Enums\\\\CtaPrimarySize|string|null`,id:`param-cta-primary-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimaryRadius`,type:`Enums\\\\CtaPrimaryRadius|string|null`,id:`param-cta-primary-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimaryColor`,type:`?string`,id:`param-cta-primary-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`ctaPrimaryColorLight`,type:`?string`,id:`param-cta-primary-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`ctaPrimaryTextColor`,type:`?string`,id:`param-cta-primary-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`ctaPrimaryTextColorLight`,type:`?string`,id:`param-cta-primary-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`ctaPrimaryHoverColor`,type:`?string`,id:`param-cta-primary-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`ctaPrimaryHoverColorLight`,type:`?string`,id:`param-cta-primary-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`ctaPrimaryStyle`,type:`Enums\\\\CtaPrimaryStyle|string|null`,id:`param-cta-primary-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimaryShadowColor`,type:`?string`,id:`param-cta-primary-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`ctaPrimaryShadowColorLight`,type:`?string`,id:`param-cta-primary-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`ctaPrimaryAnimation`,type:`Enums\\\\CtaPrimaryAnimation|string|null`,id:`param-cta-primary-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIcon`,type:`?string`,id:`param-cta-primary-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`ctaPrimaryIconFamily`,type:`Enums\\\\CtaPrimaryIconFamily|string|null`,id:`param-cta-primary-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIconPosition`,type:`Enums\\\\CtaPrimaryIconPosition|string|null`,id:`param-cta-primary-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIconNudge`,type:`?bool`,id:`param-cta-primary-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`ctaSecondaryLabel`,type:`?string`,id:`param-cta-secondary-label`,children:_jsx(_components.p,{children:`The visible button text. Leave empty to hide the button.`})}),_jsx(ResponseField,{name:`ctaSecondaryUrl`,type:`?string`,id:`param-cta-secondary-url`,children:_jsx(_components.p,{children:`Where the button goes — a path (/blog) or full URL.`})}),_jsx(ResponseField,{name:`ctaSecondaryNewTab`,type:`?bool`,id:`param-cta-secondary-new-tab`,children:_jsx(_components.p,{children:`Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`})}),_jsx(ResponseField,{name:`ctaSecondaryVariant`,type:`Enums\\\\CtaSecondaryVariant|string|null`,id:`param-cta-secondary-variant`,children:_jsxs(_components.p,{children:[`Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondarySize`,type:`Enums\\\\CtaSecondarySize|string|null`,id:`param-cta-secondary-size`,children:_jsxs(_components.p,{children:[`Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondaryRadius`,type:`Enums\\\\CtaSecondaryRadius|string|null`,id:`param-cta-secondary-radius`,children:_jsxs(_components.p,{children:[`Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondaryColor`,type:`?string`,id:`param-cta-secondary-color`,children:_jsx(_components.p,{children:`Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`})}),_jsx(ResponseField,{name:`ctaSecondaryColorLight`,type:`?string`,id:`param-cta-secondary-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`})}),_jsx(ResponseField,{name:`ctaSecondaryTextColor`,type:`?string`,id:`param-cta-secondary-text-color`,children:_jsx(_components.p,{children:`The text/icon color. Clear it to derive from the button color (readable on solid fills).`})}),_jsx(ResponseField,{name:`ctaSecondaryTextColorLight`,type:`?string`,id:`param-cta-secondary-text-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme label color.`})}),_jsx(ResponseField,{name:`ctaSecondaryHoverColor`,type:`?string`,id:`param-cta-secondary-hover-color`,children:_jsx(_components.p,{children:`Optional. Drives the hover treatment. Leave empty to derive it from the button color.`})}),_jsx(ResponseField,{name:`ctaSecondaryHoverColorLight`,type:`?string`,id:`param-cta-secondary-hover-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color.`})}),_jsx(ResponseField,{name:`ctaSecondaryStyle`,type:`Enums\\\\CtaSecondaryStyle|string|null`,id:`param-cta-secondary-style`,children:_jsxs(_components.p,{children:[`The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondaryShadowColor`,type:`?string`,id:`param-cta-secondary-shadow-color`,children:_jsx(_components.p,{children:`Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`})}),_jsx(ResponseField,{name:`ctaSecondaryShadowColorLight`,type:`?string`,id:`param-cta-secondary-shadow-color-light`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme shadow color.`})}),_jsx(ResponseField,{name:`ctaSecondaryAnimation`,type:`Enums\\\\CtaSecondaryAnimation|string|null`,id:`param-cta-secondary-animation`,children:_jsxs(_components.p,{children:[`Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIcon`,type:`?string`,id:`param-cta-secondary-icon`,children:_jsx(_components.p,{children:`Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`})}),_jsx(ResponseField,{name:`ctaSecondaryIconFamily`,type:`Enums\\\\CtaSecondaryIconFamily|string|null`,id:`param-cta-secondary-icon-family`,children:_jsxs(_components.p,{children:[`Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIconPosition`,type:`Enums\\\\CtaSecondaryIconPosition|string|null`,id:`param-cta-secondary-icon-position`,children:_jsxs(_components.p,{children:[`Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIconNudge`,type:`?bool`,id:`param-cta-secondary-icon-nudge`,children:_jsx(_components.p,{children:`The icon slides toward its side on hover (e.g. an arrow edges outward).`})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-28`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-91`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-92`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ParamField,{body:`comingSoonIcon`,type:`?string`,id:`param-coming-soon-icon`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"sparkles\"`}),`. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ParamField,{body:`comingSoonIconFamily`,type:`Enums\\\\ComingSoonIconFamily|string|null`,id:`param-coming-soon-icon-family`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"classic-regular\"`}),`. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ParamField,{body:`comingSoonIconColor`,type:`?string`,id:`param-coming-soon-icon-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ParamField,{body:`comingSoonIconAnimation`,type:`Enums\\\\ComingSoonIconAnimation|string|null`,id:`param-coming-soon-icon-animation`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"none\"`}),`. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`.`]})}),_jsx(ParamField,{body:`comingSoonIconSize`,type:`Enums\\\\ComingSoonIconSize|string|null`,id:`param-coming-soon-icon-size`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"5x\"`}),`. Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`.`]})}),_jsx(ParamField,{body:`comingSoonNote`,type:`?string`,id:`param-coming-soon-note`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"\"`}),`. Optional. Shown under the icon while this page has no content. Leave empty for a tasteful default line.`]})}),_jsx(ParamField,{body:`backLinkColor`,type:`?string`,id:`param-back-link-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional. Color of the ”← back” link at the top of every post. Leave empty to use the site accent color.`]})}),_jsx(ParamField,{body:`backLinkColorLight`,type:`?string`,id:`param-back-link-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ParamField,{body:`backLinkWeight`,type:`Enums\\\\BackLinkWeight|string|null`,id:`param-back-link-weight`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"semibold\"`}),`. Back link weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ParamField,{body:`backLinkSize`,type:`Enums\\\\BackLinkSize|string|null`,id:`param-back-link-size`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"normal\"`}),`. Back link size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ParamField,{body:`aboveSections`,type:`SectionsArea|array\u003cstring, mixed>|null`,id:`param-above-sections`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`page-header`}),`.`]})}),_jsxs(ParamField,{body:`postList`,type:`BlogListArea|array\u003cstring, mixed>|null`,id:`param-post-list`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`blog-list`}),`.`]}),_jsxs(Expandable,{title:`BlogListArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-35`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-93`,children:_jsx(_components.p,{children:`The area’s id, set by the site: leave it out when you write one.`})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, BlogListWidget>|null`,id:`param-items-5`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`BlogListWidget`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them). At most 1 items.`]}),_jsxs(Expandable,{title:`BlogListWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`blog-list`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\BlogListWidgetType|string`,required:true,id:`param-type-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` The widget’s type: always `,_jsx(_components.code,{children:`blog-list`}),`. One of `,_jsx(_components.code,{children:`blog-list`}),`.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-94`,children:_jsx(_components.p,{children:`The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-36`,children:_jsxs(_components.p,{children:[`Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`.`]})}),_jsx(ResponseField,{name:`blogLayout`,type:`Enums\\\\BlogLayout|string|null`,id:`param-blog-layout`,children:_jsxs(_components.p,{children:[`How posts are arranged. One of `,_jsx(_components.code,{children:`card`}),`, `,_jsx(_components.code,{children:`list`}),`, `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`featured`}),`, `,_jsx(_components.code,{children:`masonry`}),`.`]})}),_jsx(ResponseField,{name:`blogColumns`,type:`Enums\\\\BlogColumns|string|null`,id:`param-blog-columns`,children:_jsxs(_components.p,{children:[`Applies to the Card grid and Masonry layouts. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`.`]})}),_jsx(ResponseField,{name:`blogEntrance`,type:`Enums\\\\BlogEntrance|string|null`,id:`param-blog-entrance`,children:_jsxs(_components.p,{children:[`How posts animate in as they scroll into view. Only plays when site animations are on (Site design → Motion) — otherwise the posts are simply shown. In the Featured + grid layout the banner rises first, then the grid staggers in. One of `,_jsx(_components.code,{children:`stagger`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardImageAspect`,type:`Enums\\\\BlogCardImageAspect|string|null`,id:`param-blog-card-image-aspect-1`,children:_jsxs(_components.p,{children:[`Aspect ratio of the featured image. Choose “Hidden” for text-only cards. One of `,_jsx(_components.code,{children:`16/10`}),`, `,_jsx(_components.code,{children:`4/3`}),`, `,_jsx(_components.code,{children:`3/2`}),`, `,_jsx(_components.code,{children:`1/1`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardImageHover`,type:`Enums\\\\BlogCardImageHover|string|null`,id:`param-blog-card-image-hover-1`,children:_jsxs(_components.p,{children:[`Image hover. One of `,_jsx(_components.code,{children:`zoom`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardImageFill`,type:`?bool`,id:`param-blog-card-image-fill-1`,children:_jsx(_components.p,{children:`Use the featured image as the full card background, with the title and meta overlaid on a dark scrim. Posts with no image fall back to a normal card.`})}),_jsx(ResponseField,{name:`blogCardPreset`,type:`Enums\\\\BlogCardPreset|string|null`,id:`param-blog-card-preset-1`,children:_jsxs(_components.p,{children:[`The card surface. Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. (On image-led cards the photo covers the top edge.) One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`.`]})}),_jsx(ResponseField,{name:`blogCardPresetRadius`,type:`Enums\\\\BlogCardPresetRadius|string|null`,id:`param-blog-card-preset-radius-1`,children:_jsxs(_components.p,{children:[`Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ResponseField,{name:`blogCardPresetAccentColor`,type:`?string`,id:`param-blog-card-preset-accent-color-1`,children:_jsx(_components.p,{children:`Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`})}),_jsx(ResponseField,{name:`blogCardPresetAccentColorLight`,type:`?string`,id:`param-blog-card-preset-accent-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color.`})}),_jsx(ResponseField,{name:`blogCardPresetForgeScope`,type:`Enums\\\\BlogCardPresetForgeScope|string|null`,id:`param-blog-card-preset-forge-scope-1`,children:_jsxs(_components.p,{children:[`Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`.`]})}),_jsx(ResponseField,{name:`blogCardPresetForgeWeight`,type:`Enums\\\\BlogCardPresetForgeWeight|string|null`,id:`param-blog-card-preset-forge-weight-1`,children:_jsxs(_components.p,{children:[`Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`blogCardHover`,type:`Enums\\\\BlogCardHover|string|null`,id:`param-blog-card-hover-1`,children:_jsxs(_components.p,{children:[`What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt (3-D + glare), Magnetic and Spotlight follow the cursor (need site animations on). The Hover color below tints these. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`.`]})}),_jsx(ResponseField,{name:`blogCardHoverColor`,type:`?string`,id:`param-blog-card-hover-color-1`,children:_jsx(_components.p,{children:`Border / shadow / glow color on hover. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`blogCardHoverColorLight`,type:`?string`,id:`param-blog-card-hover-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardShowCategory`,type:`?bool`,id:`param-blog-card-show-category-1`,children:_jsx(_components.p,{children:`Show category.`})}),_jsx(ResponseField,{name:`blogCardCategoryStyle`,type:`Enums\\\\BlogCardCategoryStyle|string|null`,id:`param-blog-card-category-style-1`,children:_jsxs(_components.p,{children:[`How the category badge uses its color (set per category under Blog Categories). Filled = colored background; Outline = colored border + text; Minimal = colored text only. One of `,_jsx(_components.code,{children:`filled`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`minimal`}),`.`]})}),_jsx(ResponseField,{name:`blogCardShowDate`,type:`?bool`,id:`param-blog-card-show-date-1`,children:_jsx(_components.p,{children:`Show date.`})}),_jsx(ResponseField,{name:`blogCardShowExcerpt`,type:`?bool`,id:`param-blog-card-show-excerpt-1`,children:_jsx(_components.p,{children:`Show excerpt.`})}),_jsx(ResponseField,{name:`blogCardExcerptLines`,type:`Enums\\\\BlogCardExcerptLines|string|null`,id:`param-blog-card-excerpt-lines-1`,children:_jsxs(_components.p,{children:[`How many lines of the excerpt to show before truncating. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ResponseField,{name:`blogCardShowAuthor`,type:`?bool`,id:`param-blog-card-show-author-1`,children:_jsx(_components.p,{children:`Show author.`})}),_jsx(ResponseField,{name:`blogCardShowReadMore`,type:`?bool`,id:`param-blog-card-show-read-more-1`,children:_jsx(_components.p,{children:`Show “Read post” link.`})}),_jsx(ResponseField,{name:`blogCardReadMorePlacement`,type:`Enums\\\\BlogCardReadMorePlacement|string|null`,id:`param-blog-card-read-more-placement-1`,children:_jsxs(_components.p,{children:[`Auto puts it on the right of horizontal cards (list / compact / featured) and below the text on grid cards. Or force one placement everywhere. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`below`}),`, `,_jsx(_components.code,{children:`right`}),`.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreColor`,type:`?string`,id:`param-blog-card-read-more-color-1`,children:_jsx(_components.p,{children:`Optional. Overrides the “Read post” link color. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`blogCardReadMoreColorLight`,type:`?string`,id:`param-blog-card-read-more-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColor`,type:`?string`,id:`param-blog-card-read-more-hover-color-1`,children:_jsx(_components.p,{children:`Optional. Color of the “Read post” link when the card is hovered. Leave empty to use the accent color.`})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColorLight`,type:`?string`,id:`param-blog-card-read-more-hover-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardTitleColor`,type:`?string`,id:`param-blog-card-title-color-1`,children:_jsx(_components.p,{children:`Optional. Overrides the card title color. Leave empty to track the theme’s text color.`})}),_jsx(ResponseField,{name:`blogCardTitleColorLight`,type:`?string`,id:`param-blog-card-title-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the theme default.`})}),_jsx(ResponseField,{name:`blogCardTitleWeight`,type:`Enums\\\\BlogCardTitleWeight|string|null`,id:`param-blog-card-title-weight-1`,children:_jsxs(_components.p,{children:[`Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ResponseField,{name:`blogCardTitleHoverColor`,type:`?string`,id:`param-blog-card-title-hover-color-1`,children:_jsx(_components.p,{children:`Optional. Title color when the card is hovered. Leave empty to use the site accent color.`})}),_jsx(ResponseField,{name:`blogCardTitleHoverColorLight`,type:`?string`,id:`param-blog-card-title-hover-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`})}),_jsx(ResponseField,{name:`blogCardTextColor`,type:`?string`,id:`param-blog-card-text-color-1`,children:_jsx(_components.p,{children:`Optional. Overrides the excerpt text color. Leave empty for the muted default.`})}),_jsx(ResponseField,{name:`blogCardTextColorLight`,type:`?string`,id:`param-blog-card-text-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the muted default.`})}),_jsx(ResponseField,{name:`blogCardTextWeight`,type:`Enums\\\\BlogCardTextWeight|string|null`,id:`param-blog-card-text-weight-1`,children:_jsxs(_components.p,{children:[`Excerpt weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`.`]})}),_jsx(ResponseField,{name:`blogCardMetaColor`,type:`?string`,id:`param-blog-card-meta-color-1`,children:_jsx(_components.p,{children:`Date / meta line color. Leave empty for the faint default.`})}),_jsx(ResponseField,{name:`blogCardMetaColorLight`,type:`?string`,id:`param-blog-card-meta-color-light-1`,children:_jsx(_components.p,{children:`Optional light-theme override. Falls back to the dark-theme color, then the faint default.`})}),_jsx(ResponseField,{name:`blogBg`,type:`Enums\\\\BlogBg|string|null`,id:`param-blog-bg-1`,children:_jsxs(_components.p,{children:[`The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`blogBgCustom`,type:`?string`,id:`param-blog-bg-custom-1`,children:_jsx(_components.p,{children:`Used when “Section background (dark theme)” is set to Custom color.`})}),_jsx(ResponseField,{name:`blogBgLight`,type:`Enums\\\\BlogBgLight|string|null`,id:`param-blog-bg-light-1`,children:_jsxs(_components.p,{children:[`“Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`.`]})}),_jsx(ResponseField,{name:`blogBgLightCustom`,type:`?string`,id:`param-blog-bg-light-custom-1`,children:_jsx(_components.p,{children:`Used when “Section background (light theme)” is set to Custom color.`})}),_jsxs(ResponseField,{name:`blogFontOverrides`,type:`Collection\u003cint, BlogListWidgetBlogFontOverridesItem>|null`,id:`param-blog-font-overrides-1`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`BlogListWidgetBlogFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`BlogListWidgetBlogFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListWidgetBlogFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-95`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-25`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-25`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-25`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-25`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-25`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-25`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-25`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, BlogListWidgetBlogFontOverridesItemUploadsItem>|null`,id:`param-uploads-25`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`BlogListWidgetBlogFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`BlogListWidgetBlogFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListWidgetBlogFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-25`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-96`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-25`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-25`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-93`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-25`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-94`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-29`,children:_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-95`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-96`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ParamField,{body:`belowSections`,type:`SectionsArea|array\u003cstring, mixed>|null`,id:`param-below-sections`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]})}),_jsx(ParamField,{body:`backButtonLabel`,type:`?string`,id:`param-back-button-label`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"Back to all posts\"`}),`. The visible button text. Leave empty to hide the button.`]})}),_jsx(ParamField,{body:`backButtonVariant`,type:`Enums\\\\BackButtonVariant|string|null`,id:`param-back-button-variant`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"outline\"`}),`. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`.`]})}),_jsx(ParamField,{body:`backButtonSize`,type:`Enums\\\\BackButtonSize|string|null`,id:`param-back-button-size`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"normal\"`}),`. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`.`]})}),_jsx(ParamField,{body:`backButtonRadius`,type:`Enums\\\\BackButtonRadius|string|null`,id:`param-back-button-radius`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"slight\"`}),`. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`.`]})}),_jsx(ParamField,{body:`backButtonColor`,type:`?string`,id:`param-back-button-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"--fetchski-accent\"`}),`. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ParamField,{body:`backButtonColorLight`,type:`?string`,id:`param-back-button-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ParamField,{body:`backButtonTextColor`,type:`?string`,id:`param-back-button-text-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"--fetchski-ink\"`}),`. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ParamField,{body:`backButtonTextColorLight`,type:`?string`,id:`param-back-button-text-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ParamField,{body:`backButtonHoverColor`,type:`?string`,id:`param-back-button-hover-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ParamField,{body:`backButtonHoverColorLight`,type:`?string`,id:`param-back-button-hover-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ParamField,{body:`backButtonStyle`,type:`Enums\\\\BackButtonStyle|string|null`,id:`param-back-button-style`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"sweep\"`}),`. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`.`]})}),_jsx(ParamField,{body:`backButtonShadowColor`,type:`?string`,id:`param-back-button-shadow-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ParamField,{body:`backButtonShadowColorLight`,type:`?string`,id:`param-back-button-shadow-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ParamField,{body:`backButtonAnimation`,type:`Enums\\\\BackButtonAnimation|string|null`,id:`param-back-button-animation`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"lift-scale\"`}),`. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`.`]})}),_jsx(ParamField,{body:`backButtonIcon`,type:`?string`,id:`param-back-button-icon`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"arrow-left\"`}),`. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ParamField,{body:`backButtonIconFamily`,type:`Enums\\\\BackButtonIconFamily|string|null`,id:`param-back-button-icon-family`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"classic-regular\"`}),`. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`.`]})}),_jsx(ParamField,{body:`backButtonIconPosition`,type:`Enums\\\\BackButtonIconPosition|string|null`,id:`param-back-button-icon-position`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"before\"`}),`. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`.`]})}),_jsx(ParamField,{body:`backButtonIconNudge`,type:`?bool`,id:`param-back-button-icon-nudge`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`false`}),`. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsxs(ParamField,{body:`postFontOverrides`,type:`array\u003cint, PagePostFontOverridesItem|array\u003cstring, mixed>>|Collection\u003cint, PagePostFontOverridesItem|array\u003cstring, mixed>>|null`,id:`param-post-font-overrides`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional. Set part of every post in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). An individual post can replace this on its own Fonts tab. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePostFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePostFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-97`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-26`,children:_jsxs(_components.p,{children:[`Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-26`,children:_jsxs(_components.p,{children:[`Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-26`,children:_jsxs(_components.p,{children:[`Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-26`,children:_jsxs(_components.p,{children:[`Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-26`,children:_jsxs(_components.p,{children:[`Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-26`,children:_jsx(_components.p,{children:`Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-26`,children:_jsx(_components.p,{children:`Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PagePostFontOverridesItemUploadsItem>|null`,id:`param-uploads-26`,children:[_jsxs(_components.p,{children:[`A list of `,_jsx(_components.code,{children:`PagePostFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePostFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePostFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,required:true,id:`param-file-26`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Required.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-98`,children:_jsx(_components.p,{children:`The row’s id, unique in its array.`})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-26`,children:_jsxs(_components.p,{children:[`Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-26`,children:_jsxs(_components.p,{children:[`Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-97`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-26`,children:_jsxs(_components.p,{children:[`Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-98`,children:_jsx(_components.p,{children:`Optional: any keys not listed above, by their wire names; they are sent with the rest.`})})]})]}),_jsx(ParamField,{body:`postTextSize`,type:`Enums\\\\PostTextSize|string|null`,id:`param-post-text-size`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"normal\"`}),`. Body text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`.`]})}),_jsx(ParamField,{body:`postTextWeight`,type:`Enums\\\\PostTextWeight|string|null`,id:`param-post-text-weight`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"normal\"`}),`. Body text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`.`]})}),_jsx(ParamField,{body:`postContentWidth`,type:`Enums\\\\PostContentWidth|string|null`,id:`param-post-content-width`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"normal\"`}),`. Reading measure — how wide the article column gets. Posts that contain section widgets open to Full width automatically so the widgets have room. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`, `,_jsx(_components.code,{children:`xwide`}),`, `,_jsx(_components.code,{children:`full`}),`.`]})}),_jsx(ParamField,{body:`postLineHeight`,type:`Enums\\\\PostLineHeight|string|null`,id:`param-post-line-height`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"normal\"`}),`. Line height. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`relaxed`}),`.`]})}),_jsx(ParamField,{body:`postAccentColor`,type:`?string`,id:`param-post-accent-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Links, the blockquote rule, and heading accents. Leave empty to use the site link color.`]})}),_jsx(ParamField,{body:`postAccentColorLight`,type:`?string`,id:`param-post-accent-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme color, then the link color.`]})}),_jsx(ParamField,{body:`postHeadingWeight`,type:`Enums\\\\PostHeadingWeight|string|null`,id:`param-post-heading-weight`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out and the site uses `,_jsx(_components.code,{children:`\"bold\"`}),`. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`.`]})}),_jsx(ParamField,{body:`postHeadingColor`,type:`?string`,id:`param-post-heading-color`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional. Overrides in-article heading color. Leave empty to track the theme’s text color.`]})}),_jsx(ParamField,{body:`postHeadingColorLight`,type:`?string`,id:`param-post-heading-color-light`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsxs(ParamField,{body:`blogPostCss`,type:`PostCustomCSS|array\u003cstring, mixed>|null`,id:`param-blog-post-css`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Optional.`}),` Leave it out (or pass `,_jsx(_components.code,{children:`null`}),`) and it isn’t sent: the site’s default applies. CSS for every blog post’s page: the title band, the article and its parts. It wins over Site design → Custom CSS → Blog post.`]}),_jsxs(Expandable,{title:`PostCustomCSS (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PostCustomCSS)`,children:[_jsx(ResponseField,{name:`slots`,type:`array\u003cstring, string>|null`,id:`param-slots-1`,children:_jsx(_components.p,{children:`The CSS typed into each part slot, by slot name.`})}),_jsx(ResponseField,{name:`css`,type:`?string`,id:`param-css-1`,children:_jsxs(_components.p,{children:[`The compiled CSS (read only: rebuilt from `,_jsx(_components.code,{children:`slots`}),`).`]})}),_jsx(ResponseField,{name:`mark`,type:`?string`,id:`param-mark-1`,children:_jsxs(_components.p,{children:[`The site’s check mark for `,_jsx(_components.code,{children:`css`}),` (read only).`]})})]})]})]}),_jsxs(Accordion,{title:`Returns`,icon:`reply`,id:`returns`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`Page`}),` (`,_jsx(_components.code,{children:`Fetchski\\\\AttractCmsLaravel\\\\Data\\\\Page`}),`). A page: the fields every page has, and each page type’s own (`,_jsx(_components.code,{children:`type`}),` says which page type it is; a field belongs only to the page types that define it). Read its properties (`,_jsx(_components.code,{children:`$page->id`}),`): each says whether the site always sends it. The example answer is the site’s wire JSON: some keys differ from the property names (`,_jsx(_components.code,{children:`_id`}),` → `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`_ancestors`}),` → `,_jsx(_components.code,{children:`ancestors`}),`, `,_jsx(_components.code,{children:`_children`}),` → `,_jsx(_components.code,{children:`children`}),` …).`]}),_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id-99`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Unique document identifier, may include mode and locale (e.g., “id:en:published”)`]})}),_jsx(ResponseField,{name:`aposDocId`,type:`string`,id:`param-apos-doc-id`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Base document ID without mode/locale qualifiers.`]})}),_jsx(ResponseField,{name:`aposLocale`,type:`string`,id:`param-apos-locale-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Document locale code.`]})}),_jsx(ResponseField,{name:`updatedAt`,type:`CarbonImmutable`,id:`param-updated-at`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page last update timestamp. Format: an ISO 8601 date and time.`]})}),_jsx(ResponseField,{name:`slug`,type:`string`,id:`param-slug-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` URL slug for the page.`]})}),_jsx(ResponseField,{name:`path`,type:`string`,id:`param-path`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Full hierarchical path in the page tree.`]})}),_jsx(ResponseField,{name:`level`,type:`int`,id:`param-level`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Depth level in the page tree (0 = root level)`]})}),_jsx(ResponseField,{name:`visibility`,type:`Enums\\\\FlatPageResponseResultsItemVisibility|string`,id:`param-visibility-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page visibility setting. One of `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`loginRequired`}),`, `,_jsx(_components.code,{children:`private`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`type`,type:`string`,id:`param-type-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page type module name.`]})}),_jsx(ResponseField,{name:`title`,type:`string`,id:`param-title-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page title. At most 100 characters.`]})}),_jsx(ResponseField,{name:`aposMode`,type:`Enums\\\\AposMode|string|null`,id:`param-apos-mode-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Document mode (draft or published) One of `,_jsx(_components.code,{children:`draft`}),`, `,_jsx(_components.code,{children:`published`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`archived`,type:`?bool`,id:`param-archived`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether the page is archived.`]})}),_jsx(ResponseField,{name:`createdAt`,type:`?CarbonImmutable`,id:`param-created-at`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Page creation timestamp. Format: an ISO 8601 date and time.`]})}),_jsx(ResponseField,{name:`titleSortified`,type:`?string`,id:`param-title-sortified`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sortable version of the page title.`]})}),_jsx(ResponseField,{name:`rank`,type:`?int`,id:`param-rank`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sort order within parent page.`]})}),_jsx(ResponseField,{name:`orphan`,type:`?bool`,id:`param-orphan-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether page is orphaned (not in tree structure)`]})}),_jsx(ResponseField,{name:`parked`,type:`Collection\u003cint, string>|null`,id:`param-parked`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Array of parking lot configurations if page is parked.`]})}),_jsxs(ResponseField,{name:`main`,type:`?MainArea`,id:`param-main-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`MainArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`MainArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MainArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-100`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The area’s id, set by the site: leave it out when you write one.`]})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, RichTextWidget|ImageWidget|VideoWidget>|null`,id:`param-items-6`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`MainAreaItem`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them).`]}),_jsxs(Expandable,{title:`MainAreaItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MainAreaItem)`,children:[_jsxs(_components.p,{children:[`A widget in an area that takes `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`, `,_jsx(_components.code,{children:`@apostrophecms/image`}),`, `,_jsx(_components.code,{children:`@apostrophecms/video`}),`: the one its `,_jsx(_components.code,{children:`type`}),` names.`]}),_jsxs(Expandable,{title:`RichTextWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\RichTextWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\RichTextWidgetType|string`,id:`param-type-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-101`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`content`,type:`?string`,id:`param-content-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text as HTML, e.g. `,_jsx(_components.code,{children:`\u003ch2>Our story\u003c/h2>\u003cp>It began with \u003cstrong>one\u003c/strong> idea.\u003c/p>`}),`. The site keeps the tags and styles this area’s editor offers (paragraphs, headings, bold, italic, links, lists…) and removes the rest.`]})}),_jsxs(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-30`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot.`]}),_jsxs(Expandable,{title:`CustomCSS (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CustomCSS)`,children:[_jsx(ResponseField,{name:`slots`,type:`array\u003cstring, string>|null`,id:`param-slots-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The CSS typed into each part slot, by slot name.`]})}),_jsx(ResponseField,{name:`css`,type:`?string`,id:`param-css-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The compiled CSS (read only: rebuilt from `,_jsx(_components.code,{children:`slots`}),`).`]})}),_jsx(ResponseField,{name:`mark`,type:`?string`,id:`param-mark-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The site’s check mark for `,_jsx(_components.code,{children:`css`}),` (read only).`]})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-99`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`ImageWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ImageWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/image`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\ImageWidgetType|string`,id:`param-type-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/image`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/image`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-102`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`image`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-image-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`caption`,type:`?string`,id:`param-caption-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption.`]})}),_jsx(ResponseField,{name:`linkTo`,type:`Enums\\\\LinkTo|string|null`,id:`param-link-to-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Link To… One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`@apostrophecms/any-page-type`}),`, `,_jsx(_components.code,{children:`_url`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`apostrophecmsAnyPageType`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-apostrophecms-any-page-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The related `,_jsx(_components.code,{children:`@apostrophecms/any-page-type`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`linkHref`,type:`?string`,id:`param-link-href-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. apostrophe:linkHrefHelp When set, a URL; empty or null when not.`]})}),_jsx(ResponseField,{name:`linkHrefTitle`,type:`?string`,id:`param-link-href-title-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Link Title.`]})}),_jsx(ResponseField,{name:`linkTitle`,type:`?string`,id:`param-link-title-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. If empty, the title of the related document will be used.`]})}),_jsx(ResponseField,{name:`linkTarget`,type:`Collection\u003cint, Enums\\\\LinkTarget|string>|null`,id:`param-link-target-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Link Target. Each one of `,_jsx(_components.code,{children:`_blank`}),`.`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-100`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`VideoWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\VideoWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/video`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\VideoWidgetType|string`,id:`param-type-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/video`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/video`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`video`,type:`array\u003cstring, mixed>`,id:`param-video-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Enter the URL for a media source you wish to embed (e.g., YouTube, Vimeo, or other hosted video URL).`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-103`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-101`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-102`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsxs(ResponseField,{name:`ancestors`,type:`Collection\u003cint, Page>|null`,id:`param-ancestors`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`Page`}),`. The page’s ancestors, from the home page down (each without its own `,_jsx(_components.code,{children:`_ancestors`}),` and `,_jsx(_components.code,{children:`_children`}),`).`]}),_jsxs(Expandable,{title:`Page (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\Page)`,children:[_jsxs(_components.p,{children:[`A page: the fields every page has, and each page type’s own (`,_jsx(_components.code,{children:`type`}),` says which page type it is; a field belongs only to the page types that define it).`]}),_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id-104`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Unique document identifier, may include mode and locale (e.g., “id:en:published”)`]})}),_jsx(ResponseField,{name:`aposDocId`,type:`string`,id:`param-apos-doc-id-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Base document ID without mode/locale qualifiers.`]})}),_jsx(ResponseField,{name:`aposLocale`,type:`string`,id:`param-apos-locale-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Document locale code.`]})}),_jsx(ResponseField,{name:`updatedAt`,type:`CarbonImmutable`,id:`param-updated-at-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page last update timestamp. Format: an ISO 8601 date and time.`]})}),_jsx(ResponseField,{name:`slug`,type:`string`,id:`param-slug-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` URL slug for the page.`]})}),_jsx(ResponseField,{name:`path`,type:`string`,id:`param-path-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Full hierarchical path in the page tree.`]})}),_jsx(ResponseField,{name:`level`,type:`int`,id:`param-level-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Depth level in the page tree (0 = root level)`]})}),_jsx(ResponseField,{name:`visibility`,type:`Enums\\\\FlatPageResponseResultsItemVisibility|string`,id:`param-visibility-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page visibility setting. One of `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`loginRequired`}),`, `,_jsx(_components.code,{children:`private`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`type`,type:`string`,id:`param-type-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page type module name.`]})}),_jsx(ResponseField,{name:`title`,type:`string`,id:`param-title-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Page title. At most 100 characters.`]})}),_jsx(ResponseField,{name:`aposMode`,type:`Enums\\\\AposMode|string|null`,id:`param-apos-mode-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Document mode (draft or published) One of `,_jsx(_components.code,{children:`draft`}),`, `,_jsx(_components.code,{children:`published`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`archived`,type:`?bool`,id:`param-archived-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether the page is archived.`]})}),_jsx(ResponseField,{name:`createdAt`,type:`?CarbonImmutable`,id:`param-created-at-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Page creation timestamp. Format: an ISO 8601 date and time.`]})}),_jsx(ResponseField,{name:`titleSortified`,type:`?string`,id:`param-title-sortified-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sortable version of the page title.`]})}),_jsx(ResponseField,{name:`rank`,type:`?int`,id:`param-rank-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sort order within parent page.`]})}),_jsx(ResponseField,{name:`orphan`,type:`?bool`,id:`param-orphan-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether page is orphaned (not in tree structure)`]})}),_jsx(ResponseField,{name:`parked`,type:`Collection\u003cint, string>|null`,id:`param-parked-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Array of parking lot configurations if page is parked.`]})}),_jsx(ResponseField,{name:`main`,type:`?MainArea`,id:`param-main-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`MainArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`MainArea`}),` above.`]})}),_jsx(ResponseField,{name:`ancestors`,type:`Collection\u003cint, Page>|null`,id:`param-ancestors-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`Page`}),`. The page’s ancestors, from the home page down (each without its own `,_jsx(_components.code,{children:`_ancestors`}),` and `,_jsx(_components.code,{children:`_children`}),`). Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`children`,type:`Collection\u003cint, Page>|null`,id:`param-children`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`Page`}),`. Its child pages, each with its own `,_jsx(_components.code,{children:`_children`}),` where the request asked for more levels. Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`url`,type:`?string`,id:`param-url`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Full URL to the page. Format: an absolute URL.`]})}),_jsx(ResponseField,{name:`edit`,type:`?bool`,id:`param-edit`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether current user can edit this page.`]})}),_jsx(ResponseField,{name:`publish`,type:`?bool`,id:`param-publish`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether current user can publish this page.`]})}),_jsx(ResponseField,{name:`copyOfId`,type:`?string`,id:`param-copy-of-id`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The `,_jsx(_components.code,{children:`_id`}),` of the piece/page that was copied to create this document (only present if created via `,_jsx(_components.code,{children:`_copyingId`}),`)`]})}),_jsx(ResponseField,{name:`publishedDoc`,type:`?Page`,id:`param-published-doc`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`Page`}),`. A page: the fields every page has, and each page type’s own (`,_jsx(_components.code,{children:`type`}),` says which page type it is; a field belongs only to the page types that define it). Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`draftDoc`,type:`?Page`,id:`param-draft-doc`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`Page`}),`. A page: the fields every page has, and each page type’s own (`,_jsx(_components.code,{children:`type`}),` says which page type it is; a field belongs only to the page types that define it). Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`aposShareKey`,type:`?string`,id:`param-apos-share-key`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The draft’s preview share key, while its share link is on: the link is the draft’s `,_jsx(_components.code,{children:`_url`}),` with `,_jsx(_components.code,{children:`aposShareKey`}),` and `,_jsx(_components.code,{children:`aposShareId`}),` (the draft’s `,_jsx(_components.code,{children:`_id`}),`) in its query. Absent otherwise, and on published documents.`]})}),_jsx(ResponseField,{name:`scheduledPublish`,type:`?string`,id:`param-scheduled-publish-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An ISO 8601 date and time, e.g. `,_jsx(_components.code,{children:`2026-10-21T14:30:00.000Z`}),`.`]})}),_jsx(ResponseField,{name:`scheduledUnpublish`,type:`?string`,id:`param-scheduled-unpublish-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An ISO 8601 date and time, e.g. `,_jsx(_components.code,{children:`2026-10-21T14:30:00.000Z`}),`.`]})}),_jsx(ResponseField,{name:`seoTitle`,type:`?string`,id:`param-seo-title-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overrides the document title in the browser tab and search results. Leave blank to use the regular title.`]})}),_jsx(ResponseField,{name:`seoDescription`,type:`?string`,id:`param-seo-description-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Shown in search results and link previews. Aim for 150–160 characters.`]})}),_jsxs(ResponseField,{name:`seoImage`,type:`?ImageArea`,id:`param-seo-image-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An `,_jsx(_components.code,{children:`ImageArea`}),`. Used for Open Graph / social link previews. Recommended 1200×630. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`ImageArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ImageArea)`,children:[_jsxs(_components.p,{children:[`Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-105`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The area’s id, set by the site: leave it out when you write one.`]})}),_jsx(ResponseField,{name:`items`,type:`Collection\u003cint, ImageWidget>|null`,id:`param-items-7`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`ImageWidget`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them). At most 1 items. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageWidget`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-103`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsxs(ResponseField,{name:`pageFontOverrides`,type:`Collection\u003cint, PagePageFontOverridesItem>|null`,id:`param-page-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PagePageFontOverridesItem`}),`. Optional. Set part of this page in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). Individual sections can still override this for themselves. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePageFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePageFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-106`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PagePageFontOverridesItemUploadsItem>|null`,id:`param-uploads-27`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PagePageFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePageFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePageFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-107`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-104`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-27`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-105`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`footerMarqueeMode`,type:`Enums\\\\FooterMarqueeMode|string|null`,id:`param-footer-marquee-mode-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The ribbon of phrases scrolling across the top of the footer. Its phrases and the site-wide default are set in Site design → Footer: Marquee. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`on`}),`, `,_jsx(_components.code,{children:`off`}),`; a newer site may send others, so keep a fallback.`]})}),_jsxs(ResponseField,{name:`sections`,type:`?SectionsArea`,id:`param-sections-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`SectionsArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`page-header`}),`.`]}),_jsxs(Expandable,{title:`SectionsArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SectionsArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-108`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The area’s id, set by the site: leave it out when you write one.`]})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, PageHeaderWidget|HeroWidget|LayoutWidget|IntroWidget|FeatureWidget|StatsWidget|LogosWidget|StepsWidget|MediaTextWidget|DeviceMockWidget|TeamWidget|FaqWidget|ServiceMapWidget|BlogPreviewWidget|CookieDeclarationWidget|RichTextWidget|GoogleReviewsWidget|TestimonialsWidget|InstagramFeedWidget|GalleryPreviewWidget|GalleryFullWidget|PricingWidget|NewsletterWidget|SmsSignupWidget|FormRenderWidget|FinalCtaWidget>|null`,id:`param-items-8`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`SectionsAreaItem`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them).`]}),_jsxs(Expandable,{title:`SectionsAreaItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SectionsAreaItem)`,children:[_jsxs(_components.p,{children:[`A widget in an area that takes `,_jsx(_components.code,{children:`page-header`}),`, `,_jsx(_components.code,{children:`hero`}),`, `,_jsx(_components.code,{children:`@apostrophecms/layout`}),`, `,_jsx(_components.code,{children:`intro`}),`, `,_jsx(_components.code,{children:`feature`}),`, `,_jsx(_components.code,{children:`stats`}),`, `,_jsx(_components.code,{children:`logos`}),`, `,_jsx(_components.code,{children:`steps`}),`, `,_jsx(_components.code,{children:`media-text`}),`, `,_jsx(_components.code,{children:`device-mock`}),`, `,_jsx(_components.code,{children:`team`}),`, `,_jsx(_components.code,{children:`faq`}),`, `,_jsx(_components.code,{children:`service-map`}),`, `,_jsx(_components.code,{children:`blog-preview`}),`, `,_jsx(_components.code,{children:`cookie-declaration`}),`, `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`, `,_jsx(_components.code,{children:`google-reviews`}),`, `,_jsx(_components.code,{children:`testimonials`}),`, `,_jsx(_components.code,{children:`instagram-feed`}),`, `,_jsx(_components.code,{children:`gallery-preview`}),`, `,_jsx(_components.code,{children:`gallery-full`}),`, `,_jsx(_components.code,{children:`pricing`}),`, `,_jsx(_components.code,{children:`newsletter`}),`, `,_jsx(_components.code,{children:`sms-signup`}),`, `,_jsx(_components.code,{children:`form-render`}),`, `,_jsx(_components.code,{children:`final-cta`}),`: the one its `,_jsx(_components.code,{children:`type`}),` names.`]}),_jsxs(Expandable,{title:`PageHeaderWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PageHeaderWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`page-header`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\PageHeaderWidgetType|string`,id:`param-type-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`page-header`}),`. One of `,_jsx(_components.code,{children:`page-header`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-109`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`headline`,type:`?string`,id:`param-headline-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show the page title (the usual case). Set it only when the visible heading should read differently from the page’s title in navigation, search results and breadcrumbs.`]})}),_jsx(ResponseField,{name:`eyebrowMode`,type:`Enums\\\\EyebrowMode|string|null`,id:`param-eyebrow-mode-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The small label above the title. One of `,_jsx(_components.code,{children:`business`}),`, `,_jsx(_components.code,{children:`custom`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`eyebrow`,type:`?string`,id:`param-eyebrow-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow text.`]})}),_jsx(ResponseField,{name:`eyebrowColor`,type:`?string`,id:`param-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`eyebrowColorLight`,type:`?string`,id:`param-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`eyebrowWeight`,type:`Enums\\\\EyebrowWeight|string|null`,id:`param-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`eyebrowSize`,type:`Enums\\\\EyebrowSize|string|null`,id:`param-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`titleColor`,type:`?string`,id:`param-title-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`titleColorLight`,type:`?string`,id:`param-title-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`titleWeight`,type:`Enums\\\\TitleWeight|string|null`,id:`param-title-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`titleSize`,type:`Enums\\\\TitleSize|string|null`,id:`param-title-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`leadText`,type:`?string`,id:`param-lead-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional intro shown under the page title.`]})}),_jsx(ResponseField,{name:`leadColor`,type:`?string`,id:`param-lead-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`leadColorLight`,type:`?string`,id:`param-lead-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`leadWeight`,type:`Enums\\\\LeadWeight|string|null`,id:`param-lead-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Lead weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`leadSize`,type:`Enums\\\\LeadSize|string|null`,id:`param-lead-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Lead size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderBg`,type:`Enums\\\\PageHeaderBg|string|null`,id:`param-page-header-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderBgCustom`,type:`?string`,id:`param-page-header-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`pageHeaderBgLight`,type:`Enums\\\\PageHeaderBgLight|string|null`,id:`param-page-header-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderBgLightCustom`,type:`?string`,id:`param-page-header-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`pageHeaderImage`,type:`?ImageArea`,id:`param-page-header-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An `,_jsx(_components.code,{children:`ImageArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`pageHeaderOverlayColor`,type:`?string`,id:`param-page-header-overlay-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scrim behind the text over a background image (only applies when one is set). Leave empty to use the dark surface color.`]})}),_jsx(ResponseField,{name:`pageHeaderOverlayColorLight`,type:`?string`,id:`param-page-header-overlay-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme overlay, then the light surface color.`]})}),_jsx(ResponseField,{name:`pageHeaderOverlayOpacity`,type:`?float`,id:`param-page-header-overlay-opacity-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overlay opacity (%). 0 to 100.`]})}),_jsxs(ResponseField,{name:`pageHeaderFontOverrides`,type:`Collection\u003cint, PageHeaderWidgetPageHeaderFontOverridesItem>|null`,id:`param-page-header-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PageHeaderWidgetPageHeaderFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`PageHeaderWidgetPageHeaderFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PageHeaderWidgetPageHeaderFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-110`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem>|null`,id:`param-uploads-28`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PageHeaderWidgetPageHeaderFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-111`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-106`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-28`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-107`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaLabel`,type:`?string`,id:`param-page-header-primary-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaUrl`,type:`?string`,id:`param-page-header-primary-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaNewTab`,type:`?bool`,id:`param-page-header-primary-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaVariant`,type:`Enums\\\\PageHeaderPrimaryCtaVariant|string|null`,id:`param-page-header-primary-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaSize`,type:`Enums\\\\PageHeaderPrimaryCtaSize|string|null`,id:`param-page-header-primary-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaRadius`,type:`Enums\\\\PageHeaderPrimaryCtaRadius|string|null`,id:`param-page-header-primary-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaColor`,type:`?string`,id:`param-page-header-primary-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaColorLight`,type:`?string`,id:`param-page-header-primary-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaTextColor`,type:`?string`,id:`param-page-header-primary-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaTextColorLight`,type:`?string`,id:`param-page-header-primary-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaHoverColor`,type:`?string`,id:`param-page-header-primary-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaHoverColorLight`,type:`?string`,id:`param-page-header-primary-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaStyle`,type:`Enums\\\\PageHeaderPrimaryCtaStyle|string|null`,id:`param-page-header-primary-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaShadowColor`,type:`?string`,id:`param-page-header-primary-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaShadowColorLight`,type:`?string`,id:`param-page-header-primary-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaAnimation`,type:`Enums\\\\PageHeaderPrimaryCtaAnimation|string|null`,id:`param-page-header-primary-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIcon`,type:`?string`,id:`param-page-header-primary-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIconFamily`,type:`Enums\\\\PageHeaderPrimaryCtaIconFamily|string|null`,id:`param-page-header-primary-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIconPosition`,type:`Enums\\\\PageHeaderPrimaryCtaIconPosition|string|null`,id:`param-page-header-primary-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderPrimaryCtaIconNudge`,type:`?bool`,id:`param-page-header-primary-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaLabel`,type:`?string`,id:`param-page-header-secondary-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaUrl`,type:`?string`,id:`param-page-header-secondary-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaNewTab`,type:`?bool`,id:`param-page-header-secondary-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaVariant`,type:`Enums\\\\PageHeaderSecondaryCtaVariant|string|null`,id:`param-page-header-secondary-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaSize`,type:`Enums\\\\PageHeaderSecondaryCtaSize|string|null`,id:`param-page-header-secondary-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaRadius`,type:`Enums\\\\PageHeaderSecondaryCtaRadius|string|null`,id:`param-page-header-secondary-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaColor`,type:`?string`,id:`param-page-header-secondary-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaColorLight`,type:`?string`,id:`param-page-header-secondary-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaTextColor`,type:`?string`,id:`param-page-header-secondary-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaTextColorLight`,type:`?string`,id:`param-page-header-secondary-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaHoverColor`,type:`?string`,id:`param-page-header-secondary-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaHoverColorLight`,type:`?string`,id:`param-page-header-secondary-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaStyle`,type:`Enums\\\\PageHeaderSecondaryCtaStyle|string|null`,id:`param-page-header-secondary-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaShadowColor`,type:`?string`,id:`param-page-header-secondary-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaShadowColorLight`,type:`?string`,id:`param-page-header-secondary-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaAnimation`,type:`Enums\\\\PageHeaderSecondaryCtaAnimation|string|null`,id:`param-page-header-secondary-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIcon`,type:`?string`,id:`param-page-header-secondary-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIconFamily`,type:`Enums\\\\PageHeaderSecondaryCtaIconFamily|string|null`,id:`param-page-header-secondary-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIconPosition`,type:`Enums\\\\PageHeaderSecondaryCtaIconPosition|string|null`,id:`param-page-header-secondary-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pageHeaderSecondaryCtaIconNudge`,type:`?bool`,id:`param-page-header-secondary-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-108`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`HeroWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\HeroWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`hero`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\HeroWidgetType|string`,id:`param-type-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`hero`}),`. One of `,_jsx(_components.code,{children:`hero`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHeadline`,type:`string`,id:`param-hero-headline-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Headline.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-112`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroAlign`,type:`Enums\\\\HeroAlign|string|null`,id:`param-hero-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Content alignment. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHeight`,type:`Enums\\\\HeroHeight|string|null`,id:`param-hero-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Full fills the screen (home pages); Compact is a short banner for interior pages. One of `,_jsx(_components.code,{children:`full`}),`, `,_jsx(_components.code,{children:`tall`}),`, `,_jsx(_components.code,{children:`compact`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroGhostEnabled`,type:`?bool`,id:`param-hero-ghost-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Giant outlined word above the headline (same treatment as the footer wordmark). Reveals on hover.`]})}),_jsx(ResponseField,{name:`heroGhostText`,type:`?string`,id:`param-hero-ghost-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Keep it short — one word reads best at display size. Leave empty to use the business name.`]})}),_jsx(ResponseField,{name:`heroGhostSize`,type:`Enums\\\\HeroGhostSize|string|null`,id:`param-hero-ghost-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Ghost wordmark size. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`medium`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroGhostFill`,type:`Enums\\\\HeroGhostFill|string|null`,id:`param-hero-ghost-fill-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Outlined letters that fill on hover one at a time, all at once, or always-solid (no ghost effect). One of `,_jsx(_components.code,{children:`letter`}),`, `,_jsx(_components.code,{children:`word`}),`, `,_jsx(_components.code,{children:`solid`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroGhostFillColor`,type:`?string`,id:`param-hero-ghost-fill-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the wordmark fill + outline tint in the dark theme. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`heroGhostFillColorLight`,type:`?string`,id:`param-hero-ghost-fill-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override — handy over a fixed video/photo background that doesn’t switch with the theme. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`heroLockupEnabled`,type:`?bool`,id:`param-hero-lockup-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small line (optional icon + business name) above the headline. Off by default when the ghost wordmark carries the brand.`]})}),_jsx(ResponseField,{name:`heroEyebrowEnabled`,type:`?bool`,id:`param-hero-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show eyebrow / kicker.`]})}),_jsx(ResponseField,{name:`heroEyebrow`,type:`?string`,id:`param-hero-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`heroEyebrowColor`,type:`?string`,id:`param-hero-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`heroEyebrowColorLight`,type:`?string`,id:`param-hero-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`heroEyebrowWeight`,type:`Enums\\\\HeroEyebrowWeight|string|null`,id:`param-hero-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroEyebrowSize`,type:`Enums\\\\HeroEyebrowSize|string|null`,id:`param-hero-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroEyebrowPlacement`,type:`Enums\\\\HeroEyebrowPlacement|string|null`,id:`param-hero-eyebrow-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow placement. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`belowHeadline`}),`, `,_jsx(_components.code,{children:`aboveCta`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHeadlineFill`,type:`Enums\\\\HeroHeadlineFill|string|null`,id:`param-hero-headline-fill-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid is the standard headline. The outline options give the headline the same ghost treatment as the wordmark, filling on hover. (The accent sticker word stays solid.) One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`letter`}),`, `,_jsx(_components.code,{children:`word`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHeadlineFillColor`,type:`?string`,id:`param-hero-headline-fill-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the headline color in the dark theme. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`heroHeadlineFillColorLight`,type:`?string`,id:`param-hero-headline-fill-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`heroStickerEnabled`,type:`?bool`,id:`param-hero-sticker-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Wraps the final headline word in the solid accent “sticker”. Turn off for a plain headline.`]})}),_jsx(ResponseField,{name:`heroStickerStyle`,type:`Enums\\\\HeroStickerStyle|string|null`,id:`param-hero-sticker-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Dual layers a colored offset shadow behind the patch; single is one flat color. One of `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`single`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroStickerColor`,type:`?string`,id:`param-hero-sticker-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Patch background. Leave empty to use the site primary/accent color.`]})}),_jsx(ResponseField,{name:`heroStickerColorSecondary`,type:`?string`,id:`param-hero-sticker-color-secondary-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Offset-shadow layer. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`heroLinkHoverFill`,type:`?bool`,id:`param-hero-link-hover-fill-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hovering either the wordmark or the headline fills both at once. Only available when both are set to fill the whole word/headline on hover.`]})}),_jsx(ResponseField,{name:`heroHashtagEnabled`,type:`?bool`,id:`param-hero-hashtag-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A bold social hashtag (e.g. #behindthescenes) with its own placement, fill, and optional pill background.`]})}),_jsx(ResponseField,{name:`heroHashtagText`,type:`?string`,id:`param-hero-hashtag-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Include the # — e.g. #behindthescenes.`]})}),_jsx(ResponseField,{name:`heroHashtagPlacement`,type:`Enums\\\\HeroHashtagPlacement|string|null`,id:`param-hero-hashtag-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hashtag placement. One of `,_jsx(_components.code,{children:`aboveGhost`}),`, `,_jsx(_components.code,{children:`aboveHeadline`}),`, `,_jsx(_components.code,{children:`belowHeadline`}),`, `,_jsx(_components.code,{children:`aboveCta`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHashtagSize`,type:`Enums\\\\HeroHashtagSize|string|null`,id:`param-hero-hashtag-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Smaller than the headline, but still a prominent element. One of `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`small`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHashtagFill`,type:`Enums\\\\HeroHashtagFill|string|null`,id:`param-hero-hashtag-fill-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid color, or the same outlined “ghost” treatment as the headline that fills on hover. (Ignored when the Solid pill background is used.) One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`letter`}),`, `,_jsx(_components.code,{children:`word`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHashtagFillColor`,type:`?string`,id:`param-hero-hashtag-fill-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional text color (or outline tint). Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`heroHashtagFillColorLight`,type:`?string`,id:`param-hero-hashtag-fill-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`heroHashtagBackground`,type:`Enums\\\\HeroHashtagBackground|string|null`,id:`param-hero-hashtag-background-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An optional patch behind the hashtag — a softer take on the headline sticker. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHashtagBgShape`,type:`Enums\\\\HeroHashtagBgShape|string|null`,id:`param-hero-hashtag-bg-shape-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Rounded pill or a squared patch like the headline sticker. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroHashtagBgColor`,type:`?string`,id:`param-hero-hashtag-bg-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Patch fill (solid) or border + text (outline). Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`heroHashtagTilt`,type:`Enums\\\\HeroHashtagTilt|string|null`,id:`param-hero-hashtag-tilt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A slight rotation, like the headline sticker. Works with or without a background. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroIntro`,type:`?string`,id:`param-hero-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro copy.`]})}),_jsx(ResponseField,{name:`heroIntroColor`,type:`?string`,id:`param-hero-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the intro text color. Leave empty for the muted default.`]})}),_jsx(ResponseField,{name:`heroIntroColorLight`,type:`?string`,id:`param-hero-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override — handy over a fixed video/photo background. Falls back to the dark-theme color, then the muted default.`]})}),_jsx(ResponseField,{name:`heroIntroWeight`,type:`Enums\\\\HeroIntroWeight|string|null`,id:`param-hero-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroIconPlacement`,type:`Enums\\\\HeroIconPlacement|string|null`,id:`param-hero-icon-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to place an optional Font Awesome icon. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lockup`}),`, `,_jsx(_components.code,{children:`aboveHeadline`}),`, `,_jsx(_components.code,{children:`aboveGhost`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroIcon`,type:`?string`,id:`param-hero-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`heroIconFamily`,type:`Enums\\\\HeroIconFamily|string|null`,id:`param-hero-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroIconColor`,type:`?string`,id:`param-hero-icon-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`heroIconAnimation`,type:`Enums\\\\HeroIconAnimation|string|null`,id:`param-hero-icon-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroBackgroundType`,type:`Enums\\\\HeroBackgroundType|string|null`,id:`param-hero-background-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Background type. One of `,_jsx(_components.code,{children:`gradient`}),`, `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroImage`,type:`?ImageArea`,id:`param-hero-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An `,_jsx(_components.code,{children:`ImageArea`}),`. Used when background type is Image, and as the poster/fallback for Video. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`heroVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-hero-video-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick from the Videos library (⌘K → Videos). Short, muted loop; reduced-motion visitors get the fallback image instead. The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`heroMotionPause`,type:`?bool`,id:`param-hero-motion-pause-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.`]})}),_jsxs(ResponseField,{name:`heroFontOverrides`,type:`Collection\u003cint, HeroWidgetHeroFontOverridesItem>|null`,id:`param-hero-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`HeroWidgetHeroFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`HeroWidgetHeroFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\HeroWidgetHeroFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-113`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, HeroWidgetHeroFontOverridesItemUploadsItem>|null`,id:`param-uploads-29`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`HeroWidgetHeroFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`HeroWidgetHeroFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\HeroWidgetHeroFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-114`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-109`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-29`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-110`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`heroPrimaryCtaLabel`,type:`?string`,id:`param-hero-primary-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaUrl`,type:`?string`,id:`param-hero-primary-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaNewTab`,type:`?bool`,id:`param-hero-primary-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaVariant`,type:`Enums\\\\HeroPrimaryCtaVariant|string|null`,id:`param-hero-primary-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaSize`,type:`Enums\\\\HeroPrimaryCtaSize|string|null`,id:`param-hero-primary-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaRadius`,type:`Enums\\\\HeroPrimaryCtaRadius|string|null`,id:`param-hero-primary-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaColor`,type:`?string`,id:`param-hero-primary-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaColorLight`,type:`?string`,id:`param-hero-primary-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaTextColor`,type:`?string`,id:`param-hero-primary-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaTextColorLight`,type:`?string`,id:`param-hero-primary-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaHoverColor`,type:`?string`,id:`param-hero-primary-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaHoverColorLight`,type:`?string`,id:`param-hero-primary-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaStyle`,type:`Enums\\\\HeroPrimaryCtaStyle|string|null`,id:`param-hero-primary-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaShadowColor`,type:`?string`,id:`param-hero-primary-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaShadowColorLight`,type:`?string`,id:`param-hero-primary-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaAnimation`,type:`Enums\\\\HeroPrimaryCtaAnimation|string|null`,id:`param-hero-primary-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIcon`,type:`?string`,id:`param-hero-primary-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIconFamily`,type:`Enums\\\\HeroPrimaryCtaIconFamily|string|null`,id:`param-hero-primary-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIconPosition`,type:`Enums\\\\HeroPrimaryCtaIconPosition|string|null`,id:`param-hero-primary-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroPrimaryCtaIconNudge`,type:`?bool`,id:`param-hero-primary-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaLabel`,type:`?string`,id:`param-hero-secondary-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaUrl`,type:`?string`,id:`param-hero-secondary-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaNewTab`,type:`?bool`,id:`param-hero-secondary-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaVariant`,type:`Enums\\\\HeroSecondaryCtaVariant|string|null`,id:`param-hero-secondary-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaSize`,type:`Enums\\\\HeroSecondaryCtaSize|string|null`,id:`param-hero-secondary-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaRadius`,type:`Enums\\\\HeroSecondaryCtaRadius|string|null`,id:`param-hero-secondary-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaColor`,type:`?string`,id:`param-hero-secondary-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaColorLight`,type:`?string`,id:`param-hero-secondary-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaTextColor`,type:`?string`,id:`param-hero-secondary-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaTextColorLight`,type:`?string`,id:`param-hero-secondary-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaHoverColor`,type:`?string`,id:`param-hero-secondary-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaHoverColorLight`,type:`?string`,id:`param-hero-secondary-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaStyle`,type:`Enums\\\\HeroSecondaryCtaStyle|string|null`,id:`param-hero-secondary-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaShadowColor`,type:`?string`,id:`param-hero-secondary-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaShadowColorLight`,type:`?string`,id:`param-hero-secondary-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaAnimation`,type:`Enums\\\\HeroSecondaryCtaAnimation|string|null`,id:`param-hero-secondary-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIcon`,type:`?string`,id:`param-hero-secondary-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIconFamily`,type:`Enums\\\\HeroSecondaryCtaIconFamily|string|null`,id:`param-hero-secondary-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIconPosition`,type:`Enums\\\\HeroSecondaryCtaIconPosition|string|null`,id:`param-hero-secondary-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`heroSecondaryCtaIconNudge`,type:`?bool`,id:`param-hero-secondary-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-111`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`LayoutWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/layout`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\LayoutWidgetType|string`,id:`param-type-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/layout`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/layout`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-115`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsxs(ResponseField,{name:`columns`,type:`?LayoutColumnArea`,id:`param-columns-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`LayoutColumnArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area.`]}),_jsxs(Expandable,{title:`LayoutColumnArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutColumnArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-116`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The area’s id, set by the site: leave it out when you write one.`]})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, LayoutColumnWidget>|null`,id:`param-items-9`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`LayoutColumnWidget`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them).`]}),_jsxs(Expandable,{title:`LayoutColumnWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LayoutColumnWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/layout-column`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\LayoutColumnWidgetType|string`,id:`param-type-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/layout-column`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/layout-column`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-117`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`colstart`,type:`?int`,id:`param-colstart-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colstart.`]})}),_jsx(ResponseField,{name:`colspan`,type:`?int`,id:`param-colspan-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colspan.`]})}),_jsx(ResponseField,{name:`rowstart`,type:`?int`,id:`param-rowstart-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Rowstart.`]})}),_jsx(ResponseField,{name:`rowspan`,type:`?int`,id:`param-rowspan-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Rowspan.`]})}),_jsx(ResponseField,{name:`order`,type:`?int`,id:`param-order-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Order.`]})}),_jsx(ResponseField,{name:`content`,type:`?LayoutColumnContentArea`,id:`param-content-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`LayoutColumnContentArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`LayoutColumnContentArea`}),` above.`]})}),_jsx(ResponseField,{name:`showTablet`,type:`?bool`,id:`param-show-tablet-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Visible on tablet.`]})}),_jsx(ResponseField,{name:`showMobile`,type:`?bool`,id:`param-show-mobile-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Visible on mobile.`]})}),_jsx(ResponseField,{name:`justify`,type:`Enums\\\\Justify|string|null`,id:`param-justify-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Horizontal alignment. One of `,_jsx(_components.code,{children:`stretch`}),`, `,_jsx(_components.code,{children:`start`}),`, `,_jsx(_components.code,{children:`end`}),`, `,_jsx(_components.code,{children:`center`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`align`,type:`Enums\\\\Align|string|null`,id:`param-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vertical alignment. One of `,_jsx(_components.code,{children:`stretch`}),`, `,_jsx(_components.code,{children:`start`}),`, `,_jsx(_components.code,{children:`end`}),`, `,_jsx(_components.code,{children:`center`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-112`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-113`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-114`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`IntroWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\IntroWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`intro`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\IntroWidgetType|string`,id:`param-type-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`intro`}),`. One of `,_jsx(_components.code,{children:`intro`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-118`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introEyebrow`,type:`?string`,id:`param-intro-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`introEyebrowColor`,type:`?string`,id:`param-intro-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`introEyebrowColorLight`,type:`?string`,id:`param-intro-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`introEyebrowWeight`,type:`Enums\\\\IntroEyebrowWeight|string|null`,id:`param-intro-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introEyebrowSize`,type:`Enums\\\\IntroEyebrowSize|string|null`,id:`param-intro-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introHeadline`,type:`?string`,id:`param-intro-headline-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Headline.`]})}),_jsx(ResponseField,{name:`introHeadlineColor`,type:`?string`,id:`param-intro-headline-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the headline color. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`introHeadlineColorLight`,type:`?string`,id:`param-intro-headline-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`introHeadlineWeight`,type:`Enums\\\\IntroHeadlineWeight|string|null`,id:`param-intro-headline-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Headline weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introBody`,type:`?string`,id:`param-intro-body-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body copy.`]})}),_jsx(ResponseField,{name:`introBodyColor`,type:`?string`,id:`param-intro-body-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the body text color. Leave empty for the muted default.`]})}),_jsx(ResponseField,{name:`introBodyColorLight`,type:`?string`,id:`param-intro-body-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.`]})}),_jsx(ResponseField,{name:`introBodyWeight`,type:`Enums\\\\IntroBodyWeight|string|null`,id:`param-intro-body-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introPhotoPlacement`,type:`Enums\\\\IntroPhotoPlacement|string|null`,id:`param-intro-photo-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the optional photo sits. Left/right place it beside the text; Full background fills the whole section behind the text (with a readability overlay). One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`, `,_jsx(_components.code,{children:`background`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introImage`,type:`?ImageArea`,id:`param-intro-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An `,_jsx(_components.code,{children:`ImageArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`introPhotoCorners`,type:`Enums\\\\IntroPhotoCorners|string|null`,id:`param-intro-photo-corners-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Photo corners. One of `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`squared`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introPhotoFrame`,type:`Enums\\\\IntroPhotoFrame|string|null`,id:`param-intro-photo-frame-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Border draws a frame around the photo; Offset adds a refined offset accent frame behind it. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`offset`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introPhotoFrameColor`,type:`?string`,id:`param-intro-photo-frame-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Border / offset-frame color. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`introPhotoTilt`,type:`Enums\\\\IntroPhotoTilt|string|null`,id:`param-intro-photo-tilt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A slight rotation for a more playful look. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introPhotoHover`,type:`Enums\\\\IntroPhotoHover|string|null`,id:`param-intro-photo-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Photo hover effect. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`zoom`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`lift-glow`}),`, `,_jsx(_components.code,{children:`zoom-glow`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introOverlayColor`,type:`?string`,id:`param-intro-overlay-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scrim behind the text over a full-background photo. Leave empty to use the dark surface color.`]})}),_jsx(ResponseField,{name:`introOverlayColorLight`,type:`?string`,id:`param-intro-overlay-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme overlay, then the light surface color.`]})}),_jsx(ResponseField,{name:`introOverlayOpacity`,type:`?float`,id:`param-intro-overlay-opacity-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overlay opacity (%). 0 to 100.`]})}),_jsx(ResponseField,{name:`introBg`,type:`Enums\\\\IntroBg|string|null`,id:`param-intro-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introBgCustom`,type:`?string`,id:`param-intro-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`introBgLight`,type:`Enums\\\\IntroBgLight|string|null`,id:`param-intro-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`introBgLightCustom`,type:`?string`,id:`param-intro-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`introFontOverrides`,type:`Collection\u003cint, IntroWidgetIntroFontOverridesItem>|null`,id:`param-intro-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`IntroWidgetIntroFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`IntroWidgetIntroFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\IntroWidgetIntroFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-119`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, IntroWidgetIntroFontOverridesItemUploadsItem>|null`,id:`param-uploads-30`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`IntroWidgetIntroFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`IntroWidgetIntroFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\IntroWidgetIntroFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-120`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-115`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-30`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-116`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-117`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`FeatureWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`feature`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FeatureWidgetType|string`,id:`param-type-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`feature`}),`. One of `,_jsx(_components.code,{children:`feature`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-121`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureColumns`,type:`Enums\\\\FeatureColumns|string|null`,id:`param-feature-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto fits as many as comfortably fit and works for any number of cards. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureGap`,type:`Enums\\\\FeatureGap|string|null`,id:`param-feature-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardSize`,type:`Enums\\\\FeatureCardSize|string|null`,id:`param-feature-card-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scales padding, icon, title, and the index numeral together. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardStyle`,type:`Enums\\\\FeatureCardStyle|string|null`,id:`param-feature-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card treatment. Poster (the default) frames the card with an accent keyline; Raised is a quiet lit card; Luxe a frosted glass panel; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardStyleRadius`,type:`Enums\\\\FeatureCardStyleRadius|string|null`,id:`param-feature-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardStyleAccentColor`,type:`?string`,id:`param-feature-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`featureCardStyleAccentColorLight`,type:`?string`,id:`param-feature-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`featureCardStyleForgeScope`,type:`Enums\\\\FeatureCardStyleForgeScope|string|null`,id:`param-feature-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardStyleForgeWeight`,type:`Enums\\\\FeatureCardStyleForgeWeight|string|null`,id:`param-feature-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardHover`,type:`Enums\\\\FeatureCardHover|string|null`,id:`param-feature-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How a card reacts on hover. Pop is the lift + hard offset shadow; Glow is a soft accent halo. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureCardHoverColor`,type:`?string`,id:`param-feature-card-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Border / shadow / glow color on hover. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`featureCardHoverColorLight`,type:`?string`,id:`param-feature-card-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`featureNumbering`,type:`?bool`,id:`param-feature-numbering-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A big outlined numeral on each card (01, 02, …). Great for step-by-step sequences; turn off when the cards aren’t ordered.`]})}),_jsx(ResponseField,{name:`featureNumberFill`,type:`Enums\\\\FeatureNumberFill|string|null`,id:`param-feature-number-fill-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Same treatment as the hero ghost text: all numbers solid, outlined and filling on hover, or always outlined. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`hover`}),`, `,_jsx(_components.code,{children:`outline`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureNumberColor`,type:`?string`,id:`param-feature-number-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Tints the numeral fill + outline. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`featureNumberColorLight`,type:`?string`,id:`param-feature-number-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`featureTitleColor`,type:`?string`,id:`param-feature-title-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the card title color. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`featureTitleColorLight`,type:`?string`,id:`param-feature-title-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`featureTitleWeight`,type:`Enums\\\\FeatureTitleWeight|string|null`,id:`param-feature-title-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureTextColor`,type:`?string`,id:`param-feature-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the card text color. Leave empty for the muted default.`]})}),_jsx(ResponseField,{name:`featureTextColorLight`,type:`?string`,id:`param-feature-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.`]})}),_jsx(ResponseField,{name:`featureTextWeight`,type:`Enums\\\\FeatureTextWeight|string|null`,id:`param-feature-text-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsxs(ResponseField,{name:`featureCards`,type:`Collection\u003cint, FeatureWidgetFeatureCardsItem>|null`,id:`param-feature-cards-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FeatureWidgetFeatureCardsItem`}),`. Feature cards.`]}),_jsxs(Expandable,{title:`FeatureWidgetFeatureCardsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidgetFeatureCardsItem)`,children:[_jsx(ResponseField,{name:`cardTitle`,type:`string`,id:`param-card-title-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Title.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-122`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`iconAnimation`,type:`Enums\\\\IconAnimation|string|null`,id:`param-icon-animation-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconSize`,type:`Enums\\\\IconSize|string|null`,id:`param-icon-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cardText`,type:`?string`,id:`param-card-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Text.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-118`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`featureBg`,type:`Enums\\\\FeatureBg|string|null`,id:`param-feature-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureBgCustom`,type:`?string`,id:`param-feature-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`featureBgLight`,type:`Enums\\\\FeatureBgLight|string|null`,id:`param-feature-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`featureBgLightCustom`,type:`?string`,id:`param-feature-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`featureFontOverrides`,type:`Collection\u003cint, FeatureWidgetFeatureFontOverridesItem>|null`,id:`param-feature-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FeatureWidgetFeatureFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FeatureWidgetFeatureFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidgetFeatureFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-123`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FeatureWidgetFeatureFontOverridesItemUploadsItem>|null`,id:`param-uploads-31`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FeatureWidgetFeatureFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FeatureWidgetFeatureFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FeatureWidgetFeatureFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-124`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-119`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-31`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-120`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-121`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`StatsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`stats`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\StatsWidgetType|string`,id:`param-type-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`stats`}),`. One of `,_jsx(_components.code,{children:`stats`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-125`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsEyebrowEnabled`,type:`?bool`,id:`param-stats-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the heading (e.g. “By the numbers”).`]})}),_jsx(ResponseField,{name:`statsEyebrow`,type:`?string`,id:`param-stats-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow.`]})}),_jsx(ResponseField,{name:`statsEyebrowColor`,type:`?string`,id:`param-stats-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`statsEyebrowColorLight`,type:`?string`,id:`param-stats-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`statsEyebrowWeight`,type:`Enums\\\\StatsEyebrowWeight|string|null`,id:`param-stats-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsEyebrowSize`,type:`Enums\\\\StatsEyebrowSize|string|null`,id:`param-stats-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsHeading`,type:`?string`,id:`param-stats-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the numbers.`]})}),_jsx(ResponseField,{name:`statsHeadingColor`,type:`?string`,id:`param-stats-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`statsHeadingColorLight`,type:`?string`,id:`param-stats-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`statsHeadingWeight`,type:`Enums\\\\StatsHeadingWeight|string|null`,id:`param-stats-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsColumns`,type:`Enums\\\\StatsColumns|string|null`,id:`param-stats-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto fits as many as comfortably fit and works for any number of stats. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsGap`,type:`Enums\\\\StatsGap|string|null`,id:`param-stats-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between stats. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsSize`,type:`Enums\\\\StatsSize|string|null`,id:`param-stats-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The baseline scale for the whole stat (value / icon / label / description stay proportional). Fine-tune any single element with its own size control below. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsAlign`,type:`Enums\\\\StatsAlign|string|null`,id:`param-stats-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsDividers`,type:`?bool`,id:`param-stats-dividers-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A hairline rule between each stat — the classic “by the numbers” rail.`]})}),_jsx(ResponseField,{name:`statsCountUp`,type:`?bool`,id:`param-stats-count-up-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Numbers tick up from zero when the band scrolls into view. Non-numeric values and reduced-motion visitors simply show the final value.`]})}),_jsx(ResponseField,{name:`statsIconSize`,type:`Enums\\\\StatsIconSize|string|null`,id:`param-stats-icon-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size of the icon above each number, independent of the overall stat size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`xxl`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsIconGap`,type:`Enums\\\\StatsIconGap|string|null`,id:`param-stats-icon-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Space between the icon and the number below it. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsValueSize`,type:`Enums\\\\StatsValueSize|string|null`,id:`param-stats-value-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Value size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`xs`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsValueWeight`,type:`Enums\\\\StatsValueWeight|string|null`,id:`param-stats-value-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Value weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsValueColor`,type:`?string`,id:`param-stats-value-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The big numeral. Optional — leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`statsValueColorLight`,type:`?string`,id:`param-stats-value-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`statsLabelSize`,type:`Enums\\\\StatsLabelSize|string|null`,id:`param-stats-label-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Label size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`xs`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsLabelWeight`,type:`Enums\\\\StatsLabelWeight|string|null`,id:`param-stats-label-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Label weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsLabelColor`,type:`?string`,id:`param-stats-label-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`statsLabelColorLight`,type:`?string`,id:`param-stats-label-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`statsDescriptionSize`,type:`Enums\\\\StatsDescriptionSize|string|null`,id:`param-stats-description-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Description size. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`xs`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`md`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsDescriptionWeight`,type:`Enums\\\\StatsDescriptionWeight|string|null`,id:`param-stats-description-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Description weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsDescriptionColor`,type:`?string`,id:`param-stats-description-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`statsDescriptionColorLight`,type:`?string`,id:`param-stats-description-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsxs(ResponseField,{name:`stats`,type:`Collection\u003cint, StatsWidgetStatsItem>|null`,id:`param-stats-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`StatsWidgetStatsItem`}),`. Stats.`]}),_jsxs(Expandable,{title:`StatsWidgetStatsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidgetStatsItem)`,children:[_jsx(ResponseField,{name:`value`,type:`string`,id:`param-value-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The number, e.g. 500, 4.9, 12 — symbols go in the prefix/suffix so the count-up animates the number alone.`]})}),_jsx(ResponseField,{name:`label`,type:`string`,id:`param-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Label.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-126`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional Font Awesome icon shown above the number (e.g. star, bolt, chart-line). Leave empty for no icon.`]})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`valuePrefix`,type:`?string`,id:`param-value-prefix-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional, shown before the number (e.g. $, ~, >). Kept out of the count-up.`]})}),_jsx(ResponseField,{name:`valueSuffix`,type:`?string`,id:`param-value-suffix-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional, shown after the number (e.g. +, %, k, yrs, ★).`]})}),_jsx(ResponseField,{name:`description`,type:`?string`,id:`param-description-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional small text under the label.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-122`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`statsBg`,type:`Enums\\\\StatsBg|string|null`,id:`param-stats-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsBgCustom`,type:`?string`,id:`param-stats-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`statsBgLight`,type:`Enums\\\\StatsBgLight|string|null`,id:`param-stats-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsBgLightCustom`,type:`?string`,id:`param-stats-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`statsFontOverrides`,type:`Collection\u003cint, StatsWidgetStatsFontOverridesItem>|null`,id:`param-stats-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`StatsWidgetStatsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`StatsWidgetStatsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidgetStatsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-127`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, StatsWidgetStatsFontOverridesItemUploadsItem>|null`,id:`param-uploads-32`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`StatsWidgetStatsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`StatsWidgetStatsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StatsWidgetStatsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-128`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-123`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-32`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-124`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`statsCtaLabel`,type:`?string`,id:`param-stats-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`statsCtaUrl`,type:`?string`,id:`param-stats-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`statsCtaNewTab`,type:`?bool`,id:`param-stats-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`statsCtaVariant`,type:`Enums\\\\StatsCtaVariant|string|null`,id:`param-stats-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaSize`,type:`Enums\\\\StatsCtaSize|string|null`,id:`param-stats-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaRadius`,type:`Enums\\\\StatsCtaRadius|string|null`,id:`param-stats-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaColor`,type:`?string`,id:`param-stats-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`statsCtaColorLight`,type:`?string`,id:`param-stats-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`statsCtaTextColor`,type:`?string`,id:`param-stats-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`statsCtaTextColorLight`,type:`?string`,id:`param-stats-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`statsCtaHoverColor`,type:`?string`,id:`param-stats-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`statsCtaHoverColorLight`,type:`?string`,id:`param-stats-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`statsCtaStyle`,type:`Enums\\\\StatsCtaStyle|string|null`,id:`param-stats-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaShadowColor`,type:`?string`,id:`param-stats-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`statsCtaShadowColorLight`,type:`?string`,id:`param-stats-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`statsCtaAnimation`,type:`Enums\\\\StatsCtaAnimation|string|null`,id:`param-stats-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaIcon`,type:`?string`,id:`param-stats-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`statsCtaIconFamily`,type:`Enums\\\\StatsCtaIconFamily|string|null`,id:`param-stats-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaIconPosition`,type:`Enums\\\\StatsCtaIconPosition|string|null`,id:`param-stats-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`statsCtaIconNudge`,type:`?bool`,id:`param-stats-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-125`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`LogosWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`logos`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\LogosWidgetType|string`,id:`param-type-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`logos`}),`. One of `,_jsx(_components.code,{children:`logos`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-129`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosEyebrowEnabled`,type:`?bool`,id:`param-logos-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the heading (e.g. “Trusted by”).`]})}),_jsx(ResponseField,{name:`logosEyebrow`,type:`?string`,id:`param-logos-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow.`]})}),_jsx(ResponseField,{name:`logosEyebrowColor`,type:`?string`,id:`param-logos-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`logosEyebrowColorLight`,type:`?string`,id:`param-logos-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`logosEyebrowWeight`,type:`Enums\\\\LogosEyebrowWeight|string|null`,id:`param-logos-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosEyebrowSize`,type:`Enums\\\\LogosEyebrowSize|string|null`,id:`param-logos-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosHeading`,type:`?string`,id:`param-logos-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the logos.`]})}),_jsx(ResponseField,{name:`logosHeadingColor`,type:`?string`,id:`param-logos-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`logosHeadingColorLight`,type:`?string`,id:`param-logos-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`logosHeadingWeight`,type:`Enums\\\\LogosHeadingWeight|string|null`,id:`param-logos-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosIntro`,type:`?string`,id:`param-logos-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`logosIntroColor`,type:`?string`,id:`param-logos-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`logosIntroColorLight`,type:`?string`,id:`param-logos-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`logosIntroWeight`,type:`Enums\\\\LogosIntroWeight|string|null`,id:`param-logos-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosDisplay`,type:`Enums\\\\LogosDisplay|string|null`,id:`param-logos-display-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A slow scrolling ribbon (marquee) or a calm static grid. One of `,_jsx(_components.code,{children:`marquee`}),`, `,_jsx(_components.code,{children:`grid`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosSpeed`,type:`Enums\\\\LogosSpeed|string|null`,id:`param-logos-speed-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Marquee speed. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosDirection`,type:`Enums\\\\LogosDirection|string|null`,id:`param-logos-direction-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Marquee direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosMotionPause`,type:`?bool`,id:`param-logos-motion-pause-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.`]})}),_jsx(ResponseField,{name:`logosColumns`,type:`Enums\\\\LogosColumns|string|null`,id:`param-logos-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto fits as many as comfortably fit and works for any number of logos. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosGap`,type:`Enums\\\\LogosGap|string|null`,id:`param-logos-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between logos. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosSize`,type:`Enums\\\\LogosSize|string|null`,id:`param-logos-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The height each logo is scaled to (width follows the logo’s aspect ratio). One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosAlign`,type:`Enums\\\\LogosAlign|string|null`,id:`param-logos-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Aligns the eyebrow / heading / intro (and the grid when there are few logos). One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosTile`,type:`?bool`,id:`param-logos-tile-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sets every logo on a raised, bordered card. Off = logos sit straight on the background.`]})}),_jsx(ResponseField,{name:`logosGrayscale`,type:`?bool`,id:`param-logos-grayscale-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Mutes the logos to grayscale and dims them, returning to full color on hover — the classic logo-wall look.`]})}),_jsxs(ResponseField,{name:`logos`,type:`Collection\u003cint, LogosWidgetLogosItem>|null`,id:`param-logos-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`LogosWidgetLogosItem`}),`. Logos.`]}),_jsxs(Expandable,{title:`LogosWidgetLogosItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidgetLogosItem)`,children:[_jsx(ResponseField,{name:`image`,type:`Collection\u003cint, array\u003cstring, mixed>>`,id:`param-image-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Pick a logo from the Images library. A transparent PNG or an SVG works best. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`name`,type:`string`,id:`param-name-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Company / partner / certification name — used as the image alt text and the link title.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-130`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`linkUrl`,type:`?string`,id:`param-link-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Make this logo a link, e.g. to the partner’s site. Opens in a new tab for external URLs.`]})}),_jsx(ResponseField,{name:`invertDark`,type:`?bool`,id:`param-invert-dark-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. For dark / black logos that would vanish on the dark theme — flips them to light. Leave off for full-color or white logos.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-126`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`logosBg`,type:`Enums\\\\LogosBg|string|null`,id:`param-logos-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosBgCustom`,type:`?string`,id:`param-logos-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`logosBgLight`,type:`Enums\\\\LogosBgLight|string|null`,id:`param-logos-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosBgLightCustom`,type:`?string`,id:`param-logos-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`logosFontOverrides`,type:`Collection\u003cint, LogosWidgetLogosFontOverridesItem>|null`,id:`param-logos-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`LogosWidgetLogosFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`LogosWidgetLogosFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidgetLogosFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-131`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, LogosWidgetLogosFontOverridesItemUploadsItem>|null`,id:`param-uploads-33`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`LogosWidgetLogosFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`LogosWidgetLogosFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\LogosWidgetLogosFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-132`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-127`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-33`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-128`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`logosCtaLabel`,type:`?string`,id:`param-logos-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`logosCtaUrl`,type:`?string`,id:`param-logos-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`logosCtaNewTab`,type:`?bool`,id:`param-logos-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`logosCtaVariant`,type:`Enums\\\\LogosCtaVariant|string|null`,id:`param-logos-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaSize`,type:`Enums\\\\LogosCtaSize|string|null`,id:`param-logos-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaRadius`,type:`Enums\\\\LogosCtaRadius|string|null`,id:`param-logos-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaColor`,type:`?string`,id:`param-logos-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`logosCtaColorLight`,type:`?string`,id:`param-logos-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`logosCtaTextColor`,type:`?string`,id:`param-logos-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`logosCtaTextColorLight`,type:`?string`,id:`param-logos-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`logosCtaHoverColor`,type:`?string`,id:`param-logos-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`logosCtaHoverColorLight`,type:`?string`,id:`param-logos-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`logosCtaStyle`,type:`Enums\\\\LogosCtaStyle|string|null`,id:`param-logos-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaShadowColor`,type:`?string`,id:`param-logos-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`logosCtaShadowColorLight`,type:`?string`,id:`param-logos-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`logosCtaAnimation`,type:`Enums\\\\LogosCtaAnimation|string|null`,id:`param-logos-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaIcon`,type:`?string`,id:`param-logos-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`logosCtaIconFamily`,type:`Enums\\\\LogosCtaIconFamily|string|null`,id:`param-logos-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaIconPosition`,type:`Enums\\\\LogosCtaIconPosition|string|null`,id:`param-logos-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`logosCtaIconNudge`,type:`?bool`,id:`param-logos-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-129`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`StepsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`steps`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\StepsWidgetType|string`,id:`param-type-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`steps`}),`. One of `,_jsx(_components.code,{children:`steps`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-133`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsEyebrowEnabled`,type:`?bool`,id:`param-steps-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the heading (e.g. “How it works”).`]})}),_jsx(ResponseField,{name:`stepsEyebrow`,type:`?string`,id:`param-steps-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow.`]})}),_jsx(ResponseField,{name:`stepsEyebrowColor`,type:`?string`,id:`param-steps-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`stepsEyebrowColorLight`,type:`?string`,id:`param-steps-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`stepsEyebrowWeight`,type:`Enums\\\\StepsEyebrowWeight|string|null`,id:`param-steps-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsEyebrowSize`,type:`Enums\\\\StepsEyebrowSize|string|null`,id:`param-steps-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsHeading`,type:`?string`,id:`param-steps-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the steps.`]})}),_jsx(ResponseField,{name:`stepsHeadingColor`,type:`?string`,id:`param-steps-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`stepsHeadingColorLight`,type:`?string`,id:`param-steps-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`stepsHeadingWeight`,type:`Enums\\\\StepsHeadingWeight|string|null`,id:`param-steps-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsHeadingSize`,type:`Enums\\\\StepsHeadingSize|string|null`,id:`param-steps-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsIntro`,type:`?string`,id:`param-steps-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`stepsIntroColor`,type:`?string`,id:`param-steps-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`stepsIntroColorLight`,type:`?string`,id:`param-steps-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`stepsIntroWeight`,type:`Enums\\\\StepsIntroWeight|string|null`,id:`param-steps-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsIntroSize`,type:`Enums\\\\StepsIntroSize|string|null`,id:`param-steps-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsLayout`,type:`Enums\\\\StepsLayout|string|null`,id:`param-steps-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Horizontal lays the steps across a row (marker on top); Vertical stacks them as a classic timeline (marker on the left). One of `,_jsx(_components.code,{children:`horizontal`}),`, `,_jsx(_components.code,{children:`vertical`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsColumns`,type:`Enums\\\\StepsColumns|string|null`,id:`param-steps-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Horizontal only. Auto fits as many as comfortably fit and works for any number of steps. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsGap`,type:`Enums\\\\StepsGap|string|null`,id:`param-steps-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between steps. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsAlign`,type:`Enums\\\\StepsAlign|string|null`,id:`param-steps-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Horizontal only — aligns the section header and each step’s text. (Vertical is always left-aligned beside its marker.) One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsConnector`,type:`?bool`,id:`param-steps-connector-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A line linking the step markers into a timeline (down the markers when vertical, across them when horizontal).`]})}),_jsx(ResponseField,{name:`stepsCardStyle`,type:`Enums\\\\StepsCardStyle|string|null`,id:`param-steps-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Plain keeps the connector-linked timeline (just marker + text, no card). Every other style boxes each step — Raised is a quiet lit card, Luxe a frosted glass panel, Outline a plaque frame, Spine adds a color rail, Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCardStyleRadius`,type:`Enums\\\\StepsCardStyleRadius|string|null`,id:`param-steps-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCardStyleAccentColor`,type:`?string`,id:`param-steps-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`stepsCardStyleAccentColorLight`,type:`?string`,id:`param-steps-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`stepsCardStyleForgeScope`,type:`Enums\\\\StepsCardStyleForgeScope|string|null`,id:`param-steps-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCardStyleForgeWeight`,type:`Enums\\\\StepsCardStyleForgeWeight|string|null`,id:`param-steps-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCardHover`,type:`Enums\\\\StepsCardHover|string|null`,id:`param-steps-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a boxed step does on hover (applies when Step style is not Plain). Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsMarker`,type:`Enums\\\\StepsMarker|string|null`,id:`param-steps-marker-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Number auto-counts 1, 2, 3…; Icon shows each step’s icon (falling back to the number when a step has none); None hides the marker badge. One of `,_jsx(_components.code,{children:`number`}),`, `,_jsx(_components.code,{children:`icon`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsMarkerStyle`,type:`Enums\\\\StepsMarkerStyle|string|null`,id:`param-steps-marker-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Soft is a tinted accent badge; Filled is a solid accent badge; Outline is a bordered badge. One of `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`filled`}),`, `,_jsx(_components.code,{children:`outline`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsMarkerShape`,type:`Enums\\\\StepsMarkerShape|string|null`,id:`param-steps-marker-shape-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Marker shape. One of `,_jsx(_components.code,{children:`circle`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsMarkerSize`,type:`Enums\\\\StepsMarkerSize|string|null`,id:`param-steps-marker-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Marker size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsAccentColor`,type:`?string`,id:`param-steps-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Color for the marker badge and the connector line. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`stepsAccentColorLight`,type:`?string`,id:`param-steps-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme accent.`]})}),_jsx(ResponseField,{name:`stepsTitleSize`,type:`Enums\\\\StepsTitleSize|string|null`,id:`param-steps-title-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsTitleWeight`,type:`Enums\\\\StepsTitleWeight|string|null`,id:`param-steps-title-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsTitleColor`,type:`?string`,id:`param-steps-title-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`stepsTitleColorLight`,type:`?string`,id:`param-steps-title-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`stepsBodySize`,type:`Enums\\\\StepsBodySize|string|null`,id:`param-steps-body-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsBodyWeight`,type:`Enums\\\\StepsBodyWeight|string|null`,id:`param-steps-body-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsBodyColor`,type:`?string`,id:`param-steps-body-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`stepsBodyColorLight`,type:`?string`,id:`param-steps-body-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsxs(ResponseField,{name:`stepsItems`,type:`Collection\u003cint, StepsWidgetStepsItemsItem>|null`,id:`param-steps-items-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`StepsWidgetStepsItemsItem`}),`. Each item is one step in the process. They render in this order; the number marker counts automatically.`]}),_jsxs(Expandable,{title:`StepsWidgetStepsItemsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidgetStepsItemsItem)`,children:[_jsx(ResponseField,{name:`title`,type:`string`,id:`param-title-4`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Title.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-134`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-6`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional Font Awesome icon for this step (e.g. calendar-check, circle-check, gear). Shown in the marker when the section marker is set to “Icon”; otherwise the step is numbered.`]})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-6`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-6`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`number`,type:`?string`,id:`param-number-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overrides the auto number for this step’s marker, e.g. “01” or “A”. Leave empty to auto-count.`]})}),_jsx(ResponseField,{name:`body`,type:`?string`,id:`param-body-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional description under the title.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-130`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`stepsBg`,type:`Enums\\\\StepsBg|string|null`,id:`param-steps-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsBgCustom`,type:`?string`,id:`param-steps-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`stepsBgLight`,type:`Enums\\\\StepsBgLight|string|null`,id:`param-steps-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsBgLightCustom`,type:`?string`,id:`param-steps-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`stepsFontOverrides`,type:`Collection\u003cint, StepsWidgetStepsFontOverridesItem>|null`,id:`param-steps-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`StepsWidgetStepsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`StepsWidgetStepsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidgetStepsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-135`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, StepsWidgetStepsFontOverridesItemUploadsItem>|null`,id:`param-uploads-34`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`StepsWidgetStepsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`StepsWidgetStepsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\StepsWidgetStepsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-136`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-131`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-34`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-132`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`stepsCtaLabel`,type:`?string`,id:`param-steps-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`stepsCtaUrl`,type:`?string`,id:`param-steps-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`stepsCtaNewTab`,type:`?bool`,id:`param-steps-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`stepsCtaVariant`,type:`Enums\\\\StepsCtaVariant|string|null`,id:`param-steps-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaSize`,type:`Enums\\\\StepsCtaSize|string|null`,id:`param-steps-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaRadius`,type:`Enums\\\\StepsCtaRadius|string|null`,id:`param-steps-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaColor`,type:`?string`,id:`param-steps-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`stepsCtaColorLight`,type:`?string`,id:`param-steps-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`stepsCtaTextColor`,type:`?string`,id:`param-steps-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`stepsCtaTextColorLight`,type:`?string`,id:`param-steps-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`stepsCtaHoverColor`,type:`?string`,id:`param-steps-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`stepsCtaHoverColorLight`,type:`?string`,id:`param-steps-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`stepsCtaStyle`,type:`Enums\\\\StepsCtaStyle|string|null`,id:`param-steps-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaShadowColor`,type:`?string`,id:`param-steps-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`stepsCtaShadowColorLight`,type:`?string`,id:`param-steps-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`stepsCtaAnimation`,type:`Enums\\\\StepsCtaAnimation|string|null`,id:`param-steps-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaIcon`,type:`?string`,id:`param-steps-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`stepsCtaIconFamily`,type:`Enums\\\\StepsCtaIconFamily|string|null`,id:`param-steps-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaIconPosition`,type:`Enums\\\\StepsCtaIconPosition|string|null`,id:`param-steps-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`stepsCtaIconNudge`,type:`?bool`,id:`param-steps-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-133`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`MediaTextWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`media-text`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\MediaTextWidgetType|string`,id:`param-type-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`media-text`}),`. One of `,_jsx(_components.code,{children:`media-text`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-137`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowEnabled`,type:`?bool`,id:`param-media-text-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the section heading (e.g. “Why us”).`]})}),_jsx(ResponseField,{name:`mediaTextEyebrow`,type:`?string`,id:`param-media-text-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowColor`,type:`?string`,id:`param-media-text-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowColorLight`,type:`?string`,id:`param-media-text-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowWeight`,type:`Enums\\\\MediaTextEyebrowWeight|string|null`,id:`param-media-text-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextEyebrowSize`,type:`Enums\\\\MediaTextEyebrowSize|string|null`,id:`param-media-text-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextHeading`,type:`?string`,id:`param-media-text-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional section heading above the blocks. Leave empty to show just the blocks.`]})}),_jsx(ResponseField,{name:`mediaTextHeadingColor`,type:`?string`,id:`param-media-text-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`mediaTextHeadingColorLight`,type:`?string`,id:`param-media-text-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`mediaTextHeadingWeight`,type:`Enums\\\\MediaTextHeadingWeight|string|null`,id:`param-media-text-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextHeadingSize`,type:`Enums\\\\MediaTextHeadingSize|string|null`,id:`param-media-text-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextIntro`,type:`?string`,id:`param-media-text-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`mediaTextIntroColor`,type:`?string`,id:`param-media-text-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`mediaTextIntroColorLight`,type:`?string`,id:`param-media-text-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`mediaTextIntroWeight`,type:`Enums\\\\MediaTextIntroWeight|string|null`,id:`param-media-text-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextIntroSize`,type:`Enums\\\\MediaTextIntroSize|string|null`,id:`param-media-text-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextAlign`,type:`Enums\\\\MediaTextAlign|string|null`,id:`param-media-text-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Aligns the section header and the text inside each block. (Side-by-side rows usually read best left-aligned.) One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextRatio`,type:`Enums\\\\MediaTextRatio|string|null`,id:`param-media-text-ratio-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. For media-left / media-right rows: how the two columns share the width. One of `,_jsx(_components.code,{children:`balanced`}),`, `,_jsx(_components.code,{children:`media`}),`, `,_jsx(_components.code,{children:`text`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextVAlign`,type:`Enums\\\\MediaTextVAlign|string|null`,id:`param-media-text-v-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. For media-left / media-right rows: how the text lines up against the media. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`top`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextMediaRatio`,type:`Enums\\\\MediaTextMediaRatio|string|null`,id:`param-media-text-media-ratio-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Aspect ratio of the media frame. Auto keeps an image at its natural shape (videos and embeds always use a ratio). One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`landscape`}),`, `,_jsx(_components.code,{children:`standard`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextMediaRadius`,type:`Enums\\\\MediaTextMediaRadius|string|null`,id:`param-media-text-media-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Media corners. One of `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextGap`,type:`Enums\\\\MediaTextGap|string|null`,id:`param-media-text-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between blocks. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextDividers`,type:`?bool`,id:`param-media-text-dividers-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A hairline rule between blocks.`]})}),_jsx(ResponseField,{name:`mediaTextBlockEyebrowColor`,type:`?string`,id:`param-media-text-block-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Each block’s eyebrow color. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`mediaTextBlockEyebrowColorLight`,type:`?string`,id:`param-media-text-block-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`mediaTextBlockEyebrowWeight`,type:`Enums\\\\MediaTextBlockEyebrowWeight|string|null`,id:`param-media-text-block-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Block eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingColor`,type:`?string`,id:`param-media-text-block-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingColorLight`,type:`?string`,id:`param-media-text-block-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingWeight`,type:`Enums\\\\MediaTextBlockHeadingWeight|string|null`,id:`param-media-text-block-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Block heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextBlockHeadingSize`,type:`Enums\\\\MediaTextBlockHeadingSize|string|null`,id:`param-media-text-block-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Block heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextBodyColor`,type:`?string`,id:`param-media-text-body-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`mediaTextBodyColorLight`,type:`?string`,id:`param-media-text-body-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`mediaTextBodyWeight`,type:`Enums\\\\MediaTextBodyWeight|string|null`,id:`param-media-text-body-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Block body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextBodySize`,type:`Enums\\\\MediaTextBodySize|string|null`,id:`param-media-text-body-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Block body size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsxs(ResponseField,{name:`mediaTextBlocks`,type:`Collection\u003cint, MediaTextWidgetMediaTextBlocksItem>|null`,id:`param-media-text-blocks-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`MediaTextWidgetMediaTextBlocksItem`}),`. Each block is one media + text row. They render top to bottom in this order; alternate “Media left” / “Media right” for a classic zig-zag.`]}),_jsxs(Expandable,{title:`MediaTextWidgetMediaTextBlocksItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidgetMediaTextBlocksItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-138`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`layout`,type:`Enums\\\\Layout|string|null`,id:`param-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Media left / right place the media beside the text; Stacked puts media above the text; Full-bleed runs the media edge-to-edge with the text below. One of `,_jsx(_components.code,{children:`media-left`}),`, `,_jsx(_components.code,{children:`media-right`}),`, `,_jsx(_components.code,{children:`stacked`}),`, `,_jsx(_components.code,{children:`full`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaType`,type:`Enums\\\\MediaTextWidgetMediaTextBlocksItemMediaType|string|null`,id:`param-media-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick where the media comes from. “None” makes this a text-only block. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`, `,_jsx(_components.code,{children:`embed`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`image`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-image-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick an image from the Images library. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`imageAlt`,type:`?string`,id:`param-image-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Describe the image for screen readers and SEO. Leave empty to use the library image’s own alt text. Set to a single space for a purely decorative image.`]})}),_jsx(ResponseField,{name:`video`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-video-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick a clip from the Videos library (⌘K → Videos). The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`videoAutoplay`,type:`?bool`,id:`param-video-autoplay-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Play automatically as a muted, looping background clip (a pause button is shown, and reduced-motion visitors get the poster image). Off = a normal video with play controls.`]})}),_jsx(ResponseField,{name:`embedUrl`,type:`?string`,id:`param-embed-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Paste a YouTube or Vimeo link, e.g. `,_jsx(_components.a,{href:`https://youtu.be/%E2%80%A6`,children:`https://youtu.be/…`}),` or `,_jsx(_components.a,{href:`https://vimeo.com/%E2%80%A6`,children:`https://vimeo.com/…`}),`.`]})}),_jsx(ResponseField,{name:`eyebrow`,type:`?string`,id:`param-eyebrow-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the block heading.`]})}),_jsx(ResponseField,{name:`heading`,type:`?string`,id:`param-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The block’s headline.`]})}),_jsx(ResponseField,{name:`body`,type:`?string`,id:`param-body-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A paragraph or two. Leave a blank line between paragraphs.`]})}),_jsx(ResponseField,{name:`ctaLabel`,type:`?string`,id:`param-cta-label-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. This block’s button text. Leave empty (with no link) to hide the button.`]})}),_jsx(ResponseField,{name:`ctaUrl`,type:`?string`,id:`param-cta-url-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/about-us) or full URL.`]})}),_jsx(ResponseField,{name:`ctaNewTab`,type:`?bool`,id:`param-cta-new-tab-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Open button in new tab.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-134`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`mediaTextBg`,type:`Enums\\\\MediaTextBg|string|null`,id:`param-media-text-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextBgCustom`,type:`?string`,id:`param-media-text-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`mediaTextBgLight`,type:`Enums\\\\MediaTextBgLight|string|null`,id:`param-media-text-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextBgLightCustom`,type:`?string`,id:`param-media-text-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`mediaTextFontOverrides`,type:`Collection\u003cint, MediaTextWidgetMediaTextFontOverridesItem>|null`,id:`param-media-text-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`MediaTextWidgetMediaTextFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`MediaTextWidgetMediaTextFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidgetMediaTextFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-139`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, MediaTextWidgetMediaTextFontOverridesItemUploadsItem>|null`,id:`param-uploads-35`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`MediaTextWidgetMediaTextFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`MediaTextWidgetMediaTextFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\MediaTextWidgetMediaTextFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-140`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-135`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-35`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-136`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`mediaTextCtaVariant`,type:`Enums\\\\MediaTextCtaVariant|string|null`,id:`param-media-text-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaSize`,type:`Enums\\\\MediaTextCtaSize|string|null`,id:`param-media-text-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaRadius`,type:`Enums\\\\MediaTextCtaRadius|string|null`,id:`param-media-text-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaColor`,type:`?string`,id:`param-media-text-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`mediaTextCtaColorLight`,type:`?string`,id:`param-media-text-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`mediaTextCtaTextColor`,type:`?string`,id:`param-media-text-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`mediaTextCtaTextColorLight`,type:`?string`,id:`param-media-text-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`mediaTextCtaHoverColor`,type:`?string`,id:`param-media-text-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`mediaTextCtaHoverColorLight`,type:`?string`,id:`param-media-text-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`mediaTextCtaStyle`,type:`Enums\\\\MediaTextCtaStyle|string|null`,id:`param-media-text-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaShadowColor`,type:`?string`,id:`param-media-text-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`mediaTextCtaShadowColorLight`,type:`?string`,id:`param-media-text-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`mediaTextCtaAnimation`,type:`Enums\\\\MediaTextCtaAnimation|string|null`,id:`param-media-text-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIcon`,type:`?string`,id:`param-media-text-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIconFamily`,type:`Enums\\\\MediaTextCtaIconFamily|string|null`,id:`param-media-text-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIconPosition`,type:`Enums\\\\MediaTextCtaIconPosition|string|null`,id:`param-media-text-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`mediaTextCtaIconNudge`,type:`?bool`,id:`param-media-text-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-137`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`DeviceMockWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\DeviceMockWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`device-mock`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\DeviceMockWidgetType|string`,id:`param-type-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`device-mock`}),`. One of `,_jsx(_components.code,{children:`device-mock`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-141`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-54`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockArrangement`,type:`Enums\\\\DeviceMockArrangement|string|null`,id:`param-device-mock-arrangement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which devices to show. Duo overlaps a phone on the corner of a desktop browser; Trio adds a TV behind them (on narrow screens Trio drops the TV and shows as a Duo). Each device used gets its own screen tab. One of `,_jsx(_components.code,{children:`duo`}),`, `,_jsx(_components.code,{children:`trio`}),`, `,_jsx(_components.code,{children:`desktop`}),`, `,_jsx(_components.code,{children:`phone`}),`, `,_jsx(_components.code,{children:`tv`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockTextPlacement`,type:`Enums\\\\DeviceMockTextPlacement|string|null`,id:`param-device-mock-text-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the eyebrow / heading / intro / button sit. Left or right puts the text in a column beside the devices (stacked above them on narrow screens); None shows the devices only. One of `,_jsx(_components.code,{children:`above`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockSize`,type:`Enums\\\\DeviceMockSize|string|null`,id:`param-device-mock-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How large the devices render within the section. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockBrowserRatio`,type:`Enums\\\\DeviceMockBrowserRatio|string|null`,id:`param-device-mock-browser-ratio-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The browser window’s content area. Match your desktop captures. One of `,_jsx(_components.code,{children:`16:10`}),`, `,_jsx(_components.code,{children:`16:9`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockBrowserUrl`,type:`?string`,id:`param-device-mock-browser-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The address shown in the browser toolbar — decoration only, not a link.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneStatusBar`,type:`?bool`,id:`param-device-mock-phone-status-bar-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Adds a time / signal / battery bar across the top of the phone screen. Leave off for native phone screenshots — they already include the real status bar.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneTime`,type:`?string`,id:`param-device-mock-phone-time-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Status bar time.`]})}),_jsx(ResponseField,{name:`deviceMockMotionPause`,type:`?bool`,id:`param-device-mock-motion-pause-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Adds a small, unobtrusive pause/play control so visitors can stop the auto-playing background motion (WCAG 2.2.2). Only appears when a moving background is set.`]})}),_jsx(ResponseField,{name:`deviceMockEyebrowEnabled`,type:`?bool`,id:`param-device-mock-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the heading (e.g. “Product tour”).`]})}),_jsx(ResponseField,{name:`deviceMockEyebrow`,type:`?string`,id:`param-device-mock-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`deviceMockEyebrowColor`,type:`?string`,id:`param-device-mock-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`deviceMockEyebrowColorLight`,type:`?string`,id:`param-device-mock-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`deviceMockEyebrowWeight`,type:`Enums\\\\DeviceMockEyebrowWeight|string|null`,id:`param-device-mock-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockEyebrowSize`,type:`Enums\\\\DeviceMockEyebrowSize|string|null`,id:`param-device-mock-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockHeading`,type:`?string`,id:`param-device-mock-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the devices.`]})}),_jsx(ResponseField,{name:`deviceMockHeadingColor`,type:`?string`,id:`param-device-mock-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`deviceMockHeadingColorLight`,type:`?string`,id:`param-device-mock-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`deviceMockHeadingWeight`,type:`Enums\\\\DeviceMockHeadingWeight|string|null`,id:`param-device-mock-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockHeadingSize`,type:`Enums\\\\DeviceMockHeadingSize|string|null`,id:`param-device-mock-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockIntro`,type:`?string`,id:`param-device-mock-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short paragraph under the heading.`]})}),_jsx(ResponseField,{name:`deviceMockIntroColor`,type:`?string`,id:`param-device-mock-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`deviceMockIntroColorLight`,type:`?string`,id:`param-device-mock-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`deviceMockIntroWeight`,type:`Enums\\\\DeviceMockIntroWeight|string|null`,id:`param-device-mock-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockIntroSize`,type:`Enums\\\\DeviceMockIntroSize|string|null`,id:`param-device-mock-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCaption`,type:`?string`,id:`param-device-mock-caption-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A short line shown under the devices.`]})}),_jsx(ResponseField,{name:`deviceMockTvMediaType`,type:`Enums\\\\DeviceMockTvMediaType|string|null`,id:`param-device-mock-tv-media-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A still screenshot, or a short looping screen recording. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockTvImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-tv-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Use a native-resolution 16:9 capture of the screen with NO device frame (the frame is drawn for you) — e.g. 1920 × 1080 or 3840 × 2160. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockTvImageAlt`,type:`?string`,id:`param-device-mock-tv-image-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.`]})}),_jsx(ResponseField,{name:`deviceMockTvVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-tv-video-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution 16:9 capture of the screen with NO device frame (the frame is drawn for you) — e.g. 1920 × 1080 or 3840 × 2160. The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockTvVideoAlt`,type:`?string`,id:`param-device-mock-tv-video-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.`]})}),_jsx(ResponseField,{name:`deviceMockTvFit`,type:`Enums\\\\DeviceMockTvFit|string|null`,id:`param-device-mock-tv-fit-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of `,_jsx(_components.code,{children:`cover`}),`, `,_jsx(_components.code,{children:`contain`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockTvAnchor`,type:`Enums\\\\DeviceMockTvAnchor|string|null`,id:`param-device-mock-tv-anchor-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`bottom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopMediaType`,type:`Enums\\\\DeviceMockDesktopMediaType|string|null`,id:`param-device-mock-desktop-media-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A still screenshot, or a short looping screen recording. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-desktop-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Use a native-resolution capture of the page content only — no browser toolbar and no device frame (both are drawn for you). 16:10 (e.g. 2880 × 1800) or 16:9 (e.g. 2560 × 1440), matching the “Desktop screen shape” setting. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopImageAlt`,type:`?string`,id:`param-device-mock-desktop-image-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-desktop-video-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution capture of the page content only — no browser toolbar and no device frame (both are drawn for you). 16:10 (e.g. 2880 × 1800) or 16:9 (e.g. 2560 × 1440), matching the “Desktop screen shape” setting. The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopVideoAlt`,type:`?string`,id:`param-device-mock-desktop-video-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopFit`,type:`Enums\\\\DeviceMockDesktopFit|string|null`,id:`param-device-mock-desktop-fit-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of `,_jsx(_components.code,{children:`cover`}),`, `,_jsx(_components.code,{children:`contain`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockDesktopAnchor`,type:`Enums\\\\DeviceMockDesktopAnchor|string|null`,id:`param-device-mock-desktop-anchor-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`bottom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneMediaType`,type:`Enums\\\\DeviceMockPhoneMediaType|string|null`,id:`param-device-mock-phone-media-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A still screenshot, or a short looping screen recording. One of `,_jsx(_components.code,{children:`image`}),`, `,_jsx(_components.code,{children:`video`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-phone-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Use a native-resolution portrait screenshot with NO device frame (the frame is drawn for you) — e.g. 1179 × 2556 or 1290 × 2796 (about 9:19.5). The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneImageAlt`,type:`?string`,id:`param-device-mock-phone-image-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Required once a screenshot is picked. Describe what the screen shows for visitors who can’t see it — e.g. “Dashboard with a weekly activity chart and a list of recent orders”. Skip the device itself (“a phone showing…”); the frame is decorative.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneVideo`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-device-mock-phone-video-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Pick a clip from the Videos library (⌘K → Videos). It plays as a short, muted, looping screen recording — keep it SHORT (about 5–15 seconds) and SMALL (under about 10 MB; an H.264 MP4 without an audio track is ideal), and give the Videos item a poster image: visitors see the poster first, and reduced-motion visitors only ever see the poster. Use a native-resolution portrait screenshot with NO device frame (the frame is drawn for you) — e.g. 1179 × 2556 or 1290 × 2796 (about 9:19.5). The related `,_jsx(_components.code,{children:`video`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneVideoAlt`,type:`?string`,id:`param-device-mock-phone-video-alt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Recommended. A short description of what the recording shows, read to screen-reader users — e.g. “Creating a new project in three clicks”. Leave empty only if the surrounding text already says it.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneFit`,type:`Enums\\\\DeviceMockPhoneFit|string|null`,id:`param-device-mock-phone-fit-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fill crops the media to fill the whole screen (best for native captures). Fit shows the whole image or video, leaving bars if its shape differs from the screen. One of `,_jsx(_components.code,{children:`cover`}),`, `,_jsx(_components.code,{children:`contain`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockPhoneAnchor`,type:`Enums\\\\DeviceMockPhoneAnchor|string|null`,id:`param-device-mock-phone-anchor-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which part stays visible when the media is cropped. Top keeps an app’s header in view — right for most screenshots. One of `,_jsx(_components.code,{children:`top`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`bottom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockBg`,type:`Enums\\\\DeviceMockBg|string|null`,id:`param-device-mock-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockBgCustom`,type:`?string`,id:`param-device-mock-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`deviceMockBgLight`,type:`Enums\\\\DeviceMockBgLight|string|null`,id:`param-device-mock-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockBgLightCustom`,type:`?string`,id:`param-device-mock-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`deviceMockFontOverrides`,type:`Collection\u003cint, DeviceMockWidgetDeviceMockFontOverridesItem>|null`,id:`param-device-mock-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`DeviceMockWidgetDeviceMockFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`DeviceMockWidgetDeviceMockFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\DeviceMockWidgetDeviceMockFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-142`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem>|null`,id:`param-uploads-36`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\DeviceMockWidgetDeviceMockFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-143`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-138`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-36`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-139`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`deviceMockCtaLabel`,type:`?string`,id:`param-device-mock-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`deviceMockCtaUrl`,type:`?string`,id:`param-device-mock-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`deviceMockCtaNewTab`,type:`?bool`,id:`param-device-mock-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`deviceMockCtaVariant`,type:`Enums\\\\DeviceMockCtaVariant|string|null`,id:`param-device-mock-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaSize`,type:`Enums\\\\DeviceMockCtaSize|string|null`,id:`param-device-mock-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaRadius`,type:`Enums\\\\DeviceMockCtaRadius|string|null`,id:`param-device-mock-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaColor`,type:`?string`,id:`param-device-mock-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`deviceMockCtaColorLight`,type:`?string`,id:`param-device-mock-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`deviceMockCtaTextColor`,type:`?string`,id:`param-device-mock-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`deviceMockCtaTextColorLight`,type:`?string`,id:`param-device-mock-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`deviceMockCtaHoverColor`,type:`?string`,id:`param-device-mock-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`deviceMockCtaHoverColorLight`,type:`?string`,id:`param-device-mock-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`deviceMockCtaStyle`,type:`Enums\\\\DeviceMockCtaStyle|string|null`,id:`param-device-mock-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaShadowColor`,type:`?string`,id:`param-device-mock-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`deviceMockCtaShadowColorLight`,type:`?string`,id:`param-device-mock-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`deviceMockCtaAnimation`,type:`Enums\\\\DeviceMockCtaAnimation|string|null`,id:`param-device-mock-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIcon`,type:`?string`,id:`param-device-mock-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIconFamily`,type:`Enums\\\\DeviceMockCtaIconFamily|string|null`,id:`param-device-mock-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIconPosition`,type:`Enums\\\\DeviceMockCtaIconPosition|string|null`,id:`param-device-mock-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`deviceMockCtaIconNudge`,type:`?bool`,id:`param-device-mock-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-140`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`TeamWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TeamWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`team`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\TeamWidgetType|string`,id:`param-type-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`team`}),`. One of `,_jsx(_components.code,{children:`team`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-144`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-55`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamEyebrow`,type:`?string`,id:`param-team-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`teamEyebrowColor`,type:`?string`,id:`param-team-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`teamEyebrowColorLight`,type:`?string`,id:`param-team-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`teamEyebrowWeight`,type:`Enums\\\\TeamEyebrowWeight|string|null`,id:`param-team-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamEyebrowSize`,type:`Enums\\\\TeamEyebrowSize|string|null`,id:`param-team-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamHeading`,type:`?string`,id:`param-team-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the team.`]})}),_jsx(ResponseField,{name:`teamHeadingColor`,type:`?string`,id:`param-team-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`teamHeadingColorLight`,type:`?string`,id:`param-team-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamHeadingWeight`,type:`Enums\\\\TeamHeadingWeight|string|null`,id:`param-team-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamIntro`,type:`?string`,id:`param-team-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`teamIntroColor`,type:`?string`,id:`param-team-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`teamIntroColorLight`,type:`?string`,id:`param-team-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamIntroWeight`,type:`Enums\\\\TeamIntroWeight|string|null`,id:`param-team-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamIntroSize`,type:`Enums\\\\TeamIntroSize|string|null`,id:`param-team-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAlign`,type:`Enums\\\\TeamAlign|string|null`,id:`param-team-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamFeaturedOnly`,type:`?bool`,id:`param-team-featured-only-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show only members you have flagged “Featured” in the Team Members manager — e.g. a short leadership row on the home page.`]})}),_jsx(ResponseField,{name:`teamCount`,type:`?int`,id:`param-team-count-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The most members to show, in the manager’s sort order. 1 to 50.`]})}),_jsx(ResponseField,{name:`teamLayout`,type:`Enums\\\\TeamLayout|string|null`,id:`param-team-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Grid: a tidy multi-row grid (the full team page). Carousel: a continuous auto-scrolling marquee (needs site animations enabled — falls back to the grid when they are off). Spotlight: featured members large on top, the rest in a smaller grid. List: wide rows with the full bio. Scatter: a playful arrangement with varied spacing so the cards float freely. One of `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`list`}),`, `,_jsx(_components.code,{children:`scatter`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamColumns`,type:`Enums\\\\TeamColumns|string|null`,id:`param-team-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many cards per row. Auto fits as many as comfortably fit (the Scatter layout composes on three columns when set to Auto). One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSpotlightHeroes`,type:`Enums\\\\TeamSpotlightHeroes|string|null`,id:`param-team-spotlight-heroes-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many members lead the section at full size. Members flagged “Featured” fill the spots first, in the manager’s sort order; any extra featured members join the rows below. One of `,_jsx(_components.code,{children:`1`}),`, `,_jsx(_components.code,{children:`2`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSpotlightColumns`,type:`Enums\\\\TeamSpotlightColumns|string|null`,id:`param-team-spotlight-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many of the remaining members sit on each row under the featured spots. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSpeed`,type:`Enums\\\\TeamSpeed|string|null`,id:`param-team-speed-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the carousel auto-scrolls. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamDirection`,type:`Enums\\\\TeamDirection|string|null`,id:`param-team-direction-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamScatter`,type:`Enums\\\\TeamScatter|string|null`,id:`param-team-scatter-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How far the cards drift from a tidy grid. Subtle keeps a loose grid; Wild pushes the offsets to their playful maximum. One of `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`playful`}),`, `,_jsx(_components.code,{children:`wild`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamGap`,type:`Enums\\\\TeamGap|string|null`,id:`param-team-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCardLayout`,type:`Enums\\\\TeamCardLayout|string|null`,id:`param-team-card-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Portrait: the photo on top, name/role/bio below — the classic team card. Overlay: a full-bleed photo with a solid color panel over its lower edge holding the name and role. Profile: a horizontal bar — avatar left, name/role/tagline right. Roster: minimal — just the avatar, name and role. (The List section layout always uses its own wide row.) One of `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`overlay`}),`, `,_jsx(_components.code,{children:`profile`}),`, `,_jsx(_components.code,{children:`roster`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamPhotoAspect`,type:`Enums\\\\TeamPhotoAspect|string|null`,id:`param-team-photo-aspect-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The photo’s aspect ratio on the photo-led card layouts. One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAvatarShape`,type:`Enums\\\\TeamAvatarShape|string|null`,id:`param-team-avatar-shape-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The photo’s outline. Squircle is a soft superellipse-style corner (approximated with heavy rounding). One of `,_jsx(_components.code,{children:`circle`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`squircle`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAvatarSize`,type:`Enums\\\\TeamAvatarSize|string|null`,id:`param-team-avatar-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Avatar size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAvatarBorder`,type:`Enums\\\\TeamAvatarBorder|string|null`,id:`param-team-avatar-border-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A ring around the photo in the avatar color. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`hairline`}),`, `,_jsx(_components.code,{children:`thin`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAvatarTreatment`,type:`Enums\\\\TeamAvatarTreatment|string|null`,id:`param-team-avatar-treatment-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A flat color accent behind the photo. Panel offsets a solid block behind it; Halo draws a soft concentric disc. Both use the avatar color. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`panel`}),`, `,_jsx(_components.code,{children:`halo`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAvatarColor`,type:`?string`,id:`param-team-avatar-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the border and the backdrop treatment. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`teamAvatarColorLight`,type:`?string`,id:`param-team-avatar-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamShowRole`,type:`?bool`,id:`param-team-show-role-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show role / title.`]})}),_jsx(ResponseField,{name:`teamShowBio`,type:`?bool`,id:`param-team-show-bio-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Shown on the Portrait and Profile cards and the List rows. The Overlay and Roster layouts stay bio-free by design.`]})}),_jsx(ResponseField,{name:`teamShowTagline`,type:`?bool`,id:`param-team-show-tagline-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The member’s one-liner, shown on the Profile and Roster cards and the List rows.`]})}),_jsx(ResponseField,{name:`teamHoverPhoto`,type:`?bool`,id:`param-team-hover-photo-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cross-fades to a member’s alternate photo on hover (set per member; does nothing for members without one, and stays off for visitors who prefer reduced motion).`]})}),_jsx(ResponseField,{name:`teamCardStyle`,type:`Enums\\\\TeamCardStyle|string|null`,id:`param-team-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card treatment. Outline (the default) is a plaque frame — a framed-portrait look; Raised is a quiet lit card; Luxe a frosted glass panel; Ticket/Bracket/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCardStyleRadius`,type:`Enums\\\\TeamCardStyleRadius|string|null`,id:`param-team-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCardStyleAccentColor`,type:`?string`,id:`param-team-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`teamCardStyleAccentColorLight`,type:`?string`,id:`param-team-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamCardHover`,type:`Enums\\\\TeamCardHover|string|null`,id:`param-team-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCardAlign`,type:`Enums\\\\TeamCardAlign|string|null`,id:`param-team-card-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How the name, role and bio align inside each card (the Profile card and List rows are always left-aligned beside the avatar). One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamAccentColor`,type:`?string`,id:`param-team-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — the lettered-avatar fallback background and the role color default. Leave empty to use the brand accent. (The icon row has its own colors on the Social links tab.)`]})}),_jsx(ResponseField,{name:`teamAccentColorLight`,type:`?string`,id:`param-team-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamPanelColor`,type:`?string`,id:`param-team-panel-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The solid panel over the photo on the Overlay card. Leave empty to use the card color.`]})}),_jsx(ResponseField,{name:`teamPanelColorLight`,type:`?string`,id:`param-team-panel-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamNameSize`,type:`Enums\\\\TeamNameSize|string|null`,id:`param-team-name-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamNameWeight`,type:`Enums\\\\TeamNameWeight|string|null`,id:`param-team-name-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamNameColor`,type:`?string`,id:`param-team-name-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`teamNameColorLight`,type:`?string`,id:`param-team-name-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamRoleSize`,type:`Enums\\\\TeamRoleSize|string|null`,id:`param-team-role-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Role size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamRoleWeight`,type:`Enums\\\\TeamRoleWeight|string|null`,id:`param-team-role-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Role weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamRoleColor`,type:`?string`,id:`param-team-role-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the accent color.`]})}),_jsx(ResponseField,{name:`teamRoleColorLight`,type:`?string`,id:`param-team-role-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamBioSize`,type:`Enums\\\\TeamBioSize|string|null`,id:`param-team-bio-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Bio size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamBioWeight`,type:`Enums\\\\TeamBioWeight|string|null`,id:`param-team-bio-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Bio weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamBioColor`,type:`?string`,id:`param-team-bio-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`teamBioColorLight`,type:`?string`,id:`param-team-bio-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamBioClamp`,type:`Enums\\\\TeamBioClamp|string|null`,id:`param-team-bio-clamp-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cap each bio at this many lines (the rest is truncated with an ellipsis) so one long bio can’t blow up the card height. The List layout always shows the full bio. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`6`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamTaglineColor`,type:`?string`,id:`param-team-tagline-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the faint text color.`]})}),_jsx(ResponseField,{name:`teamTaglineColorLight`,type:`?string`,id:`param-team-tagline-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`teamShowSocials`,type:`?bool`,id:`param-team-show-socials-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The member’s social profile icons (set per member in the Team Members manager).`]})}),_jsx(ResponseField,{name:`teamShowContact`,type:`?bool`,id:`param-team-show-contact-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Off by default — turns each member’s email and phone (when set) into icon links. Only enable when you want those details public.`]})}),_jsx(ResponseField,{name:`teamSocialVariant`,type:`Enums\\\\TeamSocialVariant|string|null`,id:`param-team-social-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon style. One of `,_jsx(_components.code,{children:`bare`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`solid`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSocialSize`,type:`Enums\\\\TeamSocialSize|string|null`,id:`param-team-social-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSocialSpacing`,type:`Enums\\\\TeamSocialSpacing|string|null`,id:`param-team-social-spacing-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between the icons. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`loose`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSocialHover`,type:`Enums\\\\TeamSocialHover|string|null`,id:`param-team-social-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover to each platform’s own brand color, or to the site accent (or a chosen hover color). One of `,_jsx(_components.code,{children:`brand`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamSocialColor`,type:`?string`,id:`param-team-social-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Resting icon color. Leave empty for the muted default.`]})}),_jsx(ResponseField,{name:`teamSocialColorLight`,type:`?string`,id:`param-team-social-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.`]})}),_jsx(ResponseField,{name:`teamSocialHoverColor`,type:`?string`,id:`param-team-social-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Hover color” is Accent / custom. Leave empty for the site accent.`]})}),_jsx(ResponseField,{name:`teamSocialHoverColorLight`,type:`?string`,id:`param-team-social-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`teamBg`,type:`Enums\\\\TeamBg|string|null`,id:`param-team-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamBgCustom`,type:`?string`,id:`param-team-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`teamBgLight`,type:`Enums\\\\TeamBgLight|string|null`,id:`param-team-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamBgLightCustom`,type:`?string`,id:`param-team-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`teamFontOverrides`,type:`Collection\u003cint, TeamWidgetTeamFontOverridesItem>|null`,id:`param-team-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`TeamWidgetTeamFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`TeamWidgetTeamFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TeamWidgetTeamFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-145`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, TeamWidgetTeamFontOverridesItemUploadsItem>|null`,id:`param-uploads-37`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`TeamWidgetTeamFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`TeamWidgetTeamFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TeamWidgetTeamFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-146`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-141`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-37`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-142`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`teamCtaLabel`,type:`?string`,id:`param-team-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`teamCtaUrl`,type:`?string`,id:`param-team-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`teamCtaNewTab`,type:`?bool`,id:`param-team-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`teamCtaVariant`,type:`Enums\\\\TeamCtaVariant|string|null`,id:`param-team-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaSize`,type:`Enums\\\\TeamCtaSize|string|null`,id:`param-team-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaRadius`,type:`Enums\\\\TeamCtaRadius|string|null`,id:`param-team-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaColor`,type:`?string`,id:`param-team-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`teamCtaColorLight`,type:`?string`,id:`param-team-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`teamCtaTextColor`,type:`?string`,id:`param-team-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`teamCtaTextColorLight`,type:`?string`,id:`param-team-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`teamCtaHoverColor`,type:`?string`,id:`param-team-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`teamCtaHoverColorLight`,type:`?string`,id:`param-team-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`teamCtaStyle`,type:`Enums\\\\TeamCtaStyle|string|null`,id:`param-team-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaShadowColor`,type:`?string`,id:`param-team-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`teamCtaShadowColorLight`,type:`?string`,id:`param-team-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`teamCtaAnimation`,type:`Enums\\\\TeamCtaAnimation|string|null`,id:`param-team-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaIcon`,type:`?string`,id:`param-team-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`teamCtaIconFamily`,type:`Enums\\\\TeamCtaIconFamily|string|null`,id:`param-team-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaIconPosition`,type:`Enums\\\\TeamCtaIconPosition|string|null`,id:`param-team-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`teamCtaIconNudge`,type:`?bool`,id:`param-team-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-143`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`FaqWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FaqWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`faq`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FaqWidgetType|string`,id:`param-type-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`faq`}),`. One of `,_jsx(_components.code,{children:`faq`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-147`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-56`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqEyebrow`,type:`?string`,id:`param-faq-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`faqEyebrowColor`,type:`?string`,id:`param-faq-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`faqEyebrowColorLight`,type:`?string`,id:`param-faq-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`faqEyebrowWeight`,type:`Enums\\\\FaqEyebrowWeight|string|null`,id:`param-faq-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqEyebrowSize`,type:`Enums\\\\FaqEyebrowSize|string|null`,id:`param-faq-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqHeading`,type:`?string`,id:`param-faq-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the questions.`]})}),_jsx(ResponseField,{name:`faqHeadingColor`,type:`?string`,id:`param-faq-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`faqHeadingColorLight`,type:`?string`,id:`param-faq-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqHeadingWeight`,type:`Enums\\\\FaqHeadingWeight|string|null`,id:`param-faq-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqIntro`,type:`?string`,id:`param-faq-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`faqIntroColor`,type:`?string`,id:`param-faq-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`faqIntroColorLight`,type:`?string`,id:`param-faq-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqIntroWeight`,type:`Enums\\\\FaqIntroWeight|string|null`,id:`param-faq-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqIntroSize`,type:`Enums\\\\FaqIntroSize|string|null`,id:`param-faq-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqAlign`,type:`Enums\\\\FaqAlign|string|null`,id:`param-faq-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Split layout always sets its header column left. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqFeaturedOnly`,type:`?bool`,id:`param-faq-featured-only-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show only questions you have flagged “Featured” in the FAQs manager — e.g. a short top-questions block on the home page, linking out to the full FAQ page.`]})}),_jsx(ResponseField,{name:`faqCount`,type:`?int`,id:`param-faq-count-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The most questions to show, in the manager’s sort order. Raise it for a full FAQ page. 1 to 50.`]})}),_jsx(ResponseField,{name:`faqCategories`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-faq-categories-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional filter. Leave empty to show questions from every category. Manage the list under FAQ Categories. The related `,_jsx(_components.code,{children:`faq-category`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document; a document the site can’t find is left out.`]})}),_jsx(ResponseField,{name:`faqGroupBy`,type:`Enums\\\\FaqGroupBy|string|null`,id:`param-faq-group-by-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. By category renders a subheading per FAQ category, in the order picked in the category filter (or, with no filter, the FAQ Categories sort order); questions without a category are listed last. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`category`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqLayout`,type:`Enums\\\\FaqLayout|string|null`,id:`param-faq-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Accordion: a single centered column of collapsing questions — the classic FAQ. Split: the header (and button) sit in a left column with the accordion beside them. Two columns: the accordion flows across two columns. Open panels: every answer visible in a card grid — no collapsing. One of `,_jsx(_components.code,{children:`accordion`}),`, `,_jsx(_components.code,{children:`split`}),`, `,_jsx(_components.code,{children:`columns`}),`, `,_jsx(_components.code,{children:`panels`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqPanelColumns`,type:`Enums\\\\FaqPanelColumns|string|null`,id:`param-faq-panel-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many open panels sit per row (they stack on small screens). One of `,_jsx(_components.code,{children:`1`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqOpenMode`,type:`Enums\\\\FaqOpenMode|string|null`,id:`param-faq-open-mode-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. One at a time closes the previous answer when a new one opens; Independent lets visitors hold several open. One of `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`multiple`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqFirstOpen`,type:`?bool`,id:`param-faq-first-open-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Starts the section with the first answer expanded so the block never reads as an empty list of rows.`]})}),_jsx(ResponseField,{name:`faqMarker`,type:`Enums\\\\FaqMarker|string|null`,id:`param-faq-marker-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The disclosure marker on each question. Plus rotates into a close mark; Chevron flips. One of `,_jsx(_components.code,{children:`plus`}),`, `,_jsx(_components.code,{children:`chevron`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqGap`,type:`Enums\\\\FaqGap|string|null`,id:`param-faq-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Space between questions. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqSchema`,type:`?bool`,id:`param-faq-schema-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Adds this section’s questions to the page’s schema.org FAQPage markup so search engines can read them (all FAQ sections on a page share one FAQPage block). Costs nothing when on; turn off only to exclude these questions.`]})}),_jsx(ResponseField,{name:`faqCardStyle`,type:`Enums\\\\FaqCardStyle|string|null`,id:`param-faq-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The question-row treatment. Plain (the default) is the classic divided list — hairlines between questions. Any other style turns each question into a card: Raised is a quiet lit card, Outline a framed row, Luxe frosted glass; Ticket/Bracket/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCardStyleRadius`,type:`Enums\\\\FaqCardStyleRadius|string|null`,id:`param-faq-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCardStyleAccentColor`,type:`?string`,id:`param-faq-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`faqCardStyleAccentColorLight`,type:`?string`,id:`param-faq-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqCardStyleForgeScope`,type:`Enums\\\\FaqCardStyleForgeScope|string|null`,id:`param-faq-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCardStyleForgeWeight`,type:`Enums\\\\FaqCardStyleForgeWeight|string|null`,id:`param-faq-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCardHover`,type:`Enums\\\\FaqCardHover|string|null`,id:`param-faq-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a question row does on hover. None (the default) keeps the accordion calm — the open/close motion is the interaction. The card effects (Lift/Glow/…) suit the card styles; the cursor-tracked ones need site animations on. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqAccentColor`,type:`?string`,id:`param-faq-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — colors the toggle icon and the open question’s highlight. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`faqAccentColorLight`,type:`?string`,id:`param-faq-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqQuestionSize`,type:`Enums\\\\FaqQuestionSize|string|null`,id:`param-faq-question-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Question size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqQuestionWeight`,type:`Enums\\\\FaqQuestionWeight|string|null`,id:`param-faq-question-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Question weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqQuestionColor`,type:`?string`,id:`param-faq-question-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`faqQuestionColorLight`,type:`?string`,id:`param-faq-question-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqAnswerSize`,type:`Enums\\\\FaqAnswerSize|string|null`,id:`param-faq-answer-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Answer size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqAnswerWeight`,type:`Enums\\\\FaqAnswerWeight|string|null`,id:`param-faq-answer-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Answer weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqAnswerColor`,type:`?string`,id:`param-faq-answer-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`faqAnswerColorLight`,type:`?string`,id:`param-faq-answer-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqGroupHeadingWeight`,type:`Enums\\\\FaqGroupHeadingWeight|string|null`,id:`param-faq-group-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Category heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqGroupHeadingColor`,type:`?string`,id:`param-faq-group-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`faqGroupHeadingColorLight`,type:`?string`,id:`param-faq-group-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`faqBg`,type:`Enums\\\\FaqBg|string|null`,id:`param-faq-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqBgCustom`,type:`?string`,id:`param-faq-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`faqBgLight`,type:`Enums\\\\FaqBgLight|string|null`,id:`param-faq-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqBgLightCustom`,type:`?string`,id:`param-faq-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`faqFontOverrides`,type:`Collection\u003cint, FaqWidgetFaqFontOverridesItem>|null`,id:`param-faq-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FaqWidgetFaqFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FaqWidgetFaqFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FaqWidgetFaqFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-148`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FaqWidgetFaqFontOverridesItemUploadsItem>|null`,id:`param-uploads-38`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FaqWidgetFaqFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FaqWidgetFaqFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FaqWidgetFaqFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-149`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-144`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-38`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-145`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`faqCtaLabel`,type:`?string`,id:`param-faq-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`faqCtaUrl`,type:`?string`,id:`param-faq-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`faqCtaNewTab`,type:`?bool`,id:`param-faq-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`faqCtaVariant`,type:`Enums\\\\FaqCtaVariant|string|null`,id:`param-faq-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaSize`,type:`Enums\\\\FaqCtaSize|string|null`,id:`param-faq-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaRadius`,type:`Enums\\\\FaqCtaRadius|string|null`,id:`param-faq-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaColor`,type:`?string`,id:`param-faq-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`faqCtaColorLight`,type:`?string`,id:`param-faq-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`faqCtaTextColor`,type:`?string`,id:`param-faq-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`faqCtaTextColorLight`,type:`?string`,id:`param-faq-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`faqCtaHoverColor`,type:`?string`,id:`param-faq-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`faqCtaHoverColorLight`,type:`?string`,id:`param-faq-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`faqCtaStyle`,type:`Enums\\\\FaqCtaStyle|string|null`,id:`param-faq-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaShadowColor`,type:`?string`,id:`param-faq-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`faqCtaShadowColorLight`,type:`?string`,id:`param-faq-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`faqCtaAnimation`,type:`Enums\\\\FaqCtaAnimation|string|null`,id:`param-faq-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaIcon`,type:`?string`,id:`param-faq-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`faqCtaIconFamily`,type:`Enums\\\\FaqCtaIconFamily|string|null`,id:`param-faq-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaIconPosition`,type:`Enums\\\\FaqCtaIconPosition|string|null`,id:`param-faq-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`faqCtaIconNudge`,type:`?bool`,id:`param-faq-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-146`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`ServiceMapWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`service-map`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\ServiceMapWidgetType|string`,id:`param-type-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`service-map`}),`. One of `,_jsx(_components.code,{children:`service-map`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-150`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-57`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrow`,type:`?string`,id:`param-service-map-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrowColor`,type:`?string`,id:`param-service-map-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrowColorLight`,type:`?string`,id:`param-service-map-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrowWeight`,type:`Enums\\\\ServiceMapEyebrowWeight|string|null`,id:`param-service-map-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapEyebrowSize`,type:`Enums\\\\ServiceMapEyebrowSize|string|null`,id:`param-service-map-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapHeading`,type:`?string`,id:`param-service-map-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading.`]})}),_jsx(ResponseField,{name:`serviceMapHeadingColor`,type:`?string`,id:`param-service-map-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty for the standard ink color.`]})}),_jsx(ResponseField,{name:`serviceMapHeadingColorLight`,type:`?string`,id:`param-service-map-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapHeadingWeight`,type:`Enums\\\\ServiceMapHeadingWeight|string|null`,id:`param-service-map-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapIntro`,type:`?string`,id:`param-service-map-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short paragraph under the heading. The data source’s own description (service days etc.) shows in the result panel, not here.`]})}),_jsx(ResponseField,{name:`serviceMapIntroSize`,type:`Enums\\\\ServiceMapIntroSize|string|null`,id:`param-service-map-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapHeight`,type:`Enums\\\\ServiceMapHeight|string|null`,id:`param-service-map-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Map height. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`standard`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapTheme`,type:`Enums\\\\ServiceMapTheme|string|null`,id:`param-service-map-theme-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Curated light/dark basemap pairs — each follows the visitor’s theme toggle. “Site palette” derives the basemap from this site’s own colors. One of `,_jsx(_components.code,{children:`palette`}),`, `,_jsx(_components.code,{children:`classic`}),`, `,_jsx(_components.code,{children:`silver`}),`, `,_jsx(_components.code,{children:`retro`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapFrameRadius`,type:`Enums\\\\ServiceMapFrameRadius|string|null`,id:`param-service-map-frame-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Map corner radius. One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapFrameBorderColor`,type:`?string`,id:`param-service-map-frame-border-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty for the standard hairline — set it to match a colored border on the zone cards.`]})}),_jsx(ResponseField,{name:`serviceMapFrameBorderColorLight`,type:`?string`,id:`param-service-map-frame-border-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapFrameGlowColor`,type:`?string`,id:`param-service-map-frame-glow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional soft glow around the map frame — pairs with a glowing zone-card style. Leave empty for none.`]})}),_jsx(ResponseField,{name:`serviceMapFrameGlowColorLight`,type:`?string`,id:`param-service-map-frame-glow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapSchema`,type:`?bool`,id:`param-service-map-schema-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. On pages with this section, upgrades the business structured data from the compact site-wide form to the full detail: every public place name, every zip code, and area boundaries. Costs visitors nothing; turn off to keep this page at the compact site-wide form. (Requires structured data on in Site settings → SEO; demo map data is never published.)`]})}),_jsx(ResponseField,{name:`serviceMapShowLegend`,type:`?bool`,id:`param-service-map-show-legend-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The legend card overlaid on the map. The zone cards below the map always carry the same information for screen readers and when the map can’t load.`]})}),_jsx(ResponseField,{name:`serviceMapKeySwatchSize`,type:`Enums\\\\ServiceMapKeySwatchSize|string|null`,id:`param-service-map-key-swatch-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Key swatch size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapKeyJustify`,type:`Enums\\\\ServiceMapKeyJustify|string|null`,id:`param-service-map-key-justify-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Key text justification. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextSize`,type:`Enums\\\\ServiceMapKeyTextSize|string|null`,id:`param-service-map-key-text-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Key text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextWeight`,type:`Enums\\\\ServiceMapKeyTextWeight|string|null`,id:`param-service-map-key-text-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Key text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextColor`,type:`?string`,id:`param-service-map-key-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty for the standard ink color.`]})}),_jsx(ResponseField,{name:`serviceMapKeyTextColorLight`,type:`?string`,id:`param-service-map-key-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapKeyRadius`,type:`Enums\\\\ServiceMapKeyRadius|string|null`,id:`param-service-map-key-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Key corner radius. One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapKeyBorderColor`,type:`?string`,id:`param-service-map-key-border-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty for the standard hairline — set it to match the map frame or the zone cards.`]})}),_jsx(ResponseField,{name:`serviceMapKeyBorderColorLight`,type:`?string`,id:`param-service-map-key-border-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapKeyGlowColor`,type:`?string`,id:`param-service-map-key-glow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional soft glow around the key card. Leave empty for none.`]})}),_jsx(ResponseField,{name:`serviceMapKeyGlowColorLight`,type:`?string`,id:`param-service-map-key-glow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapShowCards`,type:`?bool`,id:`param-service-map-show-cards-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The zone/pricing cards under the map. Turning this off hides them visually — they stay in the page for screen readers and no-JavaScript visitors (the map itself isn’t accessible).`]})}),_jsx(ResponseField,{name:`serviceMapCardStyle`,type:`Enums\\\\ServiceMapCardStyle|string|null`,id:`param-service-map-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card surface. Raised is a quiet lit card; Luxe is a frosted glass panel; Outline is a double-rule plaque frame; Plain has no chrome; Poster frames the card with an accent keyline; Spine embeds a color rail along the top; Tint washes the card in the accent color. Showstoppers: Ticket punches notches into the sides, Bracket draws only corner marks, Forge is a machined plate with an engraved frame, Press is a punched index card with a margin rule, Inlay recesses the content into a well. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardStyleRadius`,type:`Enums\\\\ServiceMapCardStyleRadius|string|null`,id:`param-service-map-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardStyleAccentColor`,type:`?string`,id:`param-service-map-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`serviceMapCardStyleAccentColorLight`,type:`?string`,id:`param-service-map-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapCardsHover`,type:`Enums\\\\ServiceMapCardsHover|string|null`,id:`param-service-map-cards-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant CSS effects; Sheen sweeps a soft light across; Tilt, Magnetic and Spotlight follow the cursor (these need site animations on — visitors who prefer reduced motion see the resting card). Pick a different one per section so a page feels varied, not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSwatchSize`,type:`Enums\\\\ServiceMapCardsSwatchSize|string|null`,id:`param-service-map-cards-swatch-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Card swatch size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsJustify`,type:`Enums\\\\ServiceMapCardsJustify|string|null`,id:`param-service-map-cards-justify-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Card text justification. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsNameWeight`,type:`Enums\\\\ServiceMapCardsNameWeight|string|null`,id:`param-service-map-cards-name-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Zone name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsTextSize`,type:`Enums\\\\ServiceMapCardsTextSize|string|null`,id:`param-service-map-cards-text-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Card text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsTextColor`,type:`?string`,id:`param-service-map-cards-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Colors the zone names; supporting copy stays muted. Leave empty for the standard ink color.`]})}),_jsx(ResponseField,{name:`serviceMapCardsTextColorLight`,type:`?string`,id:`param-service-map-cards-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSubSize`,type:`Enums\\\\ServiceMapCardsSubSize|string|null`,id:`param-service-map-cards-sub-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The price and detail lines under each zone name — sized relative to the card text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSubWeight`,type:`Enums\\\\ServiceMapCardsSubWeight|string|null`,id:`param-service-map-cards-sub-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Supporting text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSubColor`,type:`?string`,id:`param-service-map-cards-sub-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty for the standard muted color.`]})}),_jsx(ResponseField,{name:`serviceMapCardsSubColorLight`,type:`?string`,id:`param-service-map-cards-sub-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`serviceMapIncludedLabel`,type:`?string`,id:`param-service-map-included-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional label shown instead of “`,`$0” wherever a zone has no fee (key, cards, results). Clear it to show the plain price — $`,`0 doesn’t always mean included.`]})}),_jsxs(ResponseField,{name:`serviceMapZoneOverrides`,type:`Collection\u003cint, ServiceMapWidgetServiceMapZoneOverridesItem>|null`,id:`param-service-map-zone-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`ServiceMapWidgetServiceMapZoneOverridesItem`}),`. Per-zone display overrides, matched by the zone name the data source provides. Rename a zone, replace its price text, or hide it entirely — the underlying data is never changed.`]}),_jsxs(Expandable,{title:`ServiceMapWidgetServiceMapZoneOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidgetServiceMapZoneOverridesItem)`,children:[_jsx(ResponseField,{name:`zoneName`,type:`string`,id:`param-zone-name-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Case-insensitive match against the zone name in the map data.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-151`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`displayName`,type:`?string`,id:`param-display-name-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional replacement name shown everywhere this zone appears.`]})}),_jsx(ResponseField,{name:`priceLabel`,type:`?string`,id:`param-price-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional replacement for the price text (e.g. “Included”, “Call us”). Overrides the zero-price label too.`]})}),_jsx(ResponseField,{name:`hide`,type:`?bool`,id:`param-hide-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The zone stays on the map and in search results — it just leaves the key and cards.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-147`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`serviceMapShowSearch`,type:`?bool`,id:`param-service-map-show-search-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show the “check your area” search.`]})}),_jsx(ResponseField,{name:`serviceMapSearchLabel`,type:`?string`,id:`param-service-map-search-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Search label.`]})}),_jsx(ResponseField,{name:`serviceMapSearchPlaceholder`,type:`?string`,id:`param-service-map-search-placeholder-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Search placeholder.`]})}),_jsx(ResponseField,{name:`serviceMapSearchJustify`,type:`Enums\\\\ServiceMapSearchJustify|string|null`,id:`param-service-map-search-justify-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Positions the search box and button above the map. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapSearchInputRadius`,type:`Enums\\\\ServiceMapSearchInputRadius|string|null`,id:`param-service-map-search-input-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Same radius scale as the buttons, so the box and button can match. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapAutocomplete`,type:`?bool`,id:`param-service-map-autocomplete-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Google address autocomplete under the search box (needs the Places API enabled on the key — see the setup guide in Connections → Google Maps). ZIP-only typing never triggers suggestions when the data source is zip-based.`]})}),_jsx(ResponseField,{name:`serviceMapOutsideAreaText`,type:`?string`,id:`param-service-map-outside-area-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Shown when a searched location doesn’t fall in any zone (or the premium radius).`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonText`,type:`?string`,id:`param-service-map-search-button-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Leave empty for “Check”. The button’s look is configured in the Search button tab.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonVariant`,type:`Enums\\\\ServiceMapSearchButtonVariant|string|null`,id:`param-service-map-search-button-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonSize`,type:`Enums\\\\ServiceMapSearchButtonSize|string|null`,id:`param-service-map-search-button-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonRadius`,type:`Enums\\\\ServiceMapSearchButtonRadius|string|null`,id:`param-service-map-search-button-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonColor`,type:`?string`,id:`param-service-map-search-button-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonColorLight`,type:`?string`,id:`param-service-map-search-button-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonTextColor`,type:`?string`,id:`param-service-map-search-button-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonTextColorLight`,type:`?string`,id:`param-service-map-search-button-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonHoverColor`,type:`?string`,id:`param-service-map-search-button-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonHoverColorLight`,type:`?string`,id:`param-service-map-search-button-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonStyle`,type:`Enums\\\\ServiceMapSearchButtonStyle|string|null`,id:`param-service-map-search-button-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonShadowColor`,type:`?string`,id:`param-service-map-search-button-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonShadowColorLight`,type:`?string`,id:`param-service-map-search-button-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`serviceMapSearchButtonAnimation`,type:`Enums\\\\ServiceMapSearchButtonAnimation|string|null`,id:`param-service-map-search-button-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapPanelPlacement`,type:`Enums\\\\ServiceMapPanelPlacement|string|null`,id:`param-service-map-panel-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Popup placement. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`corner`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapPanelLook`,type:`Enums\\\\ServiceMapPanelLook|string|null`,id:`param-service-map-panel-look-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Popup style. One of `,_jsx(_components.code,{children:`overlay`}),`, `,_jsx(_components.code,{children:`solid`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapPanelShowQuery`,type:`?bool`,id:`param-service-map-panel-show-query-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Repeats the searched ZIP code or address at the top of the result popup.`]})}),_jsx(ResponseField,{name:`serviceMapPanelShowCity`,type:`?bool`,id:`param-service-map-panel-show-city-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Looks up the locality for a searched ZIP code (one extra Geocoding API call per search) and shows it beside the searched value.`]})}),_jsx(ResponseField,{name:`serviceMapPanelTextSize`,type:`Enums\\\\ServiceMapPanelTextSize|string|null`,id:`param-service-map-panel-text-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Popup text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapPanelTitleWeight`,type:`Enums\\\\ServiceMapPanelTitleWeight|string|null`,id:`param-service-map-panel-title-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Popup title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapShowPremium`,type:`?bool`,id:`param-service-map-show-premium-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. When the data carries a premium (distance-priced) service, include it in search results and the zone cards. Sources without their own premium block use the pricing set in Service area map → Areas and pricing.`]})}),_jsx(ResponseField,{name:`serviceMapShowPremiumRing`,type:`?bool`,id:`param-service-map-show-premium-ring-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Needs a premium range limit (miles) — with no limit there is no ring to draw.`]})}),_jsx(ResponseField,{name:`serviceMapPremiumEstimateNote`,type:`?string`,id:`param-service-map-premium-estimate-note-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Premium estimate note.`]})}),_jsx(ResponseField,{name:`serviceMapPremiumUnavailableText`,type:`?string`,id:`param-service-map-premium-unavailable-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Shown when a distance estimate isn’t possible (e.g. the Distance Matrix API isn’t enabled on the key).`]})}),_jsx(ResponseField,{name:`serviceMapMarkerImage`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-service-map-marker-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional logo/pin image for the business marker. Leave empty for a simple accent-color pin. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerImageLight`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-service-map-marker-image-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme variant. Falls back to the dark-theme image. The related `,_jsx(_components.code,{children:`@apostrophecms/image`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerLabel`,type:`?string`,id:`param-service-map-marker-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Accessible name + hover title for the marker. Leave empty to use the business name from Site settings.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerSize`,type:`Enums\\\\ServiceMapMarkerSize|string|null`,id:`param-service-map-marker-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Marker size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapMarkerBounce`,type:`?bool`,id:`param-service-map-marker-bounce-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The business marker gently bobs in place. Automatically disabled for visitors who prefer reduced motion.`]})}),_jsx(ResponseField,{name:`serviceMapShowLocation`,type:`?bool`,id:`param-service-map-show-location-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Adds the business location (named by its label in Service area map → Your location) as the FIRST entry of the map key and zone cards.`]})}),_jsx(ResponseField,{name:`serviceMapBg`,type:`Enums\\\\ServiceMapBg|string|null`,id:`param-service-map-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapBgCustom`,type:`?string`,id:`param-service-map-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`serviceMapBgLight`,type:`Enums\\\\ServiceMapBgLight|string|null`,id:`param-service-map-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`serviceMapBgLightCustom`,type:`?string`,id:`param-service-map-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`serviceMapFontOverrides`,type:`Collection\u003cint, ServiceMapWidgetServiceMapFontOverridesItem>|null`,id:`param-service-map-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`ServiceMapWidgetServiceMapFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`ServiceMapWidgetServiceMapFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidgetServiceMapFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-152`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, ServiceMapWidgetServiceMapFontOverridesItemUploadsItem>|null`,id:`param-uploads-39`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`ServiceMapWidgetServiceMapFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`ServiceMapWidgetServiceMapFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\ServiceMapWidgetServiceMapFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-153`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-148`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-39`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-149`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-150`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`BlogPreviewWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogPreviewWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`blog-preview`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\BlogPreviewWidgetType|string`,id:`param-type-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`blog-preview`}),`. One of `,_jsx(_components.code,{children:`blog-preview`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-154`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-58`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogHeading`,type:`?string`,id:`param-blog-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading.`]})}),_jsx(ResponseField,{name:`blogSubheading`,type:`?string`,id:`param-blog-subheading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Subheading.`]})}),_jsx(ResponseField,{name:`blogCardImageAspect`,type:`Enums\\\\BlogCardImageAspect|string|null`,id:`param-blog-card-image-aspect-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Aspect ratio of the featured image. Choose “Hidden” for text-only cards. One of `,_jsx(_components.code,{children:`16/10`}),`, `,_jsx(_components.code,{children:`4/3`}),`, `,_jsx(_components.code,{children:`3/2`}),`, `,_jsx(_components.code,{children:`1/1`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardImageHover`,type:`Enums\\\\BlogCardImageHover|string|null`,id:`param-blog-card-image-hover-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Image hover. One of `,_jsx(_components.code,{children:`zoom`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardImageFill`,type:`?bool`,id:`param-blog-card-image-fill-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Use the featured image as the full card background, with the title and meta overlaid on a dark scrim. Posts with no image fall back to a normal card.`]})}),_jsx(ResponseField,{name:`blogCardPreset`,type:`Enums\\\\BlogCardPreset|string|null`,id:`param-blog-card-preset-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card surface. Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. (On image-led cards the photo covers the top edge.) One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardPresetRadius`,type:`Enums\\\\BlogCardPresetRadius|string|null`,id:`param-blog-card-preset-radius-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardPresetAccentColor`,type:`?string`,id:`param-blog-card-preset-accent-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`blogCardPresetAccentColorLight`,type:`?string`,id:`param-blog-card-preset-accent-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`blogCardPresetForgeScope`,type:`Enums\\\\BlogCardPresetForgeScope|string|null`,id:`param-blog-card-preset-forge-scope-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardPresetForgeWeight`,type:`Enums\\\\BlogCardPresetForgeWeight|string|null`,id:`param-blog-card-preset-forge-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardHover`,type:`Enums\\\\BlogCardHover|string|null`,id:`param-blog-card-hover-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt (3-D + glare), Magnetic and Spotlight follow the cursor (need site animations on). The Hover color below tints these. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardHoverColor`,type:`?string`,id:`param-blog-card-hover-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Border / shadow / glow color on hover. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`blogCardHoverColorLight`,type:`?string`,id:`param-blog-card-hover-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardShowCategory`,type:`?bool`,id:`param-blog-card-show-category-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show category.`]})}),_jsx(ResponseField,{name:`blogCardCategoryStyle`,type:`Enums\\\\BlogCardCategoryStyle|string|null`,id:`param-blog-card-category-style-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How the category badge uses its color (set per category under Blog Categories). Filled = colored background; Outline = colored border + text; Minimal = colored text only. One of `,_jsx(_components.code,{children:`filled`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`minimal`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardShowDate`,type:`?bool`,id:`param-blog-card-show-date-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show date.`]})}),_jsx(ResponseField,{name:`blogCardShowExcerpt`,type:`?bool`,id:`param-blog-card-show-excerpt-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show excerpt.`]})}),_jsx(ResponseField,{name:`blogCardExcerptLines`,type:`Enums\\\\BlogCardExcerptLines|string|null`,id:`param-blog-card-excerpt-lines-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many lines of the excerpt to show before truncating. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardShowAuthor`,type:`?bool`,id:`param-blog-card-show-author-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show author.`]})}),_jsx(ResponseField,{name:`blogCardShowReadMore`,type:`?bool`,id:`param-blog-card-show-read-more-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show “Read post” link.`]})}),_jsx(ResponseField,{name:`blogCardReadMorePlacement`,type:`Enums\\\\BlogCardReadMorePlacement|string|null`,id:`param-blog-card-read-more-placement-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto puts it on the right of horizontal cards (list / compact / featured) and below the text on grid cards. Or force one placement everywhere. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`below`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreColor`,type:`?string`,id:`param-blog-card-read-more-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the “Read post” link color. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreColorLight`,type:`?string`,id:`param-blog-card-read-more-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColor`,type:`?string`,id:`param-blog-card-read-more-hover-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Color of the “Read post” link when the card is hovered. Leave empty to use the accent color.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColorLight`,type:`?string`,id:`param-blog-card-read-more-hover-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardTitleColor`,type:`?string`,id:`param-blog-card-title-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the card title color. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`blogCardTitleColorLight`,type:`?string`,id:`param-blog-card-title-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`blogCardTitleWeight`,type:`Enums\\\\BlogCardTitleWeight|string|null`,id:`param-blog-card-title-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardTitleHoverColor`,type:`?string`,id:`param-blog-card-title-hover-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Title color when the card is hovered. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`blogCardTitleHoverColorLight`,type:`?string`,id:`param-blog-card-title-hover-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardTextColor`,type:`?string`,id:`param-blog-card-text-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the excerpt text color. Leave empty for the muted default.`]})}),_jsx(ResponseField,{name:`blogCardTextColorLight`,type:`?string`,id:`param-blog-card-text-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.`]})}),_jsx(ResponseField,{name:`blogCardTextWeight`,type:`Enums\\\\BlogCardTextWeight|string|null`,id:`param-blog-card-text-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Excerpt weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardMetaColor`,type:`?string`,id:`param-blog-card-meta-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Date / meta line color. Leave empty for the faint default.`]})}),_jsx(ResponseField,{name:`blogCardMetaColorLight`,type:`?string`,id:`param-blog-card-meta-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the faint default.`]})}),_jsx(ResponseField,{name:`blogBg`,type:`Enums\\\\BlogBg|string|null`,id:`param-blog-bg-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogBgCustom`,type:`?string`,id:`param-blog-bg-custom-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`blogBgLight`,type:`Enums\\\\BlogBgLight|string|null`,id:`param-blog-bg-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogBgLightCustom`,type:`?string`,id:`param-blog-bg-light-custom-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`blogFontOverrides`,type:`Collection\u003cint, BlogPreviewWidgetBlogFontOverridesItem>|null`,id:`param-blog-font-overrides-2`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`BlogPreviewWidgetBlogFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`BlogPreviewWidgetBlogFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogPreviewWidgetBlogFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-155`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, BlogPreviewWidgetBlogFontOverridesItemUploadsItem>|null`,id:`param-uploads-40`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`BlogPreviewWidgetBlogFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`BlogPreviewWidgetBlogFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogPreviewWidgetBlogFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-156`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-151`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-40`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-152`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`blogCtaLabel`,type:`?string`,id:`param-blog-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`blogCtaUrl`,type:`?string`,id:`param-blog-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`blogCtaNewTab`,type:`?bool`,id:`param-blog-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`blogCtaVariant`,type:`Enums\\\\BlogCtaVariant|string|null`,id:`param-blog-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaSize`,type:`Enums\\\\BlogCtaSize|string|null`,id:`param-blog-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaRadius`,type:`Enums\\\\BlogCtaRadius|string|null`,id:`param-blog-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaColor`,type:`?string`,id:`param-blog-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`blogCtaColorLight`,type:`?string`,id:`param-blog-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`blogCtaTextColor`,type:`?string`,id:`param-blog-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`blogCtaTextColorLight`,type:`?string`,id:`param-blog-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`blogCtaHoverColor`,type:`?string`,id:`param-blog-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`blogCtaHoverColorLight`,type:`?string`,id:`param-blog-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`blogCtaStyle`,type:`Enums\\\\BlogCtaStyle|string|null`,id:`param-blog-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaShadowColor`,type:`?string`,id:`param-blog-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`blogCtaShadowColorLight`,type:`?string`,id:`param-blog-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`blogCtaAnimation`,type:`Enums\\\\BlogCtaAnimation|string|null`,id:`param-blog-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaIcon`,type:`?string`,id:`param-blog-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`blogCtaIconFamily`,type:`Enums\\\\BlogCtaIconFamily|string|null`,id:`param-blog-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaIconPosition`,type:`Enums\\\\BlogCtaIconPosition|string|null`,id:`param-blog-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCtaIconNudge`,type:`?bool`,id:`param-blog-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-153`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`CookieDeclarationWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CookieDeclarationWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`cookie-declaration`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\CookieDeclarationWidgetType|string`,id:`param-type-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`cookie-declaration`}),`. One of `,_jsx(_components.code,{children:`cookie-declaration`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-157`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-59`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cookieDeclEyebrow`,type:`?string`,id:`param-cookie-decl-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow.`]})}),_jsx(ResponseField,{name:`cookieDeclHeading`,type:`?string`,id:`param-cookie-decl-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading.`]})}),_jsx(ResponseField,{name:`cookieDeclIntro`,type:`?string`,id:`param-cookie-decl-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Introduction.`]})}),_jsx(ResponseField,{name:`cookieDeclShowStatus`,type:`?bool`,id:`param-cookie-decl-show-status-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A short block naming what this visitor has allowed, with a button that reopens the preferences panel. Withdrawal has to be as easy as consent, so leave this on unless the page offers another way.`]})}),_jsx(ResponseField,{name:`cookieDeclShowTable`,type:`?bool`,id:`param-cookie-decl-show-table-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Provider, type, duration and domain per entry. Off leaves the plain-language disclosures alone, which reads better but tells a technical reader less.`]})}),_jsx(ResponseField,{name:`cookieDeclLayout`,type:`Enums\\\\CookieDeclLayout|string|null`,id:`param-cookie-decl-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Layout. One of `,_jsx(_components.code,{children:`stacked`}),`, `,_jsx(_components.code,{children:`compact`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cookieDeclBg`,type:`Enums\\\\CookieDeclBg|string|null`,id:`param-cookie-decl-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cookieDeclBgCustom`,type:`?string`,id:`param-cookie-decl-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`cookieDeclBgLight`,type:`Enums\\\\CookieDeclBgLight|string|null`,id:`param-cookie-decl-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cookieDeclBgLightCustom`,type:`?string`,id:`param-cookie-decl-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`cookieDeclFontOverrides`,type:`Collection\u003cint, CookieDeclarationWidgetCookieDeclFontOverridesItem>|null`,id:`param-cookie-decl-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`CookieDeclarationWidgetCookieDeclFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`CookieDeclarationWidgetCookieDeclFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CookieDeclarationWidgetCookieDeclFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-158`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem>|null`,id:`param-uploads-41`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\CookieDeclarationWidgetCookieDeclFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-159`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-154`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-41`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-155`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-156`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`RichTextWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\RichTextWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\RichTextWidgetType|string`,id:`param-type-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`. One of `,_jsx(_components.code,{children:`@apostrophecms/rich-text`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-160`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-60`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`content`,type:`?string`,id:`param-content-5`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text as HTML, e.g. `,_jsx(_components.code,{children:`\u003ch2>Our story\u003c/h2>\u003cp>It began with \u003cstrong>one\u003c/strong> idea.\u003c/p>`}),`. The site keeps the tags and styles this area’s editor offers (paragraphs, headings, bold, italic, links, lists…) and removes the rest.`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-157`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`GoogleReviewsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GoogleReviewsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`google-reviews`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\GoogleReviewsWidgetType|string`,id:`param-type-54`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`google-reviews`}),`. One of `,_jsx(_components.code,{children:`google-reviews`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-161`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-61`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsEyebrow`,type:`?string`,id:`param-reviews-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`reviewsEyebrowColor`,type:`?string`,id:`param-reviews-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`reviewsEyebrowColorLight`,type:`?string`,id:`param-reviews-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`reviewsEyebrowWeight`,type:`Enums\\\\ReviewsEyebrowWeight|string|null`,id:`param-reviews-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsEyebrowSize`,type:`Enums\\\\ReviewsEyebrowSize|string|null`,id:`param-reviews-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsHeading`,type:`?string`,id:`param-reviews-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the reviews.`]})}),_jsx(ResponseField,{name:`reviewsHeadingColor`,type:`?string`,id:`param-reviews-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`reviewsHeadingColorLight`,type:`?string`,id:`param-reviews-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsHeadingWeight`,type:`Enums\\\\ReviewsHeadingWeight|string|null`,id:`param-reviews-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsIntro`,type:`?string`,id:`param-reviews-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`reviewsIntroColor`,type:`?string`,id:`param-reviews-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`reviewsIntroColorLight`,type:`?string`,id:`param-reviews-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsIntroWeight`,type:`Enums\\\\ReviewsIntroWeight|string|null`,id:`param-reviews-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsIntroSize`,type:`Enums\\\\ReviewsIntroSize|string|null`,id:`param-reviews-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsAlign`,type:`Enums\\\\ReviewsAlign|string|null`,id:`param-reviews-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsMinRating`,type:`Enums\\\\ReviewsMinRating|string|null`,id:`param-reviews-min-rating-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Only show reviews at or above this star rating. One of `,_jsx(_components.code,{children:`0`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsFeaturedOnly`,type:`?bool`,id:`param-reviews-featured-only-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show only reviews you have flagged “Featured” in the Google Reviews manager — hand-curate exactly which appear.`]})}),_jsx(ResponseField,{name:`reviewsCount`,type:`?int`,id:`param-reviews-count-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The most reviews to show (newest first). 1 to 30.`]})}),_jsx(ResponseField,{name:`reviewsLayout`,type:`Enums\\\\ReviewsLayout|string|null`,id:`param-reviews-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Animated carousel: a continuous, auto-scrolling marquee of cards (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered, Pinterest-style grid that hugs each review’s length. One of `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`masonry`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsColumns`,type:`Enums\\\\ReviewsColumns|string|null`,id:`param-reviews-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many cards per row (grid) or columns (masonry). Auto fits as many as comfortably fit. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsSpeed`,type:`Enums\\\\ReviewsSpeed|string|null`,id:`param-reviews-speed-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the carousel auto-scrolls. The review carousel runs on its own (gentler) speed scale than the logos/footer marquees so two never scroll in lockstep. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsDirection`,type:`Enums\\\\ReviewsDirection|string|null`,id:`param-reviews-direction-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsGap`,type:`Enums\\\\ReviewsGap|string|null`,id:`param-reviews-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsShowAvatar`,type:`?bool`,id:`param-reviews-show-avatar-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show the reviewer’s Google avatar (falls back to a lettered initial when missing or anonymous).`]})}),_jsx(ResponseField,{name:`reviewsShowRating`,type:`?bool`,id:`param-reviews-show-rating-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show star rating.`]})}),_jsx(ResponseField,{name:`reviewsShowDate`,type:`?bool`,id:`param-reviews-show-date-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show review date.`]})}),_jsx(ResponseField,{name:`reviewsShowReply`,type:`?bool`,id:`param-reviews-show-reply-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Include the business’s public reply beneath a review when there is one.`]})}),_jsx(ResponseField,{name:`reviewsShowAttribution`,type:`?bool`,id:`param-reviews-show-attribution-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small Google attribution lockup under the section — recommended when showing Google reviews.`]})}),_jsx(ResponseField,{name:`reviewsCardStyle`,type:`Enums\\\\ReviewsCardStyle|string|null`,id:`param-reviews-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card surface. Raised is a quiet lit card; Luxe is a frosted glass panel; Outline is a double-rule plaque frame; Plain has no chrome; Poster frames the card with an accent keyline; Spine embeds a color rail along the top; Tint washes the card in the accent color. Showstoppers: Ticket punches notches into the sides, Bracket draws only corner marks, Forge is a machined plate with an engraved frame, Press is a punched index card with a margin rule, Inlay recesses the content into a well. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleRadius`,type:`Enums\\\\ReviewsCardStyleRadius|string|null`,id:`param-reviews-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleAccentColor`,type:`?string`,id:`param-reviews-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleAccentColorLight`,type:`?string`,id:`param-reviews-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleForgeScope`,type:`Enums\\\\ReviewsCardStyleForgeScope|string|null`,id:`param-reviews-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardStyleForgeWeight`,type:`Enums\\\\ReviewsCardStyleForgeWeight|string|null`,id:`param-reviews-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardHover`,type:`Enums\\\\ReviewsCardHover|string|null`,id:`param-reviews-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardWidth`,type:`Enums\\\\ReviewsCardWidth|string|null`,id:`param-reviews-card-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sets the carousel card width and the minimum card width in the grid/masonry layouts. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardHeight`,type:`Enums\\\\ReviewsCardHeight|string|null`,id:`param-reviews-card-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto hugs the content; the taller presets give every card a consistent minimum height (grid + carousel). The masonry layout ignores this and staggers card heights itself. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCardAlign`,type:`Enums\\\\ReviewsCardAlign|string|null`,id:`param-reviews-card-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How the avatar, name, stars and text align inside each card. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsStarColor`,type:`?string`,id:`param-reviews-star-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use a warm amber. Applies in both themes.`]})}),_jsx(ResponseField,{name:`reviewsAccentColor`,type:`?string`,id:`param-reviews-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — background of the lettered fallback avatar. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`reviewsAccentColorLight`,type:`?string`,id:`param-reviews-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsNameSize`,type:`Enums\\\\ReviewsNameSize|string|null`,id:`param-reviews-name-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsNameWeight`,type:`Enums\\\\ReviewsNameWeight|string|null`,id:`param-reviews-name-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsNameColor`,type:`?string`,id:`param-reviews-name-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`reviewsNameColorLight`,type:`?string`,id:`param-reviews-name-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsDateSize`,type:`Enums\\\\ReviewsDateSize|string|null`,id:`param-reviews-date-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Date size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsDateWeight`,type:`Enums\\\\ReviewsDateWeight|string|null`,id:`param-reviews-date-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Date weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsDateColor`,type:`?string`,id:`param-reviews-date-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the faint text color.`]})}),_jsx(ResponseField,{name:`reviewsDateColorLight`,type:`?string`,id:`param-reviews-date-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsTextSize`,type:`Enums\\\\ReviewsTextSize|string|null`,id:`param-reviews-text-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Review text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsTextWeight`,type:`Enums\\\\ReviewsTextWeight|string|null`,id:`param-reviews-text-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Review text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsTextColor`,type:`?string`,id:`param-reviews-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`reviewsTextColorLight`,type:`?string`,id:`param-reviews-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`reviewsTextClamp`,type:`Enums\\\\ReviewsTextClamp|string|null`,id:`param-reviews-text-clamp-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cap each review at this many lines (the rest is truncated with an ellipsis) so one very long review can’t blow up the card height — important once real, lengthy reviews come in. Choose “Full text” to never truncate. Short reviews are unaffected. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`8`}),`, `,_jsx(_components.code,{children:`12`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsBg`,type:`Enums\\\\ReviewsBg|string|null`,id:`param-reviews-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsBgCustom`,type:`?string`,id:`param-reviews-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`reviewsBgLight`,type:`Enums\\\\ReviewsBgLight|string|null`,id:`param-reviews-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsBgLightCustom`,type:`?string`,id:`param-reviews-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`reviewsFontOverrides`,type:`Collection\u003cint, GoogleReviewsWidgetReviewsFontOverridesItem>|null`,id:`param-reviews-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`GoogleReviewsWidgetReviewsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`GoogleReviewsWidgetReviewsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GoogleReviewsWidgetReviewsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-162`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem>|null`,id:`param-uploads-42`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GoogleReviewsWidgetReviewsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-163`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-158`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-42`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-159`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`reviewsCtaLabel`,type:`?string`,id:`param-reviews-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`reviewsCtaUrl`,type:`?string`,id:`param-reviews-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`reviewsCtaNewTab`,type:`?bool`,id:`param-reviews-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`reviewsCtaVariant`,type:`Enums\\\\ReviewsCtaVariant|string|null`,id:`param-reviews-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaSize`,type:`Enums\\\\ReviewsCtaSize|string|null`,id:`param-reviews-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaRadius`,type:`Enums\\\\ReviewsCtaRadius|string|null`,id:`param-reviews-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaColor`,type:`?string`,id:`param-reviews-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`reviewsCtaColorLight`,type:`?string`,id:`param-reviews-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`reviewsCtaTextColor`,type:`?string`,id:`param-reviews-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`reviewsCtaTextColorLight`,type:`?string`,id:`param-reviews-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`reviewsCtaHoverColor`,type:`?string`,id:`param-reviews-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`reviewsCtaHoverColorLight`,type:`?string`,id:`param-reviews-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`reviewsCtaStyle`,type:`Enums\\\\ReviewsCtaStyle|string|null`,id:`param-reviews-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaShadowColor`,type:`?string`,id:`param-reviews-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`reviewsCtaShadowColorLight`,type:`?string`,id:`param-reviews-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`reviewsCtaAnimation`,type:`Enums\\\\ReviewsCtaAnimation|string|null`,id:`param-reviews-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaIcon`,type:`?string`,id:`param-reviews-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`reviewsCtaIconFamily`,type:`Enums\\\\ReviewsCtaIconFamily|string|null`,id:`param-reviews-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaIconPosition`,type:`Enums\\\\ReviewsCtaIconPosition|string|null`,id:`param-reviews-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`reviewsCtaIconNudge`,type:`?bool`,id:`param-reviews-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-160`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`TestimonialsWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TestimonialsWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`testimonials`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\TestimonialsWidgetType|string`,id:`param-type-55`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`testimonials`}),`. One of `,_jsx(_components.code,{children:`testimonials`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-164`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-62`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrow`,type:`?string`,id:`param-testimonials-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrowColor`,type:`?string`,id:`param-testimonials-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrowColorLight`,type:`?string`,id:`param-testimonials-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrowWeight`,type:`Enums\\\\TestimonialsEyebrowWeight|string|null`,id:`param-testimonials-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsEyebrowSize`,type:`Enums\\\\TestimonialsEyebrowSize|string|null`,id:`param-testimonials-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsHeading`,type:`?string`,id:`param-testimonials-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the testimonials.`]})}),_jsx(ResponseField,{name:`testimonialsHeadingColor`,type:`?string`,id:`param-testimonials-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`testimonialsHeadingColorLight`,type:`?string`,id:`param-testimonials-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsHeadingWeight`,type:`Enums\\\\TestimonialsHeadingWeight|string|null`,id:`param-testimonials-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsIntro`,type:`?string`,id:`param-testimonials-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`testimonialsIntroColor`,type:`?string`,id:`param-testimonials-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`testimonialsIntroColorLight`,type:`?string`,id:`param-testimonials-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsIntroWeight`,type:`Enums\\\\TestimonialsIntroWeight|string|null`,id:`param-testimonials-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsIntroSize`,type:`Enums\\\\TestimonialsIntroSize|string|null`,id:`param-testimonials-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsAlign`,type:`Enums\\\\TestimonialsAlign|string|null`,id:`param-testimonials-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsFeaturedOnly`,type:`?bool`,id:`param-testimonials-featured-only-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show only testimonials you have flagged “Featured” in the Testimonials manager — hand-curate exactly which appear.`]})}),_jsx(ResponseField,{name:`testimonialsCount`,type:`?int`,id:`param-testimonials-count-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The most testimonials to show (featured first). 1 to 30.`]})}),_jsx(ResponseField,{name:`testimonialsLayout`,type:`Enums\\\\TestimonialsLayout|string|null`,id:`param-testimonials-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Animated carousel: a continuous, auto-scrolling marquee of cards (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered, Pinterest-style grid that hugs each quote’s length. One of `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`masonry`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsColumns`,type:`Enums\\\\TestimonialsColumns|string|null`,id:`param-testimonials-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many cards per row (grid) or columns (masonry). Auto fits as many as comfortably fit. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsSpeed`,type:`Enums\\\\TestimonialsSpeed|string|null`,id:`param-testimonials-speed-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the carousel auto-scrolls. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsDirection`,type:`Enums\\\\TestimonialsDirection|string|null`,id:`param-testimonials-direction-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsGap`,type:`Enums\\\\TestimonialsGap|string|null`,id:`param-testimonials-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardLayout`,type:`Enums\\\\TestimonialsCardLayout|string|null`,id:`param-testimonials-card-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Quote-led: a large quotation mark over the quote, with the author in a footer (the classic testimonial look). Accent bar: the quote beside a bold accent bar. Classic: the author on top (photo + name), then the quote — like a review card. One of `,_jsx(_components.code,{children:`quote`}),`, `,_jsx(_components.code,{children:`bar`}),`, `,_jsx(_components.code,{children:`classic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsShowQuoteMark`,type:`?bool`,id:`param-testimonials-show-quote-mark-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The oversized “ glyph on the quote-led and accent-bar layouts.`]})}),_jsx(ResponseField,{name:`testimonialsShowAvatar`,type:`?bool`,id:`param-testimonials-show-avatar-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show the author’s photo (falls back to a lettered initial when none is set).`]})}),_jsx(ResponseField,{name:`testimonialsShowTitle`,type:`?bool`,id:`param-testimonials-show-title-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show author role / context.`]})}),_jsx(ResponseField,{name:`testimonialsShowRating`,type:`?bool`,id:`param-testimonials-show-rating-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Off by default — a testimonial usually leads with the quote. Turn on to show each testimonial’s star rating.`]})}),_jsx(ResponseField,{name:`testimonialsLinkLabel`,type:`?string`,id:`param-testimonials-link-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text for a testimonial’s optional “Source link” (set per testimonial in the Testimonials manager). Shown only on testimonials that have a link.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyle`,type:`Enums\\\\TestimonialsCardStyle|string|null`,id:`param-testimonials-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card treatment. Spine (the default) embeds a color rail along the top; Raised is a quiet lit card; Luxe a frosted glass panel; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleRadius`,type:`Enums\\\\TestimonialsCardStyleRadius|string|null`,id:`param-testimonials-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleAccentColor`,type:`?string`,id:`param-testimonials-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleAccentColorLight`,type:`?string`,id:`param-testimonials-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleForgeScope`,type:`Enums\\\\TestimonialsCardStyleForgeScope|string|null`,id:`param-testimonials-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardStyleForgeWeight`,type:`Enums\\\\TestimonialsCardStyleForgeWeight|string|null`,id:`param-testimonials-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardHover`,type:`Enums\\\\TestimonialsCardHover|string|null`,id:`param-testimonials-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). Vary it per section so the page is not cookie-cutter. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardWidth`,type:`Enums\\\\TestimonialsCardWidth|string|null`,id:`param-testimonials-card-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sets the carousel card width and the minimum card width in the grid/masonry layouts. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardHeight`,type:`Enums\\\\TestimonialsCardHeight|string|null`,id:`param-testimonials-card-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto hugs the content; the taller presets give every card a consistent minimum height (grid + carousel). The masonry layout ignores this and staggers card heights itself. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCardAlign`,type:`Enums\\\\TestimonialsCardAlign|string|null`,id:`param-testimonials-card-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How the quote and author align inside each card. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsStarColor`,type:`?string`,id:`param-testimonials-star-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use a warm amber. Applies in both themes (only when ratings are shown).`]})}),_jsx(ResponseField,{name:`testimonialsAccentColor`,type:`?string`,id:`param-testimonials-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — the quotation mark, the accent bar, and the lettered-avatar background. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`testimonialsAccentColorLight`,type:`?string`,id:`param-testimonials-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsNameSize`,type:`Enums\\\\TestimonialsNameSize|string|null`,id:`param-testimonials-name-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsNameWeight`,type:`Enums\\\\TestimonialsNameWeight|string|null`,id:`param-testimonials-name-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsNameColor`,type:`?string`,id:`param-testimonials-name-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`testimonialsNameColorLight`,type:`?string`,id:`param-testimonials-name-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsTitleSize`,type:`Enums\\\\TestimonialsTitleSize|string|null`,id:`param-testimonials-title-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Role size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsTitleWeight`,type:`Enums\\\\TestimonialsTitleWeight|string|null`,id:`param-testimonials-title-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Role weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsTitleColor`,type:`?string`,id:`param-testimonials-title-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the faint text color.`]})}),_jsx(ResponseField,{name:`testimonialsTitleColorLight`,type:`?string`,id:`param-testimonials-title-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteSize`,type:`Enums\\\\TestimonialsQuoteSize|string|null`,id:`param-testimonials-quote-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Quote size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteWeight`,type:`Enums\\\\TestimonialsQuoteWeight|string|null`,id:`param-testimonials-quote-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Quote weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteColor`,type:`?string`,id:`param-testimonials-quote-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the theme text color.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteColorLight`,type:`?string`,id:`param-testimonials-quote-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`testimonialsQuoteClamp`,type:`Enums\\\\TestimonialsQuoteClamp|string|null`,id:`param-testimonials-quote-clamp-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cap each quote at this many lines (the rest is truncated with an ellipsis) so one very long testimonial can’t blow up the card height. Choose “Full text” to never truncate. Short quotes are unaffected. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`8`}),`, `,_jsx(_components.code,{children:`12`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsBg`,type:`Enums\\\\TestimonialsBg|string|null`,id:`param-testimonials-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsBgCustom`,type:`?string`,id:`param-testimonials-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`testimonialsBgLight`,type:`Enums\\\\TestimonialsBgLight|string|null`,id:`param-testimonials-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsBgLightCustom`,type:`?string`,id:`param-testimonials-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`testimonialsFontOverrides`,type:`Collection\u003cint, TestimonialsWidgetTestimonialsFontOverridesItem>|null`,id:`param-testimonials-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`TestimonialsWidgetTestimonialsFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`TestimonialsWidgetTestimonialsFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TestimonialsWidgetTestimonialsFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-165`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem>|null`,id:`param-uploads-43`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\TestimonialsWidgetTestimonialsFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-166`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-161`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-43`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-162`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`testimonialsCtaLabel`,type:`?string`,id:`param-testimonials-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`testimonialsCtaUrl`,type:`?string`,id:`param-testimonials-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`testimonialsCtaNewTab`,type:`?bool`,id:`param-testimonials-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`testimonialsCtaVariant`,type:`Enums\\\\TestimonialsCtaVariant|string|null`,id:`param-testimonials-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaSize`,type:`Enums\\\\TestimonialsCtaSize|string|null`,id:`param-testimonials-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaRadius`,type:`Enums\\\\TestimonialsCtaRadius|string|null`,id:`param-testimonials-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaColor`,type:`?string`,id:`param-testimonials-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`testimonialsCtaColorLight`,type:`?string`,id:`param-testimonials-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`testimonialsCtaTextColor`,type:`?string`,id:`param-testimonials-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`testimonialsCtaTextColorLight`,type:`?string`,id:`param-testimonials-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`testimonialsCtaHoverColor`,type:`?string`,id:`param-testimonials-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`testimonialsCtaHoverColorLight`,type:`?string`,id:`param-testimonials-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`testimonialsCtaStyle`,type:`Enums\\\\TestimonialsCtaStyle|string|null`,id:`param-testimonials-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaShadowColor`,type:`?string`,id:`param-testimonials-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`testimonialsCtaShadowColorLight`,type:`?string`,id:`param-testimonials-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`testimonialsCtaAnimation`,type:`Enums\\\\TestimonialsCtaAnimation|string|null`,id:`param-testimonials-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIcon`,type:`?string`,id:`param-testimonials-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIconFamily`,type:`Enums\\\\TestimonialsCtaIconFamily|string|null`,id:`param-testimonials-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIconPosition`,type:`Enums\\\\TestimonialsCtaIconPosition|string|null`,id:`param-testimonials-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`testimonialsCtaIconNudge`,type:`?bool`,id:`param-testimonials-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-163`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`InstagramFeedWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\InstagramFeedWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`instagram-feed`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\InstagramFeedWidgetType|string`,id:`param-type-56`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`instagram-feed`}),`. One of `,_jsx(_components.code,{children:`instagram-feed`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-167`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-63`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramEyebrow`,type:`?string`,id:`param-instagram-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`instagramEyebrowColor`,type:`?string`,id:`param-instagram-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`instagramEyebrowColorLight`,type:`?string`,id:`param-instagram-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`instagramEyebrowWeight`,type:`Enums\\\\InstagramEyebrowWeight|string|null`,id:`param-instagram-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramEyebrowSize`,type:`Enums\\\\InstagramEyebrowSize|string|null`,id:`param-instagram-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramHeading`,type:`?string`,id:`param-instagram-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the feed.`]})}),_jsx(ResponseField,{name:`instagramHeadingColor`,type:`?string`,id:`param-instagram-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`instagramHeadingColorLight`,type:`?string`,id:`param-instagram-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`instagramHeadingWeight`,type:`Enums\\\\InstagramHeadingWeight|string|null`,id:`param-instagram-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramIntro`,type:`?string`,id:`param-instagram-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`instagramIntroColor`,type:`?string`,id:`param-instagram-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`instagramIntroColorLight`,type:`?string`,id:`param-instagram-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`instagramIntroWeight`,type:`Enums\\\\InstagramIntroWeight|string|null`,id:`param-instagram-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramIntroSize`,type:`Enums\\\\InstagramIntroSize|string|null`,id:`param-instagram-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramAlign`,type:`Enums\\\\InstagramAlign|string|null`,id:`param-instagram-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramFeaturedOnly`,type:`?bool`,id:`param-instagram-featured-only-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show only posts you have flagged “Featured” in the Instagram Posts manager — hand-curate exactly which appear.`]})}),_jsx(ResponseField,{name:`instagramCount`,type:`?int`,id:`param-instagram-count-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The most posts to show (newest first). 1 to 30.`]})}),_jsx(ResponseField,{name:`instagramMediaFilter`,type:`Enums\\\\InstagramMediaFilter|string|null`,id:`param-instagram-media-filter-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Filter this feed by media type. “Photos” keeps image and album posts; “Videos \u0026 reels” keeps only video posts. This is per-feed display only — it doesn’t change what gets synced. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`photos`}),`, `,_jsx(_components.code,{children:`videos`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramLayout`,type:`Enums\\\\InstagramLayout|string|null`,id:`param-instagram-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Carousel: a continuous, auto-scrolling marquee strip (great on a home page; needs site animations enabled — falls back to the grid when they are off). Grid: a tidy multi-row grid. Masonry: a staggered grid that hugs each image’s shape. Mosaic Photo Wall: an edge-to-edge, gap-free photo wall where rows are scaled to a common height (like Flickr / Google Photos) — the richest option for photos. One of `,_jsx(_components.code,{children:`carousel`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`masonry`}),`, `,_jsx(_components.code,{children:`justified`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramColumns`,type:`Enums\\\\InstagramColumns|string|null`,id:`param-instagram-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many tiles per row (grid) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout.) One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramJustifiedHeight`,type:`Enums\\\\InstagramJustifiedHeight|string|null`,id:`param-instagram-justified-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramJustifiedVary`,type:`?bool`,id:`param-instagram-justified-vary-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. For feeds where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.`]})}),_jsx(ResponseField,{name:`instagramSpeed`,type:`Enums\\\\InstagramSpeed|string|null`,id:`param-instagram-speed-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the carousel auto-scrolls. The feed runs on its own speed scale so two marquees on a page never scroll in lockstep. One of `,_jsx(_components.code,{children:`vslow`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramDirection`,type:`Enums\\\\InstagramDirection|string|null`,id:`param-instagram-direction-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scroll direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramGap`,type:`Enums\\\\InstagramGap|string|null`,id:`param-instagram-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between tiles. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramAspect`,type:`Enums\\\\InstagramAspect|string|null`,id:`param-instagram-aspect-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Crop each image to a consistent shape. “Original” keeps each image’s own ratio (best with the masonry layout). One of `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`portrait`}),`, `,_jsx(_components.code,{children:`landscape`}),`, `,_jsx(_components.code,{children:`original`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCardWidth`,type:`Enums\\\\InstagramCardWidth|string|null`,id:`param-instagram-card-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sets the carousel tile width and the minimum tile width in the grid/masonry layouts. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramRadius`,type:`Enums\\\\InstagramRadius|string|null`,id:`param-instagram-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCardHover`,type:`Enums\\\\InstagramCardHover|string|null`,id:`param-instagram-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a tile does on hover. Lift/Glow are best for image tiles; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramShowVideoBadge`,type:`?bool`,id:`param-instagram-show-video-badge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small corner glyph marking a video, reel, or carousel album.`]})}),_jsx(ResponseField,{name:`instagramShowPermalinkIcon`,type:`?bool`,id:`param-instagram-show-permalink-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A corner Instagram glyph on each tile — the one opt-in link out to the post (opens in a new tab). The tile itself opens the on-site lightbox.`]})}),_jsx(ResponseField,{name:`instagramShowCardLikes`,type:`?bool`,id:`param-instagram-show-card-likes-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small heart + like count in the bottom corner of each tile. Off by default. (A post whose account hides like counts on Instagram shows nothing.)`]})}),_jsx(ResponseField,{name:`instagramGlyphSize`,type:`Enums\\\\InstagramGlyphSize|string|null`,id:`param-instagram-glyph-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size of the corner glyph, the video/reel badge, and the play affordance on video tiles. All three options are larger than the old fixed size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramShowCaption`,type:`?bool`,id:`param-instagram-show-caption-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Off by default (the classic image-only grid). When on, choose where the caption appears below.`]})}),_jsx(ResponseField,{name:`instagramCaptionMode`,type:`Enums\\\\InstagramCaptionMode|string|null`,id:`param-instagram-caption-mode-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption placement. One of `,_jsx(_components.code,{children:`below`}),`, `,_jsx(_components.code,{children:`hover`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramAccentColor`,type:`?string`,id:`param-instagram-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — color of the corner glyph + the hover wash. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`instagramAccentColorLight`,type:`?string`,id:`param-instagram-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`instagramLikeColor`,type:`?string`,id:`param-instagram-like-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — color of the like heart on the tiles and in the lightbox. Leave empty to use the brand coral.`]})}),_jsx(ResponseField,{name:`instagramLikeColorLight`,type:`?string`,id:`param-instagram-like-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`instagramCaptionClamp`,type:`Enums\\\\InstagramCaptionClamp|string|null`,id:`param-instagram-caption-clamp-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cap each caption at this many lines so a long caption can’t blow up the tile. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`1`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCaptionSize`,type:`Enums\\\\InstagramCaptionSize|string|null`,id:`param-instagram-caption-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCaptionWeight`,type:`Enums\\\\InstagramCaptionWeight|string|null`,id:`param-instagram-caption-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCaptionColor`,type:`?string`,id:`param-instagram-caption-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color (below mode) / white (hover mode).`]})}),_jsx(ResponseField,{name:`instagramCaptionColorLight`,type:`?string`,id:`param-instagram-caption-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`instagramShowLikes`,type:`?bool`,id:`param-instagram-show-likes-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show the post’s like count in the lightbox. (An account that hides like counts on Instagram reports none — then nothing shows.)`]})}),_jsx(ResponseField,{name:`instagramCommentsDisplay`,type:`Enums\\\\InstagramCommentsDisplay|string|null`,id:`param-instagram-comments-display-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How comments appear in the lightbox. “Count only” shows just the total. “Full list” shows the actual comments — requires “Fetch post comments” in Connections → Instagram to be on so the comment text is synced. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`count`}),`, `,_jsx(_components.code,{children:`list`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramShowCommentAuthors`,type:`?bool`,id:`param-instagram-show-comment-authors-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show each commenter’s Instagram handle next to their comment. Turn off for a cleaner, anonymous list of just the comment text.`]})}),_jsx(ResponseField,{name:`instagramLightboxShowPermalink`,type:`?bool`,id:`param-instagram-lightbox-show-permalink-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The opt-in outbound link in the lightbox. Turn it off to keep visitors fully on your site (the corner glyph on each tile is a separate setting).`]})}),_jsx(ResponseField,{name:`instagramBg`,type:`Enums\\\\InstagramBg|string|null`,id:`param-instagram-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramBgCustom`,type:`?string`,id:`param-instagram-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`instagramBgLight`,type:`Enums\\\\InstagramBgLight|string|null`,id:`param-instagram-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramBgLightCustom`,type:`?string`,id:`param-instagram-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`instagramFontOverrides`,type:`Collection\u003cint, InstagramFeedWidgetInstagramFontOverridesItem>|null`,id:`param-instagram-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`InstagramFeedWidgetInstagramFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`InstagramFeedWidgetInstagramFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\InstagramFeedWidgetInstagramFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-168`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, InstagramFeedWidgetInstagramFontOverridesItemUploadsItem>|null`,id:`param-uploads-44`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`InstagramFeedWidgetInstagramFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`InstagramFeedWidgetInstagramFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\InstagramFeedWidgetInstagramFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-169`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-164`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-44`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-165`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`instagramCtaLabel`,type:`?string`,id:`param-instagram-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`instagramCtaUrl`,type:`?string`,id:`param-instagram-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`instagramCtaNewTab`,type:`?bool`,id:`param-instagram-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`instagramCtaVariant`,type:`Enums\\\\InstagramCtaVariant|string|null`,id:`param-instagram-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaSize`,type:`Enums\\\\InstagramCtaSize|string|null`,id:`param-instagram-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaRadius`,type:`Enums\\\\InstagramCtaRadius|string|null`,id:`param-instagram-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaColor`,type:`?string`,id:`param-instagram-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`instagramCtaColorLight`,type:`?string`,id:`param-instagram-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`instagramCtaTextColor`,type:`?string`,id:`param-instagram-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`instagramCtaTextColorLight`,type:`?string`,id:`param-instagram-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`instagramCtaHoverColor`,type:`?string`,id:`param-instagram-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`instagramCtaHoverColorLight`,type:`?string`,id:`param-instagram-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`instagramCtaStyle`,type:`Enums\\\\InstagramCtaStyle|string|null`,id:`param-instagram-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaShadowColor`,type:`?string`,id:`param-instagram-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`instagramCtaShadowColorLight`,type:`?string`,id:`param-instagram-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`instagramCtaAnimation`,type:`Enums\\\\InstagramCtaAnimation|string|null`,id:`param-instagram-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaIcon`,type:`?string`,id:`param-instagram-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`instagramCtaIconFamily`,type:`Enums\\\\InstagramCtaIconFamily|string|null`,id:`param-instagram-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaIconPosition`,type:`Enums\\\\InstagramCtaIconPosition|string|null`,id:`param-instagram-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`instagramCtaIconNudge`,type:`?bool`,id:`param-instagram-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-166`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`GalleryPreviewWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryPreviewWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`gallery-preview`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\GalleryPreviewWidgetType|string`,id:`param-type-57`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`gallery-preview`}),`. One of `,_jsx(_components.code,{children:`gallery-preview`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-170`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-64`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryEyebrow`,type:`?string`,id:`param-gallery-eyebrow-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`galleryEyebrowColor`,type:`?string`,id:`param-gallery-eyebrow-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`galleryEyebrowColorLight`,type:`?string`,id:`param-gallery-eyebrow-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`galleryEyebrowWeight`,type:`Enums\\\\GalleryEyebrowWeight|string|null`,id:`param-gallery-eyebrow-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryEyebrowSize`,type:`Enums\\\\GalleryEyebrowSize|string|null`,id:`param-gallery-eyebrow-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryHeading`,type:`?string`,id:`param-gallery-heading-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the photos.`]})}),_jsx(ResponseField,{name:`galleryHeadingColor`,type:`?string`,id:`param-gallery-heading-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`galleryHeadingColorLight`,type:`?string`,id:`param-gallery-heading-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryHeadingWeight`,type:`Enums\\\\GalleryHeadingWeight|string|null`,id:`param-gallery-heading-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryIntro`,type:`?string`,id:`param-gallery-intro-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`galleryIntroColor`,type:`?string`,id:`param-gallery-intro-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`galleryIntroColorLight`,type:`?string`,id:`param-gallery-intro-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryIntroWeight`,type:`Enums\\\\GalleryIntroWeight|string|null`,id:`param-gallery-intro-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryIntroSize`,type:`Enums\\\\GalleryIntroSize|string|null`,id:`param-gallery-intro-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryAlign`,type:`Enums\\\\GalleryAlign|string|null`,id:`param-gallery-align-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`gallerySource`,type:`Enums\\\\GallerySource|string|null`,id:`param-gallery-source-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Album: a curated set you pick and order by hand — best for a designed page. Folder: automatically shows every image filed in a media-library folder (newest first) — best for bulk collections you organize in the media manager. Feed: a set that refreshes itself on a schedule from an external photo store, so the gallery shows different photos over time. One of `,_jsx(_components.code,{children:`album`}),`, `,_jsx(_components.code,{children:`folder`}),`, `,_jsx(_components.code,{children:`feed`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`album`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-album-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Photo Album to display. Create and fill albums in the Photo Albums manager. The related `,_jsx(_components.code,{children:`photo-album`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryFolder`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-gallery-folder-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The media-library folder to display. Every image filed in it (and its subfolders, if enabled) is shown, newest first. The related `,_jsx(_components.code,{children:`image-folder`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryIncludeSubfolders`,type:`?bool`,id:`param-gallery-include-subfolders-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Also show images filed in folders inside the selected folder.`]})}),_jsx(ResponseField,{name:`photoFeed`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-photo-feed-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Photo Feed to display. This gallery stays pointed at the feed while the feed replaces its photos on its own schedule. Create and configure feeds in the Photo Feeds manager. The related `,_jsx(_components.code,{children:`photo-feed`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryMaxPhotos`,type:`?int`,id:`param-gallery-max-photos-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cap the teaser to this many photos. 0 shows everything in the selected source (folder photos are newest-first). 0 to 200.`]})}),_jsx(ResponseField,{name:`galleryLayout`,type:`Enums\\\\GalleryLayout|string|null`,id:`param-gallery-layout-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Mosaic Photo Wall: an edge-to-edge wall where rows are scaled to a common height (like Flickr / Google Photos), cropped around each photo’s focal point — the richest option. Masonry: a staggered grid that hugs each photo’s shape. Grid: a tidy, uniform grid. Spotlight: every group of eight opens on an oversized lead photo, sides alternating on wide screens. Shaped Tiles: a portrait grid whose tiles cycle through slab, arch and orb shapes. Scrolling Banner: one edge-to-edge row that drifts sideways forever, so a long album reads as a ribbon of photos rather than a block — the option for a band between two sections rather than a gallery page. Panorama Wall: several rows, far wider than the screen, traveling sideways at slightly different speeds — and the visitor can push it along or against with a drag or a trackpad swipe. Vertical Ribbon: a band of columns running down the page instead of across it, neighboring columns traveling opposite ways, so the section reads as a moving curtain of photographs. One of `,_jsx(_components.code,{children:`justified`}),`, `,_jsx(_components.code,{children:`masonry`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`shaped`}),`, `,_jsx(_components.code,{children:`banner`}),`, `,_jsx(_components.code,{children:`panorama`}),`, `,_jsx(_components.code,{children:`ribbon`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryColumns`,type:`Enums\\\\GalleryColumns|string|null`,id:`param-gallery-columns-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many tiles per row (grid, shaped tiles) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout; Spotlight sets its own pattern.) One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryJustifiedHeight`,type:`Enums\\\\GalleryJustifiedHeight|string|null`,id:`param-gallery-justified-height-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerHeight`,type:`Enums\\\\GalleryBannerHeight|string|null`,id:`param-gallery-banner-height-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How tall the moving row stands. Each photo keeps its own shape, so a taller banner shows wider photos and fewer of them at once. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerSpeed`,type:`Enums\\\\GalleryBannerSpeed|string|null`,id:`param-gallery-banner-speed-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the row drifts. It also surges briefly with the page’s own scrolling, then settles back — so the band reacts to the visitor instead of ignoring them. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerDirection`,type:`Enums\\\\GalleryBannerDirection|string|null`,id:`param-gallery-banner-direction-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Banner direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerFade`,type:`?bool`,id:`param-gallery-banner-fade-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fades the row out at both ends so photos scroll in and out instead of being cut off by a hard edge.`]})}),_jsx(ResponseField,{name:`galleryPanoramaRows`,type:`Enums\\\\GalleryPanoramaRows|string|null`,id:`param-gallery-panorama-rows-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many rows of photos the wall is dealt across. Photos go into the rows in turn, so consecutive shots land in different rows rather than stacking up together. Deep walls want a big set — a row needs at least three photos of its own, so a small album quietly uses fewer, fuller rows than you pick here. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`7`}),`, `,_jsx(_components.code,{children:`8`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaHeight`,type:`Enums\\\\GalleryPanoramaHeight|string|null`,id:`param-gallery-panorama-height-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How tall each row stands, so the wall’s total depth is this times the number of rows — an eight-row Tall panorama fills a screen and then some. Each photo keeps its own shape, so taller rows show wider photos and fewer of them. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaSpeed`,type:`Enums\\\\GalleryPanoramaSpeed|string|null`,id:`param-gallery-panorama-speed-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the wall travels. Each row takes a slightly different share of this, so the rows shear gently against each other and the block reads as depth rather than as one sliding sheet. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDirection`,type:`Enums\\\\GalleryPanoramaDirection|string|null`,id:`param-gallery-panorama-direction-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Travel direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDrag`,type:`?bool`,id:`param-gallery-panorama-drag-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Dragging the wall (or swiping sideways on a trackpad or phone) pushes it along or against its travel, and it glides back into its own pace when let go. Vertical scrolling always still scrolls the page. Needs site animations on in Site design → Motion.`]})}),_jsx(ResponseField,{name:`galleryPanoramaFade`,type:`?bool`,id:`param-gallery-panorama-fade-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fades the rows out at both ends so photos travel in and out instead of being cut off by a hard edge.`]})}),_jsx(ResponseField,{name:`galleryRibbonColumns`,type:`Enums\\\\GalleryRibbonColumns|string|null`,id:`param-gallery-ribbon-columns-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many columns of photos the band is dealt across. Photos go into the columns in turn, so consecutive shots land in different columns rather than stacking up together. Narrow screens show fewer columns than you pick here (two on a phone, three on a tablet) — because photos in a 50-pixel sliver are not photos. A column needs at least three photos of its own, so a small album quietly uses fewer, fuller columns. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonHeight`,type:`Enums\\\\GalleryRibbonHeight|string|null`,id:`param-gallery-ribbon-height-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How tall the band stands — the window the columns travel through, not the columns themselves, which are always far taller than it. Each photo keeps its own shape and fills its column’s width, so the columns show more photos at once the taller the band is. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonSpeed`,type:`Enums\\\\GalleryRibbonSpeed|string|null`,id:`param-gallery-ribbon-speed-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the columns travel. Each takes a slightly different share of this, so the band reads as a weave rather than as one sheet sliding. Slower than the sideways layouts at every setting on purpose: this moves along the same axis the visitor scrolls in, where the same speed feels far more urgent. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonDirection`,type:`Enums\\\\GalleryRibbonDirection|string|null`,id:`param-gallery-ribbon-direction-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which way the first column travels. With alternating columns on (below), its neighbors go the other way. One of `,_jsx(_components.code,{children:`up`}),`, `,_jsx(_components.code,{children:`down`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonAlternate`,type:`?bool`,id:`param-gallery-ribbon-alternate-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Send neighboring columns opposite ways, which is what makes the band read as a weave. Turn it off and the whole band travels one way together — quieter, and closer to a conventional scrolling wall.`]})}),_jsx(ResponseField,{name:`galleryRibbonFade`,type:`?bool`,id:`param-gallery-ribbon-fade-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fades the columns out at the top and bottom so photos travel in and out instead of being cut off by a hard edge.`]})}),_jsx(ResponseField,{name:`galleryJustifiedVary`,type:`?bool`,id:`param-gallery-justified-vary-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. For albums where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.`]})}),_jsx(ResponseField,{name:`galleryGap`,type:`Enums\\\\GalleryGap|string|null`,id:`param-gallery-gap-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between tiles. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRadius`,type:`Enums\\\\GalleryRadius|string|null`,id:`param-gallery-radius-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardStyle`,type:`Enums\\\\GalleryCardStyle|string|null`,id:`param-gallery-card-style-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The tile surface. Raised floats each photo on a soft shadow (default); Plain is a clean edge-to-edge wall; Luxe / Outline / Poster frame it; Ticket / Bracket / Forge / Press add graphic structure. The photo fills the tile, so fill-based looks (Tint, Inlay) read as their frame + elevation. On the Shaped Tiles layout the structural looks (Ticket / Bracket / Forge / Press) fall back to their plain surface — their rectangular marks can’t follow an arch or orb. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColor`,type:`?string`,id:`param-gallery-card-style-accent-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColorLight`,type:`?string`,id:`param-gallery-card-style-accent-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryCardStyleForgeScope`,type:`Enums\\\\GalleryCardStyleForgeScope|string|null`,id:`param-gallery-card-style-forge-scope-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardStyleForgeWeight`,type:`Enums\\\\GalleryCardStyleForgeWeight|string|null`,id:`param-gallery-card-style-forge-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardHover`,type:`Enums\\\\GalleryCardHover|string|null`,id:`param-gallery-card-hover-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a tile does on hover, on top of the surface above. Glow (default) / Lift read best on photo tiles; Press collapses a Poster offset; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryShowCaption`,type:`?bool`,id:`param-gallery-show-caption-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overlay each photo’s alt text on hover. Off by default (a clean photo wall). The caption always shows in the lightbox.`]})}),_jsx(ResponseField,{name:`galleryCaptionSize`,type:`Enums\\\\GalleryCaptionSize|string|null`,id:`param-gallery-caption-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCaptionWeight`,type:`Enums\\\\GalleryCaptionWeight|string|null`,id:`param-gallery-caption-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryLightbox`,type:`?bool`,id:`param-gallery-lightbox-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Clicking a photo opens it full-size in an on-site lightbox (with previous / next). Turn off for a purely decorative wall that doesn’t enlarge.`]})}),_jsx(ResponseField,{name:`galleryAccentColor`,type:`?string`,id:`param-gallery-accent-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — color of the hover wash / glow. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`galleryAccentColorLight`,type:`?string`,id:`param-gallery-accent-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryDrift`,type:`Enums\\\\GalleryDrift|string|null`,id:`param-gallery-drift-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A very slow pan-and-zoom on every photo, each tile on its own rhythm, so the wall stays quietly alive instead of holding perfectly still. Off by default: a still gallery costs nothing to keep on screen, and this runs continuously for as long as the page is open. Turn it on if you also switch on “Rotate photos automatically” below — a photo changing on a wall that is otherwise frozen reads as a glitch. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryParallax`,type:`Enums\\\\GalleryParallax|string|null`,id:`param-gallery-parallax-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sets every photo at its own depth: as the page scrolls, some slide with it and some against it, so the wall has layers instead of being one flat plane. It only moves while the visitor scrolls — nothing happens when the page is still. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryShuffle`,type:`Enums\\\\GalleryShuffle|string|null`,id:`param-gallery-shuffle-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Every so often two photos trade places on the wall, gliding past each other into their new squares. Nothing resizes and nothing else on the wall moves — the grid’s squares are identical, so the photos simply swap seats. It holds still while a visitor’s pointer or keyboard is anywhere in the gallery, so nothing ever moves out from under a click. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryShuffleBatch`,type:`?int`,id:`param-gallery-shuffle-batch-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Two photos swap with each other; three or more pass their seats along in a ring, so more of the wall is moving at once. Higher numbers read as the wall dealing itself a new hand rather than as two photos changing places. 2 to 6.`]})}),_jsx(ResponseField,{name:`galleryRotate`,type:`?bool`,id:`param-gallery-rotate-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Photos fade out a few at a time and are replaced from the rest of the source, so the gallery keeps changing while a visitor watches. Needs more photos in the source than are on screen — set “Maximum photos” above to less than the source holds. Set “Ambient drift” above to Subtle as well: a photo changing on a wall that is otherwise perfectly still reads as a glitch rather than as movement. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion.`]})}),_jsx(ResponseField,{name:`galleryRotateStyle`,type:`Enums\\\\GalleryRotateStyle|string|null`,id:`param-gallery-rotate-style-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cross-fade: the next photo dissolves over the old one as it eases in — the quietest change. Fade through a color: the tile also dips towards a flat color while the photos dissolve, so it reads as “phasing out” without ever going blank. Slide in: the next photo travels in over the old one, which drifts the same way behind it. Zoom through: the next photo settles out of a slight enlargement. Soften through: the photo blurs out of focus and the next one comes back into it. Wipe across: a clean edge travels over the tile, leaving the next photo behind it. Turn over: the tile turns like a card and comes back showing the next photo — the boldest of the seven. One of `,_jsx(_components.code,{children:`cross`}),`, `,_jsx(_components.code,{children:`veil`}),`, `,_jsx(_components.code,{children:`push`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`blur`}),`, `,_jsx(_components.code,{children:`wipe`}),`, `,_jsx(_components.code,{children:`turn`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateOrder`,type:`Enums\\\\GalleryRotateOrder|string|null`,id:`param-gallery-rotate-order-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scattered spreads the changes over the whole wall, never twice in the same corner and never the same tile twice in a row. The other three move through the wall in a set direction, so the changes read as one gesture crossing the gallery rather than as separate events. One of `,_jsx(_components.code,{children:`scatter`}),`, `,_jsx(_components.code,{children:`wave`}),`, `,_jsx(_components.code,{children:`columns`}),`, `,_jsx(_components.code,{children:`rows`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateColor`,type:`?string`,id:`param-gallery-rotate-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to dip through the page background, which suits both themes. Set white for a brighter bloom, or the brand accent for a bolder pulse. The dip never reaches full strength, so the photo always shows through.`]})}),_jsx(ResponseField,{name:`galleryRotateColorLight`,type:`?string`,id:`param-gallery-rotate-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryRotatePace`,type:`Enums\\\\GalleryRotatePace|string|null`,id:`param-gallery-rotate-pace-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The gap between one group of changes and the next. The real timing is deliberately uneven around this figure so the wall never feels metronomic. One of `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`, `,_jsx(_components.code,{children:`rapid`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateBatch`,type:`?int`,id:`param-gallery-rotate-batch-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many tiles change per group. They never start on the same frame — each one follows the one before it by a beat, so a group reads as a ripple rather than a blink. 1 is the calmest; higher numbers keep more of the wall in motion. 1 to 6.`]})}),_jsx(ResponseField,{name:`galleryRotateFade`,type:`Enums\\\\GalleryRotateFade|string|null`,id:`param-gallery-rotate-fade-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The length of one change, from the old photo to the new. Longer reads as a gentle phase; shorter as a snap — and short changes are the ones that read as choppy, so lean long. One of `,_jsx(_components.code,{children:`quick`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`lingering`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateReserve`,type:`?int`,id:`param-gallery-rotate-reserve-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many photos beyond the ones on screen to send to the browser for the rotation to draw from — the bigger this is, the longer the gallery goes before a visitor sees a repeat. Retired photos go back to the end of the queue, so it cycles the whole reserve and then starts over. Cheap to raise: a reserved photo is a few URLs, well under 100 bytes once the page is compressed, and its image file is only fetched when it is about to appear. 0 to 500.`]})}),_jsx(ResponseField,{name:`galleryBg`,type:`Enums\\\\GalleryBg|string|null`,id:`param-gallery-bg-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBgCustom`,type:`?string`,id:`param-gallery-bg-custom-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`galleryBgLight`,type:`Enums\\\\GalleryBgLight|string|null`,id:`param-gallery-bg-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBgLightCustom`,type:`?string`,id:`param-gallery-bg-light-custom-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`galleryFontOverrides`,type:`Collection\u003cint, GalleryPreviewWidgetGalleryFontOverridesItem>|null`,id:`param-gallery-font-overrides-2`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`GalleryPreviewWidgetGalleryFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryPreviewWidgetGalleryFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryPreviewWidgetGalleryFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-171`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem>|null`,id:`param-uploads-45`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryPreviewWidgetGalleryFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-172`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-167`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-45`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-168`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`galleryCtaLabel`,type:`?string`,id:`param-gallery-cta-label-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`galleryCtaUrl`,type:`?string`,id:`param-gallery-cta-url-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`galleryCtaNewTab`,type:`?bool`,id:`param-gallery-cta-new-tab-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`galleryCtaVariant`,type:`Enums\\\\GalleryCtaVariant|string|null`,id:`param-gallery-cta-variant-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaSize`,type:`Enums\\\\GalleryCtaSize|string|null`,id:`param-gallery-cta-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaRadius`,type:`Enums\\\\GalleryCtaRadius|string|null`,id:`param-gallery-cta-radius-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaColor`,type:`?string`,id:`param-gallery-cta-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`galleryCtaColorLight`,type:`?string`,id:`param-gallery-cta-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`galleryCtaTextColor`,type:`?string`,id:`param-gallery-cta-text-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`galleryCtaTextColorLight`,type:`?string`,id:`param-gallery-cta-text-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`galleryCtaHoverColor`,type:`?string`,id:`param-gallery-cta-hover-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`galleryCtaHoverColorLight`,type:`?string`,id:`param-gallery-cta-hover-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`galleryCtaStyle`,type:`Enums\\\\GalleryCtaStyle|string|null`,id:`param-gallery-cta-style-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaShadowColor`,type:`?string`,id:`param-gallery-cta-shadow-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`galleryCtaShadowColorLight`,type:`?string`,id:`param-gallery-cta-shadow-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`galleryCtaAnimation`,type:`Enums\\\\GalleryCtaAnimation|string|null`,id:`param-gallery-cta-animation-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaIcon`,type:`?string`,id:`param-gallery-cta-icon-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`galleryCtaIconFamily`,type:`Enums\\\\GalleryCtaIconFamily|string|null`,id:`param-gallery-cta-icon-family-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaIconPosition`,type:`Enums\\\\GalleryCtaIconPosition|string|null`,id:`param-gallery-cta-icon-position-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaIconNudge`,type:`?bool`,id:`param-gallery-cta-icon-nudge-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-169`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`GalleryFullWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryFullWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`gallery-full`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\GalleryFullWidgetType|string`,id:`param-type-58`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`gallery-full`}),`. One of `,_jsx(_components.code,{children:`gallery-full`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-173`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-65`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryEyebrow`,type:`?string`,id:`param-gallery-eyebrow-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`galleryEyebrowColor`,type:`?string`,id:`param-gallery-eyebrow-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`galleryEyebrowColorLight`,type:`?string`,id:`param-gallery-eyebrow-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`galleryEyebrowWeight`,type:`Enums\\\\GalleryEyebrowWeight|string|null`,id:`param-gallery-eyebrow-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryEyebrowSize`,type:`Enums\\\\GalleryEyebrowSize|string|null`,id:`param-gallery-eyebrow-size-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryHeading`,type:`?string`,id:`param-gallery-heading-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the photos.`]})}),_jsx(ResponseField,{name:`galleryHeadingColor`,type:`?string`,id:`param-gallery-heading-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`galleryHeadingColorLight`,type:`?string`,id:`param-gallery-heading-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryHeadingWeight`,type:`Enums\\\\GalleryHeadingWeight|string|null`,id:`param-gallery-heading-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryIntro`,type:`?string`,id:`param-gallery-intro-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`galleryIntroColor`,type:`?string`,id:`param-gallery-intro-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`galleryIntroColorLight`,type:`?string`,id:`param-gallery-intro-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryIntroWeight`,type:`Enums\\\\GalleryIntroWeight|string|null`,id:`param-gallery-intro-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryIntroSize`,type:`Enums\\\\GalleryIntroSize|string|null`,id:`param-gallery-intro-size-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryAlign`,type:`Enums\\\\GalleryAlign|string|null`,id:`param-gallery-align-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Header alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`gallerySource`,type:`Enums\\\\GallerySource|string|null`,id:`param-gallery-source-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Album: a curated set you pick and order by hand — best for a designed page. Folder: automatically shows every image filed in a media-library folder (newest first) — best for bulk collections you organize in the media manager. Feed: a set that refreshes itself on a schedule from an external photo store, so the gallery shows different photos over time. One of `,_jsx(_components.code,{children:`album`}),`, `,_jsx(_components.code,{children:`folder`}),`, `,_jsx(_components.code,{children:`feed`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`album`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-album-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Photo Album to display. Create and fill albums in the Photo Albums manager. The related `,_jsx(_components.code,{children:`photo-album`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryFolder`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-gallery-folder-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The media-library folder to display. Every image filed in it (and its subfolders, if enabled) is shown, newest first. The related `,_jsx(_components.code,{children:`image-folder`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryIncludeSubfolders`,type:`?bool`,id:`param-gallery-include-subfolders-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Also show images filed in folders inside the selected folder.`]})}),_jsx(ResponseField,{name:`photoFeed`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-photo-feed-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Photo Feed to display. This gallery stays pointed at the feed while the feed replaces its photos on its own schedule. Create and configure feeds in the Photo Feeds manager. The related `,_jsx(_components.code,{children:`photo-feed`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`galleryMaxPhotos`,type:`?int`,id:`param-gallery-max-photos-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The most photos to show. 0 (default) shows everything in the selected source (folder photos are newest-first). 0 to 200.`]})}),_jsx(ResponseField,{name:`galleryLayout`,type:`Enums\\\\GalleryLayout|string|null`,id:`param-gallery-layout-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Mosaic Photo Wall: an edge-to-edge wall where rows are scaled to a common height (like Flickr / Google Photos), cropped around each photo’s focal point — the richest option. Masonry: a staggered grid that hugs each photo’s shape. Grid: a tidy, uniform grid. Spotlight: every group of eight opens on an oversized lead photo, sides alternating on wide screens. Shaped Tiles: a portrait grid whose tiles cycle through slab, arch and orb shapes. Scrolling Banner: one edge-to-edge row that drifts sideways forever, so a long album reads as a ribbon of photos rather than a block — the option for a band between two sections rather than a gallery page. Panorama Wall: several rows, far wider than the screen, traveling sideways at slightly different speeds — and the visitor can push it along or against with a drag or a trackpad swipe. Vertical Ribbon: a band of columns running down the page instead of across it, neighboring columns traveling opposite ways, so the section reads as a moving curtain of photographs. One of `,_jsx(_components.code,{children:`justified`}),`, `,_jsx(_components.code,{children:`masonry`}),`, `,_jsx(_components.code,{children:`grid`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`shaped`}),`, `,_jsx(_components.code,{children:`banner`}),`, `,_jsx(_components.code,{children:`panorama`}),`, `,_jsx(_components.code,{children:`ribbon`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryColumns`,type:`Enums\\\\GalleryColumns|string|null`,id:`param-gallery-columns-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many tiles per row (grid, shaped tiles) or columns (masonry). Auto fits as many as comfortably fit. (The Mosaic Photo Wall sets its own row layout; Spotlight sets its own pattern.) One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryJustifiedHeight`,type:`Enums\\\\GalleryJustifiedHeight|string|null`,id:`param-gallery-justified-height-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The target height of each row in the Mosaic Photo Wall. Taller rows show fewer, bigger photos per row. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerHeight`,type:`Enums\\\\GalleryBannerHeight|string|null`,id:`param-gallery-banner-height-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How tall the moving row stands. Each photo keeps its own shape, so a taller banner shows wider photos and fewer of them at once. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerSpeed`,type:`Enums\\\\GalleryBannerSpeed|string|null`,id:`param-gallery-banner-speed-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the row drifts. It also surges briefly with the page’s own scrolling, then settles back — so the band reacts to the visitor instead of ignoring them. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerDirection`,type:`Enums\\\\GalleryBannerDirection|string|null`,id:`param-gallery-banner-direction-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Banner direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBannerFade`,type:`?bool`,id:`param-gallery-banner-fade-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fades the row out at both ends so photos scroll in and out instead of being cut off by a hard edge.`]})}),_jsx(ResponseField,{name:`galleryPanoramaRows`,type:`Enums\\\\GalleryPanoramaRows|string|null`,id:`param-gallery-panorama-rows-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many rows of photos the wall is dealt across. Photos go into the rows in turn, so consecutive shots land in different rows rather than stacking up together. Deep walls want a big set — a row needs at least three photos of its own, so a small album quietly uses fewer, fuller rows than you pick here. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`, `,_jsx(_components.code,{children:`7`}),`, `,_jsx(_components.code,{children:`8`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaHeight`,type:`Enums\\\\GalleryPanoramaHeight|string|null`,id:`param-gallery-panorama-height-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How tall each row stands, so the wall’s total depth is this times the number of rows — an eight-row Tall panorama fills a screen and then some. Each photo keeps its own shape, so taller rows show wider photos and fewer of them. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaSpeed`,type:`Enums\\\\GalleryPanoramaSpeed|string|null`,id:`param-gallery-panorama-speed-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the wall travels. Each row takes a slightly different share of this, so the rows shear gently against each other and the block reads as depth rather than as one sliding sheet. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDirection`,type:`Enums\\\\GalleryPanoramaDirection|string|null`,id:`param-gallery-panorama-direction-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Travel direction. One of `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryPanoramaDrag`,type:`?bool`,id:`param-gallery-panorama-drag-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Dragging the wall (or swiping sideways on a trackpad or phone) pushes it along or against its travel, and it glides back into its own pace when let go. Vertical scrolling always still scrolls the page. Needs site animations on in Site design → Motion.`]})}),_jsx(ResponseField,{name:`galleryPanoramaFade`,type:`?bool`,id:`param-gallery-panorama-fade-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fades the rows out at both ends so photos travel in and out instead of being cut off by a hard edge.`]})}),_jsx(ResponseField,{name:`galleryRibbonColumns`,type:`Enums\\\\GalleryRibbonColumns|string|null`,id:`param-gallery-ribbon-columns-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many columns of photos the band is dealt across. Photos go into the columns in turn, so consecutive shots land in different columns rather than stacking up together. Narrow screens show fewer columns than you pick here (two on a phone, three on a tablet) — because photos in a 50-pixel sliver are not photos. A column needs at least three photos of its own, so a small album quietly uses fewer, fuller columns. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`5`}),`, `,_jsx(_components.code,{children:`6`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonHeight`,type:`Enums\\\\GalleryRibbonHeight|string|null`,id:`param-gallery-ribbon-height-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How tall the band stands — the window the columns travel through, not the columns themselves, which are always far taller than it. Each photo keeps its own shape and fills its column’s width, so the columns show more photos at once the taller the band is. One of `,_jsx(_components.code,{children:`short`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`tall`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonSpeed`,type:`Enums\\\\GalleryRibbonSpeed|string|null`,id:`param-gallery-ribbon-speed-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How fast the columns travel. Each takes a slightly different share of this, so the band reads as a weave rather than as one sheet sliding. Slower than the sideways layouts at every setting on purpose: this moves along the same axis the visitor scrolls in, where the same speed feels far more urgent. It also surges briefly with the page’s own scrolling, then settles back. One of `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`fast`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonDirection`,type:`Enums\\\\GalleryRibbonDirection|string|null`,id:`param-gallery-ribbon-direction-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which way the first column travels. With alternating columns on (below), its neighbors go the other way. One of `,_jsx(_components.code,{children:`up`}),`, `,_jsx(_components.code,{children:`down`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRibbonAlternate`,type:`?bool`,id:`param-gallery-ribbon-alternate-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Send neighboring columns opposite ways, which is what makes the band read as a weave. Turn it off and the whole band travels one way together — quieter, and closer to a conventional scrolling wall.`]})}),_jsx(ResponseField,{name:`galleryRibbonFade`,type:`?bool`,id:`param-gallery-ribbon-fade-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Fades the columns out at the top and bottom so photos travel in and out instead of being cut off by a hard edge.`]})}),_jsx(ResponseField,{name:`galleryJustifiedVary`,type:`?bool`,id:`param-gallery-justified-vary-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. For albums where every photo is the same shape (e.g. all square): assign each tile a varied shape (cropped around its focal point, never cutting the subject) so the wall still reads as an organic mosaic. Leave off when your photos already vary.`]})}),_jsx(ResponseField,{name:`galleryGap`,type:`Enums\\\\GalleryGap|string|null`,id:`param-gallery-gap-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between tiles. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRadius`,type:`Enums\\\\GalleryRadius|string|null`,id:`param-gallery-radius-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardStyle`,type:`Enums\\\\GalleryCardStyle|string|null`,id:`param-gallery-card-style-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The tile surface. Raised floats each photo on a soft shadow (default); Plain is a clean edge-to-edge wall; Luxe / Outline / Poster frame it; Ticket / Bracket / Forge / Press add graphic structure. The photo fills the tile, so fill-based looks (Tint, Inlay) read as their frame + elevation. On the Shaped Tiles layout the structural looks (Ticket / Bracket / Forge / Press) fall back to their plain surface — their rectangular marks can’t follow an arch or orb. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColor`,type:`?string`,id:`param-gallery-card-style-accent-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`galleryCardStyleAccentColorLight`,type:`?string`,id:`param-gallery-card-style-accent-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryCardStyleForgeScope`,type:`Enums\\\\GalleryCardStyleForgeScope|string|null`,id:`param-gallery-card-style-forge-scope-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardStyleForgeWeight`,type:`Enums\\\\GalleryCardStyleForgeWeight|string|null`,id:`param-gallery-card-style-forge-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCardHover`,type:`Enums\\\\GalleryCardHover|string|null`,id:`param-gallery-card-hover-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a tile does on hover, on top of the surface above. Glow (default) / Lift read best on photo tiles; Press collapses a Poster offset; Tilt, Magnetic and Spotlight follow the cursor (need site animations on). This is on top of the image zoom. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryShowCaption`,type:`?bool`,id:`param-gallery-show-caption-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overlay each photo’s alt text on hover. Off by default (a clean photo wall). The caption always shows in the lightbox.`]})}),_jsx(ResponseField,{name:`galleryCaptionSize`,type:`Enums\\\\GalleryCaptionSize|string|null`,id:`param-gallery-caption-size-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCaptionWeight`,type:`Enums\\\\GalleryCaptionWeight|string|null`,id:`param-gallery-caption-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Caption weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryLightbox`,type:`?bool`,id:`param-gallery-lightbox-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Clicking a photo opens it full-size in an on-site lightbox (with previous / next). Turn off for a purely decorative wall that doesn’t enlarge.`]})}),_jsx(ResponseField,{name:`galleryAccentColor`,type:`?string`,id:`param-gallery-accent-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — color of the hover wash / glow. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`galleryAccentColorLight`,type:`?string`,id:`param-gallery-accent-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryDrift`,type:`Enums\\\\GalleryDrift|string|null`,id:`param-gallery-drift-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A very slow pan-and-zoom on every photo, each tile on its own rhythm, so the wall stays quietly alive instead of holding perfectly still. Off by default: a still gallery costs nothing to keep on screen, and this runs continuously for as long as the page is open. Turn it on if you also switch on “Rotate photos automatically” below — a photo changing on a wall that is otherwise frozen reads as a glitch. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryParallax`,type:`Enums\\\\GalleryParallax|string|null`,id:`param-gallery-parallax-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Sets every photo at its own depth: as the page scrolls, some slide with it and some against it, so the wall has layers instead of being one flat plane. It only moves while the visitor scrolls — nothing happens when the page is still. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`subtle`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryShuffle`,type:`Enums\\\\GalleryShuffle|string|null`,id:`param-gallery-shuffle-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Every so often two photos trade places on the wall, gliding past each other into their new squares. Nothing resizes and nothing else on the wall moves — the grid’s squares are identical, so the photos simply swap seats. It holds still while a visitor’s pointer or keyboard is anywhere in the gallery, so nothing ever moves out from under a click. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion. One of `,_jsx(_components.code,{children:`off`}),`, `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryShuffleBatch`,type:`?int`,id:`param-gallery-shuffle-batch-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Two photos swap with each other; three or more pass their seats along in a ring, so more of the wall is moving at once. Higher numbers read as the wall dealing itself a new hand rather than as two photos changing places. 2 to 6.`]})}),_jsx(ResponseField,{name:`galleryRotate`,type:`?bool`,id:`param-gallery-rotate-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Photos fade out a few at a time and are replaced from the rest of the source, so the gallery keeps changing while a visitor watches. Needs more photos in the source than are on screen — set “Maximum photos” above to less than the source holds. Set “Ambient drift” above to Subtle as well: a photo changing on a wall that is otherwise perfectly still reads as a glitch rather than as movement. Skipped for visitors who ask for reduced motion, and when site animations are off in Site design → Motion.`]})}),_jsx(ResponseField,{name:`galleryRotateStyle`,type:`Enums\\\\GalleryRotateStyle|string|null`,id:`param-gallery-rotate-style-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Cross-fade: the next photo dissolves over the old one as it eases in — the quietest change. Fade through a color: the tile also dips towards a flat color while the photos dissolve, so it reads as “phasing out” without ever going blank. Slide in: the next photo travels in over the old one, which drifts the same way behind it. Zoom through: the next photo settles out of a slight enlargement. Soften through: the photo blurs out of focus and the next one comes back into it. Wipe across: a clean edge travels over the tile, leaving the next photo behind it. Turn over: the tile turns like a card and comes back showing the next photo — the boldest of the seven. One of `,_jsx(_components.code,{children:`cross`}),`, `,_jsx(_components.code,{children:`veil`}),`, `,_jsx(_components.code,{children:`push`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`blur`}),`, `,_jsx(_components.code,{children:`wipe`}),`, `,_jsx(_components.code,{children:`turn`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateOrder`,type:`Enums\\\\GalleryRotateOrder|string|null`,id:`param-gallery-rotate-order-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scattered spreads the changes over the whole wall, never twice in the same corner and never the same tile twice in a row. The other three move through the wall in a set direction, so the changes read as one gesture crossing the gallery rather than as separate events. One of `,_jsx(_components.code,{children:`scatter`}),`, `,_jsx(_components.code,{children:`wave`}),`, `,_jsx(_components.code,{children:`columns`}),`, `,_jsx(_components.code,{children:`rows`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateColor`,type:`?string`,id:`param-gallery-rotate-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to dip through the page background, which suits both themes. Set white for a brighter bloom, or the brand accent for a bolder pulse. The dip never reaches full strength, so the photo always shows through.`]})}),_jsx(ResponseField,{name:`galleryRotateColorLight`,type:`?string`,id:`param-gallery-rotate-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`galleryRotatePace`,type:`Enums\\\\GalleryRotatePace|string|null`,id:`param-gallery-rotate-pace-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The gap between one group of changes and the next. The real timing is deliberately uneven around this figure so the wall never feels metronomic. One of `,_jsx(_components.code,{children:`calm`}),`, `,_jsx(_components.code,{children:`steady`}),`, `,_jsx(_components.code,{children:`lively`}),`, `,_jsx(_components.code,{children:`rapid`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateBatch`,type:`?int`,id:`param-gallery-rotate-batch-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many tiles change per group. They never start on the same frame — each one follows the one before it by a beat, so a group reads as a ripple rather than a blink. 1 is the calmest; higher numbers keep more of the wall in motion. 1 to 6.`]})}),_jsx(ResponseField,{name:`galleryRotateFade`,type:`Enums\\\\GalleryRotateFade|string|null`,id:`param-gallery-rotate-fade-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The length of one change, from the old photo to the new. Longer reads as a gentle phase; shorter as a snap — and short changes are the ones that read as choppy, so lean long. One of `,_jsx(_components.code,{children:`quick`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`slow`}),`, `,_jsx(_components.code,{children:`lingering`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryRotateReserve`,type:`?int`,id:`param-gallery-rotate-reserve-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many photos beyond the ones on screen to send to the browser for the rotation to draw from — the bigger this is, the longer the gallery goes before a visitor sees a repeat. Retired photos go back to the end of the queue, so it cycles the whole reserve and then starts over. Cheap to raise: a reserved photo is a few URLs, well under 100 bytes once the page is compressed, and its image file is only fetched when it is about to appear. 0 to 500.`]})}),_jsx(ResponseField,{name:`galleryBg`,type:`Enums\\\\GalleryBg|string|null`,id:`param-gallery-bg-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBgCustom`,type:`?string`,id:`param-gallery-bg-custom-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`galleryBgLight`,type:`Enums\\\\GalleryBgLight|string|null`,id:`param-gallery-bg-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryBgLightCustom`,type:`?string`,id:`param-gallery-bg-light-custom-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`galleryFontOverrides`,type:`Collection\u003cint, GalleryFullWidgetGalleryFontOverridesItem>|null`,id:`param-gallery-font-overrides-3`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`GalleryFullWidgetGalleryFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryFullWidgetGalleryFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryFullWidgetGalleryFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-174`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, GalleryFullWidgetGalleryFontOverridesItemUploadsItem>|null`,id:`param-uploads-46`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`GalleryFullWidgetGalleryFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`GalleryFullWidgetGalleryFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\GalleryFullWidgetGalleryFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-175`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-170`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-46`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-171`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`galleryCtaLabel`,type:`?string`,id:`param-gallery-cta-label-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`galleryCtaUrl`,type:`?string`,id:`param-gallery-cta-url-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`galleryCtaNewTab`,type:`?bool`,id:`param-gallery-cta-new-tab-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`galleryCtaVariant`,type:`Enums\\\\GalleryCtaVariant|string|null`,id:`param-gallery-cta-variant-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaSize`,type:`Enums\\\\GalleryCtaSize|string|null`,id:`param-gallery-cta-size-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaRadius`,type:`Enums\\\\GalleryCtaRadius|string|null`,id:`param-gallery-cta-radius-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaColor`,type:`?string`,id:`param-gallery-cta-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`galleryCtaColorLight`,type:`?string`,id:`param-gallery-cta-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`galleryCtaTextColor`,type:`?string`,id:`param-gallery-cta-text-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`galleryCtaTextColorLight`,type:`?string`,id:`param-gallery-cta-text-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`galleryCtaHoverColor`,type:`?string`,id:`param-gallery-cta-hover-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`galleryCtaHoverColorLight`,type:`?string`,id:`param-gallery-cta-hover-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`galleryCtaStyle`,type:`Enums\\\\GalleryCtaStyle|string|null`,id:`param-gallery-cta-style-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaShadowColor`,type:`?string`,id:`param-gallery-cta-shadow-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`galleryCtaShadowColorLight`,type:`?string`,id:`param-gallery-cta-shadow-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`galleryCtaAnimation`,type:`Enums\\\\GalleryCtaAnimation|string|null`,id:`param-gallery-cta-animation-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaIcon`,type:`?string`,id:`param-gallery-cta-icon-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`galleryCtaIconFamily`,type:`Enums\\\\GalleryCtaIconFamily|string|null`,id:`param-gallery-cta-icon-family-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaIconPosition`,type:`Enums\\\\GalleryCtaIconPosition|string|null`,id:`param-gallery-cta-icon-position-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`galleryCtaIconNudge`,type:`?bool`,id:`param-gallery-cta-icon-nudge-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-172`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`PricingWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`pricing`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\PricingWidgetType|string`,id:`param-type-59`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`pricing`}),`. One of `,_jsx(_components.code,{children:`pricing`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-176`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-66`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingEyebrowEnabled`,type:`?bool`,id:`param-pricing-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small label above the heading (e.g. “Pricing”).`]})}),_jsx(ResponseField,{name:`pricingEyebrow`,type:`?string`,id:`param-pricing-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow.`]})}),_jsx(ResponseField,{name:`pricingEyebrowColor`,type:`?string`,id:`param-pricing-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`pricingEyebrowColorLight`,type:`?string`,id:`param-pricing-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`pricingEyebrowWeight`,type:`Enums\\\\PricingEyebrowWeight|string|null`,id:`param-pricing-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingEyebrowSize`,type:`Enums\\\\PricingEyebrowSize|string|null`,id:`param-pricing-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingHeading`,type:`?string`,id:`param-pricing-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Leave empty to show just the cards.`]})}),_jsx(ResponseField,{name:`pricingHeadingColor`,type:`?string`,id:`param-pricing-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`pricingHeadingColorLight`,type:`?string`,id:`param-pricing-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`pricingHeadingWeight`,type:`Enums\\\\PricingHeadingWeight|string|null`,id:`param-pricing-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingHeadingSize`,type:`Enums\\\\PricingHeadingSize|string|null`,id:`param-pricing-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingIntro`,type:`?string`,id:`param-pricing-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`pricingIntroColor`,type:`?string`,id:`param-pricing-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`pricingIntroColorLight`,type:`?string`,id:`param-pricing-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`pricingIntroWeight`,type:`Enums\\\\PricingIntroWeight|string|null`,id:`param-pricing-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingIntroSize`,type:`Enums\\\\PricingIntroSize|string|null`,id:`param-pricing-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Intro size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingColumns`,type:`Enums\\\\PricingColumns|string|null`,id:`param-pricing-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto fits as many as comfortably fit and works for any number of cards. Or lock a maximum per row. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingGap`,type:`Enums\\\\PricingGap|string|null`,id:`param-pricing-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Gap between cards. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCardStyle`,type:`Enums\\\\PricingCardStyle|string|null`,id:`param-pricing-card-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The base treatment for every tier (a highlighted tier always gets its own bold framed look). Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCardStyleRadius`,type:`Enums\\\\PricingCardStyleRadius|string|null`,id:`param-pricing-card-style-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCardStyleAccentColor`,type:`?string`,id:`param-pricing-card-style-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`pricingCardStyleAccentColorLight`,type:`?string`,id:`param-pricing-card-style-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`pricingCardStyleForgeScope`,type:`Enums\\\\PricingCardStyleForgeScope|string|null`,id:`param-pricing-card-style-forge-scope-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCardStyleForgeWeight`,type:`Enums\\\\PricingCardStyleForgeWeight|string|null`,id:`param-pricing-card-style-forge-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingAlign`,type:`Enums\\\\PricingAlign|string|null`,id:`param-pricing-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Aligns the section header and the text inside each card. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingEqualHeight`,type:`?bool`,id:`param-pricing-equal-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Stretch every card to the tallest one and pin each button to the bottom, so the cards line up even with uneven feature lists.`]})}),_jsx(ResponseField,{name:`pricingFeatureMarkers`,type:`?bool`,id:`param-pricing-feature-markers-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A check (included) or cross (not included) before each feature. Off = a plain list.`]})}),_jsx(ResponseField,{name:`pricingCardHover`,type:`Enums\\\\PricingCardHover|string|null`,id:`param-pricing-card-hover-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How a card reacts to the pointer. Rise floats it up on an accent underglow; Selection ring previews the highlighted look + tints the price; Spotlight washes accent light over the price; Checklist lights up the ✓ marks one-by-one; Tilt is a 3-D parallax that only runs when site animations are on. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`rise`}),`, `,_jsx(_components.code,{children:`ring`}),`, `,_jsx(_components.code,{children:`spotlight`}),`, `,_jsx(_components.code,{children:`checklist`}),`, `,_jsx(_components.code,{children:`tilt`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingHoverColor`,type:`?string`,id:`param-pricing-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Border / glow / spotlight / checkmark color on hover. Leave empty to use the highlight accent (then the site accent).`]})}),_jsx(ResponseField,{name:`pricingHoverColorLight`,type:`?string`,id:`param-pricing-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover accent.`]})}),_jsx(ResponseField,{name:`pricingEntrance`,type:`Enums\\\\PricingEntrance|string|null`,id:`param-pricing-entrance-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How the cards animate in as they scroll into view. Featured-led makes the highlighted tier settle last with a little emphasis (draws the eye to the recommended plan); Simple stagger fades them in evenly. Only plays when site animations are on (Site design → Motion) — otherwise the cards are simply shown. One of `,_jsx(_components.code,{children:`featured`}),`, `,_jsx(_components.code,{children:`stagger`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingNameSize`,type:`Enums\\\\PricingNameSize|string|null`,id:`param-pricing-name-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size of each card’s name / title. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingPriceSize`,type:`Enums\\\\PricingPriceSize|string|null`,id:`param-pricing-price-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size of the price amount (the period and price note scale with it). One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingDescSize`,type:`Enums\\\\PricingDescSize|string|null`,id:`param-pricing-desc-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size of each card’s description blurb. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeatureSize`,type:`Enums\\\\PricingFeatureSize|string|null`,id:`param-pricing-feature-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size of the feature list text (notes and check marks scale with it). One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingHighlightBadge`,type:`?string`,id:`param-pricing-highlight-badge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Ribbon text shown on a highlighted tier that doesn’t set its own badge. Each tier can override it (or badge a non-highlighted tier) below. Leave empty for no automatic badge.`]})}),_jsx(ResponseField,{name:`pricingAccentColor`,type:`?string`,id:`param-pricing-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Color for the highlighted tier’s border + ring and each tier’s badge. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`pricingAccentColorLight`,type:`?string`,id:`param-pricing-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme accent.`]})}),_jsxs(ResponseField,{name:`pricingTiers`,type:`Collection\u003cint, PricingWidgetPricingTiersItem>|null`,id:`param-pricing-tiers-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PricingWidgetPricingTiersItem`}),`. Each card is one tier / package / service. Toggle “Highlight” on the one you want to stand out.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingTiersItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingTiersItem)`,children:[_jsx(ResponseField,{name:`name`,type:`string`,id:`param-name-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Tier / package / service name — e.g. “Starter”, “Studio”, “Agency”.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-177`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`icon`,type:`?string`,id:`param-icon-7`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`iconFamily`,type:`Enums\\\\IconFamily|string|null`,id:`param-icon-family-7`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconColor`,type:`?string`,id:`param-icon-color-7`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`iconAnimation`,type:`Enums\\\\IconAnimation|string|null`,id:`param-icon-animation-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconSize`,type:`Enums\\\\IconSize|string|null`,id:`param-icon-size-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`iconGap`,type:`Enums\\\\IconGap|string|null`,id:`param-icon-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Breathing room below the icon, before the card name. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`badge`,type:`?string`,id:`param-badge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small ribbon on the card, e.g. “Best value”, “Limited spots”. Overrides the default highlight badge for this tier; works on any tier, highlighted or not. Empty on a highlighted tier falls back to the section’s “Default highlight badge”.`]})}),_jsx(ResponseField,{name:`highlighted`,type:`?bool`,id:`param-highlighted-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Emphasize this tier — accent border + ring, a subtle lift, and the Featured button look.`]})}),_jsx(ResponseField,{name:`textAlign`,type:`Enums\\\\TextAlign|string|null`,id:`param-text-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How this card’s text lines up. Normal = the section default (a centered section keeps the feature list left-aligned, as now). Center also centers the feature list; Left / Right align everything that way. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`price`,type:`?string`,id:`param-price-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Free text, so it fits any model — “`,`$45\", \"From $`,`200”, “Custom”, “Call for quote”.`]})}),_jsx(ResponseField,{name:`period`,type:`?string`,id:`param-period-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Shown after the price, e.g. ”/ month”, “per night”, “per session”. Leave empty for a flat price.`]})}),_jsx(ResponseField,{name:`priceNote`,type:`?string`,id:`param-price-note-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small line under the price, e.g. “per seat”, “billed annually”, ”+ tax”.`]})}),_jsx(ResponseField,{name:`description`,type:`?string`,id:`param-description-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A short blurb under the name.`]})}),_jsxs(ResponseField,{name:`features`,type:`Collection\u003cint, PricingWidgetPricingTiersItemFeaturesItem>|null`,id:`param-features-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PricingWidgetPricingTiersItemFeaturesItem`}),`. The bullet list of what’s included.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingTiersItemFeaturesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingTiersItemFeaturesItem)`,children:[_jsx(ResponseField,{name:`text`,type:`string`,id:`param-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Feature.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-178`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`included`,type:`?bool`,id:`param-included-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. On = a check mark; off = a crossed-out / muted line (e.g. a feature this tier lacks).`]})}),_jsx(ResponseField,{name:`note`,type:`?string`,id:`param-note-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small qualifier shown after the feature, e.g. “up to 5”, “add-on”.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-173`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`ctaLabel`,type:`?string`,id:`param-cta-label-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. This card’s button text. Leave empty to use the shared button label (set in the Pricing · Buttons tab); clear it everywhere to hide the button.`]})}),_jsx(ResponseField,{name:`ctaUrl`,type:`?string`,id:`param-cta-url-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/contact-us) or full URL. Leave empty to inherit the shared button link.`]})}),_jsx(ResponseField,{name:`ctaNewTab`,type:`?bool`,id:`param-cta-new-tab-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Open button in new tab.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-174`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`pricingBg`,type:`Enums\\\\PricingBg|string|null`,id:`param-pricing-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingBgCustom`,type:`?string`,id:`param-pricing-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`pricingBgLight`,type:`Enums\\\\PricingBgLight|string|null`,id:`param-pricing-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingBgLightCustom`,type:`?string`,id:`param-pricing-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`pricingFontOverrides`,type:`Collection\u003cint, PricingWidgetPricingFontOverridesItem>|null`,id:`param-pricing-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PricingWidgetPricingFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-179`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PricingWidgetPricingFontOverridesItemUploadsItem>|null`,id:`param-uploads-47`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PricingWidgetPricingFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PricingWidgetPricingFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PricingWidgetPricingFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-180`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-175`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-47`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-176`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`pricingFeaturedCtaLabel`,type:`?string`,id:`param-pricing-featured-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaUrl`,type:`?string`,id:`param-pricing-featured-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaNewTab`,type:`?bool`,id:`param-pricing-featured-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaVariant`,type:`Enums\\\\PricingFeaturedCtaVariant|string|null`,id:`param-pricing-featured-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaSize`,type:`Enums\\\\PricingFeaturedCtaSize|string|null`,id:`param-pricing-featured-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaRadius`,type:`Enums\\\\PricingFeaturedCtaRadius|string|null`,id:`param-pricing-featured-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaColor`,type:`?string`,id:`param-pricing-featured-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaColorLight`,type:`?string`,id:`param-pricing-featured-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaTextColor`,type:`?string`,id:`param-pricing-featured-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaTextColorLight`,type:`?string`,id:`param-pricing-featured-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaHoverColor`,type:`?string`,id:`param-pricing-featured-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaHoverColorLight`,type:`?string`,id:`param-pricing-featured-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaStyle`,type:`Enums\\\\PricingFeaturedCtaStyle|string|null`,id:`param-pricing-featured-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaShadowColor`,type:`?string`,id:`param-pricing-featured-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaShadowColorLight`,type:`?string`,id:`param-pricing-featured-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaAnimation`,type:`Enums\\\\PricingFeaturedCtaAnimation|string|null`,id:`param-pricing-featured-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIcon`,type:`?string`,id:`param-pricing-featured-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIconFamily`,type:`Enums\\\\PricingFeaturedCtaIconFamily|string|null`,id:`param-pricing-featured-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIconPosition`,type:`Enums\\\\PricingFeaturedCtaIconPosition|string|null`,id:`param-pricing-featured-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingFeaturedCtaIconNudge`,type:`?bool`,id:`param-pricing-featured-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`pricingCtaLabel`,type:`?string`,id:`param-pricing-cta-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`pricingCtaUrl`,type:`?string`,id:`param-pricing-cta-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`pricingCtaNewTab`,type:`?bool`,id:`param-pricing-cta-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`pricingCtaVariant`,type:`Enums\\\\PricingCtaVariant|string|null`,id:`param-pricing-cta-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaSize`,type:`Enums\\\\PricingCtaSize|string|null`,id:`param-pricing-cta-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaRadius`,type:`Enums\\\\PricingCtaRadius|string|null`,id:`param-pricing-cta-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaColor`,type:`?string`,id:`param-pricing-cta-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`pricingCtaColorLight`,type:`?string`,id:`param-pricing-cta-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`pricingCtaTextColor`,type:`?string`,id:`param-pricing-cta-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`pricingCtaTextColorLight`,type:`?string`,id:`param-pricing-cta-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`pricingCtaHoverColor`,type:`?string`,id:`param-pricing-cta-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`pricingCtaHoverColorLight`,type:`?string`,id:`param-pricing-cta-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`pricingCtaStyle`,type:`Enums\\\\PricingCtaStyle|string|null`,id:`param-pricing-cta-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaShadowColor`,type:`?string`,id:`param-pricing-cta-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`pricingCtaShadowColorLight`,type:`?string`,id:`param-pricing-cta-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`pricingCtaAnimation`,type:`Enums\\\\PricingCtaAnimation|string|null`,id:`param-pricing-cta-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaIcon`,type:`?string`,id:`param-pricing-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`pricingCtaIconFamily`,type:`Enums\\\\PricingCtaIconFamily|string|null`,id:`param-pricing-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaIconPosition`,type:`Enums\\\\PricingCtaIconPosition|string|null`,id:`param-pricing-cta-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`pricingCtaIconNudge`,type:`?bool`,id:`param-pricing-cta-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-54`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-177`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`NewsletterWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\NewsletterWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`newsletter`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\NewsletterWidgetType|string`,id:`param-type-60`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`newsletter`}),`. One of `,_jsx(_components.code,{children:`newsletter`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-181`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-67`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterForm`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-newsletter-form-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Form (Forms manager) that receives these submissions and routes them — configure its destinations on the form’s Actions tab. Create one if you have not yet. The related `,_jsx(_components.code,{children:`@apostrophecms/form`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowEnabled`,type:`?bool`,id:`param-newsletter-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show eyebrow.`]})}),_jsx(ResponseField,{name:`newsletterEyebrow`,type:`?string`,id:`param-newsletter-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowColor`,type:`?string`,id:`param-newsletter-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowColorLight`,type:`?string`,id:`param-newsletter-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowWeight`,type:`Enums\\\\NewsletterEyebrowWeight|string|null`,id:`param-newsletter-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterEyebrowSize`,type:`Enums\\\\NewsletterEyebrowSize|string|null`,id:`param-newsletter-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterHeading`,type:`?string`,id:`param-newsletter-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading.`]})}),_jsx(ResponseField,{name:`newsletterHeadingColor`,type:`?string`,id:`param-newsletter-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`newsletterHeadingColorLight`,type:`?string`,id:`param-newsletter-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`newsletterHeadingWeight`,type:`Enums\\\\NewsletterHeadingWeight|string|null`,id:`param-newsletter-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterHeadingSize`,type:`Enums\\\\NewsletterHeadingSize|string|null`,id:`param-newsletter-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterIntro`,type:`?string`,id:`param-newsletter-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`newsletterIntroColor`,type:`?string`,id:`param-newsletter-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`newsletterIntroColorLight`,type:`?string`,id:`param-newsletter-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`newsletterIntroWeight`,type:`Enums\\\\NewsletterIntroWeight|string|null`,id:`param-newsletter-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterIntroSize`,type:`Enums\\\\NewsletterIntroSize|string|null`,id:`param-newsletter-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterBand`,type:`Enums\\\\NewsletterBand|string|null`,id:`param-newsletter-band-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterAccentColor`,type:`?string`,id:`param-newsletter-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The accent band color. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`newsletterAccentColorLight`,type:`?string`,id:`param-newsletter-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`newsletterAlign`,type:`Enums\\\\NewsletterAlign|string|null`,id:`param-newsletter-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterLayout`,type:`Enums\\\\NewsletterLayout|string|null`,id:`param-newsletter-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Inline puts the field + button on one row (stacks on small screens); Stacked always stacks them. One of `,_jsx(_components.code,{children:`inline`}),`, `,_jsx(_components.code,{children:`stacked`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterWidth`,type:`Enums\\\\NewsletterWidth|string|null`,id:`param-newsletter-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Content width. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterNameEnabled`,type:`?bool`,id:`param-newsletter-name-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Collect a name.`]})}),_jsx(ResponseField,{name:`newsletterNameLabel`,type:`?string`,id:`param-newsletter-name-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name label.`]})}),_jsx(ResponseField,{name:`newsletterNamePlaceholder`,type:`?string`,id:`param-newsletter-name-placeholder-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name placeholder.`]})}),_jsx(ResponseField,{name:`newsletterEmailLabel`,type:`?string`,id:`param-newsletter-email-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Email label.`]})}),_jsx(ResponseField,{name:`newsletterEmailPlaceholder`,type:`?string`,id:`param-newsletter-email-placeholder-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Email placeholder.`]})}),_jsx(ResponseField,{name:`newsletterConsentEnabled`,type:`?bool`,id:`param-newsletter-consent-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional opt-in checkbox (e.g. for GDPR-style explicit consent).`]})}),_jsx(ResponseField,{name:`newsletterConsentText`,type:`?string`,id:`param-newsletter-consent-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Consent statement.`]})}),_jsx(ResponseField,{name:`newsletterDisclaimer`,type:`?string`,id:`param-newsletter-disclaimer-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A small line under the form, e.g. an unsubscribe note.`]})}),_jsx(ResponseField,{name:`newsletterSuccessMessage`,type:`?string`,id:`param-newsletter-success-message-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Success message.`]})}),_jsx(ResponseField,{name:`newsletterErrorMessage`,type:`?string`,id:`param-newsletter-error-message-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Error message.`]})}),_jsx(ResponseField,{name:`newsletterBg`,type:`Enums\\\\NewsletterBg|string|null`,id:`param-newsletter-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterBgCustom`,type:`?string`,id:`param-newsletter-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`newsletterBgLight`,type:`Enums\\\\NewsletterBgLight|string|null`,id:`param-newsletter-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterBgLightCustom`,type:`?string`,id:`param-newsletter-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`newsletterFontOverrides`,type:`Collection\u003cint, NewsletterWidgetNewsletterFontOverridesItem>|null`,id:`param-newsletter-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`NewsletterWidgetNewsletterFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`NewsletterWidgetNewsletterFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\NewsletterWidgetNewsletterFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-182`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, NewsletterWidgetNewsletterFontOverridesItemUploadsItem>|null`,id:`param-uploads-48`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`NewsletterWidgetNewsletterFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`NewsletterWidgetNewsletterFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\NewsletterWidgetNewsletterFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-183`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-178`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-48`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-179`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`newsletterSubmitLabel`,type:`?string`,id:`param-newsletter-submit-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`newsletterSubmitVariant`,type:`Enums\\\\NewsletterSubmitVariant|string|null`,id:`param-newsletter-submit-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitSize`,type:`Enums\\\\NewsletterSubmitSize|string|null`,id:`param-newsletter-submit-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitRadius`,type:`Enums\\\\NewsletterSubmitRadius|string|null`,id:`param-newsletter-submit-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitColor`,type:`?string`,id:`param-newsletter-submit-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`newsletterSubmitColorLight`,type:`?string`,id:`param-newsletter-submit-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`newsletterSubmitTextColor`,type:`?string`,id:`param-newsletter-submit-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`newsletterSubmitTextColorLight`,type:`?string`,id:`param-newsletter-submit-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`newsletterSubmitHoverColor`,type:`?string`,id:`param-newsletter-submit-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`newsletterSubmitHoverColorLight`,type:`?string`,id:`param-newsletter-submit-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`newsletterSubmitStyle`,type:`Enums\\\\NewsletterSubmitStyle|string|null`,id:`param-newsletter-submit-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitShadowColor`,type:`?string`,id:`param-newsletter-submit-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`newsletterSubmitShadowColorLight`,type:`?string`,id:`param-newsletter-submit-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`newsletterSubmitAnimation`,type:`Enums\\\\NewsletterSubmitAnimation|string|null`,id:`param-newsletter-submit-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIcon`,type:`?string`,id:`param-newsletter-submit-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIconFamily`,type:`Enums\\\\NewsletterSubmitIconFamily|string|null`,id:`param-newsletter-submit-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIconPosition`,type:`Enums\\\\NewsletterSubmitIconPosition|string|null`,id:`param-newsletter-submit-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`newsletterSubmitIconNudge`,type:`?bool`,id:`param-newsletter-submit-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-55`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-180`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`SmsSignupWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SmsSignupWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`sms-signup`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\SmsSignupWidgetType|string`,id:`param-type-61`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`sms-signup`}),`. One of `,_jsx(_components.code,{children:`sms-signup`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupConsentText`,type:`string`,id:`param-sms-signup-consent-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` Shown beside a required checkbox; the form shows only once this is filled in. Be specific about what they are agreeing to. The brand name is added automatically from Site settings.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-184`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-68`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupForm`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-sms-signup-form-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The Form (Forms manager) that receives these SMS opt-ins and routes them — configure its destinations on the form’s Actions tab. The related `,_jsx(_components.code,{children:`@apostrophecms/form`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowEnabled`,type:`?bool`,id:`param-sms-signup-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show eyebrow.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrow`,type:`?string`,id:`param-sms-signup-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowColor`,type:`?string`,id:`param-sms-signup-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowColorLight`,type:`?string`,id:`param-sms-signup-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowWeight`,type:`Enums\\\\SmsSignupEyebrowWeight|string|null`,id:`param-sms-signup-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupEyebrowSize`,type:`Enums\\\\SmsSignupEyebrowSize|string|null`,id:`param-sms-signup-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupHeading`,type:`?string`,id:`param-sms-signup-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading.`]})}),_jsx(ResponseField,{name:`smsSignupHeadingColor`,type:`?string`,id:`param-sms-signup-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`smsSignupHeadingColorLight`,type:`?string`,id:`param-sms-signup-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`smsSignupHeadingWeight`,type:`Enums\\\\SmsSignupHeadingWeight|string|null`,id:`param-sms-signup-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupHeadingSize`,type:`Enums\\\\SmsSignupHeadingSize|string|null`,id:`param-sms-signup-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupIntro`,type:`?string`,id:`param-sms-signup-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`smsSignupIntroColor`,type:`?string`,id:`param-sms-signup-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`smsSignupIntroColorLight`,type:`?string`,id:`param-sms-signup-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`smsSignupIntroWeight`,type:`Enums\\\\SmsSignupIntroWeight|string|null`,id:`param-sms-signup-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupIntroSize`,type:`Enums\\\\SmsSignupIntroSize|string|null`,id:`param-sms-signup-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupBand`,type:`Enums\\\\SmsSignupBand|string|null`,id:`param-sms-signup-band-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupAccentColor`,type:`?string`,id:`param-sms-signup-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The accent band color. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`smsSignupAccentColorLight`,type:`?string`,id:`param-sms-signup-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`smsSignupAlign`,type:`Enums\\\\SmsSignupAlign|string|null`,id:`param-sms-signup-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupLayout`,type:`Enums\\\\SmsSignupLayout|string|null`,id:`param-sms-signup-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Inline puts the field + button on one row (stacks on small screens); Stacked always stacks them. One of `,_jsx(_components.code,{children:`inline`}),`, `,_jsx(_components.code,{children:`stacked`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupWidth`,type:`Enums\\\\SmsSignupWidth|string|null`,id:`param-sms-signup-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Content width. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupNameEnabled`,type:`?bool`,id:`param-sms-signup-name-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Collect a name.`]})}),_jsx(ResponseField,{name:`smsSignupNameLabel`,type:`?string`,id:`param-sms-signup-name-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name label.`]})}),_jsx(ResponseField,{name:`smsSignupNamePlaceholder`,type:`?string`,id:`param-sms-signup-name-placeholder-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Name placeholder.`]})}),_jsx(ResponseField,{name:`smsSignupPhoneLabel`,type:`?string`,id:`param-sms-signup-phone-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Phone label.`]})}),_jsx(ResponseField,{name:`smsSignupPhonePlaceholder`,type:`?string`,id:`param-sms-signup-phone-placeholder-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Phone placeholder.`]})}),_jsx(ResponseField,{name:`smsSignupTermsText`,type:`?string`,id:`param-sms-signup-terms-text-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Carrier-compliance fine print shown under the form.`]})}),_jsx(ResponseField,{name:`smsSignupPrivacyUrl`,type:`?string`,id:`param-sms-signup-privacy-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — linked from the fine print.`]})}),_jsx(ResponseField,{name:`smsSignupTermsUrl`,type:`?string`,id:`param-sms-signup-terms-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — linked from the fine print.`]})}),_jsx(ResponseField,{name:`smsSignupSuccessMessage`,type:`?string`,id:`param-sms-signup-success-message-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Success message.`]})}),_jsx(ResponseField,{name:`smsSignupErrorMessage`,type:`?string`,id:`param-sms-signup-error-message-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Error message.`]})}),_jsx(ResponseField,{name:`smsSignupBg`,type:`Enums\\\\SmsSignupBg|string|null`,id:`param-sms-signup-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupBgCustom`,type:`?string`,id:`param-sms-signup-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`smsSignupBgLight`,type:`Enums\\\\SmsSignupBgLight|string|null`,id:`param-sms-signup-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupBgLightCustom`,type:`?string`,id:`param-sms-signup-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`smsSignupFontOverrides`,type:`Collection\u003cint, SmsSignupWidgetSmsSignupFontOverridesItem>|null`,id:`param-sms-signup-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`SmsSignupWidgetSmsSignupFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`SmsSignupWidgetSmsSignupFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SmsSignupWidgetSmsSignupFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-185`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem>|null`,id:`param-uploads-49`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\SmsSignupWidgetSmsSignupFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-186`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-181`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-49`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-182`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`smsSignupSubmitLabel`,type:`?string`,id:`param-sms-signup-submit-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitVariant`,type:`Enums\\\\SmsSignupSubmitVariant|string|null`,id:`param-sms-signup-submit-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitSize`,type:`Enums\\\\SmsSignupSubmitSize|string|null`,id:`param-sms-signup-submit-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitRadius`,type:`Enums\\\\SmsSignupSubmitRadius|string|null`,id:`param-sms-signup-submit-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitColor`,type:`?string`,id:`param-sms-signup-submit-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitColorLight`,type:`?string`,id:`param-sms-signup-submit-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`smsSignupSubmitTextColor`,type:`?string`,id:`param-sms-signup-submit-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`smsSignupSubmitTextColorLight`,type:`?string`,id:`param-sms-signup-submit-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitHoverColor`,type:`?string`,id:`param-sms-signup-submit-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitHoverColorLight`,type:`?string`,id:`param-sms-signup-submit-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitStyle`,type:`Enums\\\\SmsSignupSubmitStyle|string|null`,id:`param-sms-signup-submit-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitShadowColor`,type:`?string`,id:`param-sms-signup-submit-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitShadowColorLight`,type:`?string`,id:`param-sms-signup-submit-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitAnimation`,type:`Enums\\\\SmsSignupSubmitAnimation|string|null`,id:`param-sms-signup-submit-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIcon`,type:`?string`,id:`param-sms-signup-submit-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIconFamily`,type:`Enums\\\\SmsSignupSubmitIconFamily|string|null`,id:`param-sms-signup-submit-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIconPosition`,type:`Enums\\\\SmsSignupSubmitIconPosition|string|null`,id:`param-sms-signup-submit-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`smsSignupSubmitIconNudge`,type:`?bool`,id:`param-sms-signup-submit-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-56`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-183`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`FormRenderWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FormRenderWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`form-render`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FormRenderWidgetType|string`,id:`param-type-62`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`form-render`}),`. One of `,_jsx(_components.code,{children:`form-render`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-187`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-69`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`form`,type:`Collection\u003cint, array\u003cstring, mixed>>|null`,id:`param-form-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The form to show here. Build and edit the form itself in the Forms manager (create one there first if needed). The related `,_jsx(_components.code,{children:`@apostrophecms/form`}),` documents, in order (empty when none). To set it, send a list of `,_jsx(_components.code,{children:`{ \"_id\": \"…\" }`}),`, one per document (one at most); a document the site can’t find is left out. At most 1 items.`]})}),_jsx(ResponseField,{name:`styleOverride`,type:`?bool`,id:`param-style-override-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Off: the form renders with the styling saved on the form itself. On: the styling below replaces it here only — the form’s fields and other placements are unaffected.`]})}),_jsxs(ResponseField,{name:`formFontOverrides`,type:`Collection\u003cint, FormRenderWidgetFormFontOverridesItem>|null`,id:`param-form-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FormRenderWidgetFormFontOverridesItem`}),`. Optional. Set part of this form in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FormRenderWidgetFormFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FormRenderWidgetFormFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-188`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FormRenderWidgetFormFontOverridesItemUploadsItem>|null`,id:`param-uploads-50`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FormRenderWidgetFormFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FormRenderWidgetFormFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FormRenderWidgetFormFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-189`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-184`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-50`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-185`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`formEyebrowEnabled`,type:`?bool`,id:`param-form-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show eyebrow.`]})}),_jsx(ResponseField,{name:`formEyebrow`,type:`?string`,id:`param-form-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`formEyebrowColor`,type:`?string`,id:`param-form-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`formEyebrowColorLight`,type:`?string`,id:`param-form-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`formEyebrowWeight`,type:`Enums\\\\FormEyebrowWeight|string|null`,id:`param-form-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formEyebrowSize`,type:`Enums\\\\FormEyebrowSize|string|null`,id:`param-form-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formHeading`,type:`?string`,id:`param-form-heading-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading.`]})}),_jsx(ResponseField,{name:`formHeadingColor`,type:`?string`,id:`param-form-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to track the theme text color.`]})}),_jsx(ResponseField,{name:`formHeadingColorLight`,type:`?string`,id:`param-form-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`formHeadingWeight`,type:`Enums\\\\FormHeadingWeight|string|null`,id:`param-form-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formHeadingSize`,type:`Enums\\\\FormHeadingSize|string|null`,id:`param-form-heading-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formIntro`,type:`?string`,id:`param-form-intro-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional short sentence under the heading.`]})}),_jsx(ResponseField,{name:`formIntroColor`,type:`?string`,id:`param-form-intro-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the muted text color.`]})}),_jsx(ResponseField,{name:`formIntroColorLight`,type:`?string`,id:`param-form-intro-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`formIntroWeight`,type:`Enums\\\\FormIntroWeight|string|null`,id:`param-form-intro-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formIntroSize`,type:`Enums\\\\FormIntroSize|string|null`,id:`param-form-intro-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`, `,_jsx(_components.code,{children:`xxlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formBand`,type:`Enums\\\\FormBand|string|null`,id:`param-form-band-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Plain sits on the page; Raised is a contained card; Accent is a solid brand-color band. One of `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formAccentColor`,type:`?string`,id:`param-form-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The accent band color. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`formAccentColorLight`,type:`?string`,id:`param-form-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`formAlign`,type:`Enums\\\\FormAlign|string|null`,id:`param-form-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Alignment of the section header (the form fields stay left-aligned for legibility). One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formWidth`,type:`Enums\\\\FormWidth|string|null`,id:`param-form-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Content width. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formLabelGap`,type:`Enums\\\\FormLabelGap|string|null`,id:`param-form-label-gap-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vertical space between each field’s label and its input. One of `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`roomy`}),`, `,_jsx(_components.code,{children:`spacious`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formBg`,type:`Enums\\\\FormBg|string|null`,id:`param-form-bg-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formBgCustom`,type:`?string`,id:`param-form-bg-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`formBgLight`,type:`Enums\\\\FormBgLight|string|null`,id:`param-form-bg-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formBgLightCustom`,type:`?string`,id:`param-form-bg-light-custom-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`formSubmitLabel`,type:`?string`,id:`param-form-submit-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`formSubmitVariant`,type:`Enums\\\\FormSubmitVariant|string|null`,id:`param-form-submit-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitSize`,type:`Enums\\\\FormSubmitSize|string|null`,id:`param-form-submit-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitRadius`,type:`Enums\\\\FormSubmitRadius|string|null`,id:`param-form-submit-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitColor`,type:`?string`,id:`param-form-submit-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`formSubmitColorLight`,type:`?string`,id:`param-form-submit-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`formSubmitTextColor`,type:`?string`,id:`param-form-submit-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`formSubmitTextColorLight`,type:`?string`,id:`param-form-submit-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`formSubmitHoverColor`,type:`?string`,id:`param-form-submit-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`formSubmitHoverColorLight`,type:`?string`,id:`param-form-submit-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`formSubmitStyle`,type:`Enums\\\\FormSubmitStyle|string|null`,id:`param-form-submit-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitShadowColor`,type:`?string`,id:`param-form-submit-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`formSubmitShadowColorLight`,type:`?string`,id:`param-form-submit-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`formSubmitAnimation`,type:`Enums\\\\FormSubmitAnimation|string|null`,id:`param-form-submit-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitIcon`,type:`?string`,id:`param-form-submit-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`formSubmitIconFamily`,type:`Enums\\\\FormSubmitIconFamily|string|null`,id:`param-form-submit-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitIconPosition`,type:`Enums\\\\FormSubmitIconPosition|string|null`,id:`param-form-submit-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`formSubmitIconNudge`,type:`?bool`,id:`param-form-submit-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-57`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-186`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Expandable,{title:`FinalCtaWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FinalCtaWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`final-cta`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\FinalCtaWidgetType|string`,id:`param-type-63`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`final-cta`}),`. One of `,_jsx(_components.code,{children:`final-cta`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-190`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-70`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaAlign`,type:`Enums\\\\CtaAlign|string|null`,id:`param-cta-align-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Content alignment. One of `,_jsx(_components.code,{children:`center`}),`, `,_jsx(_components.code,{children:`left`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaEyebrowEnabled`,type:`?bool`,id:`param-cta-eyebrow-enabled-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show eyebrow / kicker.`]})}),_jsx(ResponseField,{name:`ctaEyebrow`,type:`?string`,id:`param-cta-eyebrow-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Small label shown above the title.`]})}),_jsx(ResponseField,{name:`ctaEyebrowColor`,type:`?string`,id:`param-cta-eyebrow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the eyebrow + its dash. Leave empty to use the secondary (mint) color.`]})}),_jsx(ResponseField,{name:`ctaEyebrowColorLight`,type:`?string`,id:`param-cta-eyebrow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the mint default.`]})}),_jsx(ResponseField,{name:`ctaEyebrowWeight`,type:`Enums\\\\CtaEyebrowWeight|string|null`,id:`param-cta-eyebrow-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaEyebrowSize`,type:`Enums\\\\CtaEyebrowSize|string|null`,id:`param-cta-eyebrow-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Eyebrow size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaIconPlacement`,type:`Enums\\\\CtaIconPlacement|string|null`,id:`param-cta-icon-placement-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An optional Font Awesome icon above the headline. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`top`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaIcon`,type:`?string`,id:`param-cta-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`ctaIconFamily`,type:`Enums\\\\CtaIconFamily|string|null`,id:`param-cta-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaIconColor`,type:`?string`,id:`param-cta-icon-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`ctaIconAnimation`,type:`Enums\\\\CtaIconAnimation|string|null`,id:`param-cta-icon-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaIconSize`,type:`Enums\\\\CtaIconSize|string|null`,id:`param-cta-icon-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaIconTilt`,type:`Enums\\\\CtaIconTilt|string|null`,id:`param-cta-icon-tilt-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A slight rotation for a more playful look. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`left`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaHeadline`,type:`?string`,id:`param-cta-headline-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Headline.`]})}),_jsx(ResponseField,{name:`ctaHeadlineColor`,type:`?string`,id:`param-cta-headline-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the headline color. Leave empty for the on-accent (legible-on-band) default.`]})}),_jsx(ResponseField,{name:`ctaHeadlineColorLight`,type:`?string`,id:`param-cta-headline-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the on-accent default.`]})}),_jsx(ResponseField,{name:`ctaHeadlineWeight`,type:`Enums\\\\CtaHeadlineWeight|string|null`,id:`param-cta-headline-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Headline weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaBody`,type:`?string`,id:`param-cta-body-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Supporting copy.`]})}),_jsx(ResponseField,{name:`ctaBodyColor`,type:`?string`,id:`param-cta-body-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the supporting-copy color. Leave empty for the softened on-accent default.`]})}),_jsx(ResponseField,{name:`ctaBodyColorLight`,type:`?string`,id:`param-cta-body-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the softened on-accent default.`]})}),_jsx(ResponseField,{name:`ctaBodyWeight`,type:`Enums\\\\CtaBodyWeight|string|null`,id:`param-cta-body-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaBackgroundType`,type:`Enums\\\\CtaBackgroundType|string|null`,id:`param-cta-background-type-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid keeps the loud color block; Image places a photo behind the text with a readability overlay. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`image`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaBackgroundColor`,type:`?string`,id:`param-cta-background-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The solid band color (and the fallback behind a background image). Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`ctaBackgroundColorLight`,type:`?string`,id:`param-cta-background-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`ctaImage`,type:`?ImageArea`,id:`param-cta-image-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An `,_jsx(_components.code,{children:`ImageArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`ctaOverlayColor`,type:`?string`,id:`param-cta-overlay-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Scrim over the image to keep the text readable. Leave empty to use the accent color.`]})}),_jsx(ResponseField,{name:`ctaOverlayColorLight`,type:`?string`,id:`param-cta-overlay-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme overlay, then the accent.`]})}),_jsx(ResponseField,{name:`ctaOverlayOpacity`,type:`?float`,id:`param-cta-overlay-opacity-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overlay opacity (%). 0 to 100.`]})}),_jsx(ResponseField,{name:`ctaRings`,type:`?bool`,id:`param-cta-rings-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The two large outlined circles on the band.`]})}),_jsx(ResponseField,{name:`ctaRingColor`,type:`?string`,id:`param-cta-ring-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Drawn at a low opacity. Leave empty to use the on-accent (white-ish) default.`]})}),_jsxs(ResponseField,{name:`ctaFontOverrides`,type:`Collection\u003cint, FinalCtaWidgetCtaFontOverridesItem>|null`,id:`param-cta-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FinalCtaWidgetCtaFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`FinalCtaWidgetCtaFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FinalCtaWidgetCtaFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-191`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, FinalCtaWidgetCtaFontOverridesItemUploadsItem>|null`,id:`param-uploads-51`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`FinalCtaWidgetCtaFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`FinalCtaWidgetCtaFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\FinalCtaWidgetCtaFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-192`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-187`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-51`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-188`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`ctaPrimaryLabel`,type:`?string`,id:`param-cta-primary-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`ctaPrimaryUrl`,type:`?string`,id:`param-cta-primary-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`ctaPrimaryNewTab`,type:`?bool`,id:`param-cta-primary-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`ctaPrimaryVariant`,type:`Enums\\\\CtaPrimaryVariant|string|null`,id:`param-cta-primary-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimarySize`,type:`Enums\\\\CtaPrimarySize|string|null`,id:`param-cta-primary-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimaryRadius`,type:`Enums\\\\CtaPrimaryRadius|string|null`,id:`param-cta-primary-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimaryColor`,type:`?string`,id:`param-cta-primary-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`ctaPrimaryColorLight`,type:`?string`,id:`param-cta-primary-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`ctaPrimaryTextColor`,type:`?string`,id:`param-cta-primary-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`ctaPrimaryTextColorLight`,type:`?string`,id:`param-cta-primary-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`ctaPrimaryHoverColor`,type:`?string`,id:`param-cta-primary-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`ctaPrimaryHoverColorLight`,type:`?string`,id:`param-cta-primary-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`ctaPrimaryStyle`,type:`Enums\\\\CtaPrimaryStyle|string|null`,id:`param-cta-primary-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimaryShadowColor`,type:`?string`,id:`param-cta-primary-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`ctaPrimaryShadowColorLight`,type:`?string`,id:`param-cta-primary-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`ctaPrimaryAnimation`,type:`Enums\\\\CtaPrimaryAnimation|string|null`,id:`param-cta-primary-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIcon`,type:`?string`,id:`param-cta-primary-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIconFamily`,type:`Enums\\\\CtaPrimaryIconFamily|string|null`,id:`param-cta-primary-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIconPosition`,type:`Enums\\\\CtaPrimaryIconPosition|string|null`,id:`param-cta-primary-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaPrimaryIconNudge`,type:`?bool`,id:`param-cta-primary-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`ctaSecondaryLabel`,type:`?string`,id:`param-cta-secondary-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`ctaSecondaryUrl`,type:`?string`,id:`param-cta-secondary-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the button goes — a path (/blog) or full URL.`]})}),_jsx(ResponseField,{name:`ctaSecondaryNewTab`,type:`?bool`,id:`param-cta-secondary-new-tab-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Opens the link in a new browser tab (adds rel=“noopener noreferrer”).`]})}),_jsx(ResponseField,{name:`ctaSecondaryVariant`,type:`Enums\\\\CtaSecondaryVariant|string|null`,id:`param-cta-secondary-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondarySize`,type:`Enums\\\\CtaSecondarySize|string|null`,id:`param-cta-secondary-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondaryRadius`,type:`Enums\\\\CtaSecondaryRadius|string|null`,id:`param-cta-secondary-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondaryColor`,type:`?string`,id:`param-cta-secondary-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`ctaSecondaryColorLight`,type:`?string`,id:`param-cta-secondary-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`ctaSecondaryTextColor`,type:`?string`,id:`param-cta-secondary-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`ctaSecondaryTextColorLight`,type:`?string`,id:`param-cta-secondary-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`ctaSecondaryHoverColor`,type:`?string`,id:`param-cta-secondary-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`ctaSecondaryHoverColorLight`,type:`?string`,id:`param-cta-secondary-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`ctaSecondaryStyle`,type:`Enums\\\\CtaSecondaryStyle|string|null`,id:`param-cta-secondary-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondaryShadowColor`,type:`?string`,id:`param-cta-secondary-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`ctaSecondaryShadowColorLight`,type:`?string`,id:`param-cta-secondary-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`ctaSecondaryAnimation`,type:`Enums\\\\CtaSecondaryAnimation|string|null`,id:`param-cta-secondary-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIcon`,type:`?string`,id:`param-cta-secondary-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIconFamily`,type:`Enums\\\\CtaSecondaryIconFamily|string|null`,id:`param-cta-secondary-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIconPosition`,type:`Enums\\\\CtaSecondaryIconPosition|string|null`,id:`param-cta-secondary-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`ctaSecondaryIconNudge`,type:`?bool`,id:`param-cta-secondary-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-58`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-189`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-190`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`comingSoonIcon`,type:`?string`,id:`param-coming-soon-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`comingSoonIconFamily`,type:`Enums\\\\ComingSoonIconFamily|string|null`,id:`param-coming-soon-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`comingSoonIconColor`,type:`?string`,id:`param-coming-soon-icon-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`comingSoonIconAnimation`,type:`Enums\\\\ComingSoonIconAnimation|string|null`,id:`param-coming-soon-icon-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`comingSoonIconSize`,type:`Enums\\\\ComingSoonIconSize|string|null`,id:`param-coming-soon-icon-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`comingSoonNote`,type:`?string`,id:`param-coming-soon-note-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Shown under the icon while this page has no content. Leave empty for a tasteful default line.`]})}),_jsx(ResponseField,{name:`backLinkColor`,type:`?string`,id:`param-back-link-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Color of the ”← back” link at the top of every post. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`backLinkColorLight`,type:`?string`,id:`param-back-link-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`backLinkWeight`,type:`Enums\\\\BackLinkWeight|string|null`,id:`param-back-link-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Back link weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backLinkSize`,type:`Enums\\\\BackLinkSize|string|null`,id:`param-back-link-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Back link size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`aboveSections`,type:`?SectionsArea`,id:`param-above-sections-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`SectionsArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`page-header`}),`. Its fields are listed under the first `,_jsx(_components.code,{children:`SectionsArea`}),` above.`]})}),_jsxs(ResponseField,{name:`postList`,type:`?BlogListArea`,id:`param-post-list-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`BlogListArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`blog-list`}),`.`]}),_jsxs(Expandable,{title:`BlogListArea (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListArea)`,children:[_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\AfterContentAreaMetaType|string|null`,id:`param-meta-type-71`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`area`}),`. One of `,_jsx(_components.code,{children:`area`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-193`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The area’s id, set by the site: leave it out when you write one.`]})}),_jsxs(ResponseField,{name:`items`,type:`Collection\u003cint, BlogListWidget>|null`,id:`param-items-10`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`BlogListWidget`}),`. The widgets, top to bottom. Each is an object with its `,_jsx(_components.code,{children:`type`}),` and that widget’s own fields; `,_jsx(_components.code,{children:`_id`}),` and `,_jsx(_components.code,{children:`metaType`}),` may be left out (the site sets them). At most 1 items.`]}),_jsxs(Expandable,{title:`BlogListWidget (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListWidget)`,children:[_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`blog-list`}),` widget: its `,_jsx(_components.code,{children:`type`}),` and its own fields. A field left out takes its default.`]}),_jsx(ResponseField,{name:`type`,type:`Enums\\\\BlogListWidgetType|string`,id:`param-type-64`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` The widget’s type: always `,_jsx(_components.code,{children:`blog-list`}),`. One of `,_jsx(_components.code,{children:`blog-list`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-194`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The widget’s id, unique on the page. Leave it out for a new widget (the site sets one); keep it to change a widget that is there.`]})}),_jsx(ResponseField,{name:`metaType`,type:`Enums\\\\MetaType|string|null`,id:`param-meta-type-72`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Always `,_jsx(_components.code,{children:`widget`}),`. One of `,_jsx(_components.code,{children:`widget`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogLayout`,type:`Enums\\\\BlogLayout|string|null`,id:`param-blog-layout-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How posts are arranged. One of `,_jsx(_components.code,{children:`card`}),`, `,_jsx(_components.code,{children:`list`}),`, `,_jsx(_components.code,{children:`compact`}),`, `,_jsx(_components.code,{children:`featured`}),`, `,_jsx(_components.code,{children:`masonry`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogColumns`,type:`Enums\\\\BlogColumns|string|null`,id:`param-blog-columns-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Applies to the Card grid and Masonry layouts. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogEntrance`,type:`Enums\\\\BlogEntrance|string|null`,id:`param-blog-entrance-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How posts animate in as they scroll into view. Only plays when site animations are on (Site design → Motion) — otherwise the posts are simply shown. In the Featured + grid layout the banner rises first, then the grid staggers in. One of `,_jsx(_components.code,{children:`stagger`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardImageAspect`,type:`Enums\\\\BlogCardImageAspect|string|null`,id:`param-blog-card-image-aspect-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Aspect ratio of the featured image. Choose “Hidden” for text-only cards. One of `,_jsx(_components.code,{children:`16/10`}),`, `,_jsx(_components.code,{children:`4/3`}),`, `,_jsx(_components.code,{children:`3/2`}),`, `,_jsx(_components.code,{children:`1/1`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardImageHover`,type:`Enums\\\\BlogCardImageHover|string|null`,id:`param-blog-card-image-hover-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Image hover. One of `,_jsx(_components.code,{children:`zoom`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardImageFill`,type:`?bool`,id:`param-blog-card-image-fill-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Use the featured image as the full card background, with the title and meta overlaid on a dark scrim. Posts with no image fall back to a normal card.`]})}),_jsx(ResponseField,{name:`blogCardPreset`,type:`Enums\\\\BlogCardPreset|string|null`,id:`param-blog-card-preset-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The card surface. Raised is a quiet lit card; Luxe a frosted glass panel; Outline a plaque frame; Spine adds a color rail; Tint an accent wash; Ticket/Bracket/Forge/Press/Inlay are the graphic showstoppers. (On image-led cards the photo covers the top edge.) One of `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`luxe`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`plain`}),`, `,_jsx(_components.code,{children:`poster`}),`, `,_jsx(_components.code,{children:`edge`}),`, `,_jsx(_components.code,{children:`tint`}),`, `,_jsx(_components.code,{children:`ticket`}),`, `,_jsx(_components.code,{children:`bracket`}),`, `,_jsx(_components.code,{children:`forge`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`inlay`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardPresetRadius`,type:`Enums\\\\BlogCardPresetRadius|string|null`,id:`param-blog-card-preset-radius-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner rounding for each card. Default keeps the widget’s own tuned corners — except Forge, which defaults to tight machined corners matching its engraved frame. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`square`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardPresetAccentColor`,type:`?string`,id:`param-blog-card-preset-accent-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Colors the Spine rail, Bracket marks, Forge corner/frame and Press margin rule. Leave empty to use the brand accent.`]})}),_jsx(ResponseField,{name:`blogCardPresetAccentColorLight`,type:`?string`,id:`param-blog-card-preset-accent-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color.`]})}),_jsx(ResponseField,{name:`blogCardPresetForgeScope`,type:`Enums\\\\BlogCardPresetForgeScope|string|null`,id:`param-blog-card-preset-forge-scope-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the Forge plate wears its color: a single corner mark (the machinist’s datum, default) or the whole engraved frame. One of `,_jsx(_components.code,{children:`corner`}),`, `,_jsx(_components.code,{children:`frame`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardPresetForgeWeight`,type:`Enums\\\\BlogCardPresetForgeWeight|string|null`,id:`param-blog-card-preset-forge-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Thickness of the Forge corner mark / colored frame. One of `,_jsx(_components.code,{children:`fine`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardHover`,type:`Enums\\\\BlogCardHover|string|null`,id:`param-blog-card-hover-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. What a card does on hover. Lift/Pop/Press/Glow/Outline are instant; Sheen sweeps a light across; Tilt (3-D + glare), Magnetic and Spotlight follow the cursor (need site animations on). The Hover color below tints these. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`pop`}),`, `,_jsx(_components.code,{children:`press`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`border`}),`, `,_jsx(_components.code,{children:`sheen`}),`, `,_jsx(_components.code,{children:`tilt`}),`, `,_jsx(_components.code,{children:`magnetic`}),`, `,_jsx(_components.code,{children:`spotlight`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardHoverColor`,type:`?string`,id:`param-blog-card-hover-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Border / shadow / glow color on hover. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`blogCardHoverColorLight`,type:`?string`,id:`param-blog-card-hover-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardShowCategory`,type:`?bool`,id:`param-blog-card-show-category-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show category.`]})}),_jsx(ResponseField,{name:`blogCardCategoryStyle`,type:`Enums\\\\BlogCardCategoryStyle|string|null`,id:`param-blog-card-category-style-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How the category badge uses its color (set per category under Blog Categories). Filled = colored background; Outline = colored border + text; Minimal = colored text only. One of `,_jsx(_components.code,{children:`filled`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`minimal`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardShowDate`,type:`?bool`,id:`param-blog-card-show-date-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show date.`]})}),_jsx(ResponseField,{name:`blogCardShowExcerpt`,type:`?bool`,id:`param-blog-card-show-excerpt-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show excerpt.`]})}),_jsx(ResponseField,{name:`blogCardExcerptLines`,type:`Enums\\\\BlogCardExcerptLines|string|null`,id:`param-blog-card-excerpt-lines-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. How many lines of the excerpt to show before truncating. One of `,_jsx(_components.code,{children:`2`}),`, `,_jsx(_components.code,{children:`3`}),`, `,_jsx(_components.code,{children:`4`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardShowAuthor`,type:`?bool`,id:`param-blog-card-show-author-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show author.`]})}),_jsx(ResponseField,{name:`blogCardShowReadMore`,type:`?bool`,id:`param-blog-card-show-read-more-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Show “Read post” link.`]})}),_jsx(ResponseField,{name:`blogCardReadMorePlacement`,type:`Enums\\\\BlogCardReadMorePlacement|string|null`,id:`param-blog-card-read-more-placement-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Auto puts it on the right of horizontal cards (list / compact / featured) and below the text on grid cards. Or force one placement everywhere. One of `,_jsx(_components.code,{children:`auto`}),`, `,_jsx(_components.code,{children:`below`}),`, `,_jsx(_components.code,{children:`right`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreColor`,type:`?string`,id:`param-blog-card-read-more-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the “Read post” link color. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreColorLight`,type:`?string`,id:`param-blog-card-read-more-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColor`,type:`?string`,id:`param-blog-card-read-more-hover-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Color of the “Read post” link when the card is hovered. Leave empty to use the accent color.`]})}),_jsx(ResponseField,{name:`blogCardReadMoreHoverColorLight`,type:`?string`,id:`param-blog-card-read-more-hover-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardTitleColor`,type:`?string`,id:`param-blog-card-title-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the card title color. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`blogCardTitleColorLight`,type:`?string`,id:`param-blog-card-title-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`blogCardTitleWeight`,type:`Enums\\\\BlogCardTitleWeight|string|null`,id:`param-blog-card-title-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Title weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardTitleHoverColor`,type:`?string`,id:`param-blog-card-title-hover-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Title color when the card is hovered. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`blogCardTitleHoverColorLight`,type:`?string`,id:`param-blog-card-title-hover-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color, then the accent.`]})}),_jsx(ResponseField,{name:`blogCardTextColor`,type:`?string`,id:`param-blog-card-text-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides the excerpt text color. Leave empty for the muted default.`]})}),_jsx(ResponseField,{name:`blogCardTextColorLight`,type:`?string`,id:`param-blog-card-text-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the muted default.`]})}),_jsx(ResponseField,{name:`blogCardTextWeight`,type:`Enums\\\\BlogCardTextWeight|string|null`,id:`param-blog-card-text-weight-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Excerpt weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogCardMetaColor`,type:`?string`,id:`param-blog-card-meta-color-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Date / meta line color. Leave empty for the faint default.`]})}),_jsx(ResponseField,{name:`blogCardMetaColorLight`,type:`?string`,id:`param-blog-card-meta-color-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the faint default.`]})}),_jsx(ResponseField,{name:`blogBg`,type:`Enums\\\\BlogBg|string|null`,id:`param-blog-bg-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The section’s full-width background band in dark mode. Transparent lets the page background show through. The palette options track the site colors; choose “Custom color…” for a specific color. One of `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogBgCustom`,type:`?string`,id:`param-blog-bg-custom-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (dark theme)” is set to Custom color.`]})}),_jsx(ResponseField,{name:`blogBgLight`,type:`Enums\\\\BlogBgLight|string|null`,id:`param-blog-bg-light-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. “Match dark theme” reuses the dark-theme choice; otherwise set the light-mode band independently. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`transparent`}),`, `,_jsx(_components.code,{children:`surface`}),`, `,_jsx(_components.code,{children:`raised`}),`, `,_jsx(_components.code,{children:`sunken`}),`, `,_jsx(_components.code,{children:`hill`}),`, `,_jsx(_components.code,{children:`accent-soft`}),`, `,_jsx(_components.code,{children:`custom`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`blogBgLightCustom`,type:`?string`,id:`param-blog-bg-light-custom-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Used when “Section background (light theme)” is set to Custom color.`]})}),_jsxs(ResponseField,{name:`blogFontOverrides`,type:`Collection\u003cint, BlogListWidgetBlogFontOverridesItem>|null`,id:`param-blog-font-overrides-3`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`BlogListWidgetBlogFontOverridesItem`}),`. Optional. Set part of this section in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). At most 4 items.`]}),_jsxs(Expandable,{title:`BlogListWidgetBlogFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListWidgetBlogFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-195`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, BlogListWidgetBlogFontOverridesItemUploadsItem>|null`,id:`param-uploads-52`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`BlogListWidgetBlogFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`BlogListWidgetBlogFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\BlogListWidgetBlogFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-196`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-191`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-52`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-192`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`sectionCss`,type:`?CustomCSS`,id:`param-section-css-59`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`CustomCSS`}),`. CSS for this one section, typed into the slot of the part it styles. It wins over Site design → Custom CSS. Nested rules like \u0026:hover, @media (width >= 48rem) and [data-theme=“light”] \u0026 work inside a slot. Its fields are listed under the first `,_jsx(_components.code,{children:`CustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-193`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-194`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`belowSections`,type:`?SectionsArea`,id:`param-below-sections-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`SectionsArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`SectionsArea`}),` above.`]})}),_jsx(ResponseField,{name:`backButtonLabel`,type:`?string`,id:`param-back-button-label-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`backButtonVariant`,type:`Enums\\\\BackButtonVariant|string|null`,id:`param-back-button-variant-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonSize`,type:`Enums\\\\BackButtonSize|string|null`,id:`param-back-button-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonRadius`,type:`Enums\\\\BackButtonRadius|string|null`,id:`param-back-button-radius-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonColor`,type:`?string`,id:`param-back-button-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`backButtonColorLight`,type:`?string`,id:`param-back-button-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`backButtonTextColor`,type:`?string`,id:`param-back-button-text-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`backButtonTextColorLight`,type:`?string`,id:`param-back-button-text-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`backButtonHoverColor`,type:`?string`,id:`param-back-button-hover-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`backButtonHoverColorLight`,type:`?string`,id:`param-back-button-hover-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`backButtonStyle`,type:`Enums\\\\BackButtonStyle|string|null`,id:`param-back-button-style-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonShadowColor`,type:`?string`,id:`param-back-button-shadow-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`backButtonShadowColorLight`,type:`?string`,id:`param-back-button-shadow-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`backButtonAnimation`,type:`Enums\\\\BackButtonAnimation|string|null`,id:`param-back-button-animation-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonIcon`,type:`?string`,id:`param-back-button-icon-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`backButtonIconFamily`,type:`Enums\\\\BackButtonIconFamily|string|null`,id:`param-back-button-icon-family-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonIconPosition`,type:`Enums\\\\BackButtonIconPosition|string|null`,id:`param-back-button-icon-position-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonIconNudge`,type:`?bool`,id:`param-back-button-icon-nudge-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsxs(ResponseField,{name:`postFontOverrides`,type:`Collection\u003cint, PagePostFontOverridesItem>|null`,id:`param-post-font-overrides-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PagePostFontOverridesItem`}),`. Optional. Set part of every post in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). An individual post can replace this on its own Fonts tab. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePostFontOverridesItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePostFontOverridesItem)`,children:[_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-197`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`target`,type:`Enums\\\\Target|string|null`,id:`param-target-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which text this typeface replaces. Rows apply in order, so a broad row (Everything) followed by a narrow one (Headings) gives the section a base face plus an exception. One of `,_jsx(_components.code,{children:`all`}),`, `,_jsx(_components.code,{children:`heading`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`eyebrow`}),`, `,_jsx(_components.code,{children:`button`}),`, `,_jsx(_components.code,{children:`code`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`source`,type:`Enums\\\\Source|string|null`,id:`param-source-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where the typeface comes from. The first option costs nothing extra — those faces are already loaded. The others load an additional font on pages that use this section. One of `,_jsx(_components.code,{children:`slot`}),`, `,_jsx(_components.code,{children:`curated`}),`, `,_jsx(_components.code,{children:`cdn`}),`, `,_jsx(_components.code,{children:`upload`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`slot`,type:`Enums\\\\Slot|string|null`,id:`param-slot-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Set in Site design → Typography. Following the site’s own faces keeps a section on-brand and adds no download. One of `,_jsx(_components.code,{children:`display`}),`, `,_jsx(_components.code,{children:`body`}),`, `,_jsx(_components.code,{children:`accent`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`curated`,type:`Enums\\\\Curated|string|null`,id:`param-curated-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Vetted families from Bunny Fonts and Fontshare, with their available weights already verified. One of `,_jsx(_components.code,{children:`archivo`}),`, `,_jsx(_components.code,{children:`bricolage-grotesque`}),`, `,_jsx(_components.code,{children:`clash-display`}),`, `,_jsx(_components.code,{children:`courier-prime`}),`, `,_jsx(_components.code,{children:`dm-mono`}),`, `,_jsx(_components.code,{children:`dm-sans`}),`, `,_jsx(_components.code,{children:`fira-code`}),`, `,_jsx(_components.code,{children:`fraunces`}),`, `,_jsx(_components.code,{children:`general-sans`}),`, `,_jsx(_components.code,{children:`ibm-plex-mono`}),`, `,_jsx(_components.code,{children:`ibm-plex-sans`}),`, `,_jsx(_components.code,{children:`inconsolata`}),`, `,_jsx(_components.code,{children:`inter`}),`, `,_jsx(_components.code,{children:`jetbrains-mono`}),`, `,_jsx(_components.code,{children:`karla`}),`, `,_jsx(_components.code,{children:`lora`}),`, `,_jsx(_components.code,{children:`manrope`}),`, `,_jsx(_components.code,{children:`nunito-sans`}),`, `,_jsx(_components.code,{children:`outfit`}),`, `,_jsx(_components.code,{children:`playfair-display`}),`, `,_jsx(_components.code,{children:`public-sans`}),`, `,_jsx(_components.code,{children:`red-hat-mono`}),`, `,_jsx(_components.code,{children:`satoshi`}),`, `,_jsx(_components.code,{children:`sentient`}),`, `,_jsx(_components.code,{children:`sora`}),`, `,_jsx(_components.code,{children:`source-code-pro`}),`, `,_jsx(_components.code,{children:`source-sans-3`}),`, `,_jsx(_components.code,{children:`source-serif-4`}),`, `,_jsx(_components.code,{children:`space-grotesk`}),`, `,_jsx(_components.code,{children:`space-mono`}),`, `,_jsx(_components.code,{children:`spline-sans-mono`}),`, `,_jsx(_components.code,{children:`supreme`}),`, `,_jsx(_components.code,{children:`switzer`}),`, `,_jsx(_components.code,{children:`syne`}),`, `,_jsx(_components.code,{children:`ubuntu-mono`}),`, `,_jsx(_components.code,{children:`unbounded`}),`, `,_jsx(_components.code,{children:`victor-mono`}),`, `,_jsx(_components.code,{children:`work-sans`}),`, `,_jsx(_components.code,{children:`zodiak`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnProvider`,type:`Enums\\\\CdnProvider|string|null`,id:`param-cdn-provider-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Where to browse for the family. Pick one, then follow the link below to find the exact name. One of `,_jsx(_components.code,{children:`bunny`}),`, `,_jsx(_components.code,{children:`fontshare`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`cdnFamily`,type:`?string`,id:`param-cdn-family-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Exactly as the provider’s catalog spells it, e.g. “Space Grotesk” or “Clash Display”. A name the provider doesn’t have loads nothing and this row is ignored.`]})}),_jsx(ResponseField,{name:`cdnWeights`,type:`?string`,id:`param-cdn-weights-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Comma-separated weights to load, e.g. 400, 700. Empty loads 400, 500, 700. Weights the family doesn’t ship are skipped by the CDN and synthesized by the browser (faux bold) — but a family that ships only ONE weight (Acme, for instance) loads nothing at all unless that weight is among these, so set it explicitly if the typeface doesn’t appear.`]})}),_jsxs(ResponseField,{name:`uploads`,type:`Collection\u003cint, PagePostFontOverridesItemUploadsItem>|null`,id:`param-uploads-53`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PagePostFontOverridesItemUploadsItem`}),`. One file per weight/style of the SAME typeface. woff2 strongly recommended (smallest, universally supported); woff/ttf/otf also accepted. At most 4 items.`]}),_jsxs(Expandable,{title:`PagePostFontOverridesItemUploadsItem (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PagePostFontOverridesItemUploadsItem)`,children:[_jsx(ResponseField,{name:`file`,type:`array\u003cstring, mixed>`,id:`param-file-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always sent.`}),` File attachment reference.`]})}),_jsx(ResponseField,{name:`id`,type:`?string`,id:`param-id-198`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The row’s id, unique in its array.`]})}),_jsx(ResponseField,{name:`weight`,type:`Enums\\\\Weight|string|null`,id:`param-weight-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Weight. One of `,_jsx(_components.code,{children:`100`}),`, `,_jsx(_components.code,{children:`200`}),`, `,_jsx(_components.code,{children:`300`}),`, `,_jsx(_components.code,{children:`400`}),`, `,_jsx(_components.code,{children:`500`}),`, `,_jsx(_components.code,{children:`600`}),`, `,_jsx(_components.code,{children:`700`}),`, `,_jsx(_components.code,{children:`800`}),`, `,_jsx(_components.code,{children:`900`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`style`,type:`Enums\\\\Style|string|null`,id:`param-style-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Style. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`italic`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-195`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`fallback`,type:`Enums\\\\Fallback|string|null`,id:`param-fallback-53`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Generic system font shown while this typeface loads (and if it fails). Curated picks set this automatically. One of `,_jsx(_components.code,{children:`sans`}),`, `,_jsx(_components.code,{children:`serif`}),`, `,_jsx(_components.code,{children:`mono`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-196`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`postTextSize`,type:`Enums\\\\PostTextSize|string|null`,id:`param-post-text-size-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postTextWeight`,type:`Enums\\\\PostTextWeight|string|null`,id:`param-post-text-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postContentWidth`,type:`Enums\\\\PostContentWidth|string|null`,id:`param-post-content-width-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Reading measure — how wide the article column gets. Posts that contain section widgets open to Full width automatically so the widgets have room. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`, `,_jsx(_components.code,{children:`xwide`}),`, `,_jsx(_components.code,{children:`full`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postLineHeight`,type:`Enums\\\\PostLineHeight|string|null`,id:`param-post-line-height-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Line height. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`relaxed`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postAccentColor`,type:`?string`,id:`param-post-accent-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Links, the blockquote rule, and heading accents. Leave empty to use the site link color.`]})}),_jsx(ResponseField,{name:`postAccentColorLight`,type:`?string`,id:`param-post-accent-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the link color.`]})}),_jsx(ResponseField,{name:`postHeadingWeight`,type:`Enums\\\\PostHeadingWeight|string|null`,id:`param-post-heading-weight-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postHeadingColor`,type:`?string`,id:`param-post-heading-color-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides in-article heading color. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`postHeadingColorLight`,type:`?string`,id:`param-post-heading-color-light-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsxs(ResponseField,{name:`blogPostCss`,type:`?PostCustomCSS`,id:`param-blog-post-css-1`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`PostCustomCSS`}),`. CSS for every blog post’s page: the title band, the article and its parts. It wins over Site design → Custom CSS → Blog post.`]}),_jsxs(Expandable,{title:`PostCustomCSS (Fetchski\\\\AttractCmsLaravel\\\\Data\\\\PostCustomCSS)`,children:[_jsx(ResponseField,{name:`slots`,type:`array\u003cstring, string>|null`,id:`param-slots-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The CSS typed into each part slot, by slot name.`]})}),_jsx(ResponseField,{name:`css`,type:`?string`,id:`param-css-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The compiled CSS (read only: rebuilt from `,_jsx(_components.code,{children:`slots`}),`).`]})}),_jsx(ResponseField,{name:`mark`,type:`?string`,id:`param-mark-3`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The site’s check mark for `,_jsx(_components.code,{children:`css`}),` (read only).`]})})]})]}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-197`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]})]}),_jsx(ResponseField,{name:`children`,type:`Collection\u003cint, Page>|null`,id:`param-children-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`Page`}),`. Its child pages, each with its own `,_jsx(_components.code,{children:`_children`}),` where the request asked for more levels. Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`url`,type:`?string`,id:`param-url-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Full URL to the page. Format: an absolute URL.`]})}),_jsx(ResponseField,{name:`edit`,type:`?bool`,id:`param-edit-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether current user can edit this page.`]})}),_jsx(ResponseField,{name:`publish`,type:`?bool`,id:`param-publish-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Whether current user can publish this page.`]})}),_jsx(ResponseField,{name:`copyOfId`,type:`?string`,id:`param-copy-of-id-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The `,_jsx(_components.code,{children:`_id`}),` of the piece/page that was copied to create this document (only present if created via `,_jsx(_components.code,{children:`_copyingId`}),`)`]})}),_jsx(ResponseField,{name:`publishedDoc`,type:`?Page`,id:`param-published-doc-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`Page`}),`. A page: the fields every page has, and each page type’s own (`,_jsx(_components.code,{children:`type`}),` says which page type it is; a field belongs only to the page types that define it). Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`draftDoc`,type:`?Page`,id:`param-draft-doc-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`Page`}),`. A page: the fields every page has, and each page type’s own (`,_jsx(_components.code,{children:`type`}),` says which page type it is; a field belongs only to the page types that define it). Its fields are listed under the first `,_jsx(_components.code,{children:`Page`}),` above.`]})}),_jsx(ResponseField,{name:`aposShareKey`,type:`?string`,id:`param-apos-share-key-1`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The draft’s preview share key, while its share link is on: the link is the draft’s `,_jsx(_components.code,{children:`_url`}),` with `,_jsx(_components.code,{children:`aposShareKey`}),` and `,_jsx(_components.code,{children:`aposShareId`}),` (the draft’s `,_jsx(_components.code,{children:`_id`}),`) in its query. Absent otherwise, and on published documents.`]})}),_jsx(ResponseField,{name:`scheduledPublish`,type:`?string`,id:`param-scheduled-publish-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An ISO 8601 date and time, e.g. `,_jsx(_components.code,{children:`2026-10-21T14:30:00.000Z`}),`.`]})}),_jsx(ResponseField,{name:`scheduledUnpublish`,type:`?string`,id:`param-scheduled-unpublish-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An ISO 8601 date and time, e.g. `,_jsx(_components.code,{children:`2026-10-21T14:30:00.000Z`}),`.`]})}),_jsx(ResponseField,{name:`seoTitle`,type:`?string`,id:`param-seo-title-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Overrides the document title in the browser tab and search results. Leave blank to use the regular title.`]})}),_jsx(ResponseField,{name:`seoDescription`,type:`?string`,id:`param-seo-description-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Shown in search results and link previews. Aim for 150–160 characters.`]})}),_jsx(ResponseField,{name:`seoImage`,type:`?ImageArea`,id:`param-seo-image-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. An `,_jsx(_components.code,{children:`ImageArea`}),`. Used for Open Graph / social link previews. Recommended 1200×630. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`ImageArea`}),` above.`]})}),_jsx(ResponseField,{name:`pageFontOverrides`,type:`Collection\u003cint, PagePageFontOverridesItem>|null`,id:`param-page-font-overrides-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PagePageFontOverridesItem`}),`. Optional. Set part of this page in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). Individual sections can still override this for themselves. At most 4 items. Its fields are listed under the first `,_jsx(_components.code,{children:`PagePageFontOverridesItem`}),` above.`]})}),_jsx(ResponseField,{name:`footerMarqueeMode`,type:`Enums\\\\FooterMarqueeMode|string|null`,id:`param-footer-marquee-mode-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The ribbon of phrases scrolling across the top of the footer. Its phrases and the site-wide default are set in Site design → Footer: Marquee. One of `,_jsx(_components.code,{children:`inherit`}),`, `,_jsx(_components.code,{children:`on`}),`, `,_jsx(_components.code,{children:`off`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`sections`,type:`?SectionsArea`,id:`param-sections-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`SectionsArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`page-header`}),`. Its fields are listed under the first `,_jsx(_components.code,{children:`SectionsArea`}),` above.`]})}),_jsx(ResponseField,{name:`comingSoonIcon`,type:`?string`,id:`param-coming-soon-icon-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`comingSoonIconFamily`,type:`Enums\\\\ComingSoonIconFamily|string|null`,id:`param-coming-soon-icon-family-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`comingSoonIconColor`,type:`?string`,id:`param-coming-soon-icon-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional — leave empty to use the design’s own color rhythm.`]})}),_jsx(ResponseField,{name:`comingSoonIconAnimation`,type:`Enums\\\\ComingSoonIconAnimation|string|null`,id:`param-coming-soon-icon-animation-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon animation. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`fa-beat`}),`, `,_jsx(_components.code,{children:`fa-bounce`}),`, `,_jsx(_components.code,{children:`fa-fade`}),`, `,_jsx(_components.code,{children:`fa-beat-fade`}),`, `,_jsx(_components.code,{children:`fa-flip`}),`, `,_jsx(_components.code,{children:`fa-shake`}),`, `,_jsx(_components.code,{children:`fa-spin`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`comingSoonIconSize`,type:`Enums\\\\ComingSoonIconSize|string|null`,id:`param-coming-soon-icon-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Relative to the component’s base icon size. One of `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`sm`}),`, `,_jsx(_components.code,{children:`lg`}),`, `,_jsx(_components.code,{children:`xl`}),`, `,_jsx(_components.code,{children:`2xl`}),`, `,_jsx(_components.code,{children:`2x`}),`, `,_jsx(_components.code,{children:`3x`}),`, `,_jsx(_components.code,{children:`4x`}),`, `,_jsx(_components.code,{children:`5x`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`comingSoonNote`,type:`?string`,id:`param-coming-soon-note-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Shown under the icon while this page has no content. Leave empty for a tasteful default line.`]})}),_jsx(ResponseField,{name:`backLinkColor`,type:`?string`,id:`param-back-link-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Color of the ”← back” link at the top of every post. Leave empty to use the site accent color.`]})}),_jsx(ResponseField,{name:`backLinkColorLight`,type:`?string`,id:`param-back-link-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the accent.`]})}),_jsx(ResponseField,{name:`backLinkWeight`,type:`Enums\\\\BackLinkWeight|string|null`,id:`param-back-link-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Back link weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backLinkSize`,type:`Enums\\\\BackLinkSize|string|null`,id:`param-back-link-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Back link size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`aboveSections`,type:`?SectionsArea`,id:`param-above-sections-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`SectionsArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`page-header`}),`. Its fields are listed under the first `,_jsx(_components.code,{children:`SectionsArea`}),` above.`]})}),_jsx(ResponseField,{name:`postList`,type:`?BlogListArea`,id:`param-post-list-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`BlogListArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. A new document starts with `,_jsx(_components.code,{children:`blog-list`}),`. Its fields are listed under the first `,_jsx(_components.code,{children:`BlogListArea`}),` above.`]})}),_jsx(ResponseField,{name:`belowSections`,type:`?SectionsArea`,id:`param-below-sections-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`SectionsArea`}),`. Widgets, top to bottom: send `,_jsx(_components.code,{children:`{ \"items\": [ … ] }`}),`, one object per widget with its `,_jsx(_components.code,{children:`type`}),`. Writing it replaces the whole area. Its fields are listed under the first `,_jsx(_components.code,{children:`SectionsArea`}),` above.`]})}),_jsx(ResponseField,{name:`backButtonLabel`,type:`?string`,id:`param-back-button-label-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The visible button text. Leave empty to hide the button.`]})}),_jsx(ResponseField,{name:`backButtonVariant`,type:`Enums\\\\BackButtonVariant|string|null`,id:`param-back-button-variant-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fills with the color; Outline / Soft / Text link use it for the border + text. One of `,_jsx(_components.code,{children:`solid`}),`, `,_jsx(_components.code,{children:`outline`}),`, `,_jsx(_components.code,{children:`soft`}),`, `,_jsx(_components.code,{children:`link`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonSize`,type:`Enums\\\\BackButtonSize|string|null`,id:`param-back-button-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Button size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonRadius`,type:`Enums\\\\BackButtonRadius|string|null`,id:`param-back-button-radius-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Corner radius. One of `,_jsx(_components.code,{children:`pill`}),`, `,_jsx(_components.code,{children:`rounded`}),`, `,_jsx(_components.code,{children:`slight`}),`, `,_jsx(_components.code,{children:`square`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonColor`,type:`?string`,id:`param-back-button-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Solid fill, or the border + text for the other styles. Defaults to the brand accent; CLEAR it for a transparent, outline-only button.`]})}),_jsx(ResponseField,{name:`backButtonColorLight`,type:`?string`,id:`param-back-button-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color. (Brand tokens already flip per theme.)`]})}),_jsx(ResponseField,{name:`backButtonTextColor`,type:`?string`,id:`param-back-button-text-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The text/icon color. Clear it to derive from the button color (readable on solid fills).`]})}),_jsx(ResponseField,{name:`backButtonTextColorLight`,type:`?string`,id:`param-back-button-text-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme label color.`]})}),_jsx(ResponseField,{name:`backButtonHoverColor`,type:`?string`,id:`param-back-button-hover-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Drives the hover treatment. Leave empty to derive it from the button color.`]})}),_jsx(ResponseField,{name:`backButtonHoverColorLight`,type:`?string`,id:`param-back-button-hover-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme hover color.`]})}),_jsx(ResponseField,{name:`backButtonStyle`,type:`Enums\\\\BackButtonStyle|string|null`,id:`param-back-button-style-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The hover treatment: a soft shadow, a colored offset shadow, a glow, a fill sweep, or a thicker border. One of `,_jsx(_components.code,{children:`none`}),`, `,_jsx(_components.code,{children:`single`}),`, `,_jsx(_components.code,{children:`dual`}),`, `,_jsx(_components.code,{children:`glow`}),`, `,_jsx(_components.code,{children:`sweep`}),`, `,_jsx(_components.code,{children:`thicken`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonShadowColor`,type:`?string`,id:`param-back-button-shadow-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. The offset-shadow or glow color on hover. Leave empty to use the site secondary color.`]})}),_jsx(ResponseField,{name:`backButtonShadowColorLight`,type:`?string`,id:`param-back-button-shadow-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme shadow color.`]})}),_jsx(ResponseField,{name:`backButtonAnimation`,type:`Enums\\\\BackButtonAnimation|string|null`,id:`param-back-button-animation-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Hover motion. One of `,_jsx(_components.code,{children:`lift`}),`, `,_jsx(_components.code,{children:`scale`}),`, `,_jsx(_components.code,{children:`lift-scale`}),`, `,_jsx(_components.code,{children:`none`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonIcon`,type:`?string`,id:`param-back-button-icon-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Any Font Awesome icon name, e.g. star, bolt, arrow-left-to-bracket (no “fa-” prefix). Browse at fontawesome.com/icons.`]})}),_jsx(ResponseField,{name:`backButtonIconFamily`,type:`Enums\\\\BackButtonIconFamily|string|null`,id:`param-back-button-icon-family-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Icon family. One of `,_jsx(_components.code,{children:`classic-regular`}),`, `,_jsx(_components.code,{children:`duotone-regular`}),`, `,_jsx(_components.code,{children:`brands`}),`, `,_jsx(_components.code,{children:`jelly`}),`, `,_jsx(_components.code,{children:`jelly-duo`}),`, `,_jsx(_components.code,{children:`whiteboard`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonIconPosition`,type:`Enums\\\\BackButtonIconPosition|string|null`,id:`param-back-button-icon-position-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Which side of the label the icon sits on (when an icon name is set). One of `,_jsx(_components.code,{children:`before`}),`, `,_jsx(_components.code,{children:`after`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`backButtonIconNudge`,type:`?bool`,id:`param-back-button-icon-nudge-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. The icon slides toward its side on hover (e.g. an arrow edges outward).`]})}),_jsx(ResponseField,{name:`postFontOverrides`,type:`Collection\u003cint, PagePostFontOverridesItem>|null`,id:`param-post-font-overrides-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A list of `,_jsx(_components.code,{children:`PagePostFontOverridesItem`}),`. Optional. Set part of every post in a different typeface. Leave empty to follow the site’s fonts (Site design → Typography). An individual post can replace this on its own Fonts tab. At most 4 items. Its fields are listed under the first `,_jsx(_components.code,{children:`PagePostFontOverridesItem`}),` above.`]})}),_jsx(ResponseField,{name:`postTextSize`,type:`Enums\\\\PostTextSize|string|null`,id:`param-post-text-size-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body text size. One of `,_jsx(_components.code,{children:`small`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`large`}),`, `,_jsx(_components.code,{children:`xlarge`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postTextWeight`,type:`Enums\\\\PostTextWeight|string|null`,id:`param-post-text-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Body text weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postContentWidth`,type:`Enums\\\\PostContentWidth|string|null`,id:`param-post-content-width-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Reading measure — how wide the article column gets. Posts that contain section widgets open to Full width automatically so the widgets have room. One of `,_jsx(_components.code,{children:`narrow`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`wide`}),`, `,_jsx(_components.code,{children:`xwide`}),`, `,_jsx(_components.code,{children:`full`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postLineHeight`,type:`Enums\\\\PostLineHeight|string|null`,id:`param-post-line-height-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Line height. One of `,_jsx(_components.code,{children:`tight`}),`, `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`relaxed`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postAccentColor`,type:`?string`,id:`param-post-accent-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Links, the blockquote rule, and heading accents. Leave empty to use the site link color.`]})}),_jsx(ResponseField,{name:`postAccentColorLight`,type:`?string`,id:`param-post-accent-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the link color.`]})}),_jsx(ResponseField,{name:`postHeadingWeight`,type:`Enums\\\\PostHeadingWeight|string|null`,id:`param-post-heading-weight-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Heading weight. One of `,_jsx(_components.code,{children:`normal`}),`, `,_jsx(_components.code,{children:`medium`}),`, `,_jsx(_components.code,{children:`semibold`}),`, `,_jsx(_components.code,{children:`bold`}),`, `,_jsx(_components.code,{children:`extrabold`}),`; a newer site may send others, so keep a fallback.`]})}),_jsx(ResponseField,{name:`postHeadingColor`,type:`?string`,id:`param-post-heading-color-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional. Overrides in-article heading color. Leave empty to track the theme’s text color.`]})}),_jsx(ResponseField,{name:`postHeadingColorLight`,type:`?string`,id:`param-post-heading-color-light-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. Optional light-theme override. Falls back to the dark-theme color, then the theme default.`]})}),_jsx(ResponseField,{name:`blogPostCss`,type:`?PostCustomCSS`,id:`param-blog-post-css-2`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Sometimes sent:`}),` `,_jsx(_components.code,{children:`null`}),` when the site leaves it out. A `,_jsx(_components.code,{children:`PostCustomCSS`}),`. CSS for every blog post’s page: the title band, the article and its parts. It wins over Site design → Custom CSS → Blog post. Its fields are listed under the first `,_jsx(_components.code,{children:`PostCustomCSS`}),` above.`]})}),_jsx(ResponseField,{name:`fields`,type:`array\u003cstring, mixed>`,id:`param-fields-198`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Always there:`}),` `,_jsx(_components.code,{children:`[]`}),` when there are none. Any keys the site sent that aren’t listed above (such as one added after this SDK was built), by their wire names, as sent. Pass this model to a write and they are sent too. An object in it that a PHP array would read as a list (`,_jsx(_components.code,{children:`{}`}),`, `,_jsx(_components.code,{children:`{\"0\": …}`}),`) is a `,_jsx(_components.code,{children:`stdClass`}),`, so it is sent back as an object.`]})})]}),_jsxs(Accordion,{title:`Errors`,icon:`triangle-exclamation`,id:`errors`,children:[_jsxs(_components.p,{children:[`Nothing to catch: the SDK retries what is safe, and Laravel logs and renders the rest (see `,_jsx(_components.a,{href:`/laravel/errors`,children:`Errors and testing`}),`).`]}),_jsxs(ResponseField,{name:`ValidationFailed`,type:`400`,id:`param-validation-failed`,children:[_jsxs(_components.p,{children:[`The site refused what was sent: `,_jsx(_components.code,{children:`errors()`}),` lists each field’s problem, `,_jsx(_components.code,{children:`siteMessage()`}),` the first.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`errors()`}),` (field → messages), `,_jsx(_components.code,{children:`siteMessage()`}),`.`]})]}),_jsxs(ResponseField,{name:`AuthenticationFailed`,type:`401`,id:`param-authentication-failed`,children:[_jsx(_components.p,{children:`The API key is missing or refused (malformed, revoked, expired), or a signature its signing mode needs is missing or stale.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`siteMessage()`}),`, `,_jsx(_components.code,{children:`errorName()`}),`, `,_jsx(_components.code,{children:`data()`}),`.`]})]}),_jsxs(ResponseField,{name:`Forbidden`,type:`403`,id:`param-forbidden`,children:[_jsxs(_components.p,{children:[`The key may not do this: a scope it lacks, or an address outside its allowlist. `,_jsx(_components.code,{children:`siteMessage()`}),` names it.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`siteMessage()`}),`, `,_jsx(_components.code,{children:`errorName()`}),`, `,_jsx(_components.code,{children:`data()`}),`.`]})]}),_jsxs(ResponseField,{name:`SiteError`,type:`500`,id:`param-site-error`,children:[_jsx(_components.p,{children:`The site failed. Its logs say why.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No: a write may have landed. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`siteMessage()`}),`, `,_jsx(_components.code,{children:`errorName()`}),`, `,_jsx(_components.code,{children:`data()`}),`.`]})]}),_jsxs(ResponseField,{name:`SiteUnreachable`,type:`no answer`,id:`param-site-unreachable`,children:[_jsx(_components.p,{children:`No answer: DNS, a refused connection, TLS, or the timeout (15 s per attempt by default).`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` Only when nothing reached the site (`,_jsx(_components.code,{children:`neverConnected()`}),`); never after a timeout, when it may have landed. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`reason()`}),`, `,_jsx(_components.code,{children:`neverConnected()`}),`.`]})]}),_jsxs(ResponseField,{name:`RequestNotSent`,type:`not sent`,id:`param-request-not-sent`,children:[_jsxs(_components.p,{children:[`The client refused to send it (e.g. a path segment of `,_jsx(_components.code,{children:`..`}),`); the site never saw it.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`reason()`}),` (what to change).`]})]}),_jsxs(ResponseField,{name:`SiteRequestFailed`,type:`any other`,id:`param-site-request-failed`,children:[_jsx(_components.p,{children:`Any other status, or a success whose JSON doesn’t match this SDK version’s types (update the SDK).`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`reason()`}),`, `,_jsx(_components.code,{children:`status()`}),`.`]})]}),_jsxs(ResponseField,{name:`UnknownSite`,type:`setup`,id:`param-unknown-site`,children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Attract::site('acme')`}),` named a slug that isn’t under `,_jsx(_components.code,{children:`sites`}),` in `,_jsx(_components.code,{children:`config/fetchski-attract.php`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No: nothing was sent. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`getMessage()`}),`, `,_jsx(_components.code,{children:`$e->slug`}),`.`]})]}),_jsxs(ResponseField,{name:`SiteConfigurationError`,type:`setup`,id:`param-site-configuration-error`,children:[_jsxs(_components.p,{children:[`The site’s config entry is wrong: no `,_jsx(_components.code,{children:`url`}),`, a malformed `,_jsx(_components.code,{children:`api_key`}),`, a key filed under another slug, or no default site.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retried first:`}),` No: nothing was sent. `,_jsx(_components.strong,{children:`Read:`}),` `,_jsx(_components.code,{children:`getMessage()`}),` (what to fix).`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`behavior`,children:`Behavior`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Access:`}),` an API key with `,_jsx(_components.code,{children:`content:pages:write`}),` (or a master above it: `,_jsx(_components.code,{children:`content:pages:all`}),`, `,_jsx(_components.code,{children:`content:all`}),`, `,_jsx(_components.code,{children:`admin:all`}),`). In published mode (the default) it goes live too, so the key also needs `,_jsx(_components.code,{children:`content:pages:publish`}),` (or a master above it); send `,_jsx(_components.code,{children:`aposMode=draft`}),` to change only the draft. A signed-in person may call it as far as their own permissions allow; anyone else gets 403.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Rate limit:`}),` the key’s own writes-per-minute limit, set when the key is created (default 120); over it, 429 with `,_jsx(_components.code,{children:`Retry-After`}),`. The client waits and retries for you; you see `,_jsx(_components.code,{children:`RateLimited`}),` only if that runs out.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Retries:`}),` a write is sent again only after a 429 (refused before it acted) or when it never reached the site. After a timeout or a 5xx it may have landed: check before you send it again.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Timeout:`}),` 15 s per attempt by default; raise `,_jsx(_components.code,{children:`timeout`}),` in `,_jsx(_components.code,{children:`config/fetchski-attract.php`}),` for longer.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`test-it`,children:`Test it`}),`\n`,_jsxs(_components.p,{children:[`It calls the route above with the SDK faked: the fake answers every call with a valid example, so nothing leaves your machine and no config or key is needed. Save it as `,_jsx(_components.code,{children:`tests/Feature/CreatePageTest.php`}),`, then run your tests:`]}),`\n`,_jsx(CodeBlock,{filename:`tests/Feature/CreatePageTest.php`,numberOfLines:`26`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`26`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c?php`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`declare`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(strict_types=`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`namespace`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Tests\\\\Feature`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` App\\\\Models\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`User`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Fetchski\\\\AttractCmsLaravel\\\\Facades\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Illuminate\\\\Foundation\\\\Testing\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`RefreshDatabase`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Tests\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`TestCase`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`final`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` class`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` CreatePageTest`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` extends`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` TestCase`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` use`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` RefreshDatabase`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:` test_create_page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(): `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`void`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`fake`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` $this`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`actingAs`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`User`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`factory`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`()->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`create`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`())`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`postJson`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'/page'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`assertOk`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`assertCalled`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'pages.createPage'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:`Terminal`,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`php`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` artisan`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` test`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Answer with your own values:`}),` fake `,_jsx(_components.code,{children:`pages.createPage`}),` with `,_jsx(_components.code,{children:`Page::factory()->make([...])`}),`, the fields you give over a valid example.`]}),`\n`,_jsx(CodeBlock,{filename:`tests/Feature/CreatePageAnswerTest.php`,numberOfLines:`23`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`23`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`\u003c?php`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`declare`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(strict_types=`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`namespace`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Tests\\\\Feature`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Fetchski\\\\AttractCmsLaravel\\\\Data\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Fetchski\\\\AttractCmsLaravel\\\\Facades\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Tests\\\\`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`TestCase`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`final`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` class`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` CreatePageAnswerTest`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` extends`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` TestCase`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` public`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:` test_create_page_answers_your_values`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(): `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`void`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`fake`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`([`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` 'pages.createPage'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` => `}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`factory`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`()->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`make`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`([`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'id'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` => `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'Your value'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`]),`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ]);`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` $page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Attract`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`::`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`pages`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`()->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`createPage`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`type`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'default-page'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`title`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'About Us'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` $this`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`assertSame`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'Your value'`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`$page`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`->`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`related`,children:`Related`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`List pages`,icon:`list`,href:`/laravel/reference/pages/list-pages`,children:_jsx(_components.p,{children:_jsx(_components.code,{children:`Attract::pages()->listPages()`})})}),_jsx(Card,{title:`Archive pages`,icon:`box-archive`,href:`/laravel/reference/pages/archive-pages`,children:_jsx(_components.p,{children:_jsx(_components.code,{children:`Attract::pages()->archivePages()`})})}),_jsx(Card,{title:`Copy pages to another locale`,icon:`language`,href:`/laravel/reference/pages/localize-pages`,children:_jsx(_components.p,{children:_jsx(_components.code,{children:`Attract::pages()->localizePages()`})})}),_jsx(Card,{title:`Publish pages`,icon:`paper-plane`,href:`/laravel/reference/pages/publish-pages`,children:_jsx(_components.p,{children:_jsx(_components.code,{children:`Attract::pages()->publishPages()`})})}),_jsx(Card,{title:`Restore pages`,icon:`box-open`,href:`/laravel/reference/pages/restore-pages`,children:_jsx(_components.p,{children:_jsx(_components.code,{children:`Attract::pages()->restorePages()`})})}),_jsx(Card,{title:`Get a page`,icon:`eye`,href:`/laravel/reference/pages/get-page`,children:_jsx(_components.p,{children:_jsx(_components.code,{children:`Attract::pages()->getPage()`})})})]}),`\n`,_jsx(Card,{title:`POST /@apostrophecms/page`,icon:`code`,href:`/api-reference/pages/create-a-page`,arrow:true,horizontal:true,children:_jsx(_components.p,{children:`The endpoint this calls, in the API reference: the HTTP request and answer, and every rule the site checks.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Create a page","sidebarTitle":"Create","description":"Creates a page.","icon":"plus","href":"/laravel/reference/pages/create-page"}}}},"mdxExtracts":{"tableOfContents":[{"title":"In your app","slug":"in-your-app","depth":2,"children":[]},{"title":"Call it from the terminal","slug":"call-it-from-the-terminal","depth":2,"children":[]},{"title":"Behavior","slug":"behavior","depth":2,"children":[]},{"title":"Test it","slug":"test-it","depth":2,"children":[]},{"title":"Related","slug":"related","depth":2,"children":[]}],"codeExamples":{"request":{"type":"RequestExample","children":[{"filename":"Laravel","html":"\u003cpre class=\"shiki shiki-themes dark-plus dark-plus\" style=\"background-color:#0B0C0E;--shiki-dark-bg:#0B0C0E;color:#D4D4D4;--shiki-dark:#D4D4D4\" language=\"php\">\u003ccode language=\"php\" numberOfLines=\"3\">\u003cspan class=\"line\">\u003cspan style=\"color:#569CD6;--shiki-dark:#569CD6\">use\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\"> Fetchski\\AttractCmsLaravel\\Facades\\\u003c/span>\u003cspan style=\"color:#4EC9B0;--shiki-dark:#4EC9B0\">Attract\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">;\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\">$page\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\"> = \u003c/span>\u003cspan style=\"color:#4EC9B0;--shiki-dark:#4EC9B0\">Attract\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">::\u003c/span>\u003cspan style=\"color:#DCDCAA;--shiki-dark:#DCDCAA\">pages\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">()->\u003c/span>\u003cspan style=\"color:#DCDCAA;--shiki-dark:#DCDCAA\">createPage\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">(\u003c/span>\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\">type\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">'default-page'\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\">title\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">'About Us'\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">);\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"200","html":"\u003cpre class=\"shiki shiki-themes dark-plus dark-plus\" style=\"background-color:#0B0C0E;--shiki-dark-bg:#0B0C0E;color:#D4D4D4;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"101\">\u003cspan class=\"line\">\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"_id\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"ckhdscx5900054z9k88uqs16w:en:published\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"aposDocId\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"ckhdscx5900054z9k88uqs16w\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"aposLocale\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"en\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"aposMode\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"published\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"archived\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#569CD6;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"createdAt\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"2023-01-15T10:30:00.000Z\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"updatedAt\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"2024-12-18T14:20:00.000Z\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"titleSortified\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"about us\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"slug\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"/about-us\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"path\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"/about-us\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"rank\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#B5CEA8;--shiki-dark:#B5CEA8\">0\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"level\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#B5CEA8;--shiki-dark:#B5CEA8\">1\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"orphan\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#569CD6;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"parked\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"visibility\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"public\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"type\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"@apostrophecms/page\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"title\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"About Us\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"main\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: {},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"_ancestors\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"_children\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"_url\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"https://example.com/about-us\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"_edit\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#569CD6;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"_publish\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#569CD6;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"copyOfId\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"ckhdscx5900054z9k88uqs16w:en:published\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"_publishedDoc\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"_id\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"ckhdscx5900054z9k88uqs16w:en:published\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"aposDocId\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"ckhdscx5900054z9k88uqs16w\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"aposLocale\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"en\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"updatedAt\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"2024-12-18T14:20:00.000Z\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"slug\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"/about-us\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"path\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"/about-us\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"level\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#B5CEA8;--shiki-dark:#B5CEA8\">1\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"visibility\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"public\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"type\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"@apostrophecms/page\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"title\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"About Us\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"_draftDoc\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"_id\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"ckhdscx5900054z9k88uqs16w:en:published\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"aposDocId\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"ckhdscx5900054z9k88uqs16w\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"aposLocale\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"en\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"updatedAt\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"2024-12-18T14:20:00.000Z\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"slug\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"/about-us\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"path\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"/about-us\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"level\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#B5CEA8;--shiki-dark:#B5CEA8\">1\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"visibility\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"public\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"type\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"@apostrophecms/page\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"title\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"About Us\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"aposShareKey\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"k3v9x2m7q1z8w4p6\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"scheduledPublish\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example scheduled publish\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"scheduledUnpublish\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example scheduled unpublish\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"seoTitle\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example seo title\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"seoDescription\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example seo description\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"seoImage\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: {},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"pageFontOverrides\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"footerMarqueeMode\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"inherit\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"sections\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: {},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"comingSoonIcon\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"sparkles\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"comingSoonIconFamily\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"classic-regular\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"comingSoonIconColor\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example coming soon icon color\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"comingSoonIconAnimation\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"none\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"comingSoonIconSize\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"5x\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"comingSoonNote\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example coming soon note\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backLinkColor\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example back link color\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backLinkColorLight\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example back link color light\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backLinkWeight\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"semibold\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backLinkSize\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"normal\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"aboveSections\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: {},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"postList\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: {},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"belowSections\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: {},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonLabel\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Back to all posts\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonVariant\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"outline\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonSize\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"normal\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonRadius\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"slight\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonColor\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"--fetchski-accent\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonColorLight\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example back button color light\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonTextColor\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"--fetchski-ink\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonTextColorLight\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example back button text color light\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonHoverColor\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example back button hover color\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonHoverColorLight\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example back button hover color light\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonStyle\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"sweep\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonShadowColor\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example back button shadow color\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonShadowColorLight\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example back button shadow color light\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonAnimation\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"lift-scale\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonIcon\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"arrow-left\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonIconFamily\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"classic-regular\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonIconPosition\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"before\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"backButtonIconNudge\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#569CD6;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"postFontOverrides\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"postTextSize\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"normal\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"postTextWeight\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"normal\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"postContentWidth\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"normal\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"postLineHeight\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"normal\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"postAccentColor\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example post accent color\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"postAccentColorLight\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example post accent color light\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"postHeadingWeight\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"bold\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"postHeadingColor\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example post heading color\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"postHeadingColorLight\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#CE9178;--shiki-dark:#CE9178\">\"Example post heading color light\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#9CDCFE;--shiki-dark:#9CDCFE\"> \"blogPostCss\"\u003c/span>\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">: {}\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#D4D4D4;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}}},"jsLinks":["/_mintlify/custom/fetchski-attract-api/f59e82e583443cfa/reader-values.js"],"subdomain":"fetchski-attract-api","siteName":"Fetchski Attract Docs","title":"Create a page - Fetchski Attract Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T10:18:28.097Z","originalFileLocation":"laravel/reference/pages/create-page.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates a page.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Fetchski Attract Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex, nofollow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/fetchski-attract-api/70pYtWMpcnXR0SYV/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/fetchski-attract-api/70pYtWMpcnXR0SYV/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/fetchski-attract-api/70pYtWMpcnXR0SYV/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/fetchski-attract-api/70pYtWMpcnXR0SYV/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/fetchski-attract-api/70pYtWMpcnXR0SYV/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/fetchski-attract-api/70pYtWMpcnXR0SYV/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/fetchski-attract-api/70pYtWMpcnXR0SYV/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/fetchski-attract-api/70pYtWMpcnXR0SYV/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/fetchski-attract-api/70pYtWMpcnXR0SYV/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a page - Fetchski Attract Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a page.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Fetchski Attract Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.fetchski-attract.com/laravel/reference/pages/create-page\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://fetchski-attract-api.mintlify.site/_mintlify/api/og/v2?division=Pages\u0026amp;title=Create+a+page\u0026amp;description=Creates+a+page.\u0026amp;theme=0e1cff4688ef26ca6a5fb667\u0026amp;signature=81c82222e70f518f55e1820929805bdd1d4ba4edf61eb1fe031e7aaf0016e7f6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create a page - Fetchski Attract Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a page.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://fetchski-attract-api.mintlify.site/_mintlify/api/og/v2?division=Pages\u0026amp;title=Create+a+page\u0026amp;description=Creates+a+page.\u0026amp;theme=0e1cff4688ef26ca6a5fb667\u0026amp;signature=81c82222e70f518f55e1820929805bdd1d4ba4edf61eb1fe031e7aaf0016e7f6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/fetchski-attract-api/70pYtWMpcnXR0SYV/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Fetchski Attract Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16a34a\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.fetchski-attract.com/laravel/reference/pages/create-page\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/laravel/reference/pages/create-page.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.fetchski-attract.com/#organization\",\"name\":\"Fetchski Attract Docs\",\"url\":\"https://docs.fetchski-attract.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/fetchski-attract-api/mn9qfQRsqaASh7UE/logo/light.svg?fit=max\u0026auto=format\u0026n=mn9qfQRsqaASh7UE\u0026q=85\u0026s=66db13e248b70a44a5ff5f6990d4cb63\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.fetchski-attract.com#website\",\"name\":\"Fetchski Attract Docs\",\"url\":\"https://docs.fetchski-attract.com\",\"publisher\":{\"@id\":\"https://docs.fetchski-attract.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.fetchski-attract.com/laravel/reference/pages/create-page#webpage\",\"url\":\"https://docs.fetchski-attract.com/laravel/reference/pages/create-page\",\"name\":\"Create a page\",\"description\":\"Creates a page.\",\"dateModified\":\"2026-11-12T10:18:28.097Z\",\"isPartOf\":{\"@id\":\"https://docs.fetchski-attract.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fetchski-attract.com/laravel/reference/pages/create-page#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fetchski-attract.com/laravel/reference/pages/create-page#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Pages \u0026 Site\",\"item\":\"https://docs.fetchski-attract.com/laravel/reference/pages/list-pages\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pages\",\"item\":\"https://docs.fetchski-attract.com/laravel/reference/pages/list-pages\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create a page\",\"item\":\"https://docs.fetchski-attract.com/laravel/reference/pages/create-page\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.fetchski-attract.com/laravel/reference/pages/create-page#article\",\"headline\":\"Create a page\",\"name\":\"Create a page\",\"description\":\"Creates a page.\",\"url\":\"https://docs.fetchski-attract.com/laravel/reference/pages/create-page\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fetchski-attract.com/laravel/reference/pages/create-page#webpage\"},\"dateModified\":\"2026-11-12T10:18:28.097Z\",\"publisher\":{\"@id\":\"https://docs.fetchski-attract.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.fetchski-attract.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Fetchski Attract Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Fetchski Attract Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/laravel/reference/pages/create-page.md","siteName":"Fetchski Attract Docs","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book-open","pages":[{"title":"Guides","href":""}]},{"tab":"FetchskiAI","icon":"sparkles","pages":[{"title":"FetchskiAI","href":"/fetchskiai/overview"}]},{"tab":"Recipes","icon":"book-open","pages":[{"title":"Recipes","href":"/recipes/laravel-ai-translate-your-site"}]},{"tab":"TypeScript","icon":"js","pages":[{"title":"TypeScript","href":"/typescript/overview"}]},{"tab":"Laravel","icon":"laravel","groups":[{"group":"Get started","icon":"rocket","pages":[{"title":"The Laravel SDK","sidebarTitle":"Overview","icon":"laravel","href":"/laravel/overview"},{"title":"Installation","icon":"download","href":"/laravel/installation"},{"title":"Configuration","icon":"sliders","href":"/laravel/configuration"},{"title":"Key in the database","icon":"database","href":"/laravel/key-in-database"},{"title":"Artisan commands","icon":"terminal","href":"/laravel/artisan-commands"}]},{"group":"Using the SDK","icon":"code","pages":[{"title":"Calling the API","icon":"code","href":"/laravel/calling-the-api"},{"title":"Working with results","icon":"table-list","href":"/laravel/working-with-results"},{"title":"Errors","icon":"triangle-exclamation","href":"/laravel/errors"},{"title":"Paging","icon":"list-ol","href":"/laravel/paging"}]},{"group":"Going further","icon":"rocket","pages":[{"title":"Testing","icon":"vial","href":"/laravel/testing"},{"title":"Keeping keys secret","icon":"lock","href":"/laravel/security"}]},{"group":"Pages \u0026 Site","icon":"sitemap","pages":[{"group":"Pages","icon":"file-lines","pages":[{"title":"List pages","sidebarTitle":"List","icon":"list","href":"/laravel/reference/pages/list-pages"},{"title":"Get a page","sidebarTitle":"Get","description":"Fetch a single page document by ID for detailed content access.","icon":"eye","href":"/laravel/reference/pages/get-page"},{"title":"Create a page","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/pages/create-page"},{"title":"Update a page","sidebarTitle":"Update","description":"Partially update a page document.","icon":"pen","href":"/laravel/reference/pages/update-page"},{"title":"Replace a page","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/pages/replace-page"},{"title":"Delete a page","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/pages/delete-page"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a page","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/pages/publish-page"},{"title":"Unpublish a page","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/pages/unpublish-page"},{"title":"Submit a page for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/pages/submit-page"},{"title":"Dismiss a page’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/pages/dismiss-page-submission"},{"title":"Discard a page’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/pages/revert-page-draft-to-published"},{"title":"Restore a page’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/pages/revert-page-published-to-previous"},{"title":"Share a page’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/pages/share-page"},{"title":"Copy a page to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/pages/localize-page"},{"title":"List a page’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/pages/get-page-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish pages","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/pages/publish-pages"},{"title":"Archive pages","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/pages/archive-pages"},{"title":"Restore pages","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/pages/restore-pages"},{"title":"Copy pages to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/pages/localize-pages"}]}]},{"group":"Global Content","icon":"globe","pages":[{"title":"List global documents","sidebarTitle":"List","icon":"list","href":"/laravel/reference/global-content/list-global-content"},{"title":"Get a global document","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/global-content/get-global"},{"title":"Create a global document","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/global-content/create-global"},{"title":"Update a global document","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/global-content/update-global"},{"title":"Replace a global document","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/global-content/replace-global"},{"title":"Delete a global document","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/global-content/delete-global"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a global document","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/global-content/publish-global"},{"title":"Unpublish a global document","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/global-content/unpublish-global"},{"title":"Submit a global document for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/global-content/submit-global"},{"title":"Dismiss a global document’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/global-content/dismiss-global-submission"},{"title":"Discard a global document’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/global-content/revert-global-draft-to-published"},{"title":"Restore a global document’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/global-content/revert-global-published-to-previous"},{"title":"Share a global document’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/global-content/share-global"},{"title":"Copy a global document to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/global-content/localize-global"},{"title":"List a global document’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/global-content/get-global-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish global documents","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/global-content/publish-globals"},{"title":"Archive global documents","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/global-content/archive-globals"},{"title":"Restore global documents","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/global-content/restore-globals"},{"title":"Copy global documents to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/global-content/localize-globals"}]}]},{"group":"Redirects","icon":"arrow-right-arrow-left","pages":[{"title":"List redirects","sidebarTitle":"List","icon":"list","href":"/laravel/reference/redirects/list-redirects"},{"title":"Get a redirect","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/redirects/get-redirect"},{"title":"Create a redirect","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/redirects/create-redirect"},{"title":"Update a redirect","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/redirects/update-redirect"},{"title":"Replace a redirect","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/redirects/replace-redirect"},{"title":"Delete a redirect","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/redirects/delete-redirect"},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Archive redirects","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/redirects/archive-redirects"},{"title":"Restore redirects","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/redirects/restore-redirects"}]}]},{"group":"Internationalization","icon":"language","pages":[{"title":"List the site’s languages","sidebarTitle":"List the site’s languages","icon":"magnifying-glass","href":"/laravel/reference/internationalization/get-locales"},{"title":"Get locale path and manage clipboard","sidebarTitle":"Get locale path and manage clipboard","icon":"bolt","href":"/laravel/reference/internationalization/switch-locale"},{"title":"Check document existence in locale","sidebarTitle":"Check document existence in locale","icon":"bolt","href":"/laravel/reference/internationalization/exist-in-locale"}]},{"group":"Languages","icon":"language","pages":[{"title":"List language lists","sidebarTitle":"List","icon":"list","href":"/laravel/reference/languages/list-site-languages"},{"title":"Get a language list","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/languages/get-site-languages"},{"title":"Update a language list","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/languages/update-site-languages"},{"title":"Replace a language list","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/languages/replace-site-languages"},{"title":"List the Global fields each language translates","sidebarTitle":"List the Global fields each language translates","icon":"magnifying-glass","href":"/laravel/reference/languages/get-global-translated-fields"}]},{"group":"Page Templates","icon":"table-columns","pages":[{"title":"Get a page template","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/page-templates/get-page-template"},{"title":"List the page templates","sidebarTitle":"List the page templates","icon":"magnifying-glass","href":"/laravel/reference/page-templates/list-page-templates"}]}]},{"group":"Content","icon":"newspaper","pages":[{"group":"Blog Posts","icon":"newspaper","pages":[{"title":"List blog posts","sidebarTitle":"List","icon":"list","href":"/laravel/reference/blog-posts/list-blogs"},{"title":"Get a blog post","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/blog-posts/get-blog"},{"title":"Create a blog post","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/blog-posts/create-blog"},{"title":"Update a blog post","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/blog-posts/update-blog"},{"title":"Replace a blog post","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/blog-posts/replace-blog"},{"title":"Delete a blog post","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/blog-posts/delete-blog"},{"title":"Get the Markdown template","sidebarTitle":"Get the Markdown template","icon":"magnifying-glass","href":"/laravel/reference/blog-posts/get-blog-markdown-template"},{"title":"Get the MDX template","sidebarTitle":"Get the MDX template","icon":"magnifying-glass","href":"/laravel/reference/blog-posts/get-blog-mdx-template"},{"title":"Check a document before importing it","sidebarTitle":"Check a document before importing it","icon":"bolt","href":"/laravel/reference/blog-posts/validate-blog-import"},{"title":"Import a post from Markdown or MDX","sidebarTitle":"Import a post from Markdown or MDX","icon":"bolt","href":"/laravel/reference/blog-posts/import-blog-post"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a blog post","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/blog-posts/publish-blog"},{"title":"Unpublish a blog post","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/blog-posts/unpublish-blog"},{"title":"Submit a blog post for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/blog-posts/submit-blog"},{"title":"Dismiss a blog post’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/blog-posts/dismiss-blog-submission"},{"title":"Discard a blog post’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/blog-posts/revert-blog-draft-to-published"},{"title":"Restore a blog post’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/blog-posts/revert-blog-published-to-previous"},{"title":"Share a blog post’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/blog-posts/share-blog"},{"title":"Copy a blog post to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/blog-posts/localize-blog"},{"title":"List a blog post’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/blog-posts/get-blog-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish blog posts","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/blog-posts/publish-blogs"},{"title":"Archive blog posts","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/blog-posts/archive-blogs"},{"title":"Restore blog posts","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/blog-posts/restore-blogs"},{"title":"Copy blog posts to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/blog-posts/localize-blogs"}]}]},{"group":"Blog Categories","icon":"folder-tree","pages":[{"title":"List blog categories","sidebarTitle":"List","icon":"list","href":"/laravel/reference/blog-categories/list-blog-categories"},{"title":"Get a blog category","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/blog-categories/get-blog-category"},{"title":"Create a blog category","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/blog-categories/create-blog-category"},{"title":"Update a blog category","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/blog-categories/update-blog-category"},{"title":"Replace a blog category","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/blog-categories/replace-blog-category"},{"title":"Delete a blog category","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/blog-categories/delete-blog-category"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a blog category","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/blog-categories/publish-blog-category"},{"title":"Unpublish a blog category","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/blog-categories/unpublish-blog-category"},{"title":"Submit a blog category for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/blog-categories/submit-blog-category"},{"title":"Dismiss a blog category’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/blog-categories/dismiss-blog-category-submission"},{"title":"Discard a blog category’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/blog-categories/revert-blog-category-draft-to-published"},{"title":"Restore a blog category’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/blog-categories/revert-blog-category-published-to-previous"},{"title":"Share a blog category’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/blog-categories/share-blog-category"},{"title":"Copy a blog category to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/blog-categories/localize-blog-category"},{"title":"List a blog category’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/blog-categories/get-blog-category-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish blog categories","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/blog-categories/publish-blog-categories"},{"title":"Archive blog categories","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/blog-categories/archive-blog-categories"},{"title":"Restore blog categories","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/blog-categories/restore-blog-categories"},{"title":"Copy blog categories to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/blog-categories/localize-blog-categories"}]}]},{"group":"Authors","icon":"pen-nib","pages":[{"title":"List authors","sidebarTitle":"List","icon":"list","href":"/laravel/reference/authors/list-authors"},{"title":"Get an author","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/authors/get-author"},{"title":"Create an author","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/authors/create-author"},{"title":"Update an author","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/authors/update-author"},{"title":"Replace an author","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/authors/replace-author"},{"title":"Delete an author","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/authors/delete-author"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish an author","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/authors/publish-author"},{"title":"Unpublish an author","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/authors/unpublish-author"},{"title":"Submit an author for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/authors/submit-author"},{"title":"Dismiss an author’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/authors/dismiss-author-submission"},{"title":"Discard an author’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/authors/revert-author-draft-to-published"},{"title":"Restore an author’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/authors/revert-author-published-to-previous"},{"title":"Share an author’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/authors/share-author"},{"title":"Copy an author to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/authors/localize-author"},{"title":"List an author’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/authors/get-author-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish authors","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/authors/publish-authors"},{"title":"Archive authors","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/authors/archive-authors"},{"title":"Restore authors","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/authors/restore-authors"},{"title":"Copy authors to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/authors/localize-authors"}]}]},{"group":"Team Members","icon":"user-group","pages":[{"title":"List team members","sidebarTitle":"List","icon":"list","href":"/laravel/reference/team-members/list-team-members"},{"title":"Get a team member","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/team-members/get-team-member"},{"title":"Create a team member","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/team-members/create-team-member"},{"title":"Update a team member","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/team-members/update-team-member"},{"title":"Replace a team member","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/team-members/replace-team-member"},{"title":"Delete a team member","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/team-members/delete-team-member"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a team member","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/team-members/publish-team-member"},{"title":"Unpublish a team member","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/team-members/unpublish-team-member"},{"title":"Submit a team member for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/team-members/submit-team-member"},{"title":"Dismiss a team member’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/team-members/dismiss-team-member-submission"},{"title":"Discard a team member’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/team-members/revert-team-member-draft-to-published"},{"title":"Restore a team member’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/team-members/revert-team-member-published-to-previous"},{"title":"Share a team member’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/team-members/share-team-member"},{"title":"Copy a team member to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/team-members/localize-team-member"},{"title":"List a team member’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/team-members/get-team-member-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish team members","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/team-members/publish-team-members"},{"title":"Archive team members","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/team-members/archive-team-members"},{"title":"Restore team members","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/team-members/restore-team-members"},{"title":"Copy team members to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/team-members/localize-team-members"}]}]},{"group":"Testimonials","icon":"quote-left","pages":[{"title":"List testimonials","sidebarTitle":"List","icon":"list","href":"/laravel/reference/testimonials/list-testimonials"},{"title":"Get a testimonial","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/testimonials/get-testimonial"},{"title":"Create a testimonial","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/testimonials/create-testimonial"},{"title":"Update a testimonial","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/testimonials/update-testimonial"},{"title":"Replace a testimonial","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/testimonials/replace-testimonial"},{"title":"Delete a testimonial","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/testimonials/delete-testimonial"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a testimonial","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/testimonials/publish-testimonial"},{"title":"Unpublish a testimonial","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/testimonials/unpublish-testimonial"},{"title":"Submit a testimonial for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/testimonials/submit-testimonial"},{"title":"Dismiss a testimonial’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/testimonials/dismiss-testimonial-submission"},{"title":"Discard a testimonial’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/testimonials/revert-testimonial-draft-to-published"},{"title":"Restore a testimonial’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/testimonials/revert-testimonial-published-to-previous"},{"title":"Share a testimonial’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/testimonials/share-testimonial"},{"title":"Copy a testimonial to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/testimonials/localize-testimonial"},{"title":"List a testimonial’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/testimonials/get-testimonial-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish testimonials","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/testimonials/publish-testimonials"},{"title":"Archive testimonials","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/testimonials/archive-testimonials"},{"title":"Restore testimonials","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/testimonials/restore-testimonials"},{"title":"Copy testimonials to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/testimonials/localize-testimonials"}]}]},{"group":"FAQ Items","icon":"circle-question","pages":[{"title":"List FAQ items","sidebarTitle":"List","icon":"list","href":"/laravel/reference/faq-items/list-faq-items"},{"title":"Get an FAQ item","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/faq-items/get-faq-item"},{"title":"Create an FAQ item","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/faq-items/create-faq-item"},{"title":"Update an FAQ item","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/faq-items/update-faq-item"},{"title":"Replace an FAQ item","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/faq-items/replace-faq-item"},{"title":"Delete an FAQ item","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/faq-items/delete-faq-item"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish an FAQ item","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/faq-items/publish-faq-item"},{"title":"Unpublish an FAQ item","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/faq-items/unpublish-faq-item"},{"title":"Submit an FAQ item for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/faq-items/submit-faq-item"},{"title":"Dismiss an FAQ item’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/faq-items/dismiss-faq-item-submission"},{"title":"Discard an FAQ item’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/faq-items/revert-faq-item-draft-to-published"},{"title":"Restore an FAQ item’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/faq-items/revert-faq-item-published-to-previous"},{"title":"Share an FAQ item’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/faq-items/share-faq-item"},{"title":"Copy an FAQ item to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/faq-items/localize-faq-item"},{"title":"List an FAQ item’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/faq-items/get-faq-item-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish FAQ items","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/faq-items/publish-faq-items"},{"title":"Archive FAQ items","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/faq-items/archive-faq-items"},{"title":"Restore FAQ items","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/faq-items/restore-faq-items"},{"title":"Copy FAQ items to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/faq-items/localize-faq-items"}]}]},{"group":"FAQ Categories","icon":"layer-group","pages":[{"title":"List FAQ categories","sidebarTitle":"List","icon":"list","href":"/laravel/reference/faq-categories/list-faq-categories"},{"title":"Get an FAQ category","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/faq-categories/get-faq-category"},{"title":"Create an FAQ category","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/faq-categories/create-faq-category"},{"title":"Update an FAQ category","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/faq-categories/update-faq-category"},{"title":"Replace an FAQ category","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/faq-categories/replace-faq-category"},{"title":"Delete an FAQ category","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/faq-categories/delete-faq-category"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish an FAQ category","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/faq-categories/publish-faq-category"},{"title":"Unpublish an FAQ category","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/faq-categories/unpublish-faq-category"},{"title":"Submit an FAQ category for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/faq-categories/submit-faq-category"},{"title":"Dismiss an FAQ category’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/faq-categories/dismiss-faq-category-submission"},{"title":"Discard an FAQ category’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/faq-categories/revert-faq-category-draft-to-published"},{"title":"Restore an FAQ category’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/faq-categories/revert-faq-category-published-to-previous"},{"title":"Share an FAQ category’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/faq-categories/share-faq-category"},{"title":"Copy an FAQ category to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/faq-categories/localize-faq-category"},{"title":"List an FAQ category’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/faq-categories/get-faq-category-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish FAQ categories","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/faq-categories/publish-faq-categories"},{"title":"Archive FAQ categories","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/faq-categories/archive-faq-categories"},{"title":"Restore FAQ categories","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/faq-categories/restore-faq-categories"},{"title":"Copy FAQ categories to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/faq-categories/localize-faq-categories"}]}]},{"group":"Google Reviews","icon":"star","pages":[{"title":"List Google reviews","sidebarTitle":"List","icon":"list","href":"/laravel/reference/google-reviews/list-google-reviews"},{"title":"Get a Google review","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/google-reviews/get-google-review"},{"title":"Create a Google review","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/google-reviews/create-google-review"},{"title":"Update a Google review","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/google-reviews/update-google-review"},{"title":"Replace a Google review","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/google-reviews/replace-google-review"},{"title":"Delete a Google review","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/google-reviews/delete-google-review"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a Google review","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/google-reviews/publish-google-review"},{"title":"Unpublish a Google review","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/google-reviews/unpublish-google-review"},{"title":"Submit a Google review for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/google-reviews/submit-google-review"},{"title":"Dismiss a Google review’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/google-reviews/dismiss-google-review-submission"},{"title":"Discard a Google review’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/google-reviews/revert-google-review-draft-to-published"},{"title":"Restore a Google review’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/google-reviews/revert-google-review-published-to-previous"},{"title":"Share a Google review’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/google-reviews/share-google-review"},{"title":"Copy a Google review to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/google-reviews/localize-google-review"},{"title":"List a Google review’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/google-reviews/get-google-review-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish Google reviews","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/google-reviews/publish-google-reviews"},{"title":"Archive Google reviews","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/google-reviews/archive-google-reviews"},{"title":"Restore Google reviews","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/google-reviews/restore-google-reviews"},{"title":"Copy Google reviews to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/google-reviews/localize-google-reviews"}]}]},{"group":"Instagram Posts","icon":"instagram","pages":[{"title":"List Instagram posts","sidebarTitle":"List","icon":"list","href":"/laravel/reference/instagram-posts/list-instagram-posts"},{"title":"Get an Instagram post","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/instagram-posts/get-instagram-post"},{"title":"Create an Instagram post","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/instagram-posts/create-instagram-post"},{"title":"Update an Instagram post","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/instagram-posts/update-instagram-post"},{"title":"Replace an Instagram post","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/instagram-posts/replace-instagram-post"},{"title":"Delete an Instagram post","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/instagram-posts/delete-instagram-post"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish an Instagram post","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/instagram-posts/publish-instagram-post"},{"title":"Unpublish an Instagram post","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/instagram-posts/unpublish-instagram-post"},{"title":"Submit an Instagram post for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/instagram-posts/submit-instagram-post"},{"title":"Dismiss an Instagram post’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/instagram-posts/dismiss-instagram-post-submission"},{"title":"Discard an Instagram post’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/instagram-posts/revert-instagram-post-draft-to-published"},{"title":"Restore an Instagram post’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/instagram-posts/revert-instagram-post-published-to-previous"},{"title":"Share an Instagram post’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/instagram-posts/share-instagram-post"},{"title":"Copy an Instagram post to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/instagram-posts/localize-instagram-post"},{"title":"List an Instagram post’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/instagram-posts/get-instagram-post-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish Instagram posts","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/instagram-posts/publish-instagram-posts"},{"title":"Archive Instagram posts","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/instagram-posts/archive-instagram-posts"},{"title":"Restore Instagram posts","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/instagram-posts/restore-instagram-posts"},{"title":"Copy Instagram posts to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/instagram-posts/localize-instagram-posts"}]}]},{"group":"Service Areas","icon":"map-location-dot","pages":[{"title":"List service areas","sidebarTitle":"List","icon":"list","href":"/laravel/reference/service-areas/list-service-areas"},{"title":"Get a service area","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/service-areas/get-service-area"},{"title":"Create a service area","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/service-areas/create-service-area"},{"title":"Update a service area","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/service-areas/update-service-area"},{"title":"Replace a service area","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/service-areas/replace-service-area"},{"title":"Delete a service area","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/service-areas/delete-service-area"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a service area","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/service-areas/publish-service-area"},{"title":"Unpublish a service area","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/service-areas/unpublish-service-area"},{"title":"Submit a service area for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/service-areas/submit-service-area"},{"title":"Dismiss a service area’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/service-areas/dismiss-service-area-submission"},{"title":"Discard a service area’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/service-areas/revert-service-area-draft-to-published"},{"title":"Restore a service area’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/service-areas/revert-service-area-published-to-previous"},{"title":"Share a service area’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/service-areas/share-service-area"},{"title":"Copy a service area to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/service-areas/localize-service-area"},{"title":"List a service area’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/service-areas/get-service-area-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish service areas","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/service-areas/publish-service-areas"},{"title":"Archive service areas","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/service-areas/archive-service-areas"},{"title":"Restore service areas","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/service-areas/restore-service-areas"},{"title":"Copy service areas to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/service-areas/localize-service-areas"}]}]},{"group":"Cookies","icon":"cookie-bite","pages":[{"title":"List cookies","sidebarTitle":"List","icon":"list","href":"/laravel/reference/cookies/list-cookies"},{"title":"Get a cookie","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/cookies/get-cookie"},{"title":"Create a cookie","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/cookies/create-cookie"},{"title":"Update a cookie","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/cookies/update-cookie"},{"title":"Replace a cookie","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/cookies/replace-cookie"},{"title":"Delete a cookie","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/cookies/delete-cookie"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a cookie","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/cookies/publish-cookie"},{"title":"Unpublish a cookie","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/cookies/unpublish-cookie"},{"title":"Submit a cookie for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/cookies/submit-cookie"},{"title":"Dismiss a cookie’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/cookies/dismiss-cookie-submission"},{"title":"Discard a cookie’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/cookies/revert-cookie-draft-to-published"},{"title":"Restore a cookie’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/cookies/revert-cookie-published-to-previous"},{"title":"Share a cookie’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/cookies/share-cookie"},{"title":"Copy a cookie to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/cookies/localize-cookie"},{"title":"List a cookie’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/cookies/get-cookie-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish cookies","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/cookies/publish-cookies"},{"title":"Archive cookies","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/cookies/archive-cookies"},{"title":"Restore cookies","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/cookies/restore-cookies"},{"title":"Copy cookies to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/cookies/localize-cookies"}]}]}]},{"group":"Media","icon":"photo-film","pages":[{"group":"Media","icon":"photo-film","pages":[{"group":"Images","icon":"image","pages":[{"title":"List images","sidebarTitle":"List","icon":"list","href":"/laravel/reference/media/list-images"},{"title":"Get an image","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/media/get-image"},{"title":"Create an image","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/media/create-image"},{"title":"Update an image","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/media/update-image"},{"title":"Replace an image","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/media/replace-image"},{"title":"Delete an image","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/media/delete-image"},{"title":"Crop images to a widget’s aspect ratio","sidebarTitle":"Crop images to a widget’s aspect ratio","icon":"bolt","href":"/laravel/reference/media/autocrop-images"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish an image","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/media/publish-image"},{"title":"Unpublish an image","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/media/unpublish-image"},{"title":"Submit an image for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/media/submit-image"},{"title":"Dismiss an image’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/media/dismiss-image-submission"},{"title":"Discard an image’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/media/revert-image-draft-to-published"},{"title":"Restore an image’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/media/revert-image-published-to-previous"},{"title":"Share an image’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/media/share-image"},{"title":"Copy an image to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/media/localize-image"},{"title":"List an image’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/media/get-image-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish images","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/media/publish-images"},{"title":"Archive images","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/media/archive-images"},{"title":"Restore images","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/media/restore-images"},{"title":"Copy images to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/media/localize-images"},{"title":"Tag or untag images","sidebarTitle":"Tag many","icon":"tags","href":"/laravel/reference/media/tag-images"}]}]},{"group":"Files","icon":"file","pages":[{"title":"List files","sidebarTitle":"List","icon":"list","href":"/laravel/reference/media/list-files"},{"title":"Get a file","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/media/get-file"},{"title":"Create a file","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/media/create-file"},{"title":"Update a file","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/media/update-file"},{"title":"Replace a file","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/media/replace-file"},{"title":"Delete a file","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/media/delete-file"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a file","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/media/publish-file"},{"title":"Unpublish a file","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/media/unpublish-file"},{"title":"Submit a file for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/media/submit-file"},{"title":"Dismiss a file’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/media/dismiss-file-submission"},{"title":"Discard a file’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/media/revert-file-draft-to-published"},{"title":"Restore a file’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/media/revert-file-published-to-previous"},{"title":"Share a file’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/media/share-file"},{"title":"Copy a file to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/media/localize-file"},{"title":"List a file’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/media/get-file-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish files","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/media/publish-files"},{"title":"Archive files","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/media/archive-files"},{"title":"Restore files","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/media/restore-files"},{"title":"Copy files to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/media/localize-files"}]}]},{"group":"Image tags","icon":"tag","pages":[{"title":"List image tags","sidebarTitle":"List","icon":"list","href":"/laravel/reference/media/list-image-tags"},{"title":"Get an image tag","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/media/get-image-tag"},{"title":"Create an image tag","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/media/create-image-tag"},{"title":"Update an image tag","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/media/update-image-tag"},{"title":"Replace an image tag","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/media/replace-image-tag"},{"title":"Delete an image tag","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/media/delete-image-tag"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish an image tag","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/media/publish-image-tag"},{"title":"Unpublish an image tag","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/media/unpublish-image-tag"},{"title":"Submit an image tag for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/media/submit-image-tag"},{"title":"Dismiss an image tag’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/media/dismiss-image-tag-submission"},{"title":"Discard an image tag’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/media/revert-image-tag-draft-to-published"},{"title":"Restore an image tag’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/media/revert-image-tag-published-to-previous"},{"title":"Share an image tag’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/media/share-image-tag"},{"title":"Copy an image tag to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/media/localize-image-tag"},{"title":"List an image tag’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/media/get-image-tag-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish image tags","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/media/publish-image-tags"},{"title":"Archive image tags","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/media/archive-image-tags"},{"title":"Restore image tags","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/media/restore-image-tags"},{"title":"Copy image tags to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/media/localize-image-tags"}]}]},{"group":"File tags","icon":"tags","pages":[{"title":"List file tags","sidebarTitle":"List","icon":"list","href":"/laravel/reference/media/list-file-tags"},{"title":"Get a file tag","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/media/get-file-tag"},{"title":"Create a file tag","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/media/create-file-tag"},{"title":"Update a file tag","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/media/update-file-tag"},{"title":"Replace a file tag","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/media/replace-file-tag"},{"title":"Delete a file tag","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/media/delete-file-tag"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a file tag","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/media/publish-file-tag"},{"title":"Unpublish a file tag","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/media/unpublish-file-tag"},{"title":"Submit a file tag for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/media/submit-file-tag"},{"title":"Dismiss a file tag’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/media/dismiss-file-tag-submission"},{"title":"Discard a file tag’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/media/revert-file-tag-draft-to-published"},{"title":"Restore a file tag’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/media/revert-file-tag-published-to-previous"},{"title":"Share a file tag’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/media/share-file-tag"},{"title":"Copy a file tag to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/media/localize-file-tag"},{"title":"List a file tag’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/media/get-file-tag-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish file tags","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/media/publish-file-tags"},{"title":"Archive file tags","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/media/archive-file-tags"},{"title":"Restore file tags","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/media/restore-file-tags"},{"title":"Copy file tags to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/media/localize-file-tags"}]}]}]},{"group":"Videos","icon":"video","pages":[{"title":"List videos","sidebarTitle":"List","icon":"list","href":"/laravel/reference/videos/list-videos"},{"title":"Get a video","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/videos/get-video"},{"title":"Create a video","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/videos/create-video"},{"title":"Update a video","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/videos/update-video"},{"title":"Replace a video","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/videos/replace-video"},{"title":"Delete a video","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/videos/delete-video"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a video","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/videos/publish-video"},{"title":"Unpublish a video","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/videos/unpublish-video"},{"title":"Submit a video for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/videos/submit-video"},{"title":"Dismiss a video’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/videos/dismiss-video-submission"},{"title":"Discard a video’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/videos/revert-video-draft-to-published"},{"title":"Restore a video’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/videos/revert-video-published-to-previous"},{"title":"Share a video’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/videos/share-video"},{"title":"Copy a video to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/videos/localize-video"},{"title":"List a video’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/videos/get-video-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish videos","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/videos/publish-videos"},{"title":"Archive videos","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/videos/archive-videos"},{"title":"Restore videos","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/videos/restore-videos"},{"title":"Copy videos to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/videos/localize-videos"}]}]},{"group":"Image Folders","icon":"folder-open","pages":[{"title":"List image folders","sidebarTitle":"List","icon":"list","href":"/laravel/reference/image-folders/list-image-folders"},{"title":"Get an image folder","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/image-folders/get-image-folder"},{"title":"Create an image folder","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/image-folders/create-image-folder"},{"title":"Update an image folder","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/image-folders/update-image-folder"},{"title":"Replace an image folder","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/image-folders/replace-image-folder"},{"title":"Delete an image folder","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/image-folders/delete-image-folder"},{"title":"Get the image folder tree","sidebarTitle":"Get the image folder tree","icon":"magnifying-glass","href":"/laravel/reference/image-folders/get-image-folder-tree"},{"title":"List a folder’s photos","sidebarTitle":"List a folder’s photos","icon":"magnifying-glass","href":"/laravel/reference/image-folders/list-image-folder-photos"},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Archive image folders","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/image-folders/archive-image-folders"},{"title":"Restore image folders","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/image-folders/restore-image-folders"}]}]},{"group":"File Folders","icon":"folder","pages":[{"title":"List file folders","sidebarTitle":"List","icon":"list","href":"/laravel/reference/file-folders/list-file-folders"},{"title":"Get a file folder","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/file-folders/get-file-folder"},{"title":"Create a file folder","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/file-folders/create-file-folder"},{"title":"Update a file folder","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/file-folders/update-file-folder"},{"title":"Replace a file folder","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/file-folders/replace-file-folder"},{"title":"Delete a file folder","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/file-folders/delete-file-folder"},{"title":"Get the file folder tree","sidebarTitle":"Get the file folder tree","icon":"magnifying-glass","href":"/laravel/reference/file-folders/get-file-folder-tree"},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Archive file folders","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/file-folders/archive-file-folders"},{"title":"Restore file folders","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/file-folders/restore-file-folders"}]}]},{"group":"Video Folders","icon":"folder-closed","pages":[{"title":"List video folders","sidebarTitle":"List","icon":"list","href":"/laravel/reference/video-folders/list-video-folders"},{"title":"Get a video folder","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/video-folders/get-video-folder"},{"title":"Create a video folder","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/video-folders/create-video-folder"},{"title":"Update a video folder","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/video-folders/update-video-folder"},{"title":"Replace a video folder","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/video-folders/replace-video-folder"},{"title":"Delete a video folder","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/video-folders/delete-video-folder"},{"title":"Get the video folder tree","sidebarTitle":"Get the video folder tree","icon":"magnifying-glass","href":"/laravel/reference/video-folders/get-video-folder-tree"},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Archive video folders","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/video-folders/archive-video-folders"},{"title":"Restore video folders","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/video-folders/restore-video-folders"}]}]},{"group":"Photo Albums","icon":"images","pages":[{"title":"List photo albums","sidebarTitle":"List","icon":"list","href":"/laravel/reference/photo-albums/list-photo-albums"},{"title":"Get a photo album","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/photo-albums/get-photo-album"},{"title":"Create a photo album","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/photo-albums/create-photo-album"},{"title":"Update a photo album","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/photo-albums/update-photo-album"},{"title":"Replace a photo album","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/photo-albums/replace-photo-album"},{"title":"Delete a photo album","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/photo-albums/delete-photo-album"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a photo album","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/photo-albums/publish-photo-album"},{"title":"Unpublish a photo album","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/photo-albums/unpublish-photo-album"},{"title":"Submit a photo album for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/photo-albums/submit-photo-album"},{"title":"Dismiss a photo album’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/photo-albums/dismiss-photo-album-submission"},{"title":"Discard a photo album’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/photo-albums/revert-photo-album-draft-to-published"},{"title":"Restore a photo album’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/photo-albums/revert-photo-album-published-to-previous"},{"title":"Share a photo album’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/photo-albums/share-photo-album"},{"title":"Copy a photo album to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/photo-albums/localize-photo-album"},{"title":"List a photo album’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/photo-albums/get-photo-album-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish photo albums","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/photo-albums/publish-photo-albums"},{"title":"Archive photo albums","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/photo-albums/archive-photo-albums"},{"title":"Restore photo albums","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/photo-albums/restore-photo-albums"},{"title":"Copy photo albums to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/photo-albums/localize-photo-albums"}]}]},{"group":"Photo Feeds","icon":"rss","pages":[{"title":"List photo feeds","sidebarTitle":"List","icon":"list","href":"/laravel/reference/photo-feeds/list-photo-feeds"},{"title":"Get a photo feed","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/photo-feeds/get-photo-feed"},{"title":"Create a photo feed","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/photo-feeds/create-photo-feed"},{"title":"Update a photo feed","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/photo-feeds/update-photo-feed"},{"title":"Replace a photo feed","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/photo-feeds/replace-photo-feed"},{"title":"Delete a photo feed","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/photo-feeds/delete-photo-feed"},{"title":"List a feed’s photos","sidebarTitle":"List a feed’s photos","icon":"magnifying-glass","href":"/laravel/reference/photo-feeds/list-photo-feed-photos"},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Archive photo feeds","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/photo-feeds/archive-photo-feeds"},{"title":"Restore photo feeds","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/photo-feeds/restore-photo-feeds"}]}]},{"group":"Attachments","icon":"paperclip","pages":[{"title":"Upload media file","sidebarTitle":"Upload media file","icon":"bolt","href":"/laravel/reference/attachments/upload-attachment"},{"title":"Crop image attachment","sidebarTitle":"Crop image attachment","icon":"bolt","href":"/laravel/reference/attachments/crop-attachment"}]},{"group":"Fetchski Media","icon":"image","pages":[{"title":"List images","sidebarTitle":"List images","icon":"magnifying-glass","href":"/laravel/reference/fetchski-media/list-media-images"},{"title":"List videos","sidebarTitle":"List videos","icon":"magnifying-glass","href":"/laravel/reference/fetchski-media/list-media-videos"},{"title":"Get one image","sidebarTitle":"Get one image","icon":"magnifying-glass","href":"/laravel/reference/fetchski-media/get-media-image"},{"title":"Get one video","sidebarTitle":"Get one video","icon":"magnifying-glass","href":"/laravel/reference/fetchski-media/get-media-video"}]}]},{"group":"Forms","icon":"clipboard-list","pages":[{"group":"Forms","icon":"clipboard-list","pages":[{"title":"List forms","sidebarTitle":"List","icon":"list","href":"/laravel/reference/forms/list-forms"},{"title":"Get a form","sidebarTitle":"Get","icon":"eye","href":"/laravel/reference/forms/get-form"},{"title":"Create a form","sidebarTitle":"Create","icon":"plus","href":"/laravel/reference/forms/create-form"},{"title":"Update a form","sidebarTitle":"Update","icon":"pen","href":"/laravel/reference/forms/update-form"},{"title":"Replace a form","sidebarTitle":"Replace","icon":"arrows-rotate","href":"/laravel/reference/forms/replace-form"},{"title":"Delete a form","sidebarTitle":"Delete","icon":"trash","href":"/laravel/reference/forms/delete-form"},{"group":"Publishing","icon":"paper-plane","pages":[{"title":"Publish a form","sidebarTitle":"Publish","icon":"paper-plane","href":"/laravel/reference/forms/publish-form"},{"title":"Unpublish a form","sidebarTitle":"Unpublish","icon":"eye-slash","href":"/laravel/reference/forms/unpublish-form"},{"title":"Submit a form for review","sidebarTitle":"Submit for review","icon":"clipboard-check","href":"/laravel/reference/forms/submit-form"},{"title":"Dismiss a form’s review submission","sidebarTitle":"Dismiss a submission","icon":"xmark","href":"/laravel/reference/forms/dismiss-form-submission"},{"title":"Discard a form’s draft changes","sidebarTitle":"Discard draft changes","icon":"rotate-left","href":"/laravel/reference/forms/revert-form-draft-to-published"},{"title":"Restore a form’s previous publish","sidebarTitle":"Restore previous publish","icon":"clock-rotate-left","href":"/laravel/reference/forms/revert-form-published-to-previous"},{"title":"Share a form’s draft","sidebarTitle":"Share the draft","icon":"share-nodes","href":"/laravel/reference/forms/share-form"},{"title":"Copy a form to another locale","sidebarTitle":"Copy to a locale","icon":"language","href":"/laravel/reference/forms/localize-form"},{"title":"List a form’s locales","sidebarTitle":"List locales","icon":"globe","href":"/laravel/reference/forms/get-form-locales"}]},{"group":"Batch jobs","icon":"layer-group","pages":[{"title":"Publish forms","sidebarTitle":"Publish many","icon":"paper-plane","href":"/laravel/reference/forms/publish-forms"},{"title":"Archive forms","sidebarTitle":"Archive many","icon":"box-archive","href":"/laravel/reference/forms/archive-forms"},{"title":"Restore forms","sidebarTitle":"Restore many","icon":"box-open","href":"/laravel/reference/forms/restore-forms"},{"title":"Copy forms to another locale","sidebarTitle":"Copy many to a locale","icon":"language","href":"/laravel/reference/forms/localize-forms"}]}]},{"group":"Form Submissions","icon":"inbox","pages":[{"title":"List forms and their submission counts","sidebarTitle":"List forms and their submission counts","icon":"magnifying-glass","href":"/laravel/reference/form-submissions/list-submission-forms"},{"title":"List a form’s submissions","sidebarTitle":"List a form’s submissions","icon":"magnifying-glass","href":"/laravel/reference/form-submissions/list-form-submissions"},{"title":"Export a form’s submissions as CSV","sidebarTitle":"Export a form’s submissions as CSV","icon":"magnifying-glass","href":"/laravel/reference/form-submissions/export-form-submissions"}]}]},{"group":"Ads \u0026 Conversions","icon":"chart-line","pages":[{"group":"Conversion Events","icon":"bolt","pages":[{"title":"List conversion events (incremental sync)","sidebarTitle":"List conversion events (incremental sync)","icon":"magnifying-glass","href":"/laravel/reference/conversion-events/list-conversion-events"},{"title":"Get one conversion event","sidebarTitle":"Get one conversion event","icon":"magnifying-glass","href":"/laravel/reference/conversion-events/get-conversion-event"},{"title":"Post a conversion another system saw","sidebarTitle":"Post a conversion another system saw","icon":"bolt","href":"/laravel/reference/conversion-events/create-external-conversion-event"},{"title":"Retract or restate a conversion event","sidebarTitle":"Retract or restate a conversion event","icon":"bolt","href":"/laravel/reference/conversion-events/adjust-conversion-event"}]},{"group":"Visitor Attribution","icon":"route","pages":[{"title":"Find visitors by an identifier","sidebarTitle":"Find visitors by an identifier","icon":"magnifying-glass","href":"/laravel/reference/visitor-attribution/find-visitor-attributions"},{"title":"Get one visitor’s attribution","sidebarTitle":"Get one visitor’s attribution","icon":"magnifying-glass","href":"/laravel/reference/visitor-attribution/get-visitor-attribution"}]},{"group":"Ads Metrics","icon":"chart-column","pages":[{"title":"Ad-click landings and conversions, aggregated","sidebarTitle":"Ad-click landings and conversions, aggregated","icon":"magnifying-glass","href":"/laravel/reference/ads-metrics/get-ads-metrics"}]},{"group":"Conversions","icon":"bullseye","pages":[{"title":"Conversions the page can fire (public)","sidebarTitle":"Conversions the page can fire (public)","icon":"magnifying-glass","href":"/laravel/reference/conversions/list-active-conversions"},{"title":"List the enabled Conversions","sidebarTitle":"List the enabled Conversions","icon":"magnifying-glass","href":"/laravel/reference/conversions/list-conversion-definitions"}]}]},{"group":"Analytics","icon":"chart-simple","pages":[{"title":"List captured page views","sidebarTitle":"List captured page views","icon":"magnifying-glass","href":"/laravel/reference/request-log/list-request-log-entries"},{"title":"List captured query parameters","sidebarTitle":"List captured query parameters","icon":"magnifying-glass","href":"/laravel/reference/request-log/list-request-log-params"}]}]},{"tab":"AdonisJS","icon":"https://mintlify.s3.us-west-1.amazonaws.com/fetchski-attract-api/logo/adonisjs.svg","pages":[{"title":"AdonisJS","href":"/adonisjs/overview"}]},{"tab":"API reference","icon":"code","pages":[{"title":"API reference","href":"/quickstart"}]}]},"basePath":"","title":"Create a page - Fetchski Attract Docs","buildId":"dpl_5joLUXmnJgwqjrHAS4dxZrQTdxgh","deploymentId":"dpl_5joLUXmnJgwqjrHAS4dxZrQTdxgh","dynamics":["2b790eda92"],"chunks":["ApiExamples-CjwVt80x.js","utils-DyjUHyLo.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","cloneDeep-izs3Hzxb.js","utils-BWYE1cdS.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ByHQMk7z.js","shallow-CaZuw1AO.js","snippetPresets-DNiD_S52.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","getApiPlaygroundDisplay-DPVPOknm.js","CodeSnippet-B31CH-Mp.js","CodeSnippets-BxTYZWz6.js"]}