@atlaskit/editor-plugin-table 7.16.19 → 7.17.1

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 (102) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/nodeviews/ExternalDropTargets.js +2 -1
  3. package/dist/cjs/toolbar.js +3 -0
  4. package/dist/cjs/ui/DragHandle/index.js +4 -2
  5. package/dist/cjs/ui/FloatingContextualButton/FixedButton.js +1 -1
  6. package/dist/cjs/ui/FloatingContextualButton/index.js +5 -1
  7. package/dist/cjs/ui/FloatingContextualButton/styles.js +10 -0
  8. package/dist/cjs/ui/FloatingContextualMenu/ContextualMenu.js +47 -22
  9. package/dist/cjs/ui/FloatingContextualMenu/styles.js +3 -0
  10. package/dist/cjs/ui/FloatingDeleteButton/index.js +4 -2
  11. package/dist/cjs/ui/FloatingDragMenu/DragMenu.js +36 -13
  12. package/dist/cjs/ui/FloatingDragMenu/index.js +5 -2
  13. package/dist/cjs/ui/FloatingDragMenu/styles.js +12 -1
  14. package/dist/cjs/ui/TableFloatingControls/NumberColumn/index.js +3 -1
  15. package/dist/cjs/ui/TableFloatingControls/RowControls/ClassicControls.js +1 -1
  16. package/dist/cjs/ui/TableFloatingControls/RowControls/DragControls.js +4 -2
  17. package/dist/cjs/ui/TableFloatingControls/index.js +4 -1
  18. package/dist/cjs/ui/common-styles.js +3 -1
  19. package/dist/cjs/ui/consts.js +4 -1
  20. package/dist/cjs/ui/ui-styles.js +35 -3
  21. package/dist/cjs/utils/drag-menu.js +32 -27
  22. package/dist/es2019/nodeviews/ExternalDropTargets.js +2 -1
  23. package/dist/es2019/toolbar.js +3 -0
  24. package/dist/es2019/ui/DragHandle/index.js +6 -2
  25. package/dist/es2019/ui/FloatingContextualButton/FixedButton.js +1 -1
  26. package/dist/es2019/ui/FloatingContextualButton/index.js +5 -1
  27. package/dist/es2019/ui/FloatingContextualButton/styles.js +10 -0
  28. package/dist/es2019/ui/FloatingContextualMenu/ContextualMenu.js +38 -11
  29. package/dist/es2019/ui/FloatingContextualMenu/styles.js +3 -0
  30. package/dist/es2019/ui/FloatingDeleteButton/index.js +4 -2
  31. package/dist/es2019/ui/FloatingDragMenu/DragMenu.js +34 -13
  32. package/dist/es2019/ui/FloatingDragMenu/index.js +4 -2
  33. package/dist/es2019/ui/FloatingDragMenu/styles.js +11 -3
  34. package/dist/es2019/ui/TableFloatingControls/NumberColumn/index.js +3 -1
  35. package/dist/es2019/ui/TableFloatingControls/RowControls/ClassicControls.js +1 -1
  36. package/dist/es2019/ui/TableFloatingControls/RowControls/DragControls.js +6 -2
  37. package/dist/es2019/ui/TableFloatingControls/index.js +5 -1
  38. package/dist/es2019/ui/common-styles.js +3 -1
  39. package/dist/es2019/ui/consts.js +3 -0
  40. package/dist/es2019/ui/ui-styles.js +36 -3
  41. package/dist/es2019/utils/drag-menu.js +23 -19
  42. package/dist/esm/nodeviews/ExternalDropTargets.js +2 -1
  43. package/dist/esm/toolbar.js +3 -0
  44. package/dist/esm/ui/DragHandle/index.js +4 -2
  45. package/dist/esm/ui/FloatingContextualButton/FixedButton.js +1 -1
  46. package/dist/esm/ui/FloatingContextualButton/index.js +5 -1
  47. package/dist/esm/ui/FloatingContextualButton/styles.js +10 -0
  48. package/dist/esm/ui/FloatingContextualMenu/ContextualMenu.js +47 -22
  49. package/dist/esm/ui/FloatingContextualMenu/styles.js +3 -0
  50. package/dist/esm/ui/FloatingDeleteButton/index.js +4 -2
  51. package/dist/esm/ui/FloatingDragMenu/DragMenu.js +36 -13
  52. package/dist/esm/ui/FloatingDragMenu/index.js +5 -2
  53. package/dist/esm/ui/FloatingDragMenu/styles.js +13 -2
  54. package/dist/esm/ui/TableFloatingControls/NumberColumn/index.js +3 -1
  55. package/dist/esm/ui/TableFloatingControls/RowControls/ClassicControls.js +1 -1
  56. package/dist/esm/ui/TableFloatingControls/RowControls/DragControls.js +4 -2
  57. package/dist/esm/ui/TableFloatingControls/index.js +4 -1
  58. package/dist/esm/ui/common-styles.js +3 -1
  59. package/dist/esm/ui/consts.js +3 -0
  60. package/dist/esm/ui/ui-styles.js +35 -3
  61. package/dist/esm/utils/drag-menu.js +32 -27
  62. package/dist/types/plugin.d.ts +3 -1
  63. package/dist/types/ui/FloatingDragMenu/DragMenu.d.ts +2 -1
  64. package/dist/types/ui/FloatingDragMenu/styles.d.ts +1 -1
  65. package/dist/types/ui/TableFloatingColumnControls/ColumnControls/index.d.ts +8 -2
  66. package/dist/types/ui/TableFloatingControls/CornerControls/DragCornerControls.d.ts +16 -4
  67. package/dist/types/ui/TableFloatingControls/index.d.ts +8 -2
  68. package/dist/types/ui/consts.d.ts +3 -0
  69. package/dist/types/utils/drag-menu.d.ts +1 -1
  70. package/dist/types-ts4.5/plugin.d.ts +3 -1
  71. package/dist/types-ts4.5/ui/FloatingDragMenu/DragMenu.d.ts +2 -1
  72. package/dist/types-ts4.5/ui/FloatingDragMenu/styles.d.ts +1 -1
  73. package/dist/types-ts4.5/ui/TableFloatingColumnControls/ColumnControls/index.d.ts +10 -2
  74. package/dist/types-ts4.5/ui/TableFloatingControls/CornerControls/DragCornerControls.d.ts +20 -4
  75. package/dist/types-ts4.5/ui/TableFloatingControls/index.d.ts +10 -2
  76. package/dist/types-ts4.5/ui/consts.d.ts +3 -0
  77. package/dist/types-ts4.5/utils/drag-menu.d.ts +1 -1
  78. package/package.json +3 -6
  79. package/src/nodeviews/ExternalDropTargets.tsx +2 -1
  80. package/src/plugin.tsx +2 -0
  81. package/src/toolbar.tsx +3 -0
  82. package/src/ui/DragHandle/index.tsx +4 -2
  83. package/src/ui/FloatingContextualButton/FixedButton.tsx +1 -1
  84. package/src/ui/FloatingContextualButton/index.tsx +2 -0
  85. package/src/ui/FloatingContextualButton/styles.ts +10 -0
  86. package/src/ui/FloatingContextualMenu/ContextualMenu.tsx +22 -3
  87. package/src/ui/FloatingContextualMenu/index.tsx +1 -0
  88. package/src/ui/FloatingContextualMenu/styles.ts +2 -0
  89. package/src/ui/FloatingDeleteButton/index.tsx +2 -1
  90. package/src/ui/FloatingDragMenu/DragMenu.tsx +39 -16
  91. package/src/ui/FloatingDragMenu/DropdownMenu.tsx +1 -1
  92. package/src/ui/FloatingDragMenu/index.tsx +6 -2
  93. package/src/ui/FloatingDragMenu/styles.ts +20 -3
  94. package/src/ui/TableFloatingControls/NumberColumn/index.tsx +1 -0
  95. package/src/ui/TableFloatingControls/RowControls/ClassicControls.tsx +1 -1
  96. package/src/ui/TableFloatingControls/RowControls/DragControls.tsx +4 -2
  97. package/src/ui/TableFloatingControls/index.tsx +4 -1
  98. package/src/ui/common-styles.ts +2 -1
  99. package/src/ui/consts.ts +4 -0
  100. package/src/ui/ui-styles.ts +25 -0
  101. package/src/utils/drag-menu.ts +28 -18
  102. package/tsconfig.app.json +3 -0
@@ -169,6 +169,7 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
169
169
  : formatMessage(messages.cellBackground),
170
170
  value: { name: 'background' },
171
171
  elemBefore: isDragAndDropEnabled ? (
172
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
172
173
  <span css={elementBeforeIconStyles}>
173
174
  <EditorBackgroundColorIcon
174
175
  label={formatMessage(messages.backgroundColor)}
@@ -180,6 +181,7 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
180
181
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
181
182
  <div className={DropdownMenuSharedCssClassName.SUBMENU}>
182
183
  <div
184
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
183
185
  css={cellColourPreviewStyles(background)}
184
186
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
185
187
  className={
@@ -228,6 +230,7 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
228
230
  value: { name: 'merge' },
229
231
  isDisabled: !canMergeCells(state.tr),
230
232
  elemBefore: isDragAndDropEnabled ? (
233
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
231
234
  <span css={elementBeforeIconStyles}>
232
235
  <MergeCellsIcon />
233
236
  </span>
@@ -238,6 +241,7 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
238
241
  value: { name: 'split' },
239
242
  isDisabled: !splitCell(state),
240
243
  elemBefore: isDragAndDropEnabled ? (
244
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
241
245
  <span css={elementBeforeIconStyles}>
242
246
  <SplitCellIcon />
243
247
  </span>
@@ -260,8 +264,10 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
260
264
  isDragAndDropEnabled ? messages.addColumnRight : messages.insertColumn,
261
265
  ),
262
266
  value: { name: 'insert_column' },
267
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
263
268
  elemAfter: <div css={shortcutStyle}>{tooltip(addColumnAfter)}</div>,
264
269
  elemBefore: isDragAndDropEnabled ? (
270
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
265
271
  <span css={elementBeforeIconStyles}>
266
272
  <AddColRightIcon />
267
273
  </span>
@@ -279,8 +285,10 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
279
285
  return {
280
286
  content: formatMessage(isDragAndDropEnabled ? messages.addRowBelow : messages.insertRow),
281
287
  value: { name: 'insert_row' },
288
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
282
289
  elemAfter: <div css={shortcutStyle}>{tooltip(addRowAfter)}</div>,
283
290
  elemBefore: isDragAndDropEnabled ? (
291
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
284
292
  <span css={elementBeforeIconStyles}>
285
293
  <AddRowBelowIcon />
286
294
  </span>
@@ -304,8 +312,10 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
304
312
  0: Math.max(noOfColumns, noOfRows),
305
313
  }),
306
314
  value: { name: 'clear' },
315
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
307
316
  elemAfter: <div css={shortcutStyle}>{tooltip(backspace)}</div>,
308
317
  elemBefore: isDragAndDropEnabled ? (
318
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
309
319
  <span css={elementBeforeIconStyles}>
310
320
  <CrossCircleIcon
311
321
  label={formatMessage(messages.clearCells, {
@@ -334,6 +344,7 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
334
344
  }),
335
345
  value: { name: 'delete_column' },
336
346
  elemBefore: isDragAndDropEnabled ? (
347
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
337
348
  <span css={elementBeforeIconStyles}>
338
349
  <RemoveIcon
339
350
  label={formatMessage(messages.removeColumns, {
@@ -362,6 +373,7 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
362
373
  }),
363
374
  value: { name: 'delete_row' },
364
375
  elemBefore: isDragAndDropEnabled ? (
376
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
365
377
  <span css={elementBeforeIconStyles}>
366
378
  <RemoveIcon
367
379
  label={formatMessage(messages.removeRows, {
@@ -447,7 +459,16 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
447
459
 
448
460
  private createOriginalContextMenuItems = () => {
449
461
  let items: MenuItem[] = [];
462
+ const { getEditorFeatureFlags } = this.props;
463
+ const { tableSortColumnDiscoverability = false } = getEditorFeatureFlags
464
+ ? getEditorFeatureFlags()
465
+ : {};
466
+ const sortColumnItems = this.createSortColumnItems();
450
467
  const backgroundColorItem = this.createBackgroundColorItem();
468
+ const distributeColumnsItem = this.createDistributeColumnsItem();
469
+
470
+ tableSortColumnDiscoverability && sortColumnItems && items.push(...sortColumnItems);
471
+
451
472
  backgroundColorItem && items.push(backgroundColorItem);
452
473
 
453
474
  items.push(this.createInsertColumnItem());
@@ -460,11 +481,9 @@ export class ContextualMenu extends Component<Props & WrappedComponentProps, Sta
460
481
 
461
482
  items.push(...this.createMergeSplitCellItems());
462
483
 
463
- const distributeColumnsItem = this.createDistributeColumnsItem();
464
484
  distributeColumnsItem && items.push(distributeColumnsItem);
465
485
 
466
- const sortColumnItems = this.createSortColumnItems();
467
- sortColumnItems && items.push(...sortColumnItems);
486
+ !tableSortColumnDiscoverability && sortColumnItems && items.push(...sortColumnItems);
468
487
 
469
488
  items.push(this.createClearCellsItem());
470
489
 
@@ -92,6 +92,7 @@ const FloatingContextualMenu = ({
92
92
  offset={[-7, 0]}
93
93
  stick={true}
94
94
  >
95
+ {/* eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766 */}
95
96
  <div css={tablePopupStyles(isDragAndDropEnabled)}>
96
97
  <ContextualMenu
97
98
  editorView={editorView}
@@ -10,10 +10,12 @@ import { contextualMenuDropdownWidth, contextualMenuDropdownWidthDnD } from '../
10
10
  export const cellColourPreviewStyles = (selectedColor: string) =>
11
11
  css({
12
12
  '&::before': {
13
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
13
14
  background: selectedColor,
14
15
  },
15
16
  });
16
17
 
18
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
17
19
  export const elementBeforeIconStyles = css({
18
20
  marginRight: token('space.negative.075', '-6px'),
19
21
  display: 'flex',
@@ -323,13 +323,14 @@ class FloatingDeleteButton extends Component<Props, State> {
323
323
  position: 'fixed',
324
324
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
325
325
  top: pos.top,
326
- // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766
326
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
327
327
  zIndex: stickyRowZIndex,
328
328
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
329
329
  left:
330
330
  rect.left +
331
331
  (pos.left || 0) -
332
332
  (this.state.selectionType === 'column' ? this.state.scrollLeft : 0) -
333
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
333
334
  (this.props.isNumberColumnEnabled ? akEditorTableNumberColumnWidth : 0),
334
335
  }}
335
336
  >
@@ -95,6 +95,7 @@ type DragMenuProps = {
95
95
  tableDuplicateCellColouring?: boolean;
96
96
  shouldUseIncreasedScalingPercent?: boolean;
97
97
  isTableFixedColumnWidthsOptionEnabled?: boolean;
98
+ tableSortColumnDiscoverability?: boolean;
98
99
  };
99
100
 
100
101
  type PluralOptionType = 'noOfCols' | 'noOfRows' | 'noOfCells' | null;
@@ -162,26 +163,35 @@ const MapDragMenuOptionIdToMessage: Record<DragMenuOptionIdType, MessageType> =
162
163
  },
163
164
  };
164
165
 
165
- const groupedDragMenuConfig: DragMenuOptionIdType[][] = [
166
- [
167
- 'add_row_above',
168
- 'add_row_below',
169
- 'add_column_left',
170
- 'add_column_right',
171
- 'distribute_columns',
172
- 'clear_cells',
173
- 'delete_row',
174
- 'delete_column',
175
- ],
176
- ['move_column_left', 'move_column_right', 'move_row_up', 'move_row_down'],
177
- ['sort_column_asc', 'sort_column_desc'],
178
- ];
166
+ const getGroupedDragMenuConfig = (tableSortColumnDiscoverability: boolean) => {
167
+ let groupedDragMenuConfig: DragMenuOptionIdType[][] = [
168
+ [
169
+ 'add_row_above',
170
+ 'add_row_below',
171
+ 'add_column_left',
172
+ 'add_column_right',
173
+ 'distribute_columns',
174
+ 'clear_cells',
175
+ 'delete_row',
176
+ 'delete_column',
177
+ ],
178
+ ['move_column_left', 'move_column_right', 'move_row_up', 'move_row_down'],
179
+ ];
180
+ const sortColumnItems: DragMenuOptionIdType[] = ['sort_column_asc', 'sort_column_desc'];
181
+ tableSortColumnDiscoverability
182
+ ? groupedDragMenuConfig.unshift(sortColumnItems)
183
+ : groupedDragMenuConfig.push(sortColumnItems);
184
+
185
+ return groupedDragMenuConfig;
186
+ };
179
187
 
180
188
  const convertToDropdownItems = (
181
189
  dragMenuConfig: DragMenuConfig[],
182
190
  formatMessage: IntlShape['formatMessage'],
191
+ tableSortColumnDiscoverability: boolean = false,
183
192
  selectionRect?: Rect,
184
193
  ) => {
194
+ const groupedDragMenuConfig = getGroupedDragMenuConfig(tableSortColumnDiscoverability);
185
195
  let menuItemsArr: MenuItem[][] = [...Array(groupedDragMenuConfig.length)].map(() => []);
186
196
  let menuCallback: { [key: string]: Command } = {};
187
197
  dragMenuConfig.forEach((item) => {
@@ -220,12 +230,14 @@ const convertToDropdownItems = (
220
230
  value: { name: item.id },
221
231
  isDisabled: item.disabled,
222
232
  elemBefore: item.icon ? (
233
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
223
234
  <span css={elementBeforeIconStyles}>
224
235
  <item.icon
225
236
  label={formatMessage(MapDragMenuOptionIdToMessage[item.id].message, options)}
226
237
  />
227
238
  </span>
228
239
  ) : undefined,
240
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
229
241
  elemAfter: item.keymap ? <div css={shortcutStyle}>{item.keymap}</div> : undefined,
230
242
  });
231
243
  item.onClick && (menuCallback[item.id] = item.onClick);
@@ -265,6 +277,7 @@ export const DragMenu = React.memo(
265
277
  tableDuplicateCellColouring,
266
278
  shouldUseIncreasedScalingPercent,
267
279
  isTableFixedColumnWidthsOptionEnabled,
280
+ tableSortColumnDiscoverability,
268
281
  }: DragMenuProps & WrappedComponentProps) => {
269
282
  const { state, dispatch } = editorView;
270
283
  const { selection } = state;
@@ -307,11 +320,13 @@ export const DragMenu = React.memo(
307
320
  tableDuplicateCellColouring,
308
321
  isTableFixedColumnWidthsOptionEnabled,
309
322
  shouldUseIncreasedScalingPercent,
323
+ tableSortColumnDiscoverability,
310
324
  );
311
325
 
312
326
  const { menuItems, menuCallback } = convertToDropdownItems(
313
327
  dragMenuConfig,
314
328
  formatMessage,
329
+ tableSortColumnDiscoverability,
315
330
  selectionRect,
316
331
  );
317
332
 
@@ -358,6 +373,7 @@ export const DragMenu = React.memo(
358
373
  content: formatMessage(messages.backgroundColor),
359
374
  value: { name: 'background' },
360
375
  elemBefore: (
376
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
361
377
  <span css={elementBeforeIconStyles}>
362
378
  <EditorBackgroundColorIcon
363
379
  label={formatMessage(messages.backgroundColor)}
@@ -369,9 +385,11 @@ export const DragMenu = React.memo(
369
385
  <div
370
386
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
371
387
  className={DropdownMenuSharedCssClassName.SUBMENU}
372
- css={dragMenuBackgroundColorStyles}
388
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
389
+ css={dragMenuBackgroundColorStyles(tableSortColumnDiscoverability)}
373
390
  >
374
391
  <div
392
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
375
393
  css={cellColourPreviewStyles(background)}
376
394
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
377
395
  className={ClassName.DRAG_SUBMENU_ICON}
@@ -434,6 +452,7 @@ export const DragMenu = React.memo(
434
452
  content: formatMessage(messages.headerColumn),
435
453
  value: { name: 'header_column' },
436
454
  elemAfter: (
455
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
437
456
  <div css={toggleStyles}>
438
457
  <Toggle
439
458
  id="toggle-header-column"
@@ -448,6 +467,7 @@ export const DragMenu = React.memo(
448
467
  content: formatMessage(messages.headerRow),
449
468
  value: { name: 'header_row' },
450
469
  elemAfter: (
470
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
451
471
  <div css={toggleStyles}>
452
472
  <Toggle
453
473
  id="toggle-header-row"
@@ -465,6 +485,7 @@ export const DragMenu = React.memo(
465
485
  content: formatMessage(messages.rowNumbers),
466
486
  value: { name: 'row_numbers' },
467
487
  elemAfter: (
488
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
468
489
  <div css={toggleStyles}>
469
490
  <Toggle
470
491
  id="toggle-row-numbers"
@@ -592,7 +613,9 @@ export const DragMenu = React.memo(
592
613
  }
593
614
 
594
615
  if (allowBackgroundColor) {
595
- menuItems[0].items.unshift(createBackgroundColorMenuItem());
616
+ tableSortColumnDiscoverability
617
+ ? menuItems[1].items.unshift(createBackgroundColorMenuItem())
618
+ : menuItems[0].items.unshift(createBackgroundColorMenuItem());
596
619
  }
597
620
 
598
621
  // If first row, add toggle for Header row, default is true
@@ -84,7 +84,7 @@ export const DropdownMenu = ({
84
84
  }}
85
85
  targetRef={targetRefDiv}
86
86
  >
87
- {/* eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766 */}
87
+ {/* eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/enforce-style-prop -- Ignored via go/DSP-18766 */}
88
88
  <div style={{ height: 0, minWidth: dragMenuDropdownWidth }} />
89
89
  <MenuGroup role="menu">
90
90
  {items.map((group, index) => (
@@ -70,8 +70,11 @@ const FloatingDragMenu = ({
70
70
  return null;
71
71
  }
72
72
 
73
- const { tableDuplicateCellColouring = false, tableWithFixedColumnWidthsOption = false } =
74
- getEditorFeatureFlags ? getEditorFeatureFlags() : {};
73
+ const {
74
+ tableDuplicateCellColouring = false,
75
+ tableWithFixedColumnWidthsOption = false,
76
+ tableSortColumnDiscoverability = false,
77
+ } = getEditorFeatureFlags ? getEditorFeatureFlags() : {};
75
78
 
76
79
  const shouldUseIncreasedScalingPercent =
77
80
  isTableScalingEnabled &&
@@ -116,6 +119,7 @@ const FloatingDragMenu = ({
116
119
  tableDuplicateCellColouring={tableDuplicateCellColouring}
117
120
  shouldUseIncreasedScalingPercent={shouldUseIncreasedScalingPercent}
118
121
  isTableFixedColumnWidthsOptionEnabled={tableWithFixedColumnWidthsOption}
122
+ tableSortColumnDiscoverability={tableSortColumnDiscoverability}
119
123
  />
120
124
  </Popup>
121
125
  );
@@ -5,29 +5,42 @@ import { N60A, N90 } from '@atlaskit/theme/colors';
5
5
  import { token } from '@atlaskit/tokens';
6
6
 
7
7
  import { TableCssClassName as ClassName } from '../../types';
8
- import { dragMenuDropdownWidth } from '../consts';
8
+ import {
9
+ dragMenuDropdownWidth,
10
+ TABLE_DRAG_MENU_MENU_GROUP_BEFORE_HEIGHT,
11
+ TABLE_DRAG_MENU_PADDING_TOP,
12
+ TABLE_DRAG_MENU_SORT_GROUP_HEIGHT,
13
+ } from '../consts';
9
14
 
10
15
  export const cellColourPreviewStyles = (selectedColor: string) =>
11
16
  css({
12
17
  '&::before': {
18
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
13
19
  background: selectedColor,
14
20
  },
15
21
  });
16
22
 
23
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
17
24
  export const elementBeforeIconStyles = css({
18
25
  marginRight: token('space.negative.075', '-6px'),
19
26
  display: 'flex',
20
27
  });
21
28
 
22
29
  // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
23
- export const dragMenuBackgroundColorStyles = css`
30
+ export const dragMenuBackgroundColorStyles = (
31
+ tableSortColumnDiscoverability: boolean = false,
32
+ ) => css`
24
33
  .${ClassName.DRAG_SUBMENU} {
25
34
  border-radius: ${token('border.radius', '3px')};
26
35
  background: ${token('elevation.surface.overlay', 'white')};
27
36
  box-shadow: ${token('elevation.shadow.overlay', `0 4px 8px -2px ${N60A}, 0 0 1px ${N60A}`)};
28
37
  display: block;
29
38
  position: absolute;
30
- top: 0;
39
+ top: ${tableSortColumnDiscoverability
40
+ ? TABLE_DRAG_MENU_PADDING_TOP +
41
+ TABLE_DRAG_MENU_SORT_GROUP_HEIGHT +
42
+ TABLE_DRAG_MENU_MENU_GROUP_BEFORE_HEIGHT
43
+ : 0}px; // move the submenu down when 'sort increasing/decreasing' appear before background color picker
31
44
  left: ${dragMenuDropdownWidth}px;
32
45
  padding: ${token('space.100', '8px')};
33
46
 
@@ -57,17 +70,21 @@ export const dragMenuBackgroundColorStyles = css`
57
70
  }
58
71
  `;
59
72
 
73
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
60
74
  export const toggleStyles = css({
61
75
  display: 'flex',
76
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
62
77
  "input[type='checkbox']": {
63
78
  width: '30px',
64
79
  height: '14px',
65
80
  pointerEvents: 'initial',
66
81
  cursor: 'pointer',
67
82
  },
83
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
68
84
  '> label': {
69
85
  margin: '0px',
70
86
  pointerEvents: 'none',
87
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
71
88
  '> span': {
72
89
  pointerEvents: 'none',
73
90
  },
@@ -40,6 +40,7 @@ export default class NumberColumn extends Component<Props, any> {
40
40
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
41
41
  marginTop: hasHeaderRow && this.props.stickyTop !== undefined ? rowHeights[0] : undefined,
42
42
  borderLeft:
43
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
43
44
  isDragAndDropEnabled && tableActive ? `1px solid ${tableBorderColor}` : undefined,
44
45
  }}
45
46
  contentEditable={false}
@@ -79,7 +79,7 @@ class RowControlsComponent extends Component<Props & WrappedComponentProps> {
79
79
  marginTop: `${marginTop}px`,
80
80
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
81
81
  top: thisRowSticky ? `${this.props.stickyTop! + 3}px` : undefined,
82
- // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
82
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
83
83
  paddingTop: thisRowSticky ? `${tableControlsSpacing}px` : undefined,
84
84
  }}
85
85
  >
@@ -283,11 +283,13 @@ const DragControlsComponent = ({
283
283
  style={{
284
284
  gridTemplateRows: heights,
285
285
  gridTemplateColumns: isDragging
286
- ? `${dropTargetExtendedWidth}px 14px ${tableWidth}px`
286
+ ? // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
287
+ `${dropTargetExtendedWidth}px 14px ${tableWidth}px`
287
288
  : '0px 14px 0px',
288
289
  // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
289
290
  left: isDragging
290
- ? `-${dropTargetExtendedWidth + 2}px`
291
+ ? // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
292
+ `-${dropTargetExtendedWidth + 2}px`
291
293
  : token('space.negative.025', '-2px'),
292
294
  }}
293
295
  onMouseMove={handleMouseMove}
@@ -1,6 +1,7 @@
1
1
  import React, { useCallback } from 'react';
2
2
 
3
3
  import type { TableColumnOrdering } from '@atlaskit/custom-steps';
4
+ import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
4
5
  import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
5
6
  import { browser } from '@atlaskit/editor-common/utils';
6
7
  import type { Node as PmNode } from '@atlaskit/editor-prosemirror/model';
@@ -113,6 +114,8 @@ export const TableFloatingControls = ({
113
114
  [editorView, tableActive],
114
115
  );
115
116
 
117
+ const { featureFlagsState } = useSharedPluginState(api, ['featureFlags']);
118
+
116
119
  if (!tableRef) {
117
120
  return null;
118
121
  }
@@ -149,7 +152,7 @@ export const TableFloatingControls = ({
149
152
  <>
150
153
  {isDragAndDropEnabled ? (
151
154
  <>
152
- {!getBooleanFF('platform.editor.drag-and-drop_wmv9t') &&
155
+ {!featureFlagsState?.elementDragAndDrop &&
153
156
  (getBooleanFF('platform.editor.table.use-shared-state-hook') ? (
154
157
  <DragCornerControlsWithSelection
155
158
  editorView={editorView}
@@ -1081,7 +1081,7 @@ export const tableStyles = (props: { featureFlags?: FeatureFlags }) => css`
1081
1081
  ${shadowSentinelStyles}
1082
1082
  `;
1083
1083
 
1084
- // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview
1084
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage/preview, @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
1085
1085
  export const tableFullPageEditorStyles = css`
1086
1086
  .ProseMirror .${ClassName.TABLE_NODE_WRAPPER} > table {
1087
1087
  margin-left: 0;
@@ -1091,6 +1091,7 @@ export const tableFullPageEditorStyles = css`
1091
1091
  }
1092
1092
  `;
1093
1093
 
1094
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
1094
1095
  export const tableCommentEditorStyles = css`
1095
1096
  .ProseMirror .${ClassName.TABLE_NODE_WRAPPER} > table {
1096
1097
  margin-left: 0;
package/src/ui/consts.ts CHANGED
@@ -94,6 +94,10 @@ export const STICKY_HEADER_TOGGLE_TOLERANCE_MS = 5;
94
94
  // BUT it cannot be snapped to during resize due to padding being applied to the resizer wrapper. This accommodates that difference.
95
95
  export const TABLE_GUIDELINE_VISIBLE_ADJUSTMENT = -68;
96
96
 
97
+ export const TABLE_DRAG_MENU_SORT_GROUP_HEIGHT = 92;
98
+ export const TABLE_DRAG_MENU_PADDING_TOP = 4;
99
+ export const TABLE_DRAG_MENU_MENU_GROUP_BEFORE_HEIGHT = 6;
100
+
97
101
  export const dragMenuDropdownWidth = 250;
98
102
  export const dragTableInsertColumnButtonSize = 16;
99
103
  export const dropTargetExtendedWidth = 150;
@@ -56,9 +56,12 @@ const InsertLine = (cssString?: string) => css`
56
56
 
57
57
  const Marker = () =>
58
58
  css({
59
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
59
60
  backgroundColor: tableBorderColor,
60
61
  position: 'absolute',
62
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
61
63
  height: `${lineMarkerSize}px`,
64
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
62
65
  width: `${lineMarkerSize}px`,
63
66
  borderRadius: '50%',
64
67
  pointerEvents: 'none',
@@ -268,8 +271,11 @@ export const dragCornerControlButton = () => css`
268
271
 
269
272
  export const insertColumnButtonWrapper = () =>
270
273
  css(
274
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
271
275
  InsertButton(),
276
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
272
277
  InsertButtonHover(),
278
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
273
279
  InsertLine(
274
280
  `
275
281
  width: 2px;
@@ -280,12 +286,16 @@ export const insertColumnButtonWrapper = () =>
280
286
 
281
287
  export const insertRowButtonWrapper = () =>
282
288
  css(
289
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
283
290
  InsertButton(),
291
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
284
292
  InsertButtonHover(),
293
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
285
294
  InsertLine(
286
295
  `
287
296
  height: 2px;
288
297
  top: -11px;
298
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
289
299
  left: ${tableInsertColumnButtonSize - 1}px;
290
300
  `,
291
301
  ),
@@ -380,14 +390,17 @@ const overflowShadowWidhoutDnD = (isDragAndDropEnabled: boolean | undefined) =>
380
390
  const columnHeaderButton = (cssString?: string) => {
381
391
  return css(
382
392
  {
393
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
383
394
  background: tableHeaderCellBackgroundColor,
384
395
  display: 'block',
385
396
  boxSizing: 'border-box',
386
397
  padding: 0,
398
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-selectors -- Ignored via go/DSP-18766
387
399
  ':focus': {
388
400
  outline: 'none',
389
401
  },
390
402
  },
403
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
391
404
  cssString,
392
405
  );
393
406
  };
@@ -395,8 +408,11 @@ const columnHeaderButton = (cssString?: string) => {
395
408
  const columnHeaderButtonSelected = () =>
396
409
  css({
397
410
  color: token('color.text.inverse', N0),
411
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
398
412
  backgroundColor: tableToolbarSelectedColor,
413
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
399
414
  borderColor: tableBorderSelectedColor,
415
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
400
416
  zIndex: columnControlsSelectedZIndex,
401
417
  });
402
418
 
@@ -623,6 +639,7 @@ export const hoveredCell = () => css`
623
639
  }
624
640
  `;
625
641
 
642
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles, @atlaskit/design-system/no-exported-css -- Ignored via go/DSP-18766
626
643
  export const hoveredWarningCell = css`
627
644
  :not(.${ClassName.IS_RESIZING})
628
645
  .${ClassName.TABLE_CONTAINER}:not(.${ClassName.HOVERED_DELETE_BUTTON}) {
@@ -761,8 +778,11 @@ export const resizeHandle = (isDragAndDropEnabled: boolean | undefined) => css`
761
778
  const tableCellColumnInsertLineStyles = css({
762
779
  content: "' '",
763
780
  position: 'absolute',
781
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
764
782
  height: `calc(100% + ${tableCellBorderWidth * 2}px)`,
783
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
765
784
  width: `${insertLineWidth}px`,
785
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
766
786
  zIndex: columnControlsZIndex * 2,
767
787
  });
768
788
 
@@ -770,16 +790,21 @@ const tableCellRowInsertLineStyles = css({
770
790
  content: "' '",
771
791
  position: 'absolute',
772
792
  left: token('space.negative.025', '-2px'),
793
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
773
794
  height: `${insertLineWidth}px`,
795
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
774
796
  width: `calc(100% + ${tableCellBorderWidth * 2}px)`,
797
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
775
798
  zIndex: columnControlsZIndex * 2,
776
799
  });
777
800
 
778
801
  const insertLineActiveColor = css({
802
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
779
803
  backgroundColor: tableBorderSelectedColor,
780
804
  });
781
805
 
782
806
  const insertLineInactiveColor = css({
807
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
783
808
  backgroundColor: token('color.background.accent.gray.subtler', akEditorTableBorder),
784
809
  });
785
810