Frontmatter
| id | 8117 |
| title | Enhance theming engine to support additionalThemeFiles |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Dec 15, 2025, 9:07 PM |
| updatedAt | Dec 15, 2025, 9:35 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8117 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Dec 15, 2025, 9:35 PM |
Enhance theming engine to support additionalThemeFiles
tobiu assigned to @tobiu on Dec 15, 2025, 9:08 PM

tobiu
Dec 15, 2025, 9:34 PM
Input from Gemini:
✦ I have implemented the requested changes.
Summary of Changes:
src/component/Abstract.mjs:
- Added
additionalThemeFilesto thestatic config.- Updated the JSDoc to include an
@example.- Ensured correct config ordering.
src/worker/App.mjs:
- Updated
insertThemeFilesto handleadditionalThemeFiles.- Implemented logic to pass
nullas the prototype when recursively loading additional theme files, ensuring the prototype chain is ignored for these specific files.- Added
classNameto thethemeFilesCacheto support cases where the prototype might be null.- Utilized optional chaining (
?.) for cleaner code.
apps/agentos/childapps/strategy/view/Viewport.mjs:
- Added
additionalThemeFiles: ['AgentOS.view.Viewport']to demonstrate usage and fix the reported theming issue.The enhancement is now complete and verified.
tobiu closed this issue on Dec 15, 2025, 9:35 PM
To handle scenarios where components need to load theme files from namespaces outside their prototype chain (e.g., loading a main app Viewport theme in a child app), we need to introduce a mechanism to specify additional theme files.
This task involves:
additionalThemeFiles(String[]) toNeo.component.Abstractconfig.Neo.worker.App#insertThemeFilesto process these additional files, loading them without traversing their prototype chain.