UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

256 lines (253 loc) • 15.1 kB
/* eslint-disable @atlaskit/ui-styling-standard/use-compiled */ import { css, keyframes } from '@emotion/react'; import { BodiedSyncBlockSharedCssClassName, SyncBlockSharedCssClassName, SyncBlockLabelSharedCssClassName, SyncBlockStateCssClassName } from '@atlaskit/editor-common/sync-block'; // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles export const syncBlockStylesBase = css({ '@property --angle': { syntax: '"<angle>"', initialValue: '0deg', inherits: 'false' }, // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors '.ProseMirror': { // 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 [`.${SyncBlockSharedCssClassName.prefix}, .${BodiedSyncBlockSharedCssClassName.prefix}`]: { position: 'relative', cursor: 'pointer', borderRadius: "var(--ds-radius-small, 3px)", marginBottom: 0, marginTop: "var(--ds-space-075, 6px)", paddingBlock: "var(--ds-space-150, 12px)", color: 'inherit', /* Hover state */ '&:hover': { // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage boxShadow: `0px 0px 0px 1px ${"var(--ds-border, #0B120E24)"}`, transition: 'box-shadow 200ms ease-in', // 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 [`.${SyncBlockLabelSharedCssClassName.labelClassName}`]: { opacity: 1, visibility: 'visible', transition: 'opacity 200ms ease-in, visibility 200ms ease-in' } }, /* Selection state when cursor inside sync block */ // 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 [`&.${BodiedSyncBlockSharedCssClassName.selectionInside}`]: { boxShadow: `0 0 0 1px ${"var(--ds-border, #0B120E24)"}`, // 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 [`.${SyncBlockLabelSharedCssClassName.labelClassName}`]: { opacity: 1, visibility: 'visible' } }, /* Node selection state */ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors '&.ak-editor-selected-node': { boxShadow: `0 0 0 1px ${"var(--ds-border-focused, #4688EC)"}`, // 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 [`.${SyncBlockLabelSharedCssClassName.labelClassName}`]: { opacity: 1, visibility: 'visible', backgroundColor: "var(--ds-background-selected, #E9F2FE)", top: '-14px', paddingBottom: "var(--ds-space-050, 4px)", paddingTop: "var(--ds-space-050, 4px)", // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors '> span': { // eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles color: `${"var(--ds-text-selected, #1868DB)"} !important` } } }, /* Danger state */ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors '&.danger': { boxShadow: `0 0 0 1px ${"var(--ds-border-danger, #E2483D)"}`, // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors '.ak-editor-panel__icon': { // eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles color: `${"var(--ds-icon-danger, #C9372C)"} !important` }, // 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 [`.${SyncBlockLabelSharedCssClassName.labelClassName}`]: { backgroundColor: "var(--ds-background-danger, #FFECEB)", top: '-14px', paddingBottom: "var(--ds-space-050, 4px)", paddingTop: "var(--ds-space-050, 4px)", // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors '> span': { // eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles color: `${"var(--ds-text-danger, #AE2E24)"} !important` } } }, /* Node disabled state */ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors, @atlaskit/ui-styling-standard/no-unsafe-values, @atlaskit/ui-styling-standard/no-imported-style-values [`&.${SyncBlockStateCssClassName.disabledClassName}`]: { backgroundColor: "var(--ds-background-disabled, #17171708)", boxShadow: `0 0 0 1px ${"var(--ds-border-disabled, #0515240F)"}`, userSelect: 'none', // 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 [`.${SyncBlockLabelSharedCssClassName.labelClassName}`]: { backgroundColor: "var(--ds-surface, #FFFFFF)", '&::before': { border: 'none' } } }, /* Creation loading state */ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors, @atlaskit/ui-styling-standard/no-unsafe-values, @atlaskit/ui-styling-standard/no-imported-style-values [`&.${SyncBlockStateCssClassName.creationLoadingClassName}`]: { animation: `${keyframes({ from: { '--angle': '0deg' }, to: { '--angle': '360deg' } })} 2s linear infinite`, border: '1px solid transparent', background: `linear-gradient(${"var(--ds-surface, #FFFFFF)"}, ${"var(--ds-surface, #FFFFFF)"}) padding-box, conic-gradient(from var(--angle), #1868DB, ${"var(--ds-background-accent-purple-subtlest-pressed, #E3BDFA)"}, #3279E0, #1868DB) border-box`, backgroundClip: 'padding-box, border-box', boxShadow: 'none', transition: 'boxShadow 200ms ease-in', // 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 [`.${SyncBlockLabelSharedCssClassName.labelClassName}`]: { display: 'none' } }, /* Error state */ /* In error state sync block should have disabled background colour */ // 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 [`:has(.${SyncBlockSharedCssClassName.error})`]: { backgroundColor: "var(--ds-background-disabled, #17171708)" }, // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values, @atlaskit/ui-styling-standard/no-imported-style-values [`:has(.${SyncBlockSharedCssClassName.loading})`]: { boxShadow: `0 0 0 1px ${"var(--ds-border, #0B120E24)"}`, // 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 [`.${SyncBlockLabelSharedCssClassName.labelClassName}`]: { opacity: 0, visibility: 'hidden' } }, /* Live doc view mode state */ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors, @atlaskit/ui-styling-standard/no-unsafe-values, @atlaskit/ui-styling-standard/no-imported-style-values [`&.${SyncBlockStateCssClassName.viewModeClassName}`]: { boxShadow: 'none', backgroundColor: 'unset', // 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 [`.${SyncBlockLabelSharedCssClassName.labelClassName}`]: { opacity: 0, visibility: 'hidden' } }, /* Dragging state */ // 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 [`&.${SyncBlockStateCssClassName.draggingClassName}`]: { boxShadow: `0 0 0 1px ${"var(--ds-border, #0B120E24)"}`, // 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 [`.${SyncBlockLabelSharedCssClassName.labelClassName}`]: { opacity: 1, visibility: 'visible' } }, // 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 [`.${BodiedSyncBlockSharedCssClassName.content}`]: { paddingTop: 0, paddingBottom: 0, // eslint-disable-next-line @atlaskit/design-system/use-tokens-space paddingLeft: '19px', // eslint-disable-next-line @atlaskit/design-system/use-tokens-space paddingRight: '18px', cursor: 'text' }, // 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 [`.${SyncBlockSharedCssClassName.renderer}`]: { paddingTop: 0, paddingBottom: 0, // eslint-disable-next-line @atlaskit/design-system/use-tokens-space paddingLeft: '19px', // eslint-disable-next-line @atlaskit/design-system/use-tokens-space paddingRight: '18px' } }, // 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 [`.${BodiedSyncBlockSharedCssClassName.content}`]: { // First child node that has drag handle widget next to it is overridden with marginTop: 0, see globalStyles in editor-plugin-block-controls/src/ui/global-styles.tsx // Hence we set marginTop: 0 when by default to avoid flickering when hovering on and off the first node // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-selectors, @atlaskit/ui-styling-standard/no-nested-selectors '> :nth-child(1 of :not(style, .ProseMirror-gapcursor, .ProseMirror-widget, span))': { marginTop: 0 } }, // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors, @atlaskit/ui-styling-standard/no-unsafe-selectors, @atlaskit/ui-styling-standard/no-unsafe-values, @atlaskit/ui-styling-standard/no-imported-style-values [`.${SyncBlockSharedCssClassName.renderer}`]: { // First child node in bodiedSyncBlock is overridden with marginTop: 0, hence apply the same style to syncBlock for consistency // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-selectors, @atlaskit/ui-styling-standard/no-nested-selectors '.ak-renderer-document > :first-child': { marginTop: 0 } } }, // 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 [`.${SyncBlockLabelSharedCssClassName.labelClassName}`]: { borderRadius: "var(--ds-radius-small, 3px)", position: 'absolute', gap: "var(--ds-space-050, 4px)", justifyContent: 'center', alignItems: 'center', display: 'flex', opacity: 0, visibility: 'hidden', boxShadow: 'none', zIndex: 1, paddingLeft: "var(--ds-space-100, 8px)", paddingRight: "var(--ds-space-100, 8px)", top: '-10px', right: "var(--ds-space-150, 12px)", backgroundColor: "var(--ds-surface, #FFFFFF)", maxWidth: '140px' } }); // Export the default styles with negative margins (original behavior) // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles export const syncBlockStyles = css({ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors '.ProseMirror': { // 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 [`.${SyncBlockSharedCssClassName.prefix}, .${BodiedSyncBlockSharedCssClassName.prefix}`]: { marginRight: `-19px`, marginLeft: `-19px` } } }); // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles export const syncBlockOverflowStyles = css({ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors '.ProseMirror': { // 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 [`.${BodiedSyncBlockSharedCssClassName.content}`]: { // Contain floated elements (wrap-left/wrap-right) within synced block borders // Use display: flow-root to create a block formatting context without clipping other content e.g. telepointers display: 'flow-root' }, // 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 [`.${SyncBlockSharedCssClassName.renderer}`]: { // Contain floated elements (wrap-left/wrap-right) within synced block borders // Use display: flow-root to create a block formatting context without clipping other content e.g. telepointers display: 'flow-root' } } }); // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles export const syncBlockFirstNodeStyles = css({ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values,@atlaskit/ui-styling-standard/no-nested-selectors,@atlaskit/ui-styling-standard/no-unsafe-values [`.ProseMirror > .fabric-editor-breakout-mark:first-child`]: { // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values,@atlaskit/ui-styling-standard/no-nested-selectors,@atlaskit/ui-styling-standard/no-unsafe-values [`.${SyncBlockSharedCssClassName.prefix}, .${BodiedSyncBlockSharedCssClassName.prefix}`]: { marginTop: 0 } } });