@checkstack/theme-frontend 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @checkstack/theme-frontend
2
2
 
3
+ ## 0.1.3
4
+
5
+ ### Patch Changes
6
+
7
+ - f6464a2: Fix theme toggle showing incorrect state when system theme is used
8
+
9
+ - Added `resolvedTheme` property to `ThemeProvider` that returns the actual computed theme ("light" or "dark"), resolving "system" to the user's OS preference
10
+ - Updated `NavbarThemeToggle` and `ThemeToggleMenuItem` to use `resolvedTheme` instead of `theme` for determining toggle state
11
+ - Changed default theme from "light" to "system" so non-logged-in users respect their OS color scheme preference
12
+
13
+ - Updated dependencies [f6464a2]
14
+ - @checkstack/ui@0.2.3
15
+ - @checkstack/auth-frontend@0.4.1
16
+
3
17
  ## 0.1.2
4
18
 
5
19
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@checkstack/theme-frontend",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "main": "src/index.tsx",
6
6
  "scripts": {
@@ -12,7 +12,7 @@ import { Button, useTheme } from "@checkstack/ui";
12
12
  * Theme changes are saved to local storage via ThemeProvider.
13
13
  */
14
14
  export const NavbarThemeToggle = () => {
15
- const { theme, setTheme } = useTheme();
15
+ const { resolvedTheme, setTheme } = useTheme();
16
16
  const authApi = useApi(authApiRef);
17
17
  const { data: session, isPending } = authApi.useSession();
18
18
 
@@ -26,7 +26,7 @@ export const NavbarThemeToggle = () => {
26
26
  return;
27
27
  }
28
28
 
29
- const isDark = theme === "dark";
29
+ const isDark = resolvedTheme === "dark";
30
30
 
31
31
  const handleToggle = () => {
32
32
  const newTheme = isDark ? "light" : "dark";
@@ -13,17 +13,17 @@ import { ThemeApi } from "@checkstack/theme-common";
13
13
  * Theme initialization is handled by ThemeSynchronizer component.
14
14
  */
15
15
  export const ThemeToggleMenuItem = () => {
16
- const { theme, setTheme } = useTheme();
16
+ const { resolvedTheme, setTheme } = useTheme();
17
17
  const themeClient = usePluginClient(ThemeApi);
18
18
  const setThemeMutation = themeClient.setTheme.useMutation();
19
19
 
20
- const [isDark, setIsDark] = useState(theme === "dark");
20
+ const [isDark, setIsDark] = useState(resolvedTheme === "dark");
21
21
  const toast = useToast();
22
22
 
23
23
  // Update local state when theme changes (e.g., from ThemeSynchronizer)
24
24
  useEffect(() => {
25
- setIsDark(theme === "dark");
26
- }, [theme]);
25
+ setIsDark(resolvedTheme === "dark");
26
+ }, [resolvedTheme]);
27
27
 
28
28
  const handleToggle = async (checked: boolean) => {
29
29
  const newTheme = checked ? "dark" : "light";