Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 1x 1x 1x 1x 1x 1x 1x | import React from "react";
import styled from "styled-components";
import PaletteBlock from "components/forms/PaletteBlock";
import { LockIcon } from "ui/icons/Icons";
import { Palette } from "shared/lib/resources/types";
type AutoPaletteSwatchProps = {
palette: Palette | undefined;
};
const Wrapper = styled.div`
position: relative;
display: inline-flex;
min-width: 0;
flex-shrink: 0;
& * {
min-width: 0;
}
svg {
position: absolute;
top: 22px;
right: -1px;
width: 8px;
height: 8px;
fill: ${(props) => props.theme.colors.button.text};
background: ${(props) => props.theme.colors.input.border};
border-radius: ${(props) => props.theme.borderRadius}px;
padding: 2px;
}
`;
const Button = styled.div`
background: ${(props) => props.theme.colors.input.background};
color: ${(props) => props.theme.colors.input.text};
border: 1px solid ${(props) => props.theme.colors.input.border};
font-size: ${(props) => props.theme.typography.fontSize};
border-radius: ${(props) => props.theme.borderRadius}px;
padding: 1px;
box-sizing: border-box;
height: 28px;
flex-shrink: 0;
&:hover {
background: ${(props) => props.theme.colors.input.hoverBackground};
}
&:focus,
&&&:focus:not(.focus-visible) {
border: 1px solid ${(props) => props.theme.colors.highlight};
background: ${(props) => props.theme.colors.input.activeBackground};
box-shadow: 0 0 0px 2px ${(props) => props.theme.colors.highlight} !important;
}
`;
export const AutoPaletteSwatch = ({ palette }: AutoPaletteSwatchProps) => {
return (
<Wrapper>
<Button title={palette?.name}>
<PaletteBlock type="tile" colors={palette?.colors || []} size={22} />
</Button>
<LockIcon />
</Wrapper>
);
};
|