From c3ea6a6293903b2db73990714ee921dfc5644a96 Mon Sep 17 00:00:00 2001 From: Joakim Bjerknes Date: Tue, 16 Jan 2024 15:11:44 +0100 Subject: [PATCH] fix(ToggleButton): add checked disabled style (#3224) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit proposal to solve https://github.com/dnbexperience/eufemia/issues/3028 and https://github.com/dnbexperience/eufemia/issues/3027 Not sure if its the best way though. before: Screenshot 2024-01-15 at 10 12 42 after: Screenshot 2024-01-15 at 10 12 22 --------- Co-authored-by: Tobias Høegh --- .../uilib/components/toggle-button/Examples.tsx | 7 ++++++- .../__tests__/ToggleButton.screenshot.test.ts | 9 ++++++++- ...gle-button-group-in-vertical-layout.snap.png} | Bin ...oggle-button-group-with-form-status.snap.png} | Bin ...d-have-to-match-toggle-button-group.snap.png} | Bin ...toggle-button-in-active-focus-state.snap.png} | Bin ...-button-in-checked-state-with-focus.snap.png} | Bin ...-button-in-checked-state-with-hover.snap.png} | Bin ...atch-toggle-button-in-checked-state.snap.png} | Bin ...atch-toggle-button-in-disabled-state.snap.png | Bin 0 -> 8313 bytes ...utton-in-unchecked-state-with-focus.snap.png} | Bin ...utton-in-unchecked-state-with-hover.snap.png} | Bin ...ch-toggle-button-in-unchecked-state.snap.png} | Bin ...gle-button-group-in-vertical-layout.snap.png} | Bin ...oggle-button-group-with-form-status.snap.png} | Bin ...d-have-to-match-toggle-button-group.snap.png} | Bin ...toggle-button-in-active-focus-state.snap.png} | Bin ...-button-in-checked-state-with-focus.snap.png} | Bin ...-button-in-checked-state-with-hover.snap.png} | Bin ...atch-toggle-button-in-checked-state.snap.png} | Bin ...atch-toggle-button-in-disabled-state.snap.png | Bin 0 -> 8623 bytes ...utton-in-unchecked-state-with-focus.snap.png} | Bin ...utton-in-unchecked-state-with-hover.snap.png} | Bin ...ch-toggle-button-in-unchecked-state.snap.png} | Bin .../__snapshots__/ToggleButton.test.tsx.snap | 4 ++++ .../themes/dnb-toggle-button-theme-sbanken.scss | 7 ++++++- .../style/themes/dnb-toggle-button-theme-ui.scss | 5 +++++ 27 files changed, 29 insertions(+), 3 deletions(-) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-sbanken-checked-have-to-match-toggle-button-group-in-vertical-layout.snap.png => togglebutton-for-sbanken-checked-have-to-match-toggle-button-group-in-vertical-layout.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-sbanken-checked-have-to-match-toggle-button-group-with-form-status.snap.png => togglebutton-for-sbanken-checked-have-to-match-toggle-button-group-with-form-status.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-sbanken-checked-have-to-match-toggle-button-group.snap.png => togglebutton-for-sbanken-checked-have-to-match-toggle-button-group.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-sbanken-checked-have-to-match-toggle-button-in-active-focus-state.snap.png => togglebutton-for-sbanken-checked-have-to-match-toggle-button-in-active-focus-state.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-sbanken-checked-have-to-match-toggle-button-in-checked-state-with-focus.snap.png => togglebutton-for-sbanken-checked-have-to-match-toggle-button-in-checked-state-with-focus.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-sbanken-checked-have-to-match-toggle-button-in-checked-state-with-hover.snap.png => togglebutton-for-sbanken-checked-have-to-match-toggle-button-in-checked-state-with-hover.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-sbanken-checked-have-to-match-toggle-button-in-checked-state.snap.png => togglebutton-for-sbanken-checked-have-to-match-toggle-button-in-checked-state.snap.png} (100%) create mode 100644 packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-have-to-match-toggle-button-in-disabled-state.snap.png rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-sbanken-togglebutton-unchecked-have-to-match-toggle-button-in-unchecked-state-with-focus.snap.png => togglebutton-for-sbanken-togglebutton-unchecked-have-to-match-toggle-button-in-unchecked-state-with-focus.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-sbanken-togglebutton-unchecked-have-to-match-toggle-button-in-unchecked-state-with-hover.snap.png => togglebutton-for-sbanken-togglebutton-unchecked-have-to-match-toggle-button-in-unchecked-state-with-hover.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-sbanken-togglebutton-unchecked-have-to-match-toggle-button-in-unchecked-state.snap.png => togglebutton-for-sbanken-togglebutton-unchecked-have-to-match-toggle-button-in-unchecked-state.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-ui-checked-have-to-match-toggle-button-group-in-vertical-layout.snap.png => togglebutton-for-ui-checked-have-to-match-toggle-button-group-in-vertical-layout.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-ui-checked-have-to-match-toggle-button-group-with-form-status.snap.png => togglebutton-for-ui-checked-have-to-match-toggle-button-group-with-form-status.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-ui-checked-have-to-match-toggle-button-group.snap.png => togglebutton-for-ui-checked-have-to-match-toggle-button-group.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-ui-checked-have-to-match-toggle-button-in-active-focus-state.snap.png => togglebutton-for-ui-checked-have-to-match-toggle-button-in-active-focus-state.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-ui-checked-have-to-match-toggle-button-in-checked-state-with-focus.snap.png => togglebutton-for-ui-checked-have-to-match-toggle-button-in-checked-state-with-focus.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-ui-checked-have-to-match-toggle-button-in-checked-state-with-hover.snap.png => togglebutton-for-ui-checked-have-to-match-toggle-button-in-checked-state-with-hover.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-ui-checked-have-to-match-toggle-button-in-checked-state.snap.png => togglebutton-for-ui-checked-have-to-match-toggle-button-in-checked-state.snap.png} (100%) create mode 100644 packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-ui-have-to-match-toggle-button-in-disabled-state.snap.png rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-ui-togglebutton-unchecked-have-to-match-toggle-button-in-unchecked-state-with-focus.snap.png => togglebutton-for-ui-togglebutton-unchecked-have-to-match-toggle-button-in-unchecked-state-with-focus.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-ui-togglebutton-unchecked-have-to-match-toggle-button-in-unchecked-state-with-hover.snap.png => togglebutton-for-ui-togglebutton-unchecked-have-to-match-toggle-button-in-unchecked-state-with-hover.snap.png} (100%) rename packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/{radio-for-ui-togglebutton-unchecked-have-to-match-toggle-button-in-unchecked-state.snap.png => togglebutton-for-ui-togglebutton-unchecked-have-to-match-toggle-button-in-unchecked-state.snap.png} (100%) diff --git a/packages/dnb-design-system-portal/src/docs/uilib/components/toggle-button/Examples.tsx b/packages/dnb-design-system-portal/src/docs/uilib/components/toggle-button/Examples.tsx index 3d2ce00c124..ed021a84bc1 100644 --- a/packages/dnb-design-system-portal/src/docs/uilib/components/toggle-button/Examples.tsx +++ b/packages/dnb-design-system-portal/src/docs/uilib/components/toggle-button/Examples.tsx @@ -122,7 +122,12 @@ export const ToggleButtonStatusMessages = () => ( export const ToggleButtonDisabledGroup = () => ( - + diff --git a/packages/dnb-eufemia/src/components/toggle-button/__tests__/ToggleButton.screenshot.test.ts b/packages/dnb-eufemia/src/components/toggle-button/__tests__/ToggleButton.screenshot.test.ts index f48030e6b92..22eb95a6943 100644 --- a/packages/dnb-eufemia/src/components/toggle-button/__tests__/ToggleButton.screenshot.test.ts +++ b/packages/dnb-eufemia/src/components/toggle-button/__tests__/ToggleButton.screenshot.test.ts @@ -8,7 +8,7 @@ import { setupPageScreenshot, } from '../../../core/jest/jestSetupScreenshots' -describe.each(['ui', 'sbanken'])('Radio for %s', (themeName) => { +describe.each(['ui', 'sbanken'])('ToggleButton for %s', (themeName) => { describe('ToggleButton unchecked', () => { setupPageScreenshot({ themeName, @@ -112,4 +112,11 @@ describe.each(['ui', 'sbanken'])('Radio for %s', (themeName) => { expect(screenshot).toMatchImageSnapshot() }) }) + + it('have to match toggle-button in disabled state', async () => { + const screenshot = await makeScreenshot({ + selector: '[data-visual-test="toggle-button-group-disabled"]', + }) + expect(screenshot).toMatchImageSnapshot() + }) }) diff --git a/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-group-in-vertical-layout.snap.png b/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-group-in-vertical-layout.snap.png similarity index 100% rename from packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-group-in-vertical-layout.snap.png rename to packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-group-in-vertical-layout.snap.png diff --git a/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-group-with-form-status.snap.png b/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-group-with-form-status.snap.png similarity index 100% rename from packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-group-with-form-status.snap.png rename to packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-group-with-form-status.snap.png diff --git a/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-group.snap.png b/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-group.snap.png similarity index 100% rename from packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-group.snap.png rename to packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-group.snap.png diff --git a/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-in-active-focus-state.snap.png b/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-in-active-focus-state.snap.png similarity index 100% rename from packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-in-active-focus-state.snap.png rename to packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-in-active-focus-state.snap.png diff --git a/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-in-checked-state-with-focus.snap.png b/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-in-checked-state-with-focus.snap.png similarity index 100% rename from packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-in-checked-state-with-focus.snap.png rename to packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-in-checked-state-with-focus.snap.png diff --git a/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-in-checked-state-with-hover.snap.png b/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-in-checked-state-with-hover.snap.png similarity index 100% rename from packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-in-checked-state-with-hover.snap.png rename to packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-in-checked-state-with-hover.snap.png diff --git a/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-in-checked-state.snap.png b/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-in-checked-state.snap.png similarity index 100% rename from packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/radio-for-sbanken-checked-have-to-match-toggle-button-in-checked-state.snap.png rename to packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-checked-have-to-match-toggle-button-in-checked-state.snap.png diff --git a/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-have-to-match-toggle-button-in-disabled-state.snap.png b/packages/dnb-eufemia/src/components/toggle-button/__tests__/__image_snapshots__/togglebutton-for-sbanken-have-to-match-toggle-button-in-disabled-state.snap.png new file mode 100644 index 0000000000000000000000000000000000000000..dc443595af1b3ead09525044fd31d38908958e08 GIT binary patch literal 8313 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