Files
react-native-devtools-frontend/front_end/ui/components/docs/button/basic.ts
T
Jack Franklin 603f51d19e Remove UNIFIED_TOOLBAR variant.
The work to build a new unified toolbar has been deprioritised and no
one is using this variant, so let's remove it to avoid confusion. We can
always restore it in the future if we need to.

Bug: none
Change-Id: I7a6c8f1f9b7e66b509fa4ef08c30186b06d9949d
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/4037665
Commit-Queue: Andres Olivares <andoli@chromium.org>
Auto-Submit: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Andres Olivares <andoli@chromium.org>
2022-11-18 14:03:34 +00:00

352 lines
11 KiB
TypeScript

// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import * as FrontendHelpers from '../../../../../test/unittests/front_end/helpers/EnvironmentHelpers.js';
import * as Buttons from '../../buttons/buttons.js';
import * as ComponentHelpers from '../../helpers/helpers.js';
await ComponentHelpers.ComponentServerSetup.setup();
await FrontendHelpers.initializeGlobalVars();
const testIcon = '/front_end/Images/ic_file_image.svg';
const fileIcon = '/front_end/Images/file_icon.svg';
const plusIcon = '/front_end/Images/plus_icon.svg';
const minusIcon = '/front_end/Images/minus_icon.svg';
const trashBinIcon = '/front_end/Images/trash_bin_icon.svg';
const closeIcon = '/front_end/Images/close-icon.svg';
function appendButton(button: Buttons.Button.Button): void {
document.querySelector('#container')?.appendChild(button);
}
function appendToToolbar(element: HTMLElement): void {
document.querySelector('#toolbar')?.appendChild(element);
}
function appendToSmallToolbar(element: HTMLElement): void {
document.querySelector('#small-toolbar')?.appendChild(element);
}
// Primary
const primaryButton = new Buttons.Button.Button();
primaryButton.data = {
variant: Buttons.Button.Variant.PRIMARY,
};
primaryButton.innerText = 'Click me';
primaryButton.title = 'Custom title';
primaryButton.onclick = () => alert('clicked');
appendButton(primaryButton);
const primaryButtonWithoutRightBorderRadius = new Buttons.Button.Button();
primaryButtonWithoutRightBorderRadius.data = {
variant: Buttons.Button.Variant.PRIMARY,
};
primaryButtonWithoutRightBorderRadius.style.setProperty('--override-button-no-right-border-radius', '1');
primaryButtonWithoutRightBorderRadius.innerText = 'No right border radius';
primaryButtonWithoutRightBorderRadius.title = 'Custom title';
primaryButtonWithoutRightBorderRadius.onclick = () => alert('clicked');
appendButton(primaryButtonWithoutRightBorderRadius);
// Primary (forced active)
const forcedActive = new Buttons.Button.Button();
forcedActive.data = {
variant: Buttons.Button.Variant.PRIMARY,
active: true,
};
forcedActive.innerText = 'Forced active';
forcedActive.onclick = () => alert('clicked');
appendButton(forcedActive);
// Primary (forced spinner)
const forcedSpinner = new Buttons.Button.Button();
forcedSpinner.data = {
variant: Buttons.Button.Variant.PRIMARY,
spinner: true,
};
forcedSpinner.innerText = 'Forced spinner';
forcedSpinner.onclick = () => alert('clicked');
appendButton(forcedSpinner);
// Secondary
const secondaryButton = new Buttons.Button.Button();
secondaryButton.innerText = 'Click me';
secondaryButton.onclick = () => alert('clicked');
secondaryButton.data = {
variant: Buttons.Button.Variant.SECONDARY,
};
appendButton(secondaryButton);
// Secondary spinner
const secondarySpinnerButton = new Buttons.Button.Button();
secondarySpinnerButton.innerText = 'Click me';
secondarySpinnerButton.onclick = () => alert('clicked');
secondarySpinnerButton.data = {
variant: Buttons.Button.Variant.SECONDARY,
spinner: true,
};
appendButton(secondarySpinnerButton);
// Primary
const disabledPrimaryButtons = new Buttons.Button.Button();
disabledPrimaryButtons.data = {
variant: Buttons.Button.Variant.PRIMARY,
disabled: true,
};
disabledPrimaryButtons.innerText = 'Cannot click me';
disabledPrimaryButtons.onclick = () => alert('clicked');
appendButton(disabledPrimaryButtons);
// Primary spinner
const disabledSpinnerPrimaryButtons = new Buttons.Button.Button();
disabledSpinnerPrimaryButtons.data = {
variant: Buttons.Button.Variant.PRIMARY,
disabled: true,
spinner: true,
};
disabledSpinnerPrimaryButtons.innerText = 'Cannot click me';
disabledSpinnerPrimaryButtons.onclick = () => alert('clicked');
appendButton(disabledSpinnerPrimaryButtons);
// Secondary
const disabledSecondaryButton = new Buttons.Button.Button();
disabledSecondaryButton.innerText = 'Cannot click me';
disabledSecondaryButton.onclick = () => alert('clicked');
disabledSecondaryButton.data = {
variant: Buttons.Button.Variant.SECONDARY,
disabled: true,
};
appendButton(disabledSecondaryButton);
// Secondary spinner
const disabledSpinnerSecondaryButton = new Buttons.Button.Button();
disabledSpinnerSecondaryButton.innerText = 'Cannot click me';
disabledSpinnerSecondaryButton.onclick = () => alert('clicked');
disabledSpinnerSecondaryButton.data = {
variant: Buttons.Button.Variant.SECONDARY,
disabled: true,
spinner: true,
};
appendButton(disabledSpinnerSecondaryButton);
// Primary Icon
const primaryIconButton = new Buttons.Button.Button();
primaryIconButton.innerText = 'Click me';
primaryIconButton.data = {
variant: Buttons.Button.Variant.PRIMARY,
iconUrl: testIcon,
};
primaryIconButton.onclick = () => alert('clicked');
appendButton(primaryIconButton);
// Secondary Icon
const secondaryIconButton = new Buttons.Button.Button();
secondaryIconButton.innerText = 'Focus the first button';
secondaryIconButton.onclick = () => {
primaryButton.focus();
};
secondaryIconButton.data = {
variant: Buttons.Button.Variant.SECONDARY,
iconUrl: testIcon,
};
appendButton(secondaryIconButton);
// Primary Icon Only
const primaryIconOnlyButton = new Buttons.Button.Button();
primaryIconOnlyButton.data = {
variant: Buttons.Button.Variant.PRIMARY,
iconUrl: testIcon,
};
primaryIconOnlyButton.onclick = () => alert('clicked');
primaryIconOnlyButton.style.width = '24px';
appendButton(primaryIconOnlyButton);
// Secondary Icon Only
const secondaryIconOnlyButton = new Buttons.Button.Button();
secondaryIconOnlyButton.onclick = () => alert('clicked');
secondaryIconOnlyButton.style.width = '24px';
secondaryIconOnlyButton.data = {
variant: Buttons.Button.Variant.SECONDARY,
iconUrl: testIcon,
};
appendButton(secondaryIconOnlyButton);
// Small Primary Icon
const smallPrimaryIconButton = new Buttons.Button.Button();
smallPrimaryIconButton.innerText = 'Click me';
smallPrimaryIconButton.data = {
variant: Buttons.Button.Variant.PRIMARY,
iconUrl: testIcon,
size: Buttons.Button.Size.SMALL,
};
smallPrimaryIconButton.onclick = () => alert('clicked');
appendButton(smallPrimaryIconButton);
// Small Secondary Icon Only
const smallSecondaryIconOnlyButton = new Buttons.Button.Button();
smallSecondaryIconOnlyButton.onclick = () => alert('clicked');
smallSecondaryIconOnlyButton.style.width = '18px';
smallSecondaryIconOnlyButton.data = {
variant: Buttons.Button.Variant.SECONDARY,
iconUrl: testIcon,
size: Buttons.Button.Size.SMALL,
};
appendButton(smallSecondaryIconOnlyButton);
// Disabled Primary Icon
const disabledPrimaryIconButton = new Buttons.Button.Button();
disabledPrimaryIconButton.innerText = 'Cannot click me';
disabledPrimaryIconButton.data = {
variant: Buttons.Button.Variant.PRIMARY,
iconUrl: testIcon,
size: Buttons.Button.Size.SMALL,
disabled: true,
};
disabledPrimaryIconButton.onclick = () => alert('clicked');
appendButton(disabledPrimaryIconButton);
// Small Disabled Secondary Icon Only
const disabledSecondaryIconOnlyButton = new Buttons.Button.Button();
disabledSecondaryIconOnlyButton.onclick = () => alert('clicked');
disabledSecondaryIconOnlyButton.style.width = '18px';
disabledSecondaryIconOnlyButton.data = {
variant: Buttons.Button.Variant.SECONDARY,
iconUrl: testIcon,
size: Buttons.Button.Size.SMALL,
disabled: true,
};
appendButton(disabledSecondaryIconOnlyButton);
// Round Button
const roundButton = new Buttons.Button.Button();
roundButton.data = {
variant: Buttons.Button.Variant.ROUND,
iconUrl: testIcon,
};
roundButton.title = 'Round Button';
roundButton.onclick = () => alert('clicked');
appendButton(roundButton);
// Disabled Round Button
const roundButtonDisabled = new Buttons.Button.Button();
roundButtonDisabled.data = {
variant: Buttons.Button.Variant.ROUND,
iconUrl: testIcon,
disabled: true,
};
roundButtonDisabled.title = 'Disabled Round Button';
roundButtonDisabled.onclick = () => alert('clicked');
appendButton(roundButtonDisabled);
// Small Round Buttons
const roundIcons = [
{iconUrl: testIcon},
{iconUrl: fileIcon, iconWidth: '16px', iconHeight: '16px'},
{iconUrl: plusIcon},
{iconUrl: minusIcon},
{iconUrl: trashBinIcon, iconWidth: '10px', iconHeight: '14px'},
{iconUrl: closeIcon, iconWidth: '10px', iconHeight: '10px'},
];
for (const roundIcon of roundIcons) {
const smallRoundButton = new Buttons.Button.Button();
smallRoundButton.data = {
variant: Buttons.Button.Variant.ROUND,
size: Buttons.Button.Size.SMALL,
...roundIcon,
};
smallRoundButton.title = 'Small Round Button';
smallRoundButton.onclick = () => alert('clicked');
appendButton(smallRoundButton);
}
// Tiny Round Buttons
const tinyRoundIcons = [
{iconUrl: plusIcon},
{iconUrl: minusIcon},
{iconUrl: closeIcon, iconWidth: '9px', iconHeight: '9px'},
];
for (const roundIcon of tinyRoundIcons) {
const tinyRoundButton = new Buttons.Button.Button();
tinyRoundButton.data = {
variant: Buttons.Button.Variant.ROUND,
size: Buttons.Button.Size.TINY,
...roundIcon,
};
tinyRoundButton.title = 'Tiny Round Button';
tinyRoundButton.onclick = () => alert('clicked');
appendButton(tinyRoundButton);
}
// Small Disabled Round Button
const smallRoundButtonDisabled = new Buttons.Button.Button();
smallRoundButtonDisabled.data = {
variant: Buttons.Button.Variant.ROUND,
iconUrl: testIcon,
disabled: true,
size: Buttons.Button.Size.SMALL,
};
smallRoundButtonDisabled.title = 'Small Disabled Round Button';
smallRoundButtonDisabled.onclick = () => alert('clicked');
appendButton(smallRoundButtonDisabled);
for (let i = 0; i < 6; i++) {
// Regular Toolbar Button
const toolbarButton = new Buttons.Button.Button();
toolbarButton.onclick = () => alert('clicked');
toolbarButton.data = {
variant: Buttons.Button.Variant.TOOLBAR,
iconUrl: testIcon,
};
appendToToolbar(toolbarButton);
if (i % 3 === 1) {
const sep = document.createElement('div');
sep.classList.add('separator');
appendToToolbar(sep);
}
}
// Disabled Toolbar Button
const toolbarButton = new Buttons.Button.Button();
toolbarButton.onclick = () => alert('clicked');
toolbarButton.data = {
variant: Buttons.Button.Variant.TOOLBAR,
iconUrl: testIcon,
disabled: true,
};
appendToToolbar(toolbarButton);
for (let i = 0; i < 6; i++) {
// Small Toolbar Button
const smallToolbarButton = new Buttons.Button.Button();
smallToolbarButton.onclick = () => alert('clicked');
smallToolbarButton.data = {
variant: Buttons.Button.Variant.TOOLBAR,
size: Buttons.Button.Size.SMALL,
iconUrl: testIcon,
};
appendToSmallToolbar(smallToolbarButton);
if (i % 3 === 1) {
const sep = document.createElement('div');
sep.classList.add('separator');
appendToSmallToolbar(sep);
}
}
// Submit Button
const submitButton = new Buttons.Button.Button();
submitButton.data = {
variant: Buttons.Button.Variant.PRIMARY,
type: 'submit',
};
submitButton.innerText = 'Submit';
document.querySelector('#form')?.append(submitButton);
// Reset Button
const resetButton = new Buttons.Button.Button();
resetButton.data = {
variant: Buttons.Button.Variant.SECONDARY,
type: 'reset',
};
resetButton.innerText = 'Reset';
document.querySelector('#form')?.append(resetButton);