@atlaskit/editor-common
Version:
A package that contains common classes and components for editor and renderer
57 lines • 2.29 kB
JavaScript
/**
* @jsxRuntime classic
* @jsx jsx
*/
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports -- Ignored via go/DSP-18766; jsx required at runtime for @jsxRuntime classic
import { css, jsx } from '@emotion/react';
var createSteppedRainbow = function createSteppedRainbow(colors) {
return "\n linear-gradient(\n to right,\n ".concat(colors.map(function (color, i) {
var inc = 100 / colors.length;
var pos = i + 1;
if (i === 0) {
return "".concat(color, " ").concat(pos * inc, "%,");
}
if (i === colors.length - 1) {
return "".concat(color, " ").concat((pos - 1) * inc, "%");
}
return "\n ".concat(color, " ").concat((pos - 1) * inc, "%,\n ").concat(color, " ").concat(pos * inc, "%,\n ");
}).join('\n'), "\n )");
};
export var rainbow = createSteppedRainbow(["var(--ds-background-accent-purple-bolder, #964AC0)", "var(--ds-background-accent-teal-subtle, #6CC3E0)", "var(--ds-background-accent-orange-subtle, #FCA700)", "var(--ds-background-accent-red-bolder, #C9372C)"]);
export var disabledRainbow = createSteppedRainbow(["var(--ds-background-accent-gray-subtle, #8C8F97)", "var(--ds-background-accent-gray-subtle-hovered, #B7B9BE)", "var(--ds-background-accent-gray-subtle-pressed, #DDDEE1)", "var(--ds-background-accent-gray-subtle-hovered, #B7B9BE)"]);
var barStyles = css({
position: 'absolute',
left: 0,
right: 0,
top: "var(--ds-space-200, 16px)",
margin: 'auto',
width: '12px',
height: '3px',
borderRadius: "var(--ds-radius-small, 3px)"
});
var textColorIconWrapper = css({
position: 'relative'
});
var getBackground = function getBackground(selectedColor, disabled) {
if (selectedColor) {
return selectedColor;
}
if (disabled) {
return disabledRainbow;
}
return rainbow;
};
export var SteppedRainbowIconDecoration = function SteppedRainbowIconDecoration(_ref) {
var selectedColor = _ref.selectedColor,
disabled = _ref.disabled,
icon = _ref.icon;
return jsx("div", {
css: textColorIconWrapper
}, icon, jsx("div", {
"data-testid": "toolbar-icon-stepped-rainbow",
style: {
background: getBackground(selectedColor, disabled)
},
css: barStyles
}));
};