Skip to content

Commit

Permalink
feat: Toggle button component (#2492)
Browse files Browse the repository at this point in the history
  • Loading branch information
georgylobko committed Aug 1, 2024
1 parent dbcc7a1 commit 6796f15
Show file tree
Hide file tree
Showing 17 changed files with 1,408 additions and 39 deletions.
40 changes: 40 additions & 0 deletions pages/toggle-button/permutations.page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import React from 'react';

import ToggleButton, { ToggleButtonProps } from '~components/toggle-button';

import createPermutations from '../utils/permutations';
import PermutationsView from '../utils/permutations-view';
import ScreenshotArea from '../utils/screenshot-area';

const permutations = createPermutations<ToggleButtonProps>([
{
variant: ['normal'],
children: ['Favorite', undefined],
iconName: ['star'],
ariaLabel: ['Favorite'],
pressedIconName: ['star-filled'],
pressed: [false, true],
disabled: [false, true],
},
{
variant: ['icon'],
iconName: ['star'],
ariaLabel: ['Favorite'],
pressedIconName: ['star-filled'],
pressed: [false, true],
disabled: [false, true],
},
]);

export default function ToggleButtonPermutations() {
return (
<>
<h1>Toggle button permutations</h1>
<ScreenshotArea>
<PermutationsView permutations={permutations} render={permutation => <ToggleButton {...permutation} />} />
</ScreenshotArea>
</>
);
}
25 changes: 25 additions & 0 deletions pages/toggle-button/simple.page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import React, { useState } from 'react';

import ToggleButton from '~components/toggle-button';

export default function ToggleButtonSimpleScenario() {
const [pressed, setPressed] = useState(false);

return (
<>
<h1>Toggle button demo</h1>
<ToggleButton
pressed={pressed}
iconName="star"
pressedIconName="star-filled"
onChange={event => {
setPressed(event.detail.pressed);
}}
>
Toggle button
</ToggleButton>
</>
);
}
32 changes: 32 additions & 0 deletions src/__integ__/__snapshots__/themes.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ Object {
"color-background-status-warning": "#fffce9",
"color-background-table-header": "#fafafa",
"color-background-tiles-disabled": "#eaeded",
"color-background-toggle-button-normal-pressed": "#eaeded",
"color-background-toggle-checked-disabled": "#99cbe4",
"color-background-toggle-default": "#545b64",
"color-board-placeholder-active": "#d5dbdb",
Expand Down Expand Up @@ -173,6 +174,7 @@ Object {
"color-border-tabs-shadow": "#eaeded",
"color-border-tabs-underline": "#16191f",
"color-border-tiles-disabled": "transparent",
"color-border-toggle-button-normal-pressed": "#545b64",
"color-border-tutorial": "#aab7b8",
"color-charts-blue-1-1000": "#01437d",
"color-charts-blue-1-1100": "#003c75",
Expand Down Expand Up @@ -428,6 +430,8 @@ Object {
"color-text-status-info": "#0073bb",
"color-text-status-success": "#1d8102",
"color-text-status-warning": "#906806",
"color-text-toggle-button-icon-pressed": "#16191f",
"color-text-toggle-button-normal-pressed": "#16191f",
"color-text-top-navigation-title": "#16191f",
"color-transparent": "transparent",
"font-box-value-large-weight": "300",
Expand Down Expand Up @@ -751,6 +755,7 @@ Object {
"color-background-status-warning": "#1d1906",
"color-background-table-header": "#21252c",
"color-background-tiles-disabled": "#2a2e33",
"color-background-toggle-button-normal-pressed": "#16191f",
"color-background-toggle-checked-disabled": "#0a4a74",
"color-background-toggle-default": "#879596",
"color-board-placeholder-active": "#687078",
Expand Down Expand Up @@ -808,6 +813,7 @@ Object {
"color-border-tabs-shadow": "rgba(0, 0, 0, 0.3)",
"color-border-tabs-underline": "#fafafa",
"color-border-tiles-disabled": "#414750",
"color-border-toggle-button-normal-pressed": "#879596",
"color-border-tutorial": "#879596",
"color-charts-blue-1-1000": "#b3e4f8",
"color-charts-blue-1-1100": "#caedfc",
Expand Down Expand Up @@ -1063,6 +1069,8 @@ Object {
"color-text-status-info": "#44b9d6",
"color-text-status-success": "#6aaf35",
"color-text-status-warning": "#e0ca57",
"color-text-toggle-button-icon-pressed": "#fafafa",
"color-text-toggle-button-normal-pressed": "#fafafa",
"color-text-top-navigation-title": "#fafafa",
"color-transparent": "transparent",
"font-box-value-large-weight": "300",
Expand Down Expand Up @@ -1386,6 +1394,7 @@ Object {
"color-background-status-warning": "#fffce9",
"color-background-table-header": "#fafafa",
"color-background-tiles-disabled": "#eaeded",
"color-background-toggle-button-normal-pressed": "#eaeded",
"color-background-toggle-checked-disabled": "#99cbe4",
"color-background-toggle-default": "#545b64",
"color-board-placeholder-active": "#d5dbdb",
Expand Down Expand Up @@ -1443,6 +1452,7 @@ Object {
"color-border-tabs-shadow": "#eaeded",
"color-border-tabs-underline": "#16191f",
"color-border-tiles-disabled": "transparent",
"color-border-toggle-button-normal-pressed": "#545b64",
"color-border-tutorial": "#aab7b8",
"color-charts-blue-1-1000": "#01437d",
"color-charts-blue-1-1100": "#003c75",
Expand Down Expand Up @@ -1698,6 +1708,8 @@ Object {
"color-text-status-info": "#0073bb",
"color-text-status-success": "#1d8102",
"color-text-status-warning": "#906806",
"color-text-toggle-button-icon-pressed": "#16191f",
"color-text-toggle-button-normal-pressed": "#16191f",
"color-text-top-navigation-title": "#16191f",
"color-transparent": "transparent",
"font-box-value-large-weight": "300",
Expand Down Expand Up @@ -2021,6 +2033,7 @@ Object {
"color-background-status-warning": "#fffce9",
"color-background-table-header": "#fafafa",
"color-background-tiles-disabled": "#eaeded",
"color-background-toggle-button-normal-pressed": "#eaeded",
"color-background-toggle-checked-disabled": "#99cbe4",
"color-background-toggle-default": "#545b64",
"color-board-placeholder-active": "#d5dbdb",
Expand Down Expand Up @@ -2078,6 +2091,7 @@ Object {
"color-border-tabs-shadow": "#eaeded",
"color-border-tabs-underline": "#16191f",
"color-border-tiles-disabled": "transparent",
"color-border-toggle-button-normal-pressed": "#545b64",
"color-border-tutorial": "#aab7b8",
"color-charts-blue-1-1000": "#01437d",
"color-charts-blue-1-1100": "#003c75",
Expand Down Expand Up @@ -2333,6 +2347,8 @@ Object {
"color-text-status-info": "#0073bb",
"color-text-status-success": "#1d8102",
"color-text-status-warning": "#906806",
"color-text-toggle-button-icon-pressed": "#16191f",
"color-text-toggle-button-normal-pressed": "#16191f",
"color-text-top-navigation-title": "#16191f",
"color-transparent": "transparent",
"font-box-value-large-weight": "300",
Expand Down Expand Up @@ -2656,6 +2672,7 @@ Object {
"color-background-status-warning": "#fffce9",
"color-background-table-header": "#ffffff",
"color-background-tiles-disabled": "#e9ebed",
"color-background-toggle-button-normal-pressed": "#d3e7f9",
"color-background-toggle-checked-disabled": "#b5d6f4",
"color-background-toggle-default": "#414d5c",
"color-board-placeholder-active": "#e9ebed",
Expand Down Expand Up @@ -2713,6 +2730,7 @@ Object {
"color-border-tabs-shadow": "rgba(0, 7, 22, 0.12)",
"color-border-tabs-underline": "#0972d3",
"color-border-tiles-disabled": "#e9ebed",
"color-border-toggle-button-normal-pressed": "#0972d3",
"color-border-tutorial": "#d1d5db",
"color-charts-blue-1-1000": "#01437d",
"color-charts-blue-1-1100": "#003c75",
Expand Down Expand Up @@ -2968,6 +2986,8 @@ Object {
"color-text-status-info": "#0972d3",
"color-text-status-success": "#037f0c",
"color-text-status-warning": "#8d6605",
"color-text-toggle-button-icon-pressed": "#000716",
"color-text-toggle-button-normal-pressed": "#033160",
"color-text-top-navigation-title": "#000716",
"color-transparent": "transparent",
"font-box-value-large-weight": "700",
Expand Down Expand Up @@ -3291,6 +3311,7 @@ Object {
"color-background-status-warning": "#fffce9",
"color-background-table-header": "#ffffff",
"color-background-tiles-disabled": "#e9ebed",
"color-background-toggle-button-normal-pressed": "#d3e7f9",
"color-background-toggle-checked-disabled": "#b5d6f4",
"color-background-toggle-default": "#414d5c",
"color-board-placeholder-active": "#e9ebed",
Expand Down Expand Up @@ -3348,6 +3369,7 @@ Object {
"color-border-tabs-shadow": "rgba(0, 7, 22, 0.12)",
"color-border-tabs-underline": "#0972d3",
"color-border-tiles-disabled": "#e9ebed",
"color-border-toggle-button-normal-pressed": "#0972d3",
"color-border-tutorial": "#d1d5db",
"color-charts-blue-1-1000": "#01437d",
"color-charts-blue-1-1100": "#003c75",
Expand Down Expand Up @@ -3603,6 +3625,8 @@ Object {
"color-text-status-info": "#0972d3",
"color-text-status-success": "#037f0c",
"color-text-status-warning": "#8d6605",
"color-text-toggle-button-icon-pressed": "#000716",
"color-text-toggle-button-normal-pressed": "#033160",
"color-text-top-navigation-title": "#000716",
"color-transparent": "transparent",
"font-box-value-large-weight": "700",
Expand Down Expand Up @@ -3926,6 +3950,7 @@ Object {
"color-background-status-warning": "#1d1906",
"color-background-table-header": "#000716",
"color-background-tiles-disabled": "#192534",
"color-background-toggle-button-normal-pressed": "#354150",
"color-background-toggle-checked-disabled": "#033160",
"color-background-toggle-default": "#7d8998",
"color-board-placeholder-active": "#5f6b7a",
Expand Down Expand Up @@ -3983,6 +4008,7 @@ Object {
"color-border-tabs-shadow": "rgba(0, 7, 22, 1)",
"color-border-tabs-underline": "#539fe5",
"color-border-tiles-disabled": "#192534",
"color-border-toggle-button-normal-pressed": "#539fe5",
"color-border-tutorial": "#414d5c",
"color-charts-blue-1-1000": "#01437d",
"color-charts-blue-1-1100": "#003c75",
Expand Down Expand Up @@ -4238,6 +4264,8 @@ Object {
"color-text-status-info": "#539fe5",
"color-text-status-success": "#29ad32",
"color-text-status-warning": "#e0ca57",
"color-text-toggle-button-icon-pressed": "#fbfbfb",
"color-text-toggle-button-normal-pressed": "#89bdee",
"color-text-top-navigation-title": "#fbfbfb",
"color-transparent": "transparent",
"font-box-value-large-weight": "700",
Expand Down Expand Up @@ -4561,6 +4589,7 @@ Object {
"color-background-status-warning": "#1d1906",
"color-background-table-header": "#0f1b2a",
"color-background-tiles-disabled": "#192534",
"color-background-toggle-button-normal-pressed": "#354150",
"color-background-toggle-checked-disabled": "#033160",
"color-background-toggle-default": "#7d8998",
"color-board-placeholder-active": "#5f6b7a",
Expand Down Expand Up @@ -4618,6 +4647,7 @@ Object {
"color-border-tabs-shadow": "rgba(0, 7, 22, 1)",
"color-border-tabs-underline": "#539fe5",
"color-border-tiles-disabled": "#192534",
"color-border-toggle-button-normal-pressed": "#539fe5",
"color-border-tutorial": "#414d5c",
"color-charts-blue-1-1000": "#b3e4f8",
"color-charts-blue-1-1100": "#caedfc",
Expand Down Expand Up @@ -4873,6 +4903,8 @@ Object {
"color-text-status-info": "#539fe5",
"color-text-status-success": "#29ad32",
"color-text-status-warning": "#e0ca57",
"color-text-toggle-button-icon-pressed": "#fbfbfb",
"color-text-toggle-button-normal-pressed": "#89bdee",
"color-text-top-navigation-title": "#fbfbfb",
"color-transparent": "transparent",
"font-box-value-large-weight": "700",
Expand Down
Loading

0 comments on commit 6796f15

Please sign in to comment.