Skip to content

feat: added pinned theme (#DS-3003) - #1882

Merged
NikGurev merged 2 commits into
feat/DS-3003from
feat/DS-3003-pinned-theme
Aug 12, 2026
Merged

feat: added pinned theme (#DS-3003)#1882
NikGurev merged 2 commits into
feat/DS-3003from
feat/DS-3003-pinned-theme

Conversation

@NikGurev

Copy link
Copy Markdown
Contributor

Summary

Select by specific theme

@NikGurev NikGurev self-assigned this Aug 11, 2026
@NikGurev
NikGurev force-pushed the feat/DS-3003-pinned-theme branch from 78b93c4 to 2b5d356 Compare August 11, 2026 15:47
@github-actions

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit 2b5d356):

https://koobiq-next--prs-1882-u1j4ljpx.web.app

(expires Fri, 14 Aug 2026 15:52:14 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: c9e37e518febda70d0317d07e8ceb35ac43c534c

@NikGurev
NikGurev marked this pull request as ready for review August 12, 2026 05:59
@NikGurev
NikGurev requested a review from lskramarov as a code owner August 12, 2026 05:59
@NikGurev
NikGurev requested a review from artembelik August 12, 2026 05:59
@NikGurev NikGurev added the enhancement New feature or request label Aug 12, 2026
@artembelik
artembelik requested a balanced review from Copilot August 12, 2026 08:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR extends KbqThemeService (in packages/components/core) with the ability to pin a specific theme by name, independent of the existing light/dark/auto mode resolution. Previously the service could only resolve a theme from its colorScheme polarity against the OS preference; now a named theme from the registered themes() can be pinned, persisted, and restored. This supports "select an exact theme" pickers rather than just a light/dark toggle. The change also refactors the cookie store to share read/write helpers and adds a docs example plus English/Russian documentation.

Changes:

  • Added pinnedTheme writable signal, a new public setMode() method (clears any active pin), and pin-aware currentTheme() resolution to KbqThemeService, with a theme initial-pin setting on KbqThemeSettings.
  • Extended the KbqThemeStore contract (and both localStorage/cookie implementations) with getPinnedTheme()/setPinnedTheme(), persisting the pin under a -pinned storage key.
  • Added a theme-static-selection docs example (module, ng-package, generated registry entry) and documentation in core.en.md/core.ru.md, plus comprehensive unit tests and public-API snapshot updates.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/components/core/services/theme.service.ts Core feature: pinned-theme signal, setMode(), pin-aware currentTheme(), store contract + cookie refactor
packages/components/core/services/theme.service.spec.ts Extensive unit tests for pinning, persistence, restoration, and store behavior
tools/public_api_guard/components/core.api.md Public API snapshot updated for new members
packages/docs-examples/components/core/theme-static-selection/theme-static-selection-example.ts New docs example demonstrating pinning
packages/docs-examples/components/core/index.ts Examples module exporting the new example
packages/docs-examples/components/core/ng-package.json ng-packagr entry for the new core examples package
packages/docs-examples/example-module.ts Generated registry entry for the example
packages/components/core/core.en.md / core.ru.md Documentation of theme pinning + example embed

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/components/core/services/theme.service.ts
@NikGurev
NikGurev merged commit b4e2f1f into feat/DS-3003 Aug 12, 2026
14 checks passed
@NikGurev
NikGurev deleted the feat/DS-3003-pinned-theme branch August 12, 2026 09:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants