Promotions
section@hydra-sites/ui/sections
Parent-fed: page loads loadPromotions() and passes SitePromotion[]
<Promotions promotions={promos} placement="home_page_promotions" showViewAll variant="widget" />Filter by the kind of PMS / Hydra data each module touches. Prefer async server sections that load via site-content-bridge so pages stay thin.
Refactor direction: when a page repeats
load*
logic, move that fetch into a dedicated component under
packages/ui/src (props-fed pattern like
Promotions).
Toggle one or more domains. Empty selection shows everything (47 modules). The same filter controls which live demos render below (?domains= in the URL).
Showing 47 entries
@hydra-sites/ui/sections
Parent-fed: page loads loadPromotions() and passes SitePromotion[]
<Promotions promotions={promos} placement="home_page_promotions" showViewAll variant="widget" />@hydra-sites/ui/forms
Parent-fed: loadLeadForm(formSlug) on the page; pass form + api client
<LeadForm form={form} api={apiClient} placement="page_section:hero" />@hydra-sites/ui/sections
Parent-fed: pass initialTestimonials / initialStats from loadTestimonials (wrapper candidate)
@hydra-sites/ui/sections
Mostly static layout; optional imagery/copy via props
@hydra-sites/ui/sections
Static placeholder grid — swap for PMS service items when wired
Replace hard-coded cards with real service posts when ready.
@hydra-sites/ui/sections
Static presentation
@hydra-sites/ui/sections
Static presentation
@hydra-sites/ui/sections
Uses manufacturer badges/copy via clientConfig / siteExtras
@hydra-sites/ui/sections
Static presentation
@hydra-sites/ui/sections
Static marketing layout — links to /plans routes
@hydra-sites/ui/sections
Client carousel/widget — receives SitePromotion[] from page loader
@hydra-sites/ui/sections
useBusiness().serviceAreas (Hydra / PMS-derived listing)
@hydra-sites/ui/sections
Static CTA layout linking financing flows
@hydra-sites/ui/sections
Props typed from FinancingPlanCardData (bridge-shaped)
@hydra-sites/ui/sections
Business hooks + tel/contact CTAs
@hydra-sites/ui/sections
Props-driven FAQGroup[] (often resolvePmsFaqs from templates)
@/templates/BlogPost
Single blog post fields + rich body — apps/site template
@/templates/TeamMember
Single team member + bios/images — apps/site template
@/templates/ServiceDetail
Service post + parent category + related — apps/site template
resolvePmsFaqs for FAQ accordions.
@/templates/ServiceCategory
Aggregates service-category hub posts — apps/site template
@/templates/ServiceArea
Service-area detail fields + FAQs — apps/site template
@/templates/WordPressPage
Generic HTML body from PMSPost.content (legal/sample WP routes)
Used by sample/legal-style WP routes.
@/templates/Career
Single job posting — bridge JobPosting + LeadForm
@/templates/Plan
Single maintenance-plan post — apps/site template
@/templates/Promotion
Single promotion detail — apps/site template
@hydra-sites/ui/forms
Client form renderer — SiteForm + HydraApiClient submit
@hydra-sites/ui/layout
Server wrapper — passes Hydra nav payload into NavigationServer
@hydra-sites/ui/layout
SSR link tree + mega-menu props
@hydra-sites/ui/layout
Client mega-menu / drawer — services & areas from props
@hydra-sites/ui/layout
BusinessProvider + menus + siteExtras
@ciwebgroup/site-content-bridge/seo
Structured data JSON-LD scripts
@hydra-sites/ui/providers
React context — Hydra business_setting + blog authors + service areas
@hydra-sites/ui/ui
GSAP reveal wrapper
@hydra-sites/ui/ui
Floating scroll button
@hydra-sites/ui/ui
Docs-style reference panel
@hydra-sites/ui/ui
Business contact rows
@hydra-sites/ui/ui
Sidebar contact module
@hydra-sites/ui/ui
Banner strip CTAs
@hydra-sites/ui/ui
Empty list placeholder
@hydra-sites/ui/ui
Dev/design grid overlay
@hydra-sites/ui/ui
Trust logos row — props from Hydra presentation
@hydra-sites/ui/ui
Interior page hero + breadcrumbs
@hydra-sites/ui/ui
Section spacing shell
@hydra-sites/ui/ui
Reading progress indicator
@hydra-sites/ui/ui
Marquee-style headline motion
@hydra-sites/ui/ui
Layout section primitive
@hydra-sites/ui/ui
Eyebrow + title block
Demos follow the same domain filters as the catalog (URL
?domains=).
Navigation barrel + NavigationServer share one anchor. Tall templates scroll inside each
sandbox.
ScrollProgress
and
BackToTop
stay documented as layout chrome rather than duplicated here.
Live demo
@hydra-sites/ui/sections
Parent-fed: page loads loadPromotions() and passes SitePromotion[]
Publish promotions in PMS or check API credentials.
Live demo
@hydra-sites/ui/forms
Parent-fed: loadLeadForm(formSlug) on the page; pass form + api client
Demo
Use the same pattern shown in `apps/site/src/pages/leads.astro` — load forms via `loadLeadForms()` and pass them into `<LeadForm form={…} api={apiClient} placement="…" />`.
Live demo
@hydra-sites/ui/sections
Parent-fed: pass initialTestimonials / initialStats from loadTestimonials (wrapper candidate)
Our business is built on referrals from satisfied customers. Read what our clients say about our service.
5.0
STAR RATING
550
REVIEWS
"Terrific service! Got me fixed up quick and was much faster for an appointment than I imagined. Awesome service!"
Brock and Allison Hurt
May 2026
"Gabe found some of the problems even before he saw our pictures. He was very helpful as to assuring us that it was an easy fix and problems were caused due to aging naturally. He completed the job quickly. I recommend this business because the process was easy from start to finish and he answered all our questions. They had installed our HVAC system and today they did a checkup and repaired the duct work."
Chris Creek
Apr 2026
Experience the honest, trustworthy service our customers love.
Live demo
@hydra-sites/ui/sections
Mostly static layout; optional imagery/copy via props
,
Professional service you can count on. Licensed, insured, and committed to your satisfaction.
Years
Reviews
Service
Live demo
@hydra-sites/ui/sections
Static placeholder grid — swap for PMS service items when wired
WHAT WE DO
From emergency service calls to full system replacements, our certified technicians handle it all with care.
Live demo
@hydra-sites/ui/sections
Static presentation
We earn your confidence with transparent pricing, timely response, and a focus on lasting satisfaction. The specialized service partner for those who value honesty.
& Integrity
Our brand differentiator. Transparent recommendations and fair pricing — no upselling, just honest service.
Professionals
We meet the highest performance standards, connecting you with the most dependable, energy-efficient systems.
Track Record
Years of dedicated service to our community. Our legacy is built on quality work and customer satisfaction.
Schedule your service today and discover why our customers trust us.
Live demo
@hydra-sites/ui/sections
Static presentation
Years of Excellence
500+
5-Star Reviews
5.0
Star Rating
Serving & Surrounding Areas
is a customer-focused, family-run company dedicated to providing expert, high-quality service for year-round comfort and reliability. Because our business is built on referrals from satisfied customers, we make delivering dependable results and outstanding service our daily mission.
When you need professional service you can trust, is the reliable team in , you can count on.
Live demo
@hydra-sites/ui/sections
Uses manufacturer badges/copy via clientConfig / siteExtras
Trusted Carrier systems paired with certified install crews — the combination that turns a one-time purchase into a 15-year partnership.
Full warranty
Parts + labor
Energy savings
Up to 40% off
PRODUCT IMAGE
Configure in client.config.ts
Ready to upgrade to a Carrier system?
SCHEDULE NOWLive demo
@hydra-sites/ui/sections
Static presentation
Whether residential or light commercial, we tailor the install to the room.
TUNED
Replace, repair, and tune-up residential HVAC for whole-home comfort and bills you can predict.
1k+
Homes served
SERVICED
Storefronts, offices, and clinics — equipment you can rely on through the busy season.
24/7
On-call response
Talk to a technician about your space.
Live demo
@hydra-sites/ui/sections
Static marketing layout — links to /plans routes
Protect your equipment with a recurring tune-up and priority response plan.
YEARLY PLAN
Plus priority scheduling.
Twice a year
Two pre-emptive visits a year — spring + fall.
10% off
10% off repairs and parts for active members.
Front-of-line
Front-of-line scheduling on hot/cold-snap days.
Serving , & surrounding areas
Live demo
@hydra-sites/ui/sections
Client carousel/widget — receives SitePromotion[] from page loader
Publish promotions in PMS or check API credentials.
Live demo
@hydra-sites/ui/sections
useBusiness().serviceAreas (Hydra / PMS-derived listing)
We focus on owning our backyard before aggressive expansion — ensuring rapid response times and expert service in our core territory.
,
Call us to confirm service availability in your neighborhood.
Live demo
@hydra-sites/ui/sections
Static CTA layout linking financing flows
Options Available
Don't let cost hold you back. We offer convenient financing options so you can get the service you need today with easy monthly payments.
$0
Down
Low
Monthly
Fast
Approval
Easy
Payments
Financing subject to credit approval. Terms and conditions apply.
Live demo
@hydra-sites/ui/sections
Props typed from FinancingPlanCardData (bridge-shaped)
What you get from Central Washington Heating and Air:
Demo fallback — publish financing plans in PMS for production content.
Live demo
@hydra-sites/ui/sections
Business hooks + tel/contact CTAs
Emergencies don't wait — and neither do we. Our team is standing by around the clock to restore your comfort fast.
We're ready when you need us most
Serving , & surrounding areas
Live demo
@hydra-sites/ui/sections
Props-driven FAQGroup[] (often resolvePmsFaqs from templates)
Browse answers grouped by the service or location page they belong to. These FAQs are managed in Hydra and published from PMS.
2
Questions
1
Pages
Typically every 1–3 months depending on pets, allergies, and system runtime.
Yes — see the financing section or ask your technician for current promotions.
Live demo
@hydra-sites/ui/forms
Client form renderer — SiteForm + HydraApiClient submit
Demo
Mount inside a page with `<DynamicLeadForm form={form} api={apiClient} placement="…" />`. See `apps/site/src/pages/leads.astro`.
Live demo
@hydra-sites/ui/layout
Server wrapper — passes Hydra nav payload into NavigationServer
Demo
See `apps/site/src/layouts/Layout.astro` for the live <NavigationServer> mount. We skip duplicating it here — the live nav at the top of this page is the actual component.
Live demo
@hydra-sites/ui/layout
Client mega-menu / drawer — services & areas from props
Demo
Already mounted as part of the page chrome; see Layout.astro.
Live demo
@hydra-sites/ui/layout
BusinessProvider + menus + siteExtras
Demo
Scroll to the bottom of this page to see the live <Footer> instance — see `apps/site/src/layouts/Layout.astro` for the mount.
Live demo
@ciwebgroup/site-content-bridge/seo
Structured data JSON-LD scripts
Below is the JSON-LD payload produced for a sample breadcrumb. In production the `<script type="application/ld+json">` tag is injected from `apps/site/src/templates/*` via the bridge /seo subpath. There is also a global LocalBusiness JSON-LD block in <head>.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://centralwashingtonheating.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Library",
"item": "https://centralwashingtonheating.com/library"
}
]
}Live demo
@hydra-sites/ui/providers
React context — Hydra business_setting + blog authors + service areas
BusinessProvider context is active — ,
Live demo
@hydra-sites/ui/ui
GSAP reveal wrapper
Live demo
@hydra-sites/ui/ui
Floating scroll button
The floating control at the bottom-right of the viewport is the live BackToTop instance from the root layout (not duplicated here).
Live demo
@hydra-sites/ui/ui
Docs-style reference panel
Builder Reference
Place this component on a page with:
<BuilderReferenceCard title="Title" items={[{ label: "k", value: "v" }]} />Live demo
@hydra-sites/ui/ui
Business contact rows
Live demo
@hydra-sites/ui/ui
Sidebar contact module
Contact us today to discuss your needs. Our team is ready to help.
Live demo
@hydra-sites/ui/ui
Banner strip CTAs
Live demo
@hydra-sites/ui/ui
Empty list placeholder
Swap for real data when PMS returns rows.
Live demo
@hydra-sites/ui/ui
Dev/design grid overlay
Grid overlay (pointer-events none) on dark surface.
Live demo
@hydra-sites/ui/ui
Trust logos row — props from Hydra presentation
Live demo
@hydra-sites/ui/ui
Interior page hero + breadcrumbs
Breadcrumbs + optional slots.
Live demo
@hydra-sites/ui/ui
Section spacing shell
Eyebrow
Muted background variant.
Child content area.
Live demo
@hydra-sites/ui/ui
Reading progress indicator
ScrollProgress is fixed to the top of the viewport by the root layout. Scroll this page to watch the bar advance.
Live demo
@hydra-sites/ui/ui
Marquee-style headline motion
Live demo
@hydra-sites/ui/ui
Layout section primitive
Section primitive — secondary variant
Live demo
@hydra-sites/ui/ui
Eyebrow + title block
Components
Subtitle line
Optional description copy for marketing sections.