@scalar/use-hooks
Advanced tools
+12
-0
| # @scalar/use-hooks | ||
| ## 0.4.5 | ||
| ### Patch Changes | ||
| - [#9211](https://github.com/scalar/scalar/pull/9211): chore: remove zod | ||
| ## 0.4.4 | ||
| ### Patch Changes | ||
| - [#8844](https://github.com/scalar/scalar/pull/8844): chore: remove zod | ||
| ## 0.4.3 | ||
@@ -4,0 +16,0 @@ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"useColorMode.d.ts","sourceRoot":"","sources":["../../src/useColorMode/useColorMode.ts"],"names":[],"mappings":"AAOA,2BAA2B;AAC3B,KAAK,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAE5C,+BAA+B;AAC/B,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA;AAErC;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,GAAE;IACJ,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,SAAS,CAAA;IAC5B,8BAA8B;IAC9B,iBAAiB,CAAC,EAAE,SAAS,CAAA;CACzB;IA2FJ,yCAAyC;;IAKzC,+CAA+C;;IAE/C,yDAAyD;;IAEzD,qDAAqD;;IAErD,kDAAkD;0BArFvB,SAAS;IAuFpC,uCAAuC;mCA9EL,aAAa;EAiFlD"} | ||
| {"version":3,"file":"useColorMode.d.ts","sourceRoot":"","sources":["../../src/useColorMode/useColorMode.ts"],"names":[],"mappings":"AAOA,2BAA2B;AAC3B,KAAK,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAE5C,+BAA+B;AAC/B,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA;AAErC;;GAEG;AACH,wBAAgB,YAAY,CAC1B,IAAI,GAAE;IACJ,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,SAAS,CAAA;IAC5B,8BAA8B;IAC9B,iBAAiB,CAAC,EAAE,SAAS,CAAA;CACzB;IA6FJ,yCAAyC;;IAKzC,+CAA+C;;IAE/C,yDAAyD;;IAEzD,qDAAqD;;IAErD,kDAAkD;0BAvFvB,SAAS;IAyFpC,uCAAuC;mCAhFL,aAAa;EAmFlD"} |
@@ -0,5 +1,5 @@ | ||
| import { literal, union, validate } from '@scalar/validation'; | ||
| import { computed, onMounted, onUnmounted, ref, watch } from 'vue'; | ||
| import { z } from 'zod'; | ||
| const colorMode = ref('dark'); | ||
| const colorModeSchema = z.enum(['dark', 'light', 'system']).optional().catch(undefined); | ||
| const colorModeSchema = union([literal('system'), literal('dark'), literal('light')]); | ||
| /** | ||
@@ -63,4 +63,7 @@ * A composable hook that provides color mode (dark/light) functionality. | ||
| } | ||
| // Priority of initial values is: forceDarkModeState -> LocalStorage -> App Config -> initial / Fallback | ||
| const savedColorMode = colorModeSchema.parse(typeof window !== 'undefined' ? window?.localStorage?.getItem('colorMode') : 'system'); | ||
| // Priority: overrideColorMode -> localStorage -> initialColorMode | ||
| // Without `window` (SSR/SSG), there is no storage — treat preference as `system` so we do not | ||
| // fall through to `initialColorMode` and diverge from client hydration (see useColorMode tests). | ||
| const storedValue = typeof window === 'undefined' ? 'system' : window?.localStorage?.getItem('colorMode'); | ||
| const savedColorMode = validate(colorModeSchema, storedValue) ? storedValue : null; | ||
| colorMode.value = overrideColorMode ?? savedColorMode ?? initialColorMode; | ||
@@ -67,0 +70,0 @@ // Watch for colorMode changes and update the body class |
+3
-3
@@ -13,3 +13,3 @@ { | ||
| }, | ||
| "version": "0.4.3", | ||
| "version": "0.4.5", | ||
| "engines": { | ||
@@ -50,4 +50,4 @@ "node": ">=22" | ||
| "vue": "^3.5.30", | ||
| "zod": "^4.3.5", | ||
| "@scalar/use-toasts": "0.10.2" | ||
| "@scalar/use-toasts": "0.10.2", | ||
| "@scalar/validation": "0.5.0" | ||
| }, | ||
@@ -54,0 +54,0 @@ "devDependencies": { |
34317
1.43%544
0.55%+ Added
+ Added
- Removed
- Removed