Repository navigation
feat: add per-instance theme engine (forward-port from #675) - #684
Conversation
Adds ThemeColorSet/ThemeDefinition/ThemeFontSet and ThemeManager: derives a tenant's palette from its accent hex plus any per-field THEME overrides, and resolves its logo/header banner from a remote URL (cached in-memory, falling back to the bundled default) or a bundled asset name. Looked up by the tenant's stable key, not a localized display-name string. Takes primitives, not Core's Tenant struct -- Theme has no build dependency on Core. Not called from anywhere yet -- RouteController wires up applyTheme(...) in a later PR. With one generic placeholder asset for customer logo, matching config.yaml's example-tenant entry.
Renames the theme engine's tenant-facing surface to instance (ThemeColorSet/ThemeDefinition/ThemeManager doc comments and params, TenantLogoImage/TenantHeaderBackgroundImage -> InstanceLogoImage/ InstanceHeaderBackgroundImage, exampleTenantAppLogo asset -> exampleInstanceAppLogo), per the community's naming feedback.
|
Thanks for the pull request, @RawanMatar89! This repository is currently maintained by Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review. 🔘 Get product approvalIf you haven't already, check this list to see if your contribution needs to go through the product review process.
🔘 Provide contextTo help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:
🔘 Get a green buildIf one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green. DetailsWhere can I find more information?If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources: When can I expect my changes to be merged?Our goal is to get community contributions seen and reviewed as efficiently as possible. However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:
💡 As a result it may take up to several weeks or months to complete a review and merge your PR. |
|
@RawanMatar89 flagging that some branch conflicts have popped up. Thanks! |
…ngine # Conflicts: # Theme/Theme.xcodeproj/project.pbxproj
Tuples can't conform to Equatable, so XCTAssertEqual on a (CGFloat, CGFloat, CGFloat, CGFloat) tuple failed to compile.
Forward-ports the 2 commits from #675, which was merged directly to
mainby mistake instead ofdevelop. No code changes — same commits, rebased cleanly onto currentdevelop.feat: add per-tenant theme enginerefactor: rename tenant to instanceCloses the gap left by #675 (see discussion there for context on the wrong-base merge).