@atlaskit/editor-plugin-table 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/cjs/plugins/table/nodeviews/tableCell.js +5 -1
- package/dist/cjs/plugins/table/pm-plugins/decorations/plugin.js +1 -0
- package/dist/cjs/plugins/table/pm-plugins/decorations/utils/column-controls.js +1 -3
- package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.js +14 -16
- package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.js +1 -3
- package/dist/cjs/plugins/table/ui/common-styles.js +1 -3
- package/dist/cjs/plugins/table/ui/consts.js +15 -17
- package/dist/cjs/plugins/table/ui/ui-styles.js +10 -12
- package/dist/cjs/plugins/table/utils/decoration.js +19 -12
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/plugins/table/nodeviews/tableCell.js +5 -1
- package/dist/es2019/plugins/table/pm-plugins/decorations/plugin.js +1 -0
- package/dist/es2019/plugins/table/pm-plugins/decorations/utils/column-controls.js +1 -2
- package/dist/es2019/plugins/table/ui/FloatingContextualButton/styles.js +14 -15
- package/dist/es2019/plugins/table/ui/FloatingContextualMenu/styles.js +3 -4
- package/dist/es2019/plugins/table/ui/common-styles.js +20 -21
- package/dist/es2019/plugins/table/ui/consts.js +15 -16
- package/dist/es2019/plugins/table/ui/ui-styles.js +23 -24
- package/dist/es2019/plugins/table/utils/decoration.js +22 -13
- package/dist/es2019/version.json +1 -1
- package/dist/esm/plugins/table/nodeviews/tableCell.js +5 -1
- package/dist/esm/plugins/table/pm-plugins/decorations/plugin.js +1 -0
- package/dist/esm/plugins/table/pm-plugins/decorations/utils/column-controls.js +1 -2
- package/dist/esm/plugins/table/ui/FloatingContextualButton/styles.js +14 -15
- package/dist/esm/plugins/table/ui/FloatingContextualMenu/styles.js +1 -2
- package/dist/esm/plugins/table/ui/common-styles.js +1 -2
- package/dist/esm/plugins/table/ui/consts.js +15 -16
- package/dist/esm/plugins/table/ui/ui-styles.js +10 -11
- package/dist/esm/plugins/table/utils/decoration.js +19 -12
- package/dist/esm/version.json +1 -1
- package/package.json +1 -1
- package/src/__tests__/visual-regression/__image_snapshots__/cell-options-menu-ts-table-cell-options-menu-delete-row-menu-item-should-remove-the-table-row-on-click-1-snap.png +2 -2
- package/src/plugins/table/nodeviews/tableCell.tsx +3 -1
- package/src/plugins/table/pm-plugins/decorations/plugin.ts +1 -0
- package/src/plugins/table/pm-plugins/decorations/utils/column-controls.ts +1 -1
- package/src/plugins/table/utils/decoration.ts +36 -20
|
@@ -2,12 +2,11 @@ import { css } from '@emotion/react';
|
|
|
2
2
|
import { B75, DN0, DN60, N0, N20, N30A, N700 } from '@atlaskit/theme/colors';
|
|
3
3
|
import { borderRadius } from '@atlaskit/theme/constants';
|
|
4
4
|
import { contextualMenuTriggerSize } from '../consts';
|
|
5
|
-
import { token } from '@atlaskit/tokens';
|
|
6
5
|
import { themed } from '@atlaskit/theme/components';
|
|
7
6
|
export const tableFloatingCellButtonStyles = props => css`
|
|
8
7
|
> div {
|
|
9
8
|
// Sits behind button to provide surface-color background
|
|
10
|
-
background: ${
|
|
9
|
+
background: ${`var(--ds-surface, ${N20})`};
|
|
11
10
|
border-radius: ${borderRadius()}px;
|
|
12
11
|
display: flex;
|
|
13
12
|
height: ${contextualMenuTriggerSize + 2}px;
|
|
@@ -15,12 +14,12 @@ export const tableFloatingCellButtonStyles = props => css`
|
|
|
15
14
|
}
|
|
16
15
|
&& button {
|
|
17
16
|
background: ${themed({
|
|
18
|
-
light:
|
|
19
|
-
dark:
|
|
17
|
+
light: "var(--ds-background-neutral, none)",
|
|
18
|
+
dark: "var(--ds-background-neutral, none)"
|
|
20
19
|
})(props)};
|
|
21
20
|
flex-direction: column;
|
|
22
21
|
margin: 2px;
|
|
23
|
-
outline: 2px solid ${
|
|
22
|
+
outline: 2px solid ${`var(--ds-border, ${N0})`};
|
|
24
23
|
border-radius: 1px;
|
|
25
24
|
padding: 0;
|
|
26
25
|
height: calc(100% - 4px);
|
|
@@ -28,14 +27,14 @@ export const tableFloatingCellButtonStyles = props => css`
|
|
|
28
27
|
}
|
|
29
28
|
&& button:hover {
|
|
30
29
|
background: ${themed({
|
|
31
|
-
light:
|
|
32
|
-
dark:
|
|
30
|
+
light: `var(--ds-background-neutral-hovered, ${N30A})`,
|
|
31
|
+
dark: `var(--ds-background-neutral-hovered, ${DN60})`
|
|
33
32
|
})(props)};
|
|
34
33
|
}
|
|
35
34
|
&& button:active {
|
|
36
35
|
background: ${themed({
|
|
37
|
-
light:
|
|
38
|
-
dark:
|
|
36
|
+
light: "var(--ds-background-neutral-pressed, rgba(179, 212, 255, 0.6))",
|
|
37
|
+
dark: `var(--ds-background-neutral-pressed, ${B75})`
|
|
39
38
|
})(props)};
|
|
40
39
|
}
|
|
41
40
|
&& button > span {
|
|
@@ -48,20 +47,20 @@ export const tableFloatingCellButtonStyles = props => css`
|
|
|
48
47
|
export const tableFloatingCellButtonSelectedStyles = props => css`
|
|
49
48
|
&& button {
|
|
50
49
|
background: ${themed({
|
|
51
|
-
light:
|
|
52
|
-
dark:
|
|
50
|
+
light: `var(--ds-background-selected, ${N700})`,
|
|
51
|
+
dark: `var(--ds-background-selected, ${DN0})`
|
|
53
52
|
})(props)};
|
|
54
53
|
}
|
|
55
54
|
&& button:hover {
|
|
56
55
|
background: ${themed({
|
|
57
|
-
light:
|
|
58
|
-
dark:
|
|
56
|
+
light: `var(--ds-background-selected-hovered, ${N700})`,
|
|
57
|
+
dark: `var(--ds-background-selected-hovered, ${DN0})`
|
|
59
58
|
})(props)};
|
|
60
59
|
}
|
|
61
60
|
&& button:active {
|
|
62
61
|
background: ${themed({
|
|
63
|
-
light:
|
|
64
|
-
dark:
|
|
62
|
+
light: `var(--ds-background-selected-pressed, ${N700})`,
|
|
63
|
+
dark: `var(--ds-background-selected-pressed, ${DN0})`
|
|
65
64
|
})(props)};
|
|
66
65
|
}
|
|
67
66
|
`;
|
|
@@ -4,7 +4,6 @@ import { N60A, N90 } from '@atlaskit/theme/colors';
|
|
|
4
4
|
import { contextualMenuDropdownWidth } from '../consts';
|
|
5
5
|
import { TableCssClassName as ClassName } from '../../types';
|
|
6
6
|
import { borderRadius } from '@atlaskit/theme/constants';
|
|
7
|
-
import { token } from '@atlaskit/tokens';
|
|
8
7
|
export const cellColourPreviewStyles = selectedColor => css`
|
|
9
8
|
&::before {
|
|
10
9
|
background: ${selectedColor};
|
|
@@ -13,8 +12,8 @@ export const cellColourPreviewStyles = selectedColor => css`
|
|
|
13
12
|
export const tablePopupStyles = css`
|
|
14
13
|
.${ClassName.CONTEXTUAL_SUBMENU} {
|
|
15
14
|
border-radius: ${borderRadius()}px;
|
|
16
|
-
background: ${
|
|
17
|
-
box-shadow: ${
|
|
15
|
+
background: ${"var(--ds-surface-overlay, white)"};
|
|
16
|
+
box-shadow: ${`var(--ds-shadow-overlay, ${`0 4px 8px -2px ${N60A}, 0 0 1px ${N60A}`})`};
|
|
18
17
|
display: block;
|
|
19
18
|
position: absolute;
|
|
20
19
|
top: 0;
|
|
@@ -42,7 +41,7 @@ export const tablePopupStyles = css`
|
|
|
42
41
|
content: '›';
|
|
43
42
|
margin-left: 4px;
|
|
44
43
|
line-height: 20px;
|
|
45
|
-
color: ${
|
|
44
|
+
color: ${`var(--ds-icon, ${N90})`};
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
47
|
`;
|
|
@@ -7,7 +7,6 @@ import { scrollbarStyles } from '@atlaskit/editor-shared-styles/scrollbar';
|
|
|
7
7
|
import { TableCssClassName as ClassName } from '../types';
|
|
8
8
|
import { tableCellBackgroundColor, tableToolbarColor, tableBorderColor, tableCellSelectedColor, tableToolbarSelectedColor, tableBorderSelectedColor, tableCellDeleteColor, tableBorderDeleteColor, tableToolbarDeleteColor, tableBorderRadiusSize, tablePadding, tableScrollbarOffset, resizeHandlerAreaWidth, resizeLineWidth, tableToolbarSize, tableInsertColumnButtonSize, tableControlsSpacing, tableTextColor, stickyRowZIndex, columnControlsDecorationHeight, stickyRowOffsetTop, stickyHeaderBorderBottomWidth } from './consts';
|
|
9
9
|
import { HeaderButton, HeaderButtonHover, HeaderButtonDanger, insertColumnButtonWrapper, insertRowButtonWrapper, columnControlsLineMarker, DeleteButton, OverflowShadow, columnControlsDecoration, hoveredDeleteButton, hoveredCell, hoveredWarningCell, resizeHandle, InsertMarker } from './ui-styles';
|
|
10
|
-
import { token } from '@atlaskit/tokens';
|
|
11
10
|
const cornerControlHeight = tableToolbarSize + 1;
|
|
12
11
|
/*
|
|
13
12
|
compensating for half of the insert column button
|
|
@@ -61,14 +60,14 @@ export const tableStyles = props => {
|
|
|
61
60
|
|
|
62
61
|
return css`
|
|
63
62
|
.${ClassName.LAYOUT_BUTTON} button {
|
|
64
|
-
background: ${
|
|
65
|
-
color: ${
|
|
63
|
+
background: ${`var(--ds-background-neutral, ${N20A})`};
|
|
64
|
+
color: ${`var(--ds-icon, ${N300})`};
|
|
66
65
|
cursor: none;
|
|
67
66
|
}
|
|
68
67
|
|
|
69
68
|
.${ClassName.LAYOUT_BUTTON}:not(.${ClassName.IS_RESIZING}) button:hover {
|
|
70
|
-
background: ${
|
|
71
|
-
color: ${
|
|
69
|
+
background: ${`var(--ds-background-neutral-hovered, ${B300})`};
|
|
70
|
+
color: ${"var(--ds-icon, white)"} !important;
|
|
72
71
|
cursor: pointer;
|
|
73
72
|
}
|
|
74
73
|
|
|
@@ -131,7 +130,7 @@ export const tableStyles = props => {
|
|
|
131
130
|
|
|
132
131
|
position: fixed !important;
|
|
133
132
|
z-index: ${akEditorStickyHeaderZIndex} !important;
|
|
134
|
-
box-shadow: 0px -${stickyRowOffsetTop}px ${
|
|
133
|
+
box-shadow: 0px -${stickyRowOffsetTop}px ${"var(--ds-surface, white)"};
|
|
135
134
|
border-right: 0 none;
|
|
136
135
|
/* top set by NumberColumn component */
|
|
137
136
|
}
|
|
@@ -140,7 +139,7 @@ export const tableStyles = props => {
|
|
|
140
139
|
position: fixed !important;
|
|
141
140
|
/* needs to be above row controls */
|
|
142
141
|
z-index: ${akEditorSmallZIndex} !important;
|
|
143
|
-
background: ${
|
|
142
|
+
background: ${"var(--ds-surface, white)"};
|
|
144
143
|
|
|
145
144
|
width: ${tableToolbarSize}px;
|
|
146
145
|
height: ${tableToolbarSize}px;
|
|
@@ -165,13 +164,13 @@ export const tableStyles = props => {
|
|
|
165
164
|
z-index: ${akEditorStickyHeaderZIndex} !important;
|
|
166
165
|
display: flex;
|
|
167
166
|
border-left: ${tableToolbarSize}px solid
|
|
168
|
-
${
|
|
167
|
+
${"var(--ds-surface, white)"};
|
|
169
168
|
margin-left: -${tableToolbarSize}px;
|
|
170
169
|
}
|
|
171
170
|
|
|
172
171
|
.${ClassName.TABLE_STICKY} col:first-of-type {
|
|
173
172
|
/* moving rows out of a table layout does weird things in Chrome */
|
|
174
|
-
border-right: 1px solid ${
|
|
173
|
+
border-right: 1px solid ${"var(--ds-surface, green)"};
|
|
175
174
|
}
|
|
176
175
|
|
|
177
176
|
tr.sticky {
|
|
@@ -188,12 +187,12 @@ export const tableStyles = props => {
|
|
|
188
187
|
grid-auto-flow: column;
|
|
189
188
|
|
|
190
189
|
/* background for where controls apply */
|
|
191
|
-
background: ${
|
|
190
|
+
background: ${"var(--ds-surface, white)"};
|
|
192
191
|
box-sizing: content-box;
|
|
193
192
|
|
|
194
193
|
margin-top: 2px;
|
|
195
194
|
|
|
196
|
-
box-shadow: ${
|
|
195
|
+
box-shadow: ${`var(--ds-shadow-overflow, ${`0 6px 4px -4px ${N40A}`})`};
|
|
197
196
|
margin-left: -1px;
|
|
198
197
|
|
|
199
198
|
&.no-pointer-events {
|
|
@@ -279,7 +278,7 @@ export const tableStyles = props => {
|
|
|
279
278
|
|
|
280
279
|
.${ClassName.CORNER_CONTROLS}.sticky {
|
|
281
280
|
border-top: ${tableControlsSpacing - tableToolbarSize + 2}px solid
|
|
282
|
-
${
|
|
281
|
+
${"var(--ds-surface, white)"};
|
|
283
282
|
}
|
|
284
283
|
|
|
285
284
|
${(_props$featureFlags = props.featureFlags) !== null && _props$featureFlags !== void 0 && _props$featureFlags.stickyHeadersOptimization ? sentinelStyles : ''}
|
|
@@ -367,7 +366,7 @@ export const tableStyles = props => {
|
|
|
367
366
|
}
|
|
368
367
|
.active .${ClassName.CONTROLS_CORNER_BUTTON} {
|
|
369
368
|
border-color: ${tableBorderSelectedColor};
|
|
370
|
-
background: ${
|
|
369
|
+
background: ${`var(--ds-background-selected, ${tableToolbarSelectedColor})`};
|
|
371
370
|
}
|
|
372
371
|
|
|
373
372
|
.${ClassName.TABLE_CONTAINER}[data-number-column='true'] {
|
|
@@ -381,14 +380,14 @@ export const tableStyles = props => {
|
|
|
381
380
|
|
|
382
381
|
:not(.${ClassName.IS_RESIZING}) .${ClassName.CONTROLS_CORNER_BUTTON}:hover {
|
|
383
382
|
border-color: ${tableBorderSelectedColor};
|
|
384
|
-
background: ${
|
|
383
|
+
background: ${`var(--ds-background-selected, ${tableToolbarSelectedColor})`};
|
|
385
384
|
cursor: pointer;
|
|
386
385
|
}
|
|
387
386
|
|
|
388
387
|
:not(.${ClassName.IS_RESIZING})
|
|
389
388
|
.${ClassName.CONTROLS_CORNER_BUTTON}.${ClassName.HOVERED_CELL_IN_DANGER} {
|
|
390
389
|
border-color: ${tableBorderDeleteColor};
|
|
391
|
-
background: ${
|
|
390
|
+
background: ${`var(--ds-background-danger, ${tableToolbarDeleteColor})`};
|
|
392
391
|
}
|
|
393
392
|
|
|
394
393
|
/* Row controls */
|
|
@@ -489,10 +488,10 @@ export const tableStyles = props => {
|
|
|
489
488
|
.${ClassName.NUMBERED_COLUMN_BUTTON}.active {
|
|
490
489
|
border-bottom: 1px solid ${tableBorderSelectedColor};
|
|
491
490
|
border-color: ${tableBorderSelectedColor};
|
|
492
|
-
background-color: ${
|
|
491
|
+
background-color: ${`var(--ds-background-selected, ${tableToolbarSelectedColor})`};
|
|
493
492
|
position: relative;
|
|
494
493
|
z-index: ${akEditorUnitZIndex};
|
|
495
|
-
color: ${
|
|
494
|
+
color: ${`var(--ds-text-selected, ${N0})`};
|
|
496
495
|
}
|
|
497
496
|
}
|
|
498
497
|
}
|
|
@@ -503,16 +502,16 @@ export const tableStyles = props => {
|
|
|
503
502
|
.${ClassName.NUMBERED_COLUMN_BUTTON}:hover {
|
|
504
503
|
border-bottom: 1px solid ${tableBorderSelectedColor};
|
|
505
504
|
border-color: ${tableBorderSelectedColor};
|
|
506
|
-
background-color: ${
|
|
505
|
+
background-color: ${`var(--ds-background-selected, ${tableToolbarSelectedColor})`};
|
|
507
506
|
position: relative;
|
|
508
507
|
z-index: ${akEditorUnitZIndex};
|
|
509
|
-
color: ${
|
|
508
|
+
color: ${`var(--ds-text-selected, ${N0})`};
|
|
510
509
|
}
|
|
511
510
|
.${ClassName.NUMBERED_COLUMN_BUTTON}.${ClassName.HOVERED_CELL_IN_DANGER} {
|
|
512
|
-
background-color: ${
|
|
511
|
+
background-color: ${`var(--ds-background-danger, ${tableToolbarDeleteColor})`};
|
|
513
512
|
border: 1px solid ${tableBorderDeleteColor};
|
|
514
513
|
border-left: 0;
|
|
515
|
-
color: ${
|
|
514
|
+
color: ${`var(--ds-text-danger, ${R500})`};
|
|
516
515
|
position: relative;
|
|
517
516
|
z-index: ${akEditorUnitZIndex};
|
|
518
517
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { B200, B300, N20, R400, R75, DN400, N200, DN30, N0 } from '@atlaskit/theme/colors';
|
|
2
2
|
import { tableCellBorderWidth, tableMarginTop } from '@atlaskit/editor-common/styles';
|
|
3
3
|
import { akEditorTableBorder, akEditorTableBorderDark, akEditorTableToolbar, akEditorTableToolbarDark, akEditorTableToolbarSize, akEditorUnitZIndex, akRichMediaResizeZIndex } from '@atlaskit/editor-shared-styles';
|
|
4
|
-
import { token } from '@atlaskit/tokens';
|
|
5
4
|
import { RESIZE_HANDLE_AREA_DECORATION_GAP } from '../types';
|
|
6
5
|
import { themed } from '@atlaskit/theme/components';
|
|
7
6
|
/**
|
|
@@ -11,29 +10,29 @@ import { themed } from '@atlaskit/theme/components';
|
|
|
11
10
|
// eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage
|
|
12
11
|
|
|
13
12
|
export const tableCellBackgroundColor = themed({
|
|
14
|
-
light:
|
|
15
|
-
dark:
|
|
13
|
+
light: `var(--ds-surface, ${N0})`,
|
|
14
|
+
dark: `var(--ds-surface, ${DN30})`
|
|
16
15
|
});
|
|
17
16
|
export const tableToolbarColor = themed({
|
|
18
|
-
light:
|
|
19
|
-
dark:
|
|
17
|
+
light: `var(--ds-background-neutral-subtle, ${akEditorTableToolbar})`,
|
|
18
|
+
dark: `var(--ds-background-neutral-subtle, ${akEditorTableToolbarDark})`
|
|
20
19
|
});
|
|
21
20
|
export const tableTextColor = themed({
|
|
22
|
-
light:
|
|
23
|
-
dark:
|
|
21
|
+
light: `var(--ds-text-subtlest, ${N200})`,
|
|
22
|
+
dark: `var(--ds-text-subtlest, ${DN400})`
|
|
24
23
|
});
|
|
25
24
|
export const tableBorderColor = themed({
|
|
26
|
-
light:
|
|
27
|
-
dark:
|
|
25
|
+
light: `var(--ds-border, ${akEditorTableBorder})`,
|
|
26
|
+
dark: `var(--ds-border, ${akEditorTableBorderDark})`
|
|
28
27
|
});
|
|
29
|
-
export const tableFloatingControlsColor =
|
|
28
|
+
export const tableFloatingControlsColor = `var(--ds-background-neutral, ${N20})`; // TODO: https://product-fabric.atlassian.net/browse/DSP-4461
|
|
30
29
|
|
|
31
|
-
export const tableCellSelectedColor =
|
|
32
|
-
export const tableToolbarSelectedColor =
|
|
33
|
-
export const tableBorderSelectedColor =
|
|
34
|
-
export const tableCellDeleteColor =
|
|
35
|
-
export const tableBorderDeleteColor =
|
|
36
|
-
export const tableToolbarDeleteColor =
|
|
30
|
+
export const tableCellSelectedColor = "var(--ds-blanket-selected, rgba(179, 212, 255, 0.3))";
|
|
31
|
+
export const tableToolbarSelectedColor = `var(--ds-background-selected-bold, ${B200})`;
|
|
32
|
+
export const tableBorderSelectedColor = `var(--ds-border-selected, ${B300})`;
|
|
33
|
+
export const tableCellDeleteColor = "var(--ds-blanket-danger, rgba(255, 235, 230, 0.3))";
|
|
34
|
+
export const tableBorderDeleteColor = `var(--ds-border-danger, ${R400})`;
|
|
35
|
+
export const tableToolbarDeleteColor = `var(--ds-background-danger-bold, ${R75})`;
|
|
37
36
|
export const tableBorderRadiusSize = 3;
|
|
38
37
|
export const tablePadding = 8;
|
|
39
38
|
export const tableScrollbarOffset = 15;
|
|
@@ -5,7 +5,6 @@ import { N40A, B300, N300, R300, N20A, N60A, N0, Y50, Y200 } from '@atlaskit/the
|
|
|
5
5
|
import { tableToolbarColor, tableBorderColor, tableToolbarSelectedColor, tableBorderSelectedColor, tableCellDeleteColor, tableBorderDeleteColor, tableToolbarDeleteColor, lineMarkerSize, columnControlsDecorationHeight, columnControlsZIndex, columnControlsSelectedZIndex, resizeHandlerAreaWidth, resizeLineWidth, resizeHandlerZIndex, tableToolbarSize, tableInsertColumnButtonSize, tableDeleteButtonSize } from './consts';
|
|
6
6
|
import { TableCssClassName as ClassName } from '../types';
|
|
7
7
|
import { borderRadius } from '@atlaskit/theme/constants';
|
|
8
|
-
import { token } from '@atlaskit/tokens';
|
|
9
8
|
|
|
10
9
|
const InsertLine = cssString => css`
|
|
11
10
|
.${ClassName.CONTROLS_INSERT_LINE} {
|
|
@@ -81,22 +80,22 @@ export const HeaderButton = (props, cssString) => css`
|
|
|
81
80
|
}
|
|
82
81
|
|
|
83
82
|
.active .${ClassName.CONTROLS_BUTTON} {
|
|
84
|
-
color: ${
|
|
85
|
-
background-color: ${
|
|
83
|
+
color: ${`var(--ds-icon-inverse, ${N0})`};
|
|
84
|
+
background-color: ${`var(--ds-background-selected, ${tableToolbarSelectedColor})`};
|
|
86
85
|
border-color: ${tableBorderSelectedColor};
|
|
87
86
|
}
|
|
88
87
|
`;
|
|
89
88
|
export const HeaderButtonHover = () => css`
|
|
90
89
|
.${ClassName.CONTROLS_BUTTON}:hover {
|
|
91
|
-
color: ${
|
|
92
|
-
background-color: ${
|
|
90
|
+
color: ${`var(--ds-icon-inverse, ${N0})`};
|
|
91
|
+
background-color: ${`var(--ds-background-selected, ${tableToolbarSelectedColor})`};
|
|
93
92
|
border-color: ${tableBorderSelectedColor};
|
|
94
93
|
cursor: pointer;
|
|
95
94
|
}
|
|
96
95
|
`;
|
|
97
96
|
export const HeaderButtonDanger = () => css`
|
|
98
97
|
.${ClassName.HOVERED_CELL_IN_DANGER} .${ClassName.CONTROLS_BUTTON} {
|
|
99
|
-
background-color: ${
|
|
98
|
+
background-color: ${`var(--ds-background-danger, ${tableToolbarDeleteColor})`};
|
|
100
99
|
border-color: ${tableBorderDeleteColor};
|
|
101
100
|
position: relative;
|
|
102
101
|
z-index: ${akEditorUnitZIndex};
|
|
@@ -116,9 +115,9 @@ const InsertButton = () => css`
|
|
|
116
115
|
}
|
|
117
116
|
.${ClassName.CONTROLS_INSERT_BUTTON} {
|
|
118
117
|
${Button(`
|
|
119
|
-
background: ${
|
|
120
|
-
box-shadow: ${
|
|
121
|
-
color: ${
|
|
118
|
+
background: ${"var(--ds-surface-overlay, white)"};
|
|
119
|
+
box-shadow: ${`var(--ds-shadow-overlay, ${`0 4px 8px -2px ${N60A}, 0 0 1px ${N60A}`})`};
|
|
120
|
+
color: ${`var(--ds-icon, ${N300})`};
|
|
122
121
|
`)}
|
|
123
122
|
}
|
|
124
123
|
.${ClassName.CONTROLS_INSERT_LINE} {
|
|
@@ -131,8 +130,8 @@ const InsertButton = () => css`
|
|
|
131
130
|
|
|
132
131
|
const InsertButtonHover = () => css`
|
|
133
132
|
.${ClassName.CONTROLS_INSERT_BUTTON}:hover {
|
|
134
|
-
background: ${
|
|
135
|
-
color: ${
|
|
133
|
+
background: ${`var(--ds-background-brand-bold, ${B300})`};
|
|
134
|
+
color: ${"var(--ds-icon-inverse, white)"};
|
|
136
135
|
cursor: pointer;
|
|
137
136
|
}
|
|
138
137
|
`;
|
|
@@ -175,15 +174,15 @@ export const DeleteButton = css`
|
|
|
175
174
|
.${ClassName.CONTROLS_DELETE_BUTTON_WRAP} {
|
|
176
175
|
.${ClassName.CONTROLS_DELETE_BUTTON} {
|
|
177
176
|
${Button(`
|
|
178
|
-
background: ${
|
|
179
|
-
color: ${
|
|
177
|
+
background: ${`var(--ds-background-neutral, ${N20A})`};
|
|
178
|
+
color: ${`var(--ds-icon, ${N300})`};
|
|
180
179
|
`)}
|
|
181
180
|
}
|
|
182
181
|
}
|
|
183
182
|
|
|
184
183
|
.${ClassName.CONTROLS_DELETE_BUTTON}:hover {
|
|
185
|
-
background: ${
|
|
186
|
-
color: ${
|
|
184
|
+
background: ${`var(--ds-background-danger-bold, ${R300})`};
|
|
185
|
+
color: ${"var(--ds-icon-inverse, white)"};
|
|
187
186
|
cursor: pointer;
|
|
188
187
|
}
|
|
189
188
|
`;
|
|
@@ -201,11 +200,11 @@ export const OverflowShadow = props => css`
|
|
|
201
200
|
background: linear-gradient(
|
|
202
201
|
to left,
|
|
203
202
|
transparent 0,
|
|
204
|
-
${
|
|
203
|
+
${`var(--ds-shadow-overflow-spread, ${N40A})`} 100%
|
|
205
204
|
),
|
|
206
205
|
linear-gradient(
|
|
207
206
|
to right,
|
|
208
|
-
${
|
|
207
|
+
${"var(--ds-shadow-overflow-perimeter, transparent)"} 0px,
|
|
209
208
|
transparent 1px
|
|
210
209
|
);
|
|
211
210
|
left: 0px;
|
|
@@ -217,11 +216,11 @@ export const OverflowShadow = props => css`
|
|
|
217
216
|
background: linear-gradient(
|
|
218
217
|
to right,
|
|
219
218
|
transparent 0,
|
|
220
|
-
${
|
|
219
|
+
${`var(--ds-shadow-overflow-spread, ${N40A})`} 100%
|
|
221
220
|
),
|
|
222
221
|
linear-gradient(
|
|
223
222
|
to left,
|
|
224
|
-
${
|
|
223
|
+
${"var(--ds-shadow-overflow-perimeter, transparent)"} 0px,
|
|
225
224
|
transparent 1px
|
|
226
225
|
);
|
|
227
226
|
left: calc(100% + 2px);
|
|
@@ -252,8 +251,8 @@ const columnHeaderButton = (props, cssString) => css`
|
|
|
252
251
|
`;
|
|
253
252
|
|
|
254
253
|
const columnHeaderButtonSelected = css`
|
|
255
|
-
color: ${
|
|
256
|
-
background-color: ${
|
|
254
|
+
color: ${`var(--ds-text-inverse, ${N0})`};
|
|
255
|
+
background-color: ${`var(--ds-background-selected, ${tableToolbarSelectedColor})`};
|
|
257
256
|
border-color: ${tableBorderSelectedColor};
|
|
258
257
|
z-index: ${columnControlsSelectedZIndex};
|
|
259
258
|
`;
|
|
@@ -326,7 +325,7 @@ export const columnControlsDecoration = props => css`
|
|
|
326
325
|
|
|
327
326
|
&.${ClassName.HOVERED_CELL_IN_DANGER}
|
|
328
327
|
.${ClassName.COLUMN_CONTROLS_DECORATIONS}::after {
|
|
329
|
-
background-color: ${
|
|
328
|
+
background-color: ${`var(--ds-background-danger, ${tableToolbarDeleteColor})`};
|
|
330
329
|
border: 1px solid ${tableBorderDeleteColor};
|
|
331
330
|
border-bottom: none;
|
|
332
331
|
z-index: ${akEditorUnitZIndex * 100};
|
|
@@ -372,8 +371,8 @@ export const hoveredWarningCell = css`
|
|
|
372
371
|
:not(.${ClassName.IS_RESIZING})
|
|
373
372
|
.${ClassName.TABLE_CONTAINER}:not(.${ClassName.HOVERED_DELETE_BUTTON}) {
|
|
374
373
|
td.${ClassName.HOVERED_CELL_WARNING} {
|
|
375
|
-
background-color: ${
|
|
376
|
-
border: 1px solid ${
|
|
374
|
+
background-color: ${`var(--ds-background-warning, ${Y50})`} !important; // We need to override the background-color added to the cell
|
|
375
|
+
border: 1px solid ${`var(--ds-border-warning, ${Y200})`};
|
|
377
376
|
}
|
|
378
377
|
}
|
|
379
378
|
`;
|
|
@@ -110,14 +110,21 @@ export const createColumnControlsDecoration = selection => {
|
|
|
110
110
|
const cells = getCellsInRow(0)(selection) || [];
|
|
111
111
|
let index = 0;
|
|
112
112
|
return cells.map(cell => {
|
|
113
|
-
const colspan = cell.node.attrs.colspan || 1;
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
113
|
+
const colspan = cell.node.attrs.colspan || 1; // It's important these values are scoped locally as the widget callback could be executed anytime in the future
|
|
114
|
+
// and we want to avoid value leak
|
|
115
|
+
|
|
116
|
+
const startIndex = index;
|
|
117
|
+
const endIndex = startIndex + colspan; // The next cell start index will commence from the current cell end index.
|
|
118
|
+
|
|
119
|
+
index = endIndex;
|
|
120
|
+
return Decoration.widget(cell.pos + 1, () => {
|
|
121
|
+
const element = document.createElement('div');
|
|
122
|
+
element.classList.add(ClassName.COLUMN_CONTROLS_DECORATIONS);
|
|
123
|
+
element.dataset.startIndex = `${startIndex}`;
|
|
124
|
+
element.dataset.endIndex = `${endIndex}`;
|
|
125
|
+
return element;
|
|
126
|
+
}, {
|
|
127
|
+
key: `${TableDecorations.COLUMN_CONTROLS_DECORATIONS}_${endIndex}`,
|
|
121
128
|
// this decoration should be the first one, even before gap cursor.
|
|
122
129
|
side: -100
|
|
123
130
|
});
|
|
@@ -226,12 +233,14 @@ export const createResizeHandleDecoration = (tr, rowIndexTarget, columnEndIndexT
|
|
|
226
233
|
}
|
|
227
234
|
|
|
228
235
|
const createResizerHandleDecoration = (cellColumnPositioning, columnIndex, rowIndex, cellPos, cellNode) => {
|
|
229
|
-
const element = document.createElement('div');
|
|
230
|
-
element.classList.add(ClassName.RESIZE_HANDLE_DECORATION);
|
|
231
|
-
element.dataset.startIndex = `${cellColumnPositioning.left}`;
|
|
232
|
-
element.dataset.endIndex = `${cellColumnPositioning.right}`;
|
|
233
236
|
const position = cellPos + cellNode.nodeSize - 1;
|
|
234
|
-
return Decoration.widget(position,
|
|
237
|
+
return Decoration.widget(position, () => {
|
|
238
|
+
const element = document.createElement('div');
|
|
239
|
+
element.classList.add(ClassName.RESIZE_HANDLE_DECORATION);
|
|
240
|
+
element.dataset.startIndex = `${cellColumnPositioning.left}`;
|
|
241
|
+
element.dataset.endIndex = `${cellColumnPositioning.right}`;
|
|
242
|
+
return element;
|
|
243
|
+
}, {
|
|
235
244
|
key: `${TableDecorations.COLUMN_RESIZING_HANDLE}_${rowIndex}_${columnIndex}`
|
|
236
245
|
});
|
|
237
246
|
};
|
package/dist/es2019/version.json
CHANGED
|
@@ -92,7 +92,11 @@ var TableCellNodeView = /*#__PURE__*/function () {
|
|
|
92
92
|
key: "update",
|
|
93
93
|
value: function update(node) {
|
|
94
94
|
var didUpdate = this.updateNodeView(node);
|
|
95
|
-
|
|
95
|
+
|
|
96
|
+
if (didUpdate) {
|
|
97
|
+
this.node = node;
|
|
98
|
+
}
|
|
99
|
+
|
|
96
100
|
return didUpdate;
|
|
97
101
|
}
|
|
98
102
|
}, {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
|
|
2
2
|
import { findTable } from '@atlaskit/editor-tables/utils';
|
|
3
|
-
import { DecorationSet } from 'prosemirror-view';
|
|
4
3
|
import { TableDecorations } from '../../../types';
|
|
5
4
|
import { createColumnControlsDecoration, createColumnSelectedDecoration, findColumnControlSelectedDecoration, findControlsHoverDecoration, updateDecorations } from '../../../utils/decoration';
|
|
6
5
|
import { composeDecorations } from './compose-decorations';
|
|
@@ -65,7 +64,7 @@ export var buildColumnControlsDecorations = function buildColumnControlsDecorati
|
|
|
65
64
|
var decorationSet = _ref6.decorationSet,
|
|
66
65
|
tr = _ref6.tr;
|
|
67
66
|
return composeDecorations([removeColumnControlsSelectedDecoration, removeControlsHoverDecoration, maybeUpdateColumnSelectedDecoration, maybeUpdateColumnControlsDecoration])({
|
|
68
|
-
decorationSet:
|
|
67
|
+
decorationSet: decorationSet,
|
|
69
68
|
tr: tr
|
|
70
69
|
});
|
|
71
70
|
};
|
|
@@ -6,29 +6,28 @@ import { css } from '@emotion/react';
|
|
|
6
6
|
import { B75, DN0, DN60, N0, N20, N30A, N700 } from '@atlaskit/theme/colors';
|
|
7
7
|
import { borderRadius } from '@atlaskit/theme/constants';
|
|
8
8
|
import { contextualMenuTriggerSize } from '../consts';
|
|
9
|
-
import { token } from '@atlaskit/tokens';
|
|
10
9
|
import { themed } from '@atlaskit/theme/components';
|
|
11
10
|
export var tableFloatingCellButtonStyles = function tableFloatingCellButtonStyles(props) {
|
|
12
|
-
return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n > div {\n // Sits behind button to provide surface-color background\n background: ", ";\n border-radius: ", "px;\n display: flex;\n height: ", "px;\n flex-direction: column;\n }\n && button {\n background: ", ";\n flex-direction: column;\n margin: 2px;\n outline: 2px solid ", ";\n border-radius: 1px;\n padding: 0;\n height: calc(100% - 4px);\n display: flex;\n }\n && button:hover {\n background: ", ";\n }\n && button:active {\n background: ", ";\n }\n && button > span {\n margin: 0px -4px;\n }\n && span {\n pointer-events: none;\n }\n"])),
|
|
13
|
-
light:
|
|
14
|
-
dark:
|
|
15
|
-
})(props),
|
|
16
|
-
light:
|
|
17
|
-
dark:
|
|
11
|
+
return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n > div {\n // Sits behind button to provide surface-color background\n background: ", ";\n border-radius: ", "px;\n display: flex;\n height: ", "px;\n flex-direction: column;\n }\n && button {\n background: ", ";\n flex-direction: column;\n margin: 2px;\n outline: 2px solid ", ";\n border-radius: 1px;\n padding: 0;\n height: calc(100% - 4px);\n display: flex;\n }\n && button:hover {\n background: ", ";\n }\n && button:active {\n background: ", ";\n }\n && button > span {\n margin: 0px -4px;\n }\n && span {\n pointer-events: none;\n }\n"])), "var(--ds-surface, ".concat(N20, ")"), borderRadius(), contextualMenuTriggerSize + 2, themed({
|
|
12
|
+
light: "var(--ds-background-neutral, none)",
|
|
13
|
+
dark: "var(--ds-background-neutral, none)"
|
|
14
|
+
})(props), "var(--ds-border, ".concat(N0, ")"), themed({
|
|
15
|
+
light: "var(--ds-background-neutral-hovered, ".concat(N30A, ")"),
|
|
16
|
+
dark: "var(--ds-background-neutral-hovered, ".concat(DN60, ")")
|
|
18
17
|
})(props), themed({
|
|
19
|
-
light:
|
|
20
|
-
dark:
|
|
18
|
+
light: "var(--ds-background-neutral-pressed, rgba(179, 212, 255, 0.6))",
|
|
19
|
+
dark: "var(--ds-background-neutral-pressed, ".concat(B75, ")")
|
|
21
20
|
})(props));
|
|
22
21
|
};
|
|
23
22
|
export var tableFloatingCellButtonSelectedStyles = function tableFloatingCellButtonSelectedStyles(props) {
|
|
24
23
|
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n && button {\n background: ", ";\n }\n && button:hover {\n background: ", ";\n }\n && button:active {\n background: ", ";\n }\n"])), themed({
|
|
25
|
-
light:
|
|
26
|
-
dark:
|
|
24
|
+
light: "var(--ds-background-selected, ".concat(N700, ")"),
|
|
25
|
+
dark: "var(--ds-background-selected, ".concat(DN0, ")")
|
|
27
26
|
})(props), themed({
|
|
28
|
-
light:
|
|
29
|
-
dark:
|
|
27
|
+
light: "var(--ds-background-selected-hovered, ".concat(N700, ")"),
|
|
28
|
+
dark: "var(--ds-background-selected-hovered, ".concat(DN0, ")")
|
|
30
29
|
})(props), themed({
|
|
31
|
-
light:
|
|
32
|
-
dark:
|
|
30
|
+
light: "var(--ds-background-selected-pressed, ".concat(N700, ")"),
|
|
31
|
+
dark: "var(--ds-background-selected-pressed, ".concat(DN0, ")")
|
|
33
32
|
})(props));
|
|
34
33
|
};
|
|
@@ -8,8 +8,7 @@ import { N60A, N90 } from '@atlaskit/theme/colors';
|
|
|
8
8
|
import { contextualMenuDropdownWidth } from '../consts';
|
|
9
9
|
import { TableCssClassName as ClassName } from '../../types';
|
|
10
10
|
import { borderRadius } from '@atlaskit/theme/constants';
|
|
11
|
-
import { token } from '@atlaskit/tokens';
|
|
12
11
|
export var cellColourPreviewStyles = function cellColourPreviewStyles(selectedColor) {
|
|
13
12
|
return css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n &::before {\n background: ", ";\n }\n"])), selectedColor);
|
|
14
13
|
};
|
|
15
|
-
export var tablePopupStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n .", " {\n border-radius: ", "px;\n background: ", ";\n box-shadow: ", ";\n display: block;\n position: absolute;\n top: 0;\n left: ", "px;\n padding: 8px;\n\n > div {\n padding: 0;\n }\n }\n\n .", " {\n display: flex;\n\n &::before {\n content: '';\n display: block;\n border: 1px solid ", ";\n border-radius: ", "px;\n width: 20px;\n height: 20px;\n }\n\n &::after {\n content: '\u203A';\n margin-left: 4px;\n line-height: 20px;\n color: ", ";\n }\n }\n"])), ClassName.CONTEXTUAL_SUBMENU, borderRadius(),
|
|
14
|
+
export var tablePopupStyles = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n .", " {\n border-radius: ", "px;\n background: ", ";\n box-shadow: ", ";\n display: block;\n position: absolute;\n top: 0;\n left: ", "px;\n padding: 8px;\n\n > div {\n padding: 0;\n }\n }\n\n .", " {\n display: flex;\n\n &::before {\n content: '';\n display: block;\n border: 1px solid ", ";\n border-radius: ", "px;\n width: 20px;\n height: 20px;\n }\n\n &::after {\n content: '\u203A';\n margin-left: 4px;\n line-height: 20px;\n color: ", ";\n }\n }\n"])), ClassName.CONTEXTUAL_SUBMENU, borderRadius(), "var(--ds-surface-overlay, white)", "var(--ds-shadow-overlay, ".concat("0 4px 8px -2px ".concat(N60A, ", 0 0 1px ").concat(N60A), ")"), contextualMenuDropdownWidth, ClassName.CONTEXTUAL_MENU_ICON, tableBackgroundBorderColor, borderRadius(), "var(--ds-icon, ".concat(N90, ")"));
|