Skip to content

Theme Almanac

This page is generated from package source documentation in the Capell packages repository and the checked-in manifest. Source documentation is not distribution status. Before running a Composer command, verify that the exact package and compatible 1.x release are available through public Packagist or the authenticated marketplace account.

FieldValue
Composer packagecapell-app/theme-almanac
Package slugtheme-almanac
Product groupCapell Themes
Tierpremium
Bundlethemes
Runtime contextsfrontend
Capell version^1.0
Catalogue roleextension
Release channelBeta
Source repositorycapell-app/packages
Source pathpackages/theme-almanac
Docs sourcepackages/theme-almanac/docs
Manifestcapell.json

Theme Almanac is an Available, No schema impact Capell theme in the Capell Themes product group. It ships as capell-app/theme-almanac and extends these surfaces: frontend.

Theme Almanac adds a month-addressed living calendar, day ledgers, bounded season navigation, recurring-series discovery, honest booking fallbacks, and three vertical-distinct presets.

Use Preview Theme Almanac privately on existing content before Apply Theme Almanac changes the selected site’s public design; reapply its previous theme to restore that selection, remembering that shared Theme Studio settings saves can affect public pages. For fictional demo content, name a disposable target with —sites and review —url and —languages; unscoped setup refuses existing sites, scoped repeats preserve site configuration unless —force deliberately replaces its theme, enabled state, requested site translations and domains, while demo pages, widgets and demo layouts are rewritten on scoped repeats. Editors author sessions once in a shared Month Grid widget and publish ordinary month/day pages; the server renders sessions, quiet days and bounded navigation, with optional public Events occurrences taking precedence and authored fallback, as described in the admin overview.

Status details:

  • Status: Available
  • Tier: premium
  • Bundle: themes
  • Composer package: capell-app/theme-almanac
  • Namespace: Capell\ThemeAlmanac
  • Theme key: almanac

For developers: The package centralises calendar expansion in Actions, structured boundaries in Data objects, optional integrations in availability classes, and active-theme JavaScript in the shared frontend-resource seam. Calendar candidate dependencies are collected independently of public-link eligibility. URL, translation and optional Events membership changes invalidate cached calendars after commit through Core’s invalidation planner; new URLs use a conservative site-level membership dependency.

For teams: Recurring venues can publish sessions, ordinary hours, closures, past notes, and booking paths as one calendar-led website instead of maintaining a separate events microsite.

Screenshot contract: docs/screenshots.json.

Almanac canonical month homepage

Almanac programme directory

Desktop, tablet, and mobile variants remain defined in the screenshot contract; this list groups them by workflow.

  • Almanac canonical month homepage (frontend, required evidence).
  • Almanac programme directory (frontend, required evidence).
  • Almanac day ledger detail (frontend, required evidence).
  • Almanac contact and year heatmap (frontend, required evidence).
  • Almanac closed-season state (frontend, required evidence).
  • Almanac missing-date recovery (frontend, required evidence).
  • Almanac next-opening conversion surface (frontend, required evidence).
  • Capell\ThemeAlmanac\AlmanacThemeServiceProvider
  • Capell\ThemeAlmanac\Providers\ConsoleServiceProvider
  • CalendarWidgetSchemaExtender
  • BuildCalendarSectionAction
  • ExpandOccurrencesForMonthAction
  • InstallAlmanacThemeDemoAction
  • InvalidateCalendarMembershipAction
  • InvalidateEventsCalendarWidgetsAction
  • InvalidateEventsCalendarsAction
  • ResolveAlmanacSectionAction
  • ResolveCalendarHomepageRedirectAction
  • ResolveCalendarMonthPageAction
  • AlmanacSectionData
  • CalendarDayData
  • CalendarEntriesData
  • CalendarMonthData
  • CalendarSectionResultData
  • CalendarSessionData
  • InvalidateEventsCalendarsJob
  • capell:theme-almanac-demo
  • DemoCommand
  • admin-page: Capell\ThemeAlmanac\Manifest\ThemeManagementPageContribution
  • public-render-data: Capell\ThemeAlmanac\Support\CalendarRenderDataContributor
  • schema-extender: Capell\ThemeAlmanac\Filament\Extenders\CalendarWidgetSchemaExtender
  • Capell\ThemeAlmanac\Health\ThemeAlmanacHealthCheck
  • packages/theme-almanac/resources/views/components/booking-slot-action.blade.php
  • packages/theme-almanac/resources/views/components/comments-thread.blade.php
  • packages/theme-almanac/resources/views/components/contact-channel.blade.php
  • packages/theme-almanac/resources/views/components/newsletter-capture.blade.php
  • packages/theme-almanac/resources/views/components/site-search.blade.php
  • packages/theme-almanac/resources/views/sections/booking-slot-card.blade.php
  • packages/theme-almanac/resources/views/sections/contact.blade.php
  • packages/theme-almanac/resources/views/sections/countdown-next-opening.blade.php
  • packages/theme-almanac/resources/views/sections/cta--seasonline.blade.php
  • packages/theme-almanac/resources/views/sections/cta.blade.php
  • packages/theme-almanac/resources/views/sections/day-ledger-session-rail.blade.php
  • packages/theme-almanac/resources/views/sections/footer.blade.php
  • packages/theme-almanac/resources/views/sections/hero--almanac.blade.php
  • packages/theme-almanac/resources/views/sections/hero.blade.php
  • packages/theme-almanac/resources/views/sections/listing--ledger.blade.php
  • packages/theme-almanac/resources/views/sections/listing.blade.php
  • packages/theme-almanac/resources/views/sections/month-grid-living-ledger.blade.php
  • packages/theme-almanac/resources/views/sections/navigation.blade.php
  • packages/theme-almanac/resources/views/sections/next-sessions-strip.blade.php
  • packages/theme-almanac/resources/views/sections/season-archive-patina-wall.blade.php
  • packages/theme-almanac/resources/views/sections/season-band-month-scroller.blade.php
  • packages/theme-almanac/resources/views/sections/series-recurring-index.blade.php
  • packages/theme-almanac/resources/views/sections/year-heatmap-glance.blade.php
  • packages/theme-almanac/resources/views/widget/resolved-section.blade.php
  • packages/theme-almanac/resources/views/widget/section.blade.php
  • theme-almanac

This theme has no schema impact. It relies on core Capell site, page, locale, and theme records instead of declaring package-owned tables.

  • Required packages: capell-app/core, capell-app/theme-foundation, capell-app/frontend, capell-app/layout-builder.
  • Admin navigation: declares admin-page: ThemeManagementPageContribution; each Filament page or resource controls its own navigation visibility.
  • Admin/editor extensions: schema-extender: CalendarWidgetSchemaExtender.
  • Permissions: no package permission declarations or Shield gates detected; host access rules still apply.
  • Public routes: none declared.
  • Database changes: no package migrations declared.
  • Config: no package config files.
  • Settings: no package settings declared.
  • Queues or schedules: queue jobs InvalidateEventsCalendarsJob.
  • Cache tags: theme-almanac.
  • Commands: capell:theme-almanac-demo.
  • Keep required Capell packages on compatible v4 releases: capell-app/core, capell-app/theme-foundation, capell-app/frontend, capell-app/layout-builder.
  • Keep public Blade and cached HTML free of authoring markers, model IDs, permissions, signed editor URLs, and lazy database queries.
  • Custom write integrations must preserve invalidation for theme-almanac cache tags.
SymptomLikely causeCheckFix
Package surface is missing after installProvider or manifest is not loadedConfirm capell.json, package composer.json, and provider registrationReinstall the package, refresh Composer autoload, and clear host caches
Background work does not runQueue worker or declared schedule is not activeCheck the jobs and scheduled commands listed in Technical ShapeStart the queue worker or host scheduler, then run the focused command or package test
Public output leaks unexpected stateRender data, cache variation, or authoring boundary has regressedCheck public Blade, cache tags, and public-output safety testsMove data loading out of Blade and rerun the package public-output tests
  1. Install the package: composer require capell-app/theme-almanac.
  2. See it working on a disposable site: run php artisan capell:theme-almanac-demo --sites="Theme demo". Choose a new site name for your demo; keep customer sites for the Preview → Apply workflow above.
  3. Run php artisan list and verify the package command signatures are registered.

No manual steps between minor versions.

Read CHANGELOG.md before upgrading.