feat(theming): implement a ThemeController
SUMMARY
Implement a ThemeController that handles theme injection and persistence that can be overriden for different methods of storage. This pr also includes a ThemeSelect component that loads prefers-dark-scheme by default and persists dark/light/system.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
After:
TESTING INSTRUCTIONS
Select from Light/Dark/System and refresh the page. Theme mode should persist.
ADDITIONAL INFORMATION
- [ ] Has associated issue:
- [ ] Required feature flags:
- [ ] Changes UI
- [ ] Includes DB Migration (follow approval process in SIP-59)
- [ ] Migration is atomic, supports rollback & is backwards-compatible
- [ ] Confirm DB migration upgrade and downgrade tested
- [ ] Runtime estimates and downtime expectations provided
- [x] Introduces new feature or API
- [ ] Removes existing feature or API
@geido Processing your ephemeral environment request here. Action: up. More information on how to use or configure ephemeral environments
@geido Ephemeral environment spinning up at http://44.247.55.168:8080. Credentials are 'admin'/'admin'. Please allow several minutes for bootstrapping and startup.
@msyavuz Processing your ephemeral environment request here. Action: up. More information on how to use or configure ephemeral environments
@msyavuz Ephemeral environment spinning up at http://35.86.77.167:8080. Credentials are 'admin'/'admin'. Please allow several minutes for bootstrapping and startup.
@msyavuz Processing your ephemeral environment request here. Action: up. More information on how to use or configure ephemeral environments
@msyavuz Ephemeral environment spinning up at http://34.210.70.21:8080. Credentials are 'admin'/'admin'. Please allow several minutes for bootstrapping and startup.
@EnxDev Processing your ephemeral environment request here. Action: up. More information on how to use or configure ephemeral environments
@EnxDev Ephemeral environment spinning up at http://35.161.4.156:8080. Credentials are 'admin'/'admin'. Please allow several minutes for bootstrapping and startup.
@msyavuz I didn't see the icon to choose the mode
You need to have the feature flag for it to show up. Let me add it to testing instructions!
