@atlaskit/editor-plugin-table 7.6.3 → 7.6.5

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.
Files changed (141) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/commands/column-resize.js +62 -16
  3. package/dist/cjs/commands/go-to-next-cell.js +5 -2
  4. package/dist/cjs/commands/misc.js +3 -2
  5. package/dist/cjs/commands-with-analytics.js +8 -2
  6. package/dist/cjs/nodeviews/ExternalDropTargets.js +2 -0
  7. package/dist/cjs/nodeviews/TableComponent.js +8 -6
  8. package/dist/cjs/nodeviews/TableContainer.js +32 -20
  9. package/dist/cjs/nodeviews/TableResizer.js +40 -28
  10. package/dist/cjs/plugin.js +60 -58
  11. package/dist/cjs/pm-plugins/keymap.js +26 -8
  12. package/dist/cjs/pm-plugins/main.js +15 -4
  13. package/dist/cjs/pm-plugins/table-resizing/event-handlers.js +4 -2
  14. package/dist/cjs/toolbar.js +5 -4
  15. package/dist/cjs/ui/DragHandle/index.js +2 -2
  16. package/dist/cjs/ui/DragPreview/index.js +2 -0
  17. package/dist/cjs/ui/FloatingContextualButton/FixedButton.js +10 -6
  18. package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +16 -16
  19. package/dist/cjs/ui/FloatingDeleteButton/index.js +2 -0
  20. package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +3 -3
  21. package/dist/cjs/ui/FloatingDragMenu/DropdownMenu.js +21 -28
  22. package/dist/cjs/ui/FloatingInsertButton/InsertButton.js +1 -0
  23. package/dist/cjs/ui/LayoutButton/index.js +2 -0
  24. package/dist/cjs/ui/TableFloatingColumnControls/ColumnControls/index.js +2 -0
  25. package/dist/cjs/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.js +3 -0
  26. package/dist/cjs/ui/TableFloatingControls/CornerControls/ClassicCornerControls.js +1 -0
  27. package/dist/cjs/ui/TableFloatingControls/NumberColumn/index.js +1 -0
  28. package/dist/cjs/ui/TableFloatingControls/RowControls/ClassicControls.js +4 -0
  29. package/dist/cjs/ui/TableFloatingControls/RowControls/DragControls.js +3 -1
  30. package/dist/cjs/ui/common-styles.js +4 -0
  31. package/dist/cjs/ui/ui-styles.js +93 -37
  32. package/dist/cjs/utils/guidelines.js +1 -1
  33. package/dist/es2019/commands/column-resize.js +53 -4
  34. package/dist/es2019/commands/go-to-next-cell.js +5 -2
  35. package/dist/es2019/commands/misc.js +6 -2
  36. package/dist/es2019/commands-with-analytics.js +8 -2
  37. package/dist/es2019/nodeviews/ExternalDropTargets.js +2 -0
  38. package/dist/es2019/nodeviews/TableComponent.js +9 -7
  39. package/dist/es2019/nodeviews/TableContainer.js +17 -3
  40. package/dist/es2019/nodeviews/TableResizer.js +27 -17
  41. package/dist/es2019/plugin.js +6 -3
  42. package/dist/es2019/pm-plugins/keymap.js +25 -9
  43. package/dist/es2019/pm-plugins/main.js +15 -4
  44. package/dist/es2019/pm-plugins/table-resizing/event-handlers.js +4 -2
  45. package/dist/es2019/toolbar.js +5 -4
  46. package/dist/es2019/ui/DragHandle/index.js +2 -2
  47. package/dist/es2019/ui/DragPreview/index.js +2 -0
  48. package/dist/es2019/ui/FloatingContextualButton/FixedButton.js +10 -6
  49. package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +16 -16
  50. package/dist/es2019/ui/FloatingDeleteButton/index.js +2 -0
  51. package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +3 -3
  52. package/dist/es2019/ui/FloatingDragMenu/DropdownMenu.js +20 -27
  53. package/dist/es2019/ui/FloatingInsertButton/InsertButton.js +1 -0
  54. package/dist/es2019/ui/LayoutButton/index.js +2 -0
  55. package/dist/es2019/ui/TableFloatingColumnControls/ColumnControls/index.js +2 -0
  56. package/dist/es2019/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.js +3 -0
  57. package/dist/es2019/ui/TableFloatingControls/CornerControls/ClassicCornerControls.js +1 -0
  58. package/dist/es2019/ui/TableFloatingControls/NumberColumn/index.js +1 -0
  59. package/dist/es2019/ui/TableFloatingControls/RowControls/ClassicControls.js +4 -0
  60. package/dist/es2019/ui/TableFloatingControls/RowControls/DragControls.js +3 -1
  61. package/dist/es2019/ui/common-styles.js +4 -0
  62. package/dist/es2019/ui/ui-styles.js +66 -70
  63. package/dist/es2019/utils/guidelines.js +1 -1
  64. package/dist/esm/commands/column-resize.js +62 -16
  65. package/dist/esm/commands/go-to-next-cell.js +5 -2
  66. package/dist/esm/commands/misc.js +3 -2
  67. package/dist/esm/commands-with-analytics.js +8 -2
  68. package/dist/esm/nodeviews/ExternalDropTargets.js +2 -0
  69. package/dist/esm/nodeviews/TableComponent.js +9 -7
  70. package/dist/esm/nodeviews/TableContainer.js +32 -20
  71. package/dist/esm/nodeviews/TableResizer.js +41 -29
  72. package/dist/esm/plugin.js +60 -58
  73. package/dist/esm/pm-plugins/keymap.js +26 -8
  74. package/dist/esm/pm-plugins/main.js +15 -4
  75. package/dist/esm/pm-plugins/table-resizing/event-handlers.js +4 -2
  76. package/dist/esm/toolbar.js +5 -4
  77. package/dist/esm/ui/DragHandle/index.js +2 -2
  78. package/dist/esm/ui/DragPreview/index.js +2 -0
  79. package/dist/esm/ui/FloatingContextualButton/FixedButton.js +10 -6
  80. package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +16 -16
  81. package/dist/esm/ui/FloatingDeleteButton/index.js +2 -0
  82. package/dist/esm/ui/FloatingDragMenu/DragMenu.js +3 -3
  83. package/dist/esm/ui/FloatingDragMenu/DropdownMenu.js +21 -28
  84. package/dist/esm/ui/FloatingInsertButton/InsertButton.js +1 -0
  85. package/dist/esm/ui/LayoutButton/index.js +2 -0
  86. package/dist/esm/ui/TableFloatingColumnControls/ColumnControls/index.js +2 -0
  87. package/dist/esm/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.js +3 -0
  88. package/dist/esm/ui/TableFloatingControls/CornerControls/ClassicCornerControls.js +1 -0
  89. package/dist/esm/ui/TableFloatingControls/NumberColumn/index.js +1 -0
  90. package/dist/esm/ui/TableFloatingControls/RowControls/ClassicControls.js +4 -0
  91. package/dist/esm/ui/TableFloatingControls/RowControls/DragControls.js +3 -1
  92. package/dist/esm/ui/common-styles.js +4 -0
  93. package/dist/esm/ui/ui-styles.js +93 -37
  94. package/dist/esm/utils/guidelines.js +1 -1
  95. package/dist/types/commands/column-resize.d.ts +23 -4
  96. package/dist/types/commands/go-to-next-cell.d.ts +2 -1
  97. package/dist/types/commands/misc.d.ts +2 -1
  98. package/dist/types/commands-with-analytics.d.ts +2 -1
  99. package/dist/types/nodeviews/TableResizer.d.ts +3 -1
  100. package/dist/types/pm-plugins/keymap.d.ts +3 -1
  101. package/dist/types/types.d.ts +13 -3
  102. package/dist/types-ts4.5/commands/column-resize.d.ts +23 -4
  103. package/dist/types-ts4.5/commands/go-to-next-cell.d.ts +2 -1
  104. package/dist/types-ts4.5/commands/misc.d.ts +2 -1
  105. package/dist/types-ts4.5/commands-with-analytics.d.ts +2 -1
  106. package/dist/types-ts4.5/nodeviews/TableResizer.d.ts +3 -1
  107. package/dist/types-ts4.5/pm-plugins/keymap.d.ts +3 -1
  108. package/dist/types-ts4.5/types.d.ts +13 -3
  109. package/package.json +3 -6
  110. package/src/commands/column-resize.ts +105 -29
  111. package/src/commands/go-to-next-cell.ts +10 -2
  112. package/src/commands/misc.ts +6 -3
  113. package/src/commands-with-analytics.ts +11 -5
  114. package/src/nodeviews/ExternalDropTargets.tsx +2 -0
  115. package/src/nodeviews/TableComponent.tsx +14 -16
  116. package/src/nodeviews/TableContainer.tsx +18 -3
  117. package/src/nodeviews/TableResizer.tsx +35 -21
  118. package/src/plugin.tsx +4 -1
  119. package/src/pm-plugins/keymap.ts +44 -6
  120. package/src/pm-plugins/main.ts +18 -4
  121. package/src/pm-plugins/table-resizing/event-handlers.ts +6 -2
  122. package/src/toolbar.tsx +20 -19
  123. package/src/types.ts +14 -2
  124. package/src/ui/DragHandle/index.tsx +2 -2
  125. package/src/ui/DragPreview/index.tsx +2 -0
  126. package/src/ui/FloatingContextualButton/FixedButton.tsx +9 -6
  127. package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +66 -112
  128. package/src/ui/FloatingDeleteButton/index.tsx +2 -0
  129. package/src/ui/FloatingDragMenu/DragMenu.tsx +3 -12
  130. package/src/ui/FloatingDragMenu/DropdownMenu.tsx +19 -28
  131. package/src/ui/FloatingInsertButton/InsertButton.tsx +1 -0
  132. package/src/ui/LayoutButton/index.tsx +2 -0
  133. package/src/ui/TableFloatingColumnControls/ColumnControls/index.tsx +2 -0
  134. package/src/ui/TableFloatingColumnControls/ColumnDropTargets/ColumnDropTarget.tsx +3 -0
  135. package/src/ui/TableFloatingControls/CornerControls/ClassicCornerControls.tsx +1 -0
  136. package/src/ui/TableFloatingControls/NumberColumn/index.tsx +1 -0
  137. package/src/ui/TableFloatingControls/RowControls/ClassicControls.tsx +4 -0
  138. package/src/ui/TableFloatingControls/RowControls/DragControls.tsx +5 -1
  139. package/src/ui/common-styles.ts +2 -0
  140. package/src/ui/ui-styles.ts +90 -79
  141. package/src/utils/guidelines.ts +5 -4
@@ -55,14 +55,15 @@ const InsertLine = (cssString?: string) => css`
55
55
  }
56
56
  `;
57
57
 
58
- const Marker = () => css`
59
- background-color: ${tableBorderColor};
60
- position: absolute;
61
- height: ${lineMarkerSize}px;
62
- width: ${lineMarkerSize}px;
63
- border-radius: 50%;
64
- pointer-events: none;
65
- `;
58
+ const Marker = () =>
59
+ css({
60
+ backgroundColor: tableBorderColor,
61
+ position: 'absolute',
62
+ height: `${lineMarkerSize}px`,
63
+ width: `${lineMarkerSize}px`,
64
+ borderRadius: '50%',
65
+ pointerEvents: 'none',
66
+ });
66
67
 
67
68
  export const InsertMarker = (cssString?: string) => css`
68
69
  .${ClassName.CONTROLS_INSERT_MARKER} {
@@ -93,6 +94,8 @@ const Button = (cssString?: string) => css`
93
94
  ${cssString}
94
95
  `;
95
96
 
97
+ // Explicit pixel values required here to ensure classic row controls align correctly
98
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
96
99
  export const HeaderButton = (cssString?: string) => css`
97
100
  .${ClassName.CONTROLS_BUTTON} {
98
101
  background: ${tableHeaderCellBackgroundColor};
@@ -273,28 +276,30 @@ export const dragCornerControlButton = () => css`
273
276
  }
274
277
  `;
275
278
 
276
- export const insertColumnButtonWrapper = () => css`
277
- ${InsertButton()}
278
- ${InsertButtonHover()}
279
- ${InsertLine(
280
- `
279
+ export const insertColumnButtonWrapper = () =>
280
+ css(
281
+ InsertButton(),
282
+ InsertButtonHover(),
283
+ InsertLine(
284
+ `
281
285
  width: 2px;
282
286
  left: 9px;
283
287
  `,
284
- )}
285
- `;
286
-
287
- export const insertRowButtonWrapper = () => css`
288
- ${InsertButton()}
289
- ${InsertButtonHover()}
290
- ${InsertLine(
291
- `
288
+ ),
289
+ );
290
+
291
+ export const insertRowButtonWrapper = () =>
292
+ css(
293
+ InsertButton(),
294
+ InsertButtonHover(),
295
+ InsertLine(
296
+ `
292
297
  height: 2px;
293
298
  top: -11px;
294
299
  left: ${tableInsertColumnButtonSize - 1}px;
295
300
  `,
296
- )}
297
- `;
301
+ ),
302
+ );
298
303
 
299
304
  export const columnControlsLineMarker = () => css`
300
305
  .${ClassName.TABLE_CONTAINER}.${ClassName.WITH_CONTROLS}
@@ -419,41 +424,42 @@ const overflowShadowWidhoutDnD = (
419
424
 
420
425
  const columnHeaderButton = (cssString?: string) => {
421
426
  if (getBooleanFF('platform.editor.table.column-controls-styles-updated')) {
422
- return css`
423
- background: ${tableHeaderCellBackgroundColor};
424
- display: block;
425
- box-sizing: border-box;
426
- padding: 0;
427
-
428
- :focus {
429
- outline: none;
430
- }
431
-
432
- ${cssString}
433
- `;
427
+ return css(
428
+ {
429
+ background: tableHeaderCellBackgroundColor,
430
+ display: 'block',
431
+ boxSizing: 'border-box',
432
+ padding: 0,
433
+ ':focus': {
434
+ outline: 'none',
435
+ },
436
+ },
437
+ cssString,
438
+ );
434
439
  } else {
435
- return css`
436
- background: ${tableHeaderCellBackgroundColor};
437
- border: 1px solid ${tableBorderColor};
438
- display: block;
439
- box-sizing: border-box;
440
- padding: 0;
441
-
442
- :focus {
443
- outline: none;
444
- }
445
-
446
- ${cssString}
447
- `;
440
+ return css(
441
+ {
442
+ background: tableHeaderCellBackgroundColor,
443
+ border: `1px solid ${tableBorderColor}`,
444
+ display: 'block',
445
+ boxSizing: 'border-box',
446
+ padding: 0,
447
+ ':focus': {
448
+ outline: 'none',
449
+ },
450
+ },
451
+ cssString,
452
+ );
448
453
  }
449
454
  };
450
455
 
451
- const columnHeaderButtonSelected = () => css`
452
- color: ${token('color.text.inverse', N0)};
453
- background-color: ${tableToolbarSelectedColor};
454
- border-color: ${tableBorderSelectedColor};
455
- z-index: ${columnControlsSelectedZIndex};
456
- `;
456
+ const columnHeaderButtonSelected = () =>
457
+ css({
458
+ color: token('color.text.inverse', N0),
459
+ backgroundColor: tableToolbarSelectedColor,
460
+ borderColor: tableBorderSelectedColor,
461
+ zIndex: columnControlsSelectedZIndex,
462
+ });
457
463
 
458
464
  const getFloatingDotOverrides = () => {
459
465
  return getBooleanFF('platform.editor.custom-table-width')
@@ -795,6 +801,8 @@ const getLastColumnResizerOverrides = () => {
795
801
  : '';
796
802
  };
797
803
 
804
+ // Explicit pixel values required here to ensure correct positioning and sizes of column resize handle
805
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
798
806
  const resizeHandleOverrides = (isDragAndDropEnabled: boolean | undefined) => {
799
807
  if (isDragAndDropEnabled) {
800
808
  return css`
@@ -902,34 +910,37 @@ export const resizeHandle = (isDragAndDropEnabled: boolean | undefined) => css`
902
910
  `;
903
911
 
904
912
  // Drag and Drop: drop target insert line
905
- const tableCellColumnInsertLineStyles = css`
906
- content: ' ';
907
- position: absolute;
908
- height: calc(100% + ${tableCellBorderWidth * 2}px);
909
- width: ${insertLineWidth}px;
910
- z-index: ${columnControlsZIndex * 2};
911
- `;
912
-
913
- const tableCellRowInsertLineStyles = css`
914
- content: ' ';
915
- position: absolute;
916
- left: ${token('space.negative.025', '-2px')};
917
- height: ${insertLineWidth}px;
918
- width: calc(100% + ${tableCellBorderWidth * 2}px);
919
- z-index: ${columnControlsZIndex * 2};
920
- `;
921
-
922
- const insertLineActiveColor = css`
923
- background-color: ${tableBorderSelectedColor};
924
- `;
925
-
926
- const insertLineInactiveColor = css`
927
- background-color: ${token(
913
+ const tableCellColumnInsertLineStyles = css({
914
+ content: "' '",
915
+ position: 'absolute',
916
+ height: `calc(100% + ${tableCellBorderWidth * 2}px)`,
917
+ width: `${insertLineWidth}px`,
918
+ zIndex: columnControlsZIndex * 2,
919
+ });
920
+
921
+ const tableCellRowInsertLineStyles = css({
922
+ content: "' '",
923
+ position: 'absolute',
924
+ left: token('space.negative.025', '-2px'),
925
+ height: `${insertLineWidth}px`,
926
+ width: `calc(100% + ${tableCellBorderWidth * 2}px)`,
927
+ zIndex: columnControlsZIndex * 2,
928
+ });
929
+
930
+ const insertLineActiveColor = css({
931
+ backgroundColor: tableBorderSelectedColor,
932
+ });
933
+
934
+ const insertLineInactiveColor = css({
935
+ backgroundColor: token(
928
936
  'color.background.accent.gray.subtler',
929
937
  akEditorTableBorder,
930
- )};
931
- `;
938
+ ),
939
+ });
932
940
 
941
+ // Explicit pixel values required here to ensure correct positioning of line that is show on row
942
+ // or column drag
943
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
933
944
  export const insertLine = () => css`
934
945
  .${ClassName.TABLE_CONTAINER} {
935
946
  td.${ClassName.WITH_FIRST_COLUMN_INSERT_LINE}::before {
@@ -16,7 +16,8 @@ export const defaultGuidelines = createFixedGuidelinesFromLengths([
16
16
  export const defaultGuidelinesForPreserveTable = (
17
17
  editorContainerWidth: number,
18
18
  ) =>
19
- createFixedGuidelinesFromLengths([
20
- 0,
21
- ...calculateDefaultTablePreserveSnappings(-1, editorContainerWidth),
22
- ]) as GuidelineConfig[];
19
+ createFixedGuidelinesFromLengths(
20
+ [0, ...calculateDefaultTablePreserveSnappings(-1, editorContainerWidth)],
21
+ undefined,
22
+ true,
23
+ ) as GuidelineConfig[];