From 4b1a6992d204d94ef212512dcd145fc4e2b769d4 Mon Sep 17 00:00:00 2001 From: Helder Oliveira Date: Mon, 13 Apr 2026 14:47:05 +0100 Subject: [PATCH 01/15] test(ButtonGroup): add visual regression tests baseline Add comprehensive visual regression tests for ButtonGroup component. This establishes a baseline before migrating from styled-components to CSS Modules. Includes: - Extended Storybook stories (15 total) covering all variants - 32 Playwright visual regression tests - Light and dark theme coverage - Selection, disabled, and layout state tests - Interactive state tests (hover, focus) - Accessibility tests --- .../ButtonGroup/ButtonGroup.stories.tsx | 120 ++++++ tests/buttons/buttongroup.spec.ts | 362 ++++++++++++++++++ 2 files changed, 482 insertions(+) create mode 100644 tests/buttons/buttongroup.spec.ts diff --git a/src/components/ButtonGroup/ButtonGroup.stories.tsx b/src/components/ButtonGroup/ButtonGroup.stories.tsx index eca774e26..eb71968c9 100644 --- a/src/components/ButtonGroup/ButtonGroup.stories.tsx +++ b/src/components/ButtonGroup/ButtonGroup.stories.tsx @@ -24,6 +24,126 @@ export const Playground: StoryObj = { }, }; +// Type Variants +export const Default: StoryObj = { + args: { + options: [ + { label: 'Option 1', value: 'option1' }, + { label: 'Option 2', value: 'option2' }, + { label: 'Option 3', value: 'option3' }, + ], + type: 'default', + }, +}; + +export const Borderless: StoryObj = { + args: { + options: [ + { label: 'Option 1', value: 'option1' }, + { label: 'Option 2', value: 'option2' }, + { label: 'Option 3', value: 'option3' }, + ], + type: 'borderless', + }, +}; + +// Selection States +export const DefaultSelected: StoryObj = { + args: { + options: [ + { label: 'Option 1', value: 'option1' }, + { label: 'Option 2', value: 'option2' }, + { label: 'Option 3', value: 'option3' }, + ], + type: 'default', + selected: 'option1', + }, +}; + +export const BorderlessSelected: StoryObj = { + args: { + options: [ + { label: 'Option 1', value: 'option1' }, + { label: 'Option 2', value: 'option2' }, + { label: 'Option 3', value: 'option3' }, + ], + type: 'borderless', + selected: 'option1', + }, +}; + +// Disabled States +export const WithDisabledButton: StoryObj = { + args: { + options: [ + { label: 'Enabled', value: 'enabled' }, + { label: 'Disabled', value: 'disabled', disabled: true }, + ], + type: 'default', + }, +}; + +export const WithDisabledSelectedButton: StoryObj = { + args: { + options: [ + { label: 'Enabled', value: 'enabled' }, + { label: 'Disabled Active', value: 'disabled', disabled: true }, + ], + type: 'default', + selected: 'disabled', + }, +}; + +// Layout Variants +export const FillWidthDefault: StoryObj = { + args: { + options: [ + { label: 'Option 1', value: 'option1' }, + { label: 'Option 2', value: 'option2' }, + ], + type: 'default', + fillWidth: true, + }, +}; + +export const FillWidthBorderless: StoryObj = { + args: { + options: [ + { label: 'Option 1', value: 'option1' }, + { label: 'Option 2', value: 'option2' }, + ], + type: 'borderless', + fillWidth: true, + }, +}; + +// Multi-select +export const MultiSelectSelected: StoryObj = { + args: { + options: [ + { label: 'Option 1', value: 'option1' }, + { label: 'Option 2', value: 'option2' }, + { label: 'Option 3', value: 'option3' }, + ], + type: 'default', + multiple: true, + selected: new Set(['option1', 'option3']), + }, +}; + +export const MultiSelectBorderless: StoryObj = { + args: { + options: [ + { label: 'Option 1', value: 'option1' }, + { label: 'Option 2', value: 'option2' }, + { label: 'Option 3', value: 'option3' }, + ], + type: 'borderless', + multiple: true, + selected: new Set(['option1', 'option3']), + }, +}; + export const MultiSelect: StoryObj = { args: { options: [ diff --git a/tests/buttons/buttongroup.spec.ts b/tests/buttons/buttongroup.spec.ts new file mode 100644 index 000000000..da521df4a --- /dev/null +++ b/tests/buttons/buttongroup.spec.ts @@ -0,0 +1,362 @@ +import { test as it, expect } from '@playwright/test'; +import { getStoryUrl } from '../utils'; + +const { describe, use } = it; + +describe('ButtonGroup Visual Regression', () => { + describe('Light Theme', () => { + describe('Type Variants', () => { + it('default type matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--default', 'light'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot('buttongroup-default-light.png', { + maxDiffPixels: 100, + }); + }); + + it('borderless type matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--borderless', 'light'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot('buttongroup-borderless-light.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('Selection States', () => { + it('default type with selection matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--default-selected', 'light'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + const activeButton = page.getByRole('button', { pressed: true }); + await expect(activeButton).toBeVisible(); + await expect(group).toHaveScreenshot('buttongroup-default-selected-light.png', { + maxDiffPixels: 100, + }); + }); + + it('borderless type with selection matches snapshot', async ({ page }) => { + await page.goto( + getStoryUrl('buttons-buttongroup--borderless-selected', 'light'), + { + waitUntil: 'networkidle', + } + ); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot( + 'buttongroup-borderless-selected-light.png', + { + maxDiffPixels: 100, + } + ); + }); + }); + + describe('Disabled States', () => { + it('with disabled button matches snapshot', async ({ page }) => { + await page.goto( + getStoryUrl('buttons-buttongroup--with-disabled-button', 'light'), + { + waitUntil: 'networkidle', + } + ); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + const disabledButton = page.getByRole('button', { name: 'Disabled' }); + await expect(disabledButton).toBeDisabled(); + await expect(group).toHaveScreenshot('buttongroup-disabled-light.png', { + maxDiffPixels: 100, + }); + }); + + it('with disabled and selected button matches snapshot', async ({ page }) => { + await page.goto( + getStoryUrl('buttons-buttongroup--with-disabled-selected-button', 'light'), + { + waitUntil: 'networkidle', + } + ); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + const disabledActiveButton = page.getByRole('button', { + name: 'Disabled Active', + }); + await expect(disabledActiveButton).toBeDisabled(); + await expect(disabledActiveButton).toHaveAttribute('aria-pressed', 'true'); + await expect(group).toHaveScreenshot('buttongroup-disabled-active-light.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('Layout Variants', () => { + it('fill width default matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--fill-width-default', 'light'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot('buttongroup-fill-width-default-light.png', { + maxDiffPixels: 100, + }); + }); + + it('fill width borderless matches snapshot', async ({ page }) => { + await page.goto( + getStoryUrl('buttons-buttongroup--fill-width-borderless', 'light'), + { + waitUntil: 'networkidle', + } + ); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot( + 'buttongroup-fill-width-borderless-light.png', + { + maxDiffPixels: 100, + } + ); + }); + }); + + describe('Multi-select', () => { + it('multi-select default matches snapshot', async ({ page }) => { + await page.goto( + getStoryUrl('buttons-buttongroup--multi-select-selected', 'light'), + { + waitUntil: 'networkidle', + } + ); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + const pressedButtons = page.getByRole('button', { pressed: true }); + await expect(pressedButtons).toHaveCount(2); + await expect(group).toHaveScreenshot('buttongroup-multi-select-light.png', { + maxDiffPixels: 100, + }); + }); + + it('multi-select borderless matches snapshot', async ({ page }) => { + await page.goto( + getStoryUrl('buttons-buttongroup--multi-select-borderless', 'light'), + { + waitUntil: 'networkidle', + } + ); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot( + 'buttongroup-multi-select-borderless-light.png', + { + maxDiffPixels: 100, + } + ); + }); + }); + }); + + describe('Dark Theme', () => { + use({ colorScheme: 'dark' }); + + describe('Type Variants', () => { + it('default type matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--default'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot('buttongroup-default-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('borderless type matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--borderless'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot('buttongroup-borderless-dark.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('Selection States', () => { + it('default type with selection matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--default-selected'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot('buttongroup-default-selected-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('borderless type with selection matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--borderless-selected'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot('buttongroup-borderless-selected-dark.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('Disabled States', () => { + it('with disabled button matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--with-disabled-button'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + const disabledButton = page.getByRole('button', { name: 'Disabled' }); + await expect(disabledButton).toBeDisabled(); + await expect(group).toHaveScreenshot('buttongroup-disabled-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('with disabled and selected button matches snapshot', async ({ page }) => { + await page.goto( + getStoryUrl('buttons-buttongroup--with-disabled-selected-button'), + { + waitUntil: 'networkidle', + } + ); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + const disabledActiveButton = page.getByRole('button', { + name: 'Disabled Active', + }); + await expect(disabledActiveButton).toBeDisabled(); + await expect(disabledActiveButton).toHaveAttribute('aria-pressed', 'true'); + await expect(group).toHaveScreenshot('buttongroup-disabled-active-dark.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('Layout Variants', () => { + it('fill width default matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--fill-width-default'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot('buttongroup-fill-width-default-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('fill width borderless matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--fill-width-borderless'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot( + 'buttongroup-fill-width-borderless-dark.png', + { + maxDiffPixels: 100, + } + ); + }); + }); + + describe('Multi-select', () => { + it('multi-select default matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--multi-select-selected'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + const pressedButtons = page.getByRole('button', { pressed: true }); + await expect(pressedButtons).toHaveCount(2); + await expect(group).toHaveScreenshot('buttongroup-multi-select-dark.png', { + maxDiffPixels: 100, + }); + }); + + it('multi-select borderless matches snapshot', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--multi-select-borderless'), { + waitUntil: 'networkidle', + }); + const group = page.getByRole('group'); + await expect(group).toBeVisible({ timeout: 10000 }); + await expect(group).toHaveScreenshot( + 'buttongroup-multi-select-borderless-dark.png', + { + maxDiffPixels: 100, + } + ); + }); + }); + }); + + describe('Interactive States', () => { + it('hover state on button', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--default', 'light'), { + waitUntil: 'networkidle', + }); + const button = page.getByRole('button').first(); + await expect(button).toBeVisible({ timeout: 10000 }); + await button.hover(); + await page.waitForTimeout(100); + await expect(button).toHaveScreenshot('buttongroup-button-hover-light.png', { + maxDiffPixels: 100, + }); + }); + + it('focus state on button', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--default', 'light'), { + waitUntil: 'networkidle', + }); + const button = page.getByRole('button').first(); + await expect(button).toBeVisible({ timeout: 10000 }); + await button.focus(); + await page.waitForTimeout(100); + await expect(button).toHaveScreenshot('buttongroup-button-focus-light.png', { + maxDiffPixels: 100, + }); + }); + }); + + describe('Accessibility', () => { + it('keyboard navigation works with Tab', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--default', 'light'), { + waitUntil: 'networkidle', + }); + const buttons = page.getByRole('button'); + await expect(buttons.first()).toBeVisible({ timeout: 10000 }); + + // Tab to first button + await page.keyboard.press('Tab'); + await expect(buttons.first()).toBeFocused(); + + // Tab to next button + await page.keyboard.press('Tab'); + await expect(buttons.nth(1)).toBeFocused(); + }); + + it('aria-pressed reflects selection', async ({ page }) => { + await page.goto(getStoryUrl('buttons-buttongroup--default-selected', 'light'), { + waitUntil: 'networkidle', + }); + const activeButton = page.getByRole('button', { name: 'Option 1' }); + await expect(activeButton).toHaveAttribute('aria-pressed', 'true'); + }); + }); +}); From ba6da7941c6d25efc873487d6dd13fe98c3e4942 Mon Sep 17 00:00:00 2001 From: Helder Oliveira Date: Mon, 13 Apr 2026 14:55:49 +0100 Subject: [PATCH 02/15] =?UTF-8?q?chore:=20=F0=9F=A4=96=20button=20group=20?= =?UTF-8?q?snapshots?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ButtonGroup/ButtonGroup.stories.tsx | 5 ----- tests/buttons/buttongroup.spec.ts | 2 -- ...uttongroup-borderless-dark-chromium-linux.png | Bin 0 -> 1599 bytes ...ttongroup-borderless-light-chromium-linux.png | Bin 0 -> 1570 bytes ...p-borderless-selected-dark-chromium-linux.png | Bin 0 -> 2523 bytes ...-borderless-selected-light-chromium-linux.png | Bin 0 -> 2406 bytes ...ongroup-button-focus-light-chromium-linux.png | Bin 0 -> 1040 bytes ...ongroup-button-hover-light-chromium-linux.png | Bin 0 -> 1076 bytes .../buttongroup-default-dark-chromium-linux.png | Bin 0 -> 1765 bytes .../buttongroup-default-light-chromium-linux.png | Bin 0 -> 1731 bytes ...roup-default-selected-dark-chromium-linux.png | Bin 0 -> 2646 bytes ...oup-default-selected-light-chromium-linux.png | Bin 0 -> 2557 bytes ...group-disabled-active-dark-chromium-linux.png | Bin 0 -> 2719 bytes ...roup-disabled-active-light-chromium-linux.png | Bin 0 -> 2712 bytes .../buttongroup-disabled-dark-chromium-linux.png | Bin 0 -> 2152 bytes ...buttongroup-disabled-light-chromium-linux.png | Bin 0 -> 2181 bytes ...fill-width-borderless-dark-chromium-linux.png | Bin 0 -> 1539 bytes ...ill-width-borderless-light-chromium-linux.png | Bin 0 -> 1465 bytes ...up-fill-width-default-dark-chromium-linux.png | Bin 0 -> 1730 bytes ...p-fill-width-default-light-chromium-linux.png | Bin 0 -> 1645 bytes ...lti-select-borderless-dark-chromium-linux.png | Bin 0 -> 2592 bytes ...ti-select-borderless-light-chromium-linux.png | Bin 0 -> 2455 bytes ...tongroup-multi-select-dark-chromium-linux.png | Bin 0 -> 2684 bytes ...ongroup-multi-select-light-chromium-linux.png | Bin 0 -> 2588 bytes 24 files changed, 7 deletions(-) create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-borderless-dark-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-borderless-light-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-borderless-selected-dark-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-borderless-selected-light-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-button-focus-light-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-button-hover-light-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-default-dark-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-default-light-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-default-selected-dark-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-default-selected-light-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-disabled-active-dark-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-disabled-active-light-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-disabled-dark-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-disabled-light-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-fill-width-borderless-dark-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-fill-width-borderless-light-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-fill-width-default-dark-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-fill-width-default-light-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-multi-select-borderless-dark-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-multi-select-borderless-light-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-multi-select-dark-chromium-linux.png create mode 100644 tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-multi-select-light-chromium-linux.png diff --git a/src/components/ButtonGroup/ButtonGroup.stories.tsx b/src/components/ButtonGroup/ButtonGroup.stories.tsx index eb71968c9..e44406bb5 100644 --- a/src/components/ButtonGroup/ButtonGroup.stories.tsx +++ b/src/components/ButtonGroup/ButtonGroup.stories.tsx @@ -24,7 +24,6 @@ export const Playground: StoryObj = { }, }; -// Type Variants export const Default: StoryObj = { args: { options: [ @@ -47,7 +46,6 @@ export const Borderless: StoryObj = { }, }; -// Selection States export const DefaultSelected: StoryObj = { args: { options: [ @@ -72,7 +70,6 @@ export const BorderlessSelected: StoryObj = { }, }; -// Disabled States export const WithDisabledButton: StoryObj = { args: { options: [ @@ -94,7 +91,6 @@ export const WithDisabledSelectedButton: StoryObj = { }, }; -// Layout Variants export const FillWidthDefault: StoryObj = { args: { options: [ @@ -117,7 +113,6 @@ export const FillWidthBorderless: StoryObj = { }, }; -// Multi-select export const MultiSelectSelected: StoryObj = { args: { options: [ diff --git a/tests/buttons/buttongroup.spec.ts b/tests/buttons/buttongroup.spec.ts index da521df4a..3b8406382 100644 --- a/tests/buttons/buttongroup.spec.ts +++ b/tests/buttons/buttongroup.spec.ts @@ -342,11 +342,9 @@ describe('ButtonGroup Visual Regression', () => { const buttons = page.getByRole('button'); await expect(buttons.first()).toBeVisible({ timeout: 10000 }); - // Tab to first button await page.keyboard.press('Tab'); await expect(buttons.first()).toBeFocused(); - // Tab to next button await page.keyboard.press('Tab'); await expect(buttons.nth(1)).toBeFocused(); }); diff --git a/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-borderless-dark-chromium-linux.png b/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-borderless-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..def79c1f9baacec741a23abb21d052877632d120 GIT binary patch literal 1599 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 U$qgA3d;kCd07*qoM6N<$g8fGM3;+NC literal 0 HcmV?d00001 diff --git a/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-borderless-selected-dark-chromium-linux.png b/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-borderless-selected-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..34d19535ada00d38eae003bade0885f6b38f6939 GIT binary patch literal 2523 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 literal 0 HcmV?d00001 diff --git a/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-button-hover-light-chromium-linux.png b/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-button-hover-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..22fcd0f63675195b27a143da4df3c1c3b0da4bd9 GIT binary patch literal 1076 zcmV-41k3x0P)NC&-xbf^NA5Aq=nNP)SBWMBp2f!k3hUrR~x= z3(cR6nrsc}3UgU0cs9sbmVEzf>?QCo1IfXXK z=cXsUpY(md-~0W3dJQ`}kM*6$Po99oOG23w2&zVtH~jNK-8DVcX~jWppk(OA=l4YAr04pl zeb2X64@`oRfomTuhq7c_|GOjo4jM)LmoDFmqvuZ4vfGmz#}-B1zQNPNBGeW=%WYNhN-Wh=^cM zIXpdHBhJ<2R~J8Ce+Yp1(Qw!{Fnh&qgj@dM6|HaKf2}(G>xMGfh0D%QDh- zFLn9%&?azBEZ*=9@F;TAcRPvzY#Cbm>^w)DbbqoI@VWQzEEEeYtZu5Dd-VO09uCBB zFMY8oYsH(oEXL%fzN?FiS9+QB{hPs*y6?NH-U_DF>N?Ufj3Tgo)N4g`IHp z^g5eq+A8!;3~(S7j?2$9tI6?j0yu^y2RqvZ;jO{(Q5W3$DJm7^Vg%dqw##mzEiE0M zGmM(v-dl+Oiz&4jL1AUG_D~fS>@5OjBp;@jqH&7l8+9d%)MuI1rKAKH&RU93XyI8L ziP>D~wIodx+=oMm0rj6BP%Wm^;*^zzNK9la)>f0ml(9vbT61e9m4Xh`wAl&-tqzWo z!gtrxd(P6N$Ty)3MTiU(OUzP(aA-#)*Y9<_vfc7z`^?)5(hUs34Y8jll&gXln zyQ@Fudnwo0dzHNu$r%+W6Dspd0000Nkl%Q2Qdnlww}!pcd+jrlT1wj_H`fEJeHiVQpdU zK*uIjp;|D7Sulg8FCs(1$jHGAv`5>>xIhy&L&>q_U|wy`*wb`R{5LJd_0()v?)kh4 zJjp$IzR&af_dHLC;jO)I>vX!E#fTz!hzXY_k^?^(#@G8yUFvu6N<(FVxcWm(qi^bi_!$Qw{n02qw+ z$j;3b7v;AA23!JRv86C?frlazpBprxj@;}{X@>KsnWU`s%_Jp;%x z@7XUtcsCcnGdA*bEVIk;-q9nKrbqXpyp-GUL1?M_@|)Iu@$miSh05uR?ECi2{QAp% zeoOasgst}TvmYOVzw*2 z%zs6V@}cd>=?fmm%>A*Sm`8BGv(EL-lY4i5d!k_RUpE>zkq5{Mx3`*{ymr1fvLtGJ zI9T!7g%-~VHqpb1iuwX#%-QPzB=quLCBGtK{Rr5@xy`3 zooLz6iZ;04cOI~#hd4Ggd^^M~PVUlYSVpF6Xsc09u|c0N$gQ1snUCD)WMnicpg^cm zH2_j_q^~<9ET?}t4}hQms8oK;*YWAv28hHfudZ}JA&@kgq4YjnbgBR8-4h93gj z)6!IBSy@n6LebW^|7v@CXCP&(_a3Lo^-s$MD}tB4U!AIf#3y1&aj8#esi<;5o{cMv z%CE5ebwi}CQZwLHi4`kZg){K&mLX`V}IK@lEe#)}WC83F?NI4Z3w-AHiOEvvJ zs9H5y=4m}iNuh!M@#OaBfIRA6bXiQs*zsXs*VO?Q(rfa_OQP5ZfS8=%BukCQRk}JM zC=7XA7Kw`_mP=7+v{Lrvx1q`IFaeQIZ#Yv@I*|q@%DU1gVWF&0Os1s5*7+}uYE=`q zx~8UTI63g$EmkbpWT{dm%o#3|rf^q+mD& zthBSLk^-Dh@s40q_r&6)@5*H^e`R>A(Ure44EOb~yE2rgV3KzHUFW zG%z7L%B0&oUw7AzUAf@n){2#){@wwirMdakQMA2EO$_$jD&UppCQzYjbY$tYqSx~J zmh$@Lwsg4jT>s?u#|{>al>tG+iXq^JoLKw`e1FnTI7+ecsG>>k6eqOKF0}MucAj?Pg zughlVii?W?2BSTSi;A*ybGq4Vb_aw;g234TqaBd7Bb(o`1J2H74Y^!Sd_1#rXK@Mn z2L9VQj7G@+_xju%vV3I!e**vj|No^~7p?#R00v1!K~w_(hTYhftBhTY00000NkvXX Hu0mjfxJGL@ literal 0 HcmV?d00001 diff --git a/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-default-light-chromium-linux.png b/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-default-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..faa64f41520d7806702bf53b24309f2ba514e677 GIT binary patch literal 1731 zcmV;!20ZzRP)i_3^F3MGNz9_+PK4$_vWwPlA)&L1~PyR=GTs-pL~ zMdUrbuipFqem}iuRJ*>uzP7gZ{6#+hB41it0}zM?sMYBV^@fIegHESARw|Wv;h#DL zkuT|MYXJnJ0g9!P9P|s4gc(0L_V3CnSYJPJ;y8dnG{(xRC@=mR*$r|A01$}wFc|9c z`9iJy4ggCah&GW|zP$e7>W63@=mCh?XdUPQh}Jo%2gGb@dLo`k zEiD6Mlf~icaM2_R6eDrTaA>^91bdw%0uBeyPKLwx7X*`Qc-V93-d>9eRReJ`8JmdD zvK&g<7`Ml1#j7HH<5p^vpPh}z;>mOlm?*o`)8SA)B3*NRW=daqbQL!lotAKBYo7d~D|Pfg4`Yd&u~Y_G3Hjq;_;)c4>1 zz@Gf_B?q~!Q`*5iU-I8;`~H3A=-Lx2W8tDl~W0s*V z8wM1Cn%e_GaA<_=Qqk%ka^o|h&^)LHYE&%;!MT|%#`Fa`&2kuXSepiV#u6-Vr4^3n zE$*aB`I%&L5qIC}Z7=5&hlMEiMCVw}K@f_%QSJerotfuMOu&M_yoOnvPBIlwvb>GP z`1x>8RAQW1dMddfpiLILtD{3snj#zh@oGD|2ZOghJ*67iJ95) z@pvlzL~cacoNkZ9ypfK>_htKOY?|SYy?dzivIV^%Ip-R;NB^ZAn zgKwvQJ%Z?g1gd~a<(oTi|Fn0gh~o091}H=lI8MYV^X{q>F||;b#Bsvr3>23i#pi${ zaQEJjmlBeZP&CB@l=9t;Tsz%hY8$-&^Uy1$AfFl?h|GzU)8FlPQ(!(iI5Nv^PiS$O zO>r%r{=1QW50M#_-AOW#PB9gX88?Fn>JfK8;ieY=$>Fp&m!U!c=T z({yWRpo>A59;9+x&qLopUUV^50w*Ykiy_3!B3G4o_kXBgwYZoViLrQ_+eRFHI8e8I zE*bj#$`$X8IB#*gEXvD3#U9Y3Mr4QX3Zfu_%2U##L<_MMju0bx8khJSzn_UgG0SEF zL6O@EP!mP!c{aP<2r=U5=G-Evd=v520aO*0tCq6Kk-=Dw^!T0Tqt60rmycV#!Ct?Y zIftY+laE3adjP>m66M)+c9$ik9Lw@3Nf?hb2JKd?2k#D5tLE8QIGQ#({Qg#=IwhgX zCmkawo5Se~_IKGpYAU6)L{RJjfRc6!%T31;nTp5dFcgbtP|Du2<>;c2WiwlTl!VLz z2QU-%GC;k?&3e2A2QM1|F~?>^yb@R5IjU7H?>t7r@{Wx^;I$t4Zcqhv%I8wi(7@#4 zo?KH@S|uM~Zxp56K4vjAcKtf*aM(zYNhgzYIgAN-DwCiGLTYqyB+J+cz{W?@z}iif zUsVtk!%#7oWVvOp%HB6O{3}cZ8 zA&rxjy`{?P(DJo_Xa^^BsM%(&NBK& zyEo{k74Hij`|Ii7r#?~KY(IAH{%Qwps;=Ed+tQKfqcD z0)e#U70Y2|ys)Ltgpv`mZt68}cvm00Pk-`Fz1(sHmcW002ovPDHLkV1j~GJ^}y$ literal 0 HcmV?d00001 diff --git a/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-default-selected-dark-chromium-linux.png b/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-default-selected-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca870ab782318f8ad5025e9794d308bb56a3573 GIT binary patch literal 2646 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 Eg2ikOzW@LL literal 0 HcmV?d00001 diff --git a/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-default-selected-light-chromium-linux.png b/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-default-selected-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..c778691712cb7c734aa8e7703db52cc8ae6907cb GIT binary patch literal 2557 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 literal 0 HcmV?d00001 diff --git a/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-disabled-active-light-chromium-linux.png b/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-disabled-active-light-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..0c0892b596ff5dc9b66491e267f7b1aa3ef2656b GIT binary patch literal 2712 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 e21!IgR09A?GVxmDJ&NA|0000_T8!Q&> z#`8JhdB6AG_)J&}?=ay!N20hIWMsFKWcMl(ekY1mg4Q9%p>SQV%WwKff8obn) zi!CjLc$2fsq((k`OfJ4O=jW~0y9~rBn%;kVxybxnRMYjjO>>GHC{dN)W2myl-G76U zAFZ^UB+q`)e?ipAE?aFTH74-+979Kz{}pGhb~y|R1i=Z7TFoi&)2{n3f$CyDifSoy zt62_e1Oy>8B&jRyZ^~#i1m?YgRa)mX5SY&5)PY|oXP58AKt0ZObjX9=m8~q=<4Y_n41jIlJW>_sn`Xvht=DM{i$W2leiLVrlQxl>> zc;pfs(P}Mc8hAYrh{RK`0RAauR8;%pYaKX4imC8Qve`ZSx3OV&BRw@X9cINn@$}L7 zO0o6U@RPA2H%U)Eo({5Q`|QTdR8-~aAAkuY>m7SIzLI%+#LUY0*H71gxwn7dRyUOq zO9eSvbSUc6a3P`w+zr(;dMQd2yJGH)u~^V-}AdE&(K$%`1v3Kb#0!|=^!twc+Jc46lIbgEtV+*NtULe(_9_VG8(_tWB6Q#qrxd4nK zdgF0{C*6mD@kEu|vTKWy%+=Fbn|oHaiAK`q}D5ydg9t+ zN^SWXCYPgt&9X)KCjiOt?5t;v&SbL;lPxy!#lwE6l4_yK;U7~{SG2s3$*|y9`{H(( zPHn6W+?=SGyoq61C6mD#UB_LuW*gbC2+j`y3Xfm}R#D**q=||y`R4w)u25(+ddf(Z zW#pJhAQn&OIWEr@-l&d}6N0MsnsSKsK;xhq&aT!g`yKj@DGbjeLlZRVaJ2NeC?)HgcuJqNV%Sfd5736D8@Ju< z+7mOmmc+JyWOu&D3@*jw0bwL6XT?d|^)F2+CK`#v!poac`uEp6HO$gNAWi5gz0s(~ zIXVzXf9Mo~AOKX=Y_sZ5&JYNuP$OvoqYVPi;9&8yKikQMS83F7=ic4cQrQ<=t*FY1 zS?Jgqr&es?v-Cz1s7MvuP)8UUB#@-&b&w!k7GKDX4jsMJl=M-H-hjCtm#?@%-V{+SfjJg z;r)92vBvG9GgP{MfAfS1679rmzZG$_;vX_ zLq}r_ueWznM1}7O>Bz!d2v&7As}4!U;yD4+%Nw9pTp}8a6M8%skF3Yplb86s!-H{JwzIsKbSHG!RPQ*6wbLLT^y7f9LlRyiqMAVi7tm z031|9b+ukGyE!qkc5;EdF*4fwep^*b-)-09@n^$#o}n7s&0c3ya`U)R+0xsq@=cD7 z>?)gDoC6Q~I<#;1mYd!8`-_jpM~B5azM=WX-Fq&v?rZG6^8idwJ|7>M*;QV-akE=K zy#jtd-V}C%|K1V*Lgl~F>2244bRa|2Mu$D;Tm9CvC0fDboTH6YU<$io$sb&tg?{px z*+i*AspAe9X*6MUXn8S=Ub;+O?P{amd5{N_NT+>u$qy~WAyv)x&eFp}g{jjC0-@;Y zVz?;#^mi6RD#UK%&O@K9Q7u%c)%??Q0iF``Sg)zIKtcuU+cu5u~`k z4{s5sQUPKL`0TmeYb5{1H^Om?xZ0hjIZ{Odd`d4DYcRfbyc?d>%*;1|m8V2dwd z?@8}qfAom&V9PE-;SmJ+9{>OV|Nk8UP$&QZ00v1!K~w_(L*t?>I*vfh00000NkvXX Hu0mjf`gKHL literal 0 HcmV?d00001 diff --git a/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-fill-width-borderless-dark-chromium-linux.png b/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-fill-width-borderless-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..0d66d6fb53055f2869656905bbbe11692bde4fec GIT binary patch literal 1539 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 literal 0 HcmV?d00001 diff --git a/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-multi-select-borderless-dark-chromium-linux.png b/tests/buttons/buttongroup.spec.ts-snapshots/buttongroup-multi-select-borderless-dark-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..67e65a470c16456eb45a9eaa4ff67416abeea59c GIT binary patch literal 2592 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 g`Wx&VSpg~q{|S03j(M} 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 Date: Mon, 13 Apr 2026 15:02:30 +0100 Subject: [PATCH 03/15] =?UTF-8?q?fix:=20=F0=9F=90=9B=20button=20html=20att?= =?UTF-8?q?ributes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ButtonGroup/ButtonGroup.types.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ButtonGroup/ButtonGroup.types.ts b/src/components/ButtonGroup/ButtonGroup.types.ts index afe9ed957..6b4bbd3d3 100644 --- a/src/components/ButtonGroup/ButtonGroup.types.ts +++ b/src/components/ButtonGroup/ButtonGroup.types.ts @@ -1,10 +1,10 @@ -import { HTMLAttributes, ReactNode } from 'react'; +import { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react'; export type ButtonGroupType = 'default' | 'borderless'; export type SelectionValue = string | Set; export interface ButtonGroupElementProps extends Omit< - HTMLAttributes, + ButtonHTMLAttributes, 'children' > { value: string; From 68e8b1c6783e2d62e5d7cf551ebeb0c18d56f4d9 Mon Sep 17 00:00:00 2001 From: Helder Oliveira Date: Mon, 13 Apr 2026 15:06:59 +0100 Subject: [PATCH 04/15] fix(ButtonGroup): remove redundant role=button from styled button The explicit role=button was redundant since