@atlaskit/renderer
Version:
Renderer component
180 lines (179 loc) • 8.22 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["backgroundColor", "hasIcon"];
/**
* @jsxRuntime classic
* @jsx jsx
*/
/**
* Emotion branch of the `platform_editor_static_css` experiment.
* Used via `componentWithCondition` in `panel.tsx`.
*
* Cleanup: delete this file once the experiment has shipped.
*/
import React from 'react';
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports -- intentional: emotion fallback for compiled migration; `jsx` is used as the JSX pragma (see @jsx jsx above) so must be a value import
import { css, jsx } from '@emotion/react';
import { PanelType } from '@atlaskit/adf-schema';
import { akEditorCustomIconSize } from '@atlaskit/editor-shared-styles/consts';
import { hexToEditorBackgroundPaletteColor } from '@atlaskit/editor-palette';
import { fg } from '@atlaskit/platform-feature-flags';
// New custom icons are a little smaller than predefined icons.
// To fix alignment issues with custom icons, vertical alignment is updated.
var panelEmojiSpriteVerticalAlignment = -(8 * 3 - akEditorCustomIconSize) / 2;
var panelEmojiImageVerticalAlignment = panelEmojiSpriteVerticalAlignment - 1;
var blockNodesVerticalMargin = '0.75rem';
var akEditorTableCellMinWidth = 48;
var panelBaseStyles = css({
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'&.ak-editor-panel': {
borderRadius: "var(--ds-radius-small, 3px)",
margin: "".concat(blockNodesVerticalMargin, " 0 0"),
paddingTop: "var(--ds-space-100, 8px)",
paddingRight: "var(--ds-space-200, 16px)",
paddingBottom: "var(--ds-space-100, 8px)",
paddingLeft: "var(--ds-space-100, 8px)",
minWidth: "".concat(akEditorTableCellMinWidth, "px"),
display: 'flex',
position: 'relative',
alignItems: 'normal',
wordBreak: 'break-word',
backgroundColor: "var(--ds-background-accent-blue-subtlest, #E9F2FE)",
color: 'inherit',
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'.ak-editor-panel__icon': {
flexShrink: 0,
height: "var(--ds-space-300, 24px)",
width: "var(--ds-space-300, 24px)",
boxSizing: 'content-box',
paddingRight: "var(--ds-space-100, 8px)",
textAlign: 'center',
userSelect: 'none',
MozUserSelect: 'none',
WebkitUserSelect: 'none',
MsUserSelect: 'none',
// eslint-disable-next-line @atlaskit/design-system/use-tokens-space
marginTop: '0.1em',
color: "var(--ds-icon-information, #357DE8)",
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'> span': {
verticalAlign: 'middle',
display: 'inline-flex'
},
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'.emoji-common-emoji-sprite': {
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values
verticalAlign: "".concat(panelEmojiSpriteVerticalAlignment, "px")
},
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'.emoji-common-emoji-image': {
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values
verticalAlign: "".concat(panelEmojiImageVerticalAlignment, "px"),
// Vertical align only works for inline-block elements in Firefox
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-selectors
'@-moz-document url-prefix()': {
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
img: {
display: 'inline-block'
}
}
}
},
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'.ak-editor-panel__content': {
margin: "var(--ds-space-025, 2px)".concat(" 0 ", "var(--ds-space-025, 2px)"),
flex: '1 0 0',
minWidth: 0
},
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'&[data-panel-type="note"]': {
backgroundColor: "var(--ds-background-accent-purple-subtlest, #F8EEFE)",
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'.ak-editor-panel__icon': {
color: "var(--ds-icon-discovery, #AF59E1)"
}
},
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-values, @atlaskit/ui-styling-standard/no-imported-style-values
'&[data-panel-type="tip"]': {
backgroundColor: "var(--ds-background-accent-green-subtlest, #DCFFF1)",
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'.ak-editor-panel__icon': {
color: "var(--ds-icon-success, #6A9A23)"
}
},
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'&[data-panel-type="warning"]': {
backgroundColor: "var(--ds-background-accent-yellow-subtlest, #FEF7C8)",
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'.ak-editor-panel__icon': {
color: "var(--ds-icon-warning, #E06C00)"
}
},
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'&[data-panel-type="error"]': {
backgroundColor: "var(--ds-background-accent-red-subtlest, #FFECEB)",
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'.ak-editor-panel__icon': {
color: "var(--ds-icon-danger, #C9372C)"
}
},
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'&[data-panel-type="success"]': {
backgroundColor: "var(--ds-background-accent-green-subtlest, #DCFFF1)",
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'.ak-editor-panel__icon': {
color: "var(--ds-icon-success, #6A9A23)"
}
}
}
});
var panelHasNoIconStyles = css({
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'&.ak-editor-panel': {
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'&[data-panel-type="custom"]': {
paddingLeft: "var(--ds-space-150, 12px)",
paddingRight: "var(--ds-space-150, 12px)"
}
}
});
var panelNestedIconStyles = css({
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'&.ak-editor-panel__no-icon': {
paddingLeft: "var(--ds-space-150, 12px)",
paddingRight: "var(--ds-space-150, 12px)"
}
});
var nestedPanelStyles = css({
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'.ak-editor-panel__content .ak-editor-panel': {
border: "var(--ds-border-width, 1px)".concat(" solid ", "var(--ds-border, #0B120E24)")
}
});
var panelCustomBackground = css({
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'&.ak-editor-panel': {
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
'&[data-panel-type="custom"]': {
backgroundColor: 'var(--ak-renderer-panel-custom-bg-color)'
}
}
});
var PanelStyledEmotion = function PanelStyledEmotion(_ref) {
var backgroundColor = _ref.backgroundColor,
hasIcon = _ref.hasIcon,
props = _objectWithoutProperties(_ref, _excluded);
var customBackgroundColor = backgroundColor ? hexToEditorBackgroundPaletteColor(backgroundColor) || backgroundColor : undefined;
return jsx("div", _extends({
style:
// eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
{
'--ak-renderer-panel-custom-bg-color': customBackgroundColor
},
css: [panelBaseStyles, !hasIcon && panelHasNoIconStyles, props['data-panel-type'] === PanelType.CUSTOM && backgroundColor && panelCustomBackground, fg('platform_editor_nested_dnd_styles_changes') && panelNestedIconStyles, nestedPanelStyles]
// Ignored via go/ees005
// eslint-disable-next-line react/jsx-props-no-spreading
}, props), props.children);
};
export { PanelStyledEmotion };
PanelStyledEmotion.displayName = 'PanelStyledEmotion';