From 55dc07346e3753d2be49e333fcac58d40c9f6b59 Mon Sep 17 00:00:00 2001 From: eumaninho54 Date: Wed, 6 May 2026 04:33:15 -0300 Subject: [PATCH 1/2] feat(store): support partial color overrides Merge user-provided colors with theme defaults instead of replacing entirely. Changed colors prop type to Partial to indicate only a subset is needed. Co-Authored-By: Claude Haiku 4.5 --- src/store/index.ts | 2 +- src/store/types/IConfigureStore.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/store/index.ts b/src/store/index.ts index 6d9878c..c23561f 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -13,7 +13,7 @@ export const useRubberDuckStore = create((set) => ({ const isDarkMode = config.darkMode ?? state.isDarkMode; return { isDarkMode, - colors: config.colors ?? (isDarkMode ? dark : light), + colors: { ...(isDarkMode ? dark : light), ...config.colors }, }; }); }, diff --git a/src/store/types/IConfigureStore.ts b/src/store/types/IConfigureStore.ts index 1846fc7..afefd6b 100644 --- a/src/store/types/IConfigureStore.ts +++ b/src/store/types/IConfigureStore.ts @@ -2,5 +2,5 @@ import type { IColors } from '../../tokens/colors'; export interface IConfigureStore { darkMode?: boolean; - colors?: IColors; + colors?: Partial; } From 68df3934ccf6780c447c70258fa78fc0f742d729 Mon Sep 17 00:00:00 2001 From: eumaninho54 Date: Wed, 6 May 2026 04:37:48 -0300 Subject: [PATCH 2/2] test(Button): update fontSize expectations after font size remap Align test expectations with font size token remapping where button font sizes are one tier down from button size names. Co-Authored-By: Claude Haiku 4.5 --- .../__tests__/useButtonViewModel.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/Molecules/Button/hooks/useButtonViewModel/__tests__/useButtonViewModel.test.ts b/src/components/Molecules/Button/hooks/useButtonViewModel/__tests__/useButtonViewModel.test.ts index ecf9c62..d19e08d 100644 --- a/src/components/Molecules/Button/hooks/useButtonViewModel/__tests__/useButtonViewModel.test.ts +++ b/src/components/Molecules/Button/hooks/useButtonViewModel/__tests__/useButtonViewModel.test.ts @@ -49,7 +49,7 @@ describe('useButtonViewModel', () => { const { result } = renderHook(() => useButtonViewModel({ ...baseProps, size: 'sm' })); expect(result.current.sizes.height).toBe(36); - expect(result.current.sizes.fontSize).toBe('sm'); + expect(result.current.sizes.fontSize).toBe('xs'); expect(result.current.sizes.iconSize).toBe('small_16'); expect(result.current.sizes.loadingSize).toBe('tiny_48'); }); @@ -58,7 +58,7 @@ describe('useButtonViewModel', () => { const { result } = renderHook(() => useButtonViewModel({ ...baseProps, size: 'md' })); expect(result.current.sizes.height).toBe(44); - expect(result.current.sizes.fontSize).toBe('md'); + expect(result.current.sizes.fontSize).toBe('sm'); expect(result.current.sizes.iconSize).toBe('tiny_20'); expect(result.current.sizes.loadingSize).toBe('small_64'); }); @@ -67,7 +67,7 @@ describe('useButtonViewModel', () => { const { result } = renderHook(() => useButtonViewModel({ ...baseProps, size: 'lg' })); expect(result.current.sizes.height).toBe(52); - expect(result.current.sizes.fontSize).toBe('lg'); + expect(result.current.sizes.fontSize).toBe('md'); expect(result.current.sizes.iconSize).toBe('tiny_20'); expect(result.current.sizes.loadingSize).toBe('small_64'); }); @@ -76,7 +76,7 @@ describe('useButtonViewModel', () => { const { result } = renderHook(() => useButtonViewModel(baseProps)); expect(result.current.sizes.height).toBe(44); - expect(result.current.sizes.fontSize).toBe('md'); + expect(result.current.sizes.fontSize).toBe('sm'); }); });