oxyan.themes
============

`oxyan.themes` is the theme package for the Ocyan / MandelBlogStack ecosystem.
It provides the shared base templates, header/footer variants, SCSS theme
definitions, and webshop-oriented template overrides used by Ocyan projects.

Current theme selection
=======================

Theme selection is currently configuration-driven through the Ocyan config
section named `themes`. The plugin entrypoint maps those values into Django
settings:

* `OXYAN_THEME`
* `OXYAN_THEME_MIXINS`

Example::

    "themes": {
      "theme": "default",
      "mixins": ["sticky_header", "wide_container"]
    }

This package does not currently provide a first-class per-site Wagtail theme
selection model. Theme selection is effectively global for the running project.

Asset pipeline
==============

The current runtime asset source of truth is:

* JavaScript bundle: `oxyan/themes/static/bundle.js`
* CSS bundle: `oxyan/themes/static/bundle.css`
* Runtime SCSS entry: `oxyan/themes/static/scss/base.scss`

Source assets live in:

* `js/` for source JavaScript
* `oxyan/themes/static/scss/` for SCSS

Webpack builds the bundle assets, while Django compressor / libsass still
compile SCSS at runtime. That mixed pipeline is current behavior and should be
treated as legacy architecture until a dedicated cleanup phase is approved.

Optional integrations
=====================

`oxyan.themes` is designed to work inside the broader Ocyan stack and has
optional or soft coupling with:

* Wagtail
* Oscar / webshop flows
* `ocyan.plugin.wagtail`
* `ocyan.plugin.seo`
* `ocyan.plugin.ai_assistant`

The AI Assistant widget is optional. If `ocyan.plugin.ai_assistant` is not
installed, the base theme should still render safely.

Known limitations
=================

Current limitations that remain intentionally unchanged in this phase:

* no dedicated per-site theme selection model
* strong template coupling to Oscar/webshop flows
* mixed asset pipeline with both webpack bundles and runtime SCSS compilation
* limited automated test coverage
* broader asset and template cleanup still belongs to a future hardening phase
