@atlaskit/editor-plugin-table 4.0.1 → 4.0.3

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 (209) hide show
  1. package/CHANGELOG.md +146 -133
  2. package/README.md +1 -1
  3. package/dist/cjs/i18n/cs.js +2 -3
  4. package/dist/cjs/i18n/da.js +2 -3
  5. package/dist/cjs/i18n/de.js +2 -3
  6. package/dist/cjs/i18n/en.js +2 -3
  7. package/dist/cjs/i18n/en_GB.js +2 -3
  8. package/dist/cjs/i18n/en_ZZ.js +2 -3
  9. package/dist/cjs/i18n/es.js +2 -3
  10. package/dist/cjs/i18n/fi.js +2 -3
  11. package/dist/cjs/i18n/fr.js +2 -3
  12. package/dist/cjs/i18n/hu.js +2 -3
  13. package/dist/cjs/i18n/it.js +2 -3
  14. package/dist/cjs/i18n/ja.js +2 -3
  15. package/dist/cjs/i18n/ko.js +2 -3
  16. package/dist/cjs/i18n/nb.js +2 -3
  17. package/dist/cjs/i18n/nl.js +2 -3
  18. package/dist/cjs/i18n/pl.js +2 -3
  19. package/dist/cjs/i18n/pt_BR.js +2 -3
  20. package/dist/cjs/i18n/ru.js +2 -3
  21. package/dist/cjs/i18n/sv.js +2 -3
  22. package/dist/cjs/i18n/th.js +2 -3
  23. package/dist/cjs/i18n/tr.js +2 -3
  24. package/dist/cjs/i18n/uk.js +2 -3
  25. package/dist/cjs/i18n/vi.js +2 -3
  26. package/dist/cjs/i18n/zh.js +2 -3
  27. package/dist/cjs/i18n/zh_TW.js +2 -3
  28. package/dist/cjs/plugins/table/commands/clear.js +3 -5
  29. package/dist/cjs/plugins/table/commands/collapse.js +2 -3
  30. package/dist/cjs/plugins/table/commands/go-to-next-cell.js +2 -3
  31. package/dist/cjs/plugins/table/commands/hover.js +8 -15
  32. package/dist/cjs/plugins/table/commands/insert.js +8 -13
  33. package/dist/cjs/plugins/table/commands/misc.js +23 -45
  34. package/dist/cjs/plugins/table/commands/referentiality.js +2 -3
  35. package/dist/cjs/plugins/table/commands/selection.js +3 -6
  36. package/dist/cjs/plugins/table/commands/sort.js +5 -6
  37. package/dist/cjs/plugins/table/commands/split-cell.js +2 -3
  38. package/dist/cjs/plugins/table/commands/toggle.js +7 -13
  39. package/dist/cjs/plugins/table/commands-with-analytics.js +19 -37
  40. package/dist/cjs/plugins/table/create-plugin-config.js +2 -3
  41. package/dist/cjs/plugins/table/event-handlers.js +12 -22
  42. package/dist/cjs/plugins/table/handlers.js +4 -5
  43. package/dist/cjs/plugins/table/index.js +8 -9
  44. package/dist/cjs/plugins/table/nodeviews/OverflowShadowsObserver.js +5 -6
  45. package/dist/cjs/plugins/table/nodeviews/TableComponent.js +2 -3
  46. package/dist/cjs/plugins/table/nodeviews/TableContainer.js +10 -13
  47. package/dist/cjs/plugins/table/nodeviews/TableResizer.js +4 -5
  48. package/dist/cjs/plugins/table/nodeviews/TableStickyScrollbar.js +5 -10
  49. package/dist/cjs/plugins/table/nodeviews/table.js +4 -6
  50. package/dist/cjs/plugins/table/nodeviews/tableCell.js +2 -3
  51. package/dist/cjs/plugins/table/nodeviews/update-overflow-shadows.js +2 -3
  52. package/dist/cjs/plugins/table/pm-plugins/decorations/plugin.js +5 -9
  53. package/dist/cjs/plugins/table/pm-plugins/decorations/utils/column-controls.js +3 -5
  54. package/dist/cjs/plugins/table/pm-plugins/decorations/utils/column-resizing.js +3 -5
  55. package/dist/cjs/plugins/table/pm-plugins/decorations/utils/compose-decorations.js +2 -3
  56. package/dist/cjs/plugins/table/pm-plugins/default-table-selection.js +2 -3
  57. package/dist/cjs/plugins/table/pm-plugins/keymap.js +1 -2
  58. package/dist/cjs/plugins/table/pm-plugins/main.js +2 -3
  59. package/dist/cjs/plugins/table/pm-plugins/plugin-factory.js +3 -6
  60. package/dist/cjs/plugins/table/pm-plugins/plugin-key.js +1 -2
  61. package/dist/cjs/plugins/table/pm-plugins/safari-delete-composition-text-issue-workaround.js +3 -5
  62. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/commands.js +3 -5
  63. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/dom.js +3 -5
  64. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +6 -8
  65. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin-key.js +1 -2
  66. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin-state.js +2 -4
  67. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/plugin.js +2 -3
  68. package/dist/cjs/plugins/table/pm-plugins/sticky-headers/util.js +2 -3
  69. package/dist/cjs/plugins/table/pm-plugins/table-analytics.js +5 -8
  70. package/dist/cjs/plugins/table/pm-plugins/table-local-id.js +2 -3
  71. package/dist/cjs/plugins/table/pm-plugins/table-resizing/commands.js +7 -13
  72. package/dist/cjs/plugins/table/pm-plugins/table-resizing/event-handlers.js +3 -4
  73. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin-factory.js +3 -6
  74. package/dist/cjs/plugins/table/pm-plugins/table-resizing/plugin-key.js +1 -2
  75. package/dist/cjs/plugins/table/pm-plugins/table-resizing/reducer.js +2 -3
  76. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/colgroup.js +7 -13
  77. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/column-state.js +5 -10
  78. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/consts.js +2 -4
  79. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/dom.js +8 -15
  80. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/misc.js +2 -3
  81. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-column.js +2 -3
  82. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +70 -71
  83. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/resize-state.js +11 -21
  84. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/scale-table.js +5 -9
  85. package/dist/cjs/plugins/table/pm-plugins/table-resizing/utils/unit-to-number.js +2 -3
  86. package/dist/cjs/plugins/table/pm-plugins/table-selection-keymap.js +1 -2
  87. package/dist/cjs/plugins/table/pm-plugins/table-width.js +3 -5
  88. package/dist/cjs/plugins/table/reducer.js +2 -3
  89. package/dist/cjs/plugins/table/toolbar.js +8 -12
  90. package/dist/cjs/plugins/table/transforms/column-width.js +4 -6
  91. package/dist/cjs/plugins/table/transforms/delete-columns.js +60 -60
  92. package/dist/cjs/plugins/table/transforms/delete-rows.js +52 -52
  93. package/dist/cjs/plugins/table/transforms/fix-tables.js +3 -6
  94. package/dist/cjs/plugins/table/transforms/replace-table.js +3 -4
  95. package/dist/cjs/plugins/table/types.js +5 -9
  96. package/dist/cjs/plugins/table/ui/ColumnResizeWidget/index.js +2 -3
  97. package/dist/cjs/plugins/table/ui/FloatingContextualButton/FixedButton.js +5 -10
  98. package/dist/cjs/plugins/table/ui/FloatingContextualButton/styles.js +3 -5
  99. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +7 -10
  100. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/index.js +1 -2
  101. package/dist/cjs/plugins/table/ui/FloatingContextualMenu/styles.js +2 -4
  102. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/DeleteButton.js +1 -2
  103. package/dist/cjs/plugins/table/ui/FloatingDeleteButton/index.js +1 -2
  104. package/dist/cjs/plugins/table/ui/FloatingInsertButton/InsertButton.js +1 -2
  105. package/dist/cjs/plugins/table/ui/FloatingInsertButton/getPopupOptions.js +1 -2
  106. package/dist/cjs/plugins/table/ui/FloatingInsertButton/index.js +2 -4
  107. package/dist/cjs/plugins/table/ui/LayoutButton/index.js +1 -2
  108. package/dist/cjs/plugins/table/ui/TableFloatingControls/CornerControls/index.js +1 -2
  109. package/dist/cjs/plugins/table/ui/TableFloatingControls/NumberColumn/index.js +2 -3
  110. package/dist/cjs/plugins/table/ui/TableFloatingControls/RowControls/index.js +1 -2
  111. package/dist/cjs/plugins/table/ui/TableFloatingControls/index.js +1 -2
  112. package/dist/cjs/plugins/table/ui/common-styles.js +23 -14
  113. package/dist/cjs/plugins/table/ui/consts.js +47 -94
  114. package/dist/cjs/plugins/table/ui/messages.js +2 -3
  115. package/dist/cjs/plugins/table/ui/ui-styles.js +32 -38
  116. package/dist/cjs/plugins/table/utils/analytics.js +7 -12
  117. package/dist/cjs/plugins/table/utils/collapse.js +3 -5
  118. package/dist/cjs/plugins/table/utils/column-controls.js +6 -11
  119. package/dist/cjs/plugins/table/utils/decoration.js +10 -19
  120. package/dist/cjs/plugins/table/utils/dom.js +16 -28
  121. package/dist/cjs/plugins/table/utils/guidelines.js +1 -2
  122. package/dist/cjs/plugins/table/utils/nodes.js +12 -23
  123. package/dist/cjs/plugins/table/utils/paste.js +10 -16
  124. package/dist/cjs/plugins/table/utils/row-controls.js +7 -13
  125. package/dist/cjs/plugins/table/utils/selection.js +5 -9
  126. package/dist/cjs/plugins/table/utils/snapping.js +4 -7
  127. package/dist/cjs/plugins/table/utils/table.js +3 -5
  128. package/dist/cjs/plugins/table/utils/update-plugin-state-decorations.js +2 -3
  129. package/dist/cjs/plugins/table-plugin.js +1 -2
  130. package/dist/es2019/plugins/table/commands/insert.js +1 -1
  131. package/dist/es2019/plugins/table/commands/sort.js +1 -1
  132. package/dist/es2019/plugins/table/handlers.js +1 -1
  133. package/dist/es2019/plugins/table/toolbar.js +1 -1
  134. package/dist/es2019/plugins/table/transforms/delete-columns.js +1 -1
  135. package/dist/es2019/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +1 -1
  136. package/dist/es2019/plugins/table/ui/common-styles.js +40 -4
  137. package/dist/es2019/plugins/table/ui/ui-styles.js +223 -85
  138. package/dist/esm/plugins/table/commands/insert.js +1 -1
  139. package/dist/esm/plugins/table/commands/sort.js +1 -1
  140. package/dist/esm/plugins/table/event-handlers.js +1 -1
  141. package/dist/esm/plugins/table/handlers.js +1 -1
  142. package/dist/esm/plugins/table/index.js +7 -7
  143. package/dist/esm/plugins/table/nodeviews/OverflowShadowsObserver.js +3 -3
  144. package/dist/esm/plugins/table/nodeviews/TableComponent.js +1 -1
  145. package/dist/esm/plugins/table/nodeviews/TableContainer.js +6 -6
  146. package/dist/esm/plugins/table/nodeviews/TableResizer.js +2 -2
  147. package/dist/esm/plugins/table/nodeviews/TableStickyScrollbar.js +3 -7
  148. package/dist/esm/plugins/table/nodeviews/table.js +1 -1
  149. package/dist/esm/plugins/table/pm-plugins/sticky-headers/nodeviews/tableRow.js +3 -3
  150. package/dist/esm/plugins/table/pm-plugins/table-analytics.js +1 -1
  151. package/dist/esm/plugins/table/pm-plugins/table-resizing/event-handlers.js +1 -1
  152. package/dist/esm/plugins/table/pm-plugins/table-resizing/utils/resize-logic.js +68 -67
  153. package/dist/esm/plugins/table/toolbar.js +2 -2
  154. package/dist/esm/plugins/table/transforms/column-width.js +1 -1
  155. package/dist/esm/plugins/table/transforms/delete-columns.js +57 -56
  156. package/dist/esm/plugins/table/transforms/delete-rows.js +51 -50
  157. package/dist/esm/plugins/table/transforms/replace-table.js +1 -1
  158. package/dist/esm/plugins/table/ui/FloatingContextualMenu/ContextualMenu.js +2 -2
  159. package/dist/esm/plugins/table/ui/common-styles.js +20 -6
  160. package/dist/esm/plugins/table/ui/ui-styles.js +18 -10
  161. package/dist/esm/plugins/table/utils/analytics.js +1 -1
  162. package/dist/esm/plugins/table/utils/dom.js +1 -1
  163. package/dist/esm/plugins/table/utils/paste.js +4 -4
  164. package/dist/types/plugins/table/commands/sort.d.ts +2 -2
  165. package/dist/types/plugins/table/commands-with-analytics.d.ts +4 -4
  166. package/dist/types/plugins/table/handlers.d.ts +2 -2
  167. package/dist/types/plugins/table/nodeviews/TableComponent.d.ts +1 -1
  168. package/dist/types/plugins/table/types.d.ts +1 -1
  169. package/dist/types/plugins/table/ui/TableFloatingControls/index.d.ts +4 -4
  170. package/dist/types-ts4.5/plugins/table/commands/sort.d.ts +2 -2
  171. package/dist/types-ts4.5/plugins/table/commands-with-analytics.d.ts +4 -4
  172. package/dist/types-ts4.5/plugins/table/handlers.d.ts +2 -2
  173. package/dist/types-ts4.5/plugins/table/nodeviews/TableComponent.d.ts +1 -1
  174. package/dist/types-ts4.5/plugins/table/types.d.ts +1 -1
  175. package/dist/types-ts4.5/plugins/table/ui/TableFloatingControls/index.d.ts +4 -4
  176. package/docs/0-intro.tsx +1 -1
  177. package/package.json +8 -4
  178. package/src/__tests__/integration/__snapshots__/auto-size.ts.snap +3 -0
  179. package/src/__tests__/integration/__snapshots__/copy-button.ts.snap +2 -0
  180. package/src/__tests__/integration/__snapshots__/delete-columns.ts.snap +2 -0
  181. package/src/__tests__/integration/__snapshots__/delete-last-column-in-full-width.ts.snap +1 -0
  182. package/src/__tests__/integration/__snapshots__/delete-last-column-with-empty-action.ts.snap +1 -0
  183. package/src/__tests__/integration/__snapshots__/delete-last-row-with-empty-action.ts.snap +2 -0
  184. package/src/__tests__/integration/__snapshots__/delete-rows.ts.snap +3 -0
  185. package/src/__tests__/integration/__snapshots__/deleting-empty-paragraph-under-table.ts.snap +3 -0
  186. package/src/__tests__/integration/__snapshots__/even-columns.ts.snap +2 -0
  187. package/src/__tests__/integration/__snapshots__/insert-cell-header-with-strong-mark.ts.snap +1 -0
  188. package/src/__tests__/integration/__snapshots__/insert-row-inside-layout.ts.snap +1 -0
  189. package/src/__tests__/integration/__snapshots__/layout.ts.snap +9 -0
  190. package/src/__tests__/integration/__snapshots__/resize.ts.snap +11 -0
  191. package/src/__tests__/integration/__snapshots__/scale.ts.snap +2 -0
  192. package/src/__tests__/unit/commands/sort.ts +1 -1
  193. package/src/__tests__/unit/pm-plugins/table-width.ts +190 -1
  194. package/src/__tests__/unit/sort-column.ts +1 -1
  195. package/src/plugins/table/commands/insert.ts +1 -1
  196. package/src/plugins/table/commands/sort.ts +7 -7
  197. package/src/plugins/table/commands-with-analytics.ts +11 -6
  198. package/src/plugins/table/handlers.ts +7 -8
  199. package/src/plugins/table/nodeviews/TableComponent.tsx +1 -1
  200. package/src/plugins/table/nodeviews/table.tsx +1 -1
  201. package/src/plugins/table/toolbar.tsx +1 -1
  202. package/src/plugins/table/transforms/delete-columns.ts +1 -1
  203. package/src/plugins/table/types.ts +1 -1
  204. package/src/plugins/table/ui/FloatingContextualMenu/ContextualMenu.tsx +1 -1
  205. package/src/plugins/table/ui/TableFloatingControls/index.tsx +4 -4
  206. package/src/plugins/table/ui/common-styles.ts +46 -4
  207. package/src/plugins/table/ui/ui-styles.ts +235 -90
  208. package/tsconfig.app.json +3 -0
  209. package/tsconfig.dev.json +3 -0
@@ -313,19 +313,36 @@ export const OverflowShadow = (props: ThemeProps) => css`
313
313
  }
314
314
  `;
315
315
 
316
- const columnHeaderButton = (props: ThemeProps, cssString?: string) => css`
317
- background: ${tableHeaderCellBackgroundColor(props)};
318
- border: 1px solid ${tableBorderColor(props)};
319
- display: block;
320
- box-sizing: border-box;
321
- padding: 0;
322
-
323
- :focus {
324
- outline: none;
325
- }
316
+ const columnHeaderButton = (props: ThemeProps, cssString?: string) => {
317
+ if (getBooleanFF('platform.editor.table.column-controls-styles-updated')) {
318
+ return css`
319
+ background: ${tableHeaderCellBackgroundColor(props)};
320
+ display: block;
321
+ box-sizing: border-box;
322
+ padding: 0;
323
+
324
+ :focus {
325
+ outline: none;
326
+ }
326
327
 
327
- ${cssString}
328
- `;
328
+ ${cssString}
329
+ `;
330
+ } else {
331
+ return css`
332
+ background: ${tableHeaderCellBackgroundColor(props)};
333
+ border: 1px solid ${tableBorderColor(props)};
334
+ display: block;
335
+ box-sizing: border-box;
336
+ padding: 0;
337
+
338
+ :focus {
339
+ outline: none;
340
+ }
341
+
342
+ ${cssString}
343
+ `;
344
+ }
345
+ };
329
346
 
330
347
  const columnHeaderButtonSelected = (props: ThemeProps) => css`
331
348
  color: ${token('color.text.inverse', N0)};
@@ -357,104 +374,232 @@ const getFloatingDotOverrides = (props: ThemeProps) => {
357
374
  : '';
358
375
  };
359
376
 
360
- export const columnControlsDecoration = (props: ThemeProps) => css`
361
- .${ClassName.COLUMN_CONTROLS_DECORATIONS} {
362
- display: none;
363
- cursor: pointer;
364
- position: absolute;
365
- width: calc(100% + ${tableCellBorderWidth * 2}px);
366
- left: -1px;
367
- top: -${columnControlsDecorationHeight + tableCellBorderWidth}px;
368
- height: ${columnControlsDecorationHeight}px;
369
- // floating dot for adding column button
370
- &::before {
371
- content: ' ';
372
- background-color: ${tableBorderColor(props)};
373
- position: absolute;
374
- height: ${lineMarkerSize}px;
375
- width: ${lineMarkerSize}px;
376
- border-radius: 50%;
377
- pointer-events: none;
378
- top: 2px;
379
- right: -1px;
380
- }
377
+ export const columnControlsDecoration = (props: ThemeProps) => {
378
+ if (getBooleanFF('platform.editor.table.column-controls-styles-updated')) {
379
+ return css`
380
+ .${ClassName.COLUMN_CONTROLS_DECORATIONS} {
381
+ display: none;
382
+ cursor: pointer;
383
+ position: absolute;
384
+ width: 100%;
385
+ left: 0;
386
+ top: -${columnControlsDecorationHeight + tableCellBorderWidth}px;
387
+ height: ${columnControlsDecorationHeight}px;
388
+ // floating dot for adding column button
389
+ &::before {
390
+ content: ' ';
391
+ background-color: ${tableBorderColor(props)};
392
+ position: absolute;
393
+ height: ${lineMarkerSize}px;
394
+ width: ${lineMarkerSize}px;
395
+ border-radius: 50%;
396
+ pointer-events: none;
397
+ top: 2px;
398
+ right: -1px;
399
+ }
381
400
 
382
- &::after {
383
- content: ' ';
401
+ &::after {
402
+ content: ' ';
384
403
 
385
- ${columnHeaderButton(
386
- props,
387
- `
404
+ ${columnHeaderButton(
405
+ props,
406
+ `
388
407
  border-right: ${tableCellBorderWidth}px solid ${tableBorderColor(
389
- props,
390
- )};
391
- border-bottom: none;
392
- height: ${tableToolbarSize}px;
408
+ props,
409
+ )};
410
+ border-top: ${tableCellBorderWidth}px solid ${tableBorderColor(props)};
411
+ border-bottom: ${tableCellBorderWidth}px solid ${tableBorderColor(
412
+ props,
413
+ )};
414
+ box-sizing: content-box;
415
+ height: ${tableToolbarSize - 1}px;
393
416
  width: 100%;
394
417
  position: absolute;
395
418
  top: ${columnControlsDecorationHeight - tableToolbarSize}px;
396
419
  left: 0px;
397
420
  z-index: ${columnControlsZIndex};
398
421
  `,
399
- )}
400
- }
401
- }
422
+ )}
423
+ }
424
+ }
402
425
 
403
- // floating dot for adding column button - overriding style on last column to avoid scroll
404
- ${getFloatingDotOverrides(props)}
426
+ // floating dot for adding column button - overriding style on last column to avoid scroll
427
+ ${getFloatingDotOverrides(props)}
405
428
 
406
- div.${ClassName.WITH_CONTROLS}>.${ClassName.ROW_CONTROLS_WRAPPER}::after {
407
- content: ' ';
408
- background-color: ${tableBorderColor(props)};
409
- position: absolute;
410
- height: ${lineMarkerSize}px;
411
- width: ${lineMarkerSize}px;
412
- border-radius: 50%;
413
- pointer-events: none;
414
- top: -${tableToolbarSize + tableCellBorderWidth}px;
415
- right: -1px;
416
- }
429
+ div.${ClassName.WITH_CONTROLS}>.${ClassName.ROW_CONTROLS_WRAPPER}::after {
430
+ content: ' ';
431
+ background-color: ${tableBorderColor(props)};
432
+ position: absolute;
433
+ height: ${lineMarkerSize}px;
434
+ width: ${lineMarkerSize}px;
435
+ border-radius: 50%;
436
+ pointer-events: none;
437
+ top: -${tableToolbarSize + tableCellBorderWidth}px;
438
+ right: -1px;
439
+ }
417
440
 
418
- .${ClassName.WITH_CONTROLS} .${ClassName.COLUMN_CONTROLS_DECORATIONS} {
419
- display: block;
420
- }
441
+ .${ClassName.WITH_CONTROLS} .${ClassName.COLUMN_CONTROLS_DECORATIONS} {
442
+ display: block;
443
+ }
421
444
 
422
- table
423
- tr:first-of-type
424
- td.${ClassName.TABLE_CELL},
425
- table
426
- tr:first-of-type
427
- th.${ClassName.TABLE_HEADER_CELL} {
428
- &.${ClassName.COLUMN_SELECTED},
429
- &.${ClassName.HOVERED_COLUMN},
430
- &.${ClassName.HOVERED_TABLE} {
431
- .${ClassName.COLUMN_CONTROLS_DECORATIONS}::after {
432
- ${columnHeaderButtonSelected(props)};
445
+ table tr:first-of-type th.${ClassName.TABLE_HEADER_CELL} {
446
+ &.${ClassName.COLUMN_SELECTED}, &.${ClassName.HOVERED_TABLE} {
447
+ .${ClassName.COLUMN_CONTROLS_DECORATIONS}::after {
448
+ ${columnHeaderButtonSelected(props)};
449
+ }
450
+
451
+ &.${ClassName.HOVERED_CELL_IN_DANGER}
452
+ .${ClassName.COLUMN_CONTROLS_DECORATIONS}::after {
453
+ background-color: ${tableToolbarDeleteColor(props)};
454
+ border-color: ${tableBorderDeleteColor(props)};
455
+ z-index: ${akEditorUnitZIndex * 100};
456
+ }
457
+ }
458
+ }
459
+
460
+ table tr:first-of-type th.${ClassName.TABLE_HEADER_CELL} {
461
+ &.${ClassName.COLUMN_SELECTED}, &.${ClassName.HOVERED_COLUMN} {
462
+ .${ClassName.COLUMN_CONTROLS_DECORATIONS}::after {
463
+ ${columnHeaderButtonSelected(props)};
464
+ border-left: ${tableCellBorderWidth}px solid
465
+ ${tableBorderSelectedColor(props)};
466
+ left: -${tableCellBorderWidth}px;
467
+ }
468
+ }
433
469
  }
434
470
 
435
- &.${ClassName.HOVERED_CELL_IN_DANGER}
471
+ table tr:first-of-type th.${ClassName.TABLE_HEADER_CELL} {
472
+ &.${ClassName.HOVERED_COLUMN} {
473
+ .${ClassName.COLUMN_CONTROLS_DECORATIONS}::after {
474
+ ${columnHeaderButtonSelected(props)};
475
+ }
476
+
477
+ &.${ClassName.HOVERED_CELL_IN_DANGER}
478
+ .${ClassName.COLUMN_CONTROLS_DECORATIONS}::after {
479
+ background-color: ${tableToolbarDeleteColor(props)};
480
+ border-color: ${tableBorderDeleteColor(props)};
481
+ border-left: ${tableCellBorderWidth}px solid
482
+ ${tableBorderDeleteColor(props)};
483
+ left: -${tableCellBorderWidth}px;
484
+ z-index: ${akEditorUnitZIndex * 100};
485
+ }
486
+ }
487
+ }
488
+
489
+ .${ClassName.TABLE_SELECTED}
490
+ table
491
+ tr:first-of-type
492
+ td.${ClassName.TABLE_CELL},
493
+ .${ClassName.TABLE_SELECTED}
494
+ table
495
+ tr:first-of-type
496
+ th.${ClassName.TABLE_HEADER_CELL} {
436
497
  .${ClassName.COLUMN_CONTROLS_DECORATIONS}::after {
437
- background-color: ${tableToolbarDeleteColor(props)};
438
- border: 1px solid ${tableBorderDeleteColor(props)};
498
+ ${columnHeaderButtonSelected(props)};
499
+ }
500
+ }
501
+ `;
502
+ } else {
503
+ return css`
504
+ .${ClassName.COLUMN_CONTROLS_DECORATIONS} {
505
+ display: none;
506
+ cursor: pointer;
507
+ position: absolute;
508
+ width: calc(100% + ${tableCellBorderWidth * 2}px);
509
+ left: -1px;
510
+ top: -${columnControlsDecorationHeight + tableCellBorderWidth}px;
511
+ height: ${columnControlsDecorationHeight}px;
512
+ // floating dot for adding column button
513
+ &::before {
514
+ content: ' ';
515
+ background-color: ${tableBorderColor(props)};
516
+ position: absolute;
517
+ height: ${lineMarkerSize}px;
518
+ width: ${lineMarkerSize}px;
519
+ border-radius: 50%;
520
+ pointer-events: none;
521
+ top: 2px;
522
+ right: -1px;
523
+ }
524
+
525
+ &::after {
526
+ content: ' ';
527
+
528
+ ${columnHeaderButton(
529
+ props,
530
+ `
531
+ border-right: ${tableCellBorderWidth}px solid ${tableBorderColor(
532
+ props,
533
+ )};
439
534
  border-bottom: none;
440
- z-index: ${akEditorUnitZIndex * 100};
535
+ height: ${tableToolbarSize}px;
536
+ width: 100%;
537
+ position: absolute;
538
+ top: ${columnControlsDecorationHeight - tableToolbarSize}px;
539
+ left: 0px;
540
+ z-index: ${columnControlsZIndex};
541
+ `,
542
+ )}
543
+ }
441
544
  }
442
- }
443
- }
444
545
 
445
- .${ClassName.TABLE_SELECTED}
446
- table
447
- tr:first-of-type
448
- td.${ClassName.TABLE_CELL},
449
- .${ClassName.TABLE_SELECTED}
450
- table
451
- tr:first-of-type
452
- th.${ClassName.TABLE_HEADER_CELL} {
453
- .${ClassName.COLUMN_CONTROLS_DECORATIONS}::after {
454
- ${columnHeaderButtonSelected(props)};
455
- }
546
+ // floating dot for adding column button - overriding style on last column to avoid scroll
547
+ ${getFloatingDotOverrides(props)}
548
+
549
+ div.${ClassName.WITH_CONTROLS}>.${ClassName.ROW_CONTROLS_WRAPPER}::after {
550
+ content: ' ';
551
+ background-color: ${tableBorderColor(props)};
552
+ position: absolute;
553
+ height: ${lineMarkerSize}px;
554
+ width: ${lineMarkerSize}px;
555
+ border-radius: 50%;
556
+ pointer-events: none;
557
+ top: -${tableToolbarSize + tableCellBorderWidth}px;
558
+ right: -1px;
559
+ }
560
+
561
+ .${ClassName.WITH_CONTROLS} .${ClassName.COLUMN_CONTROLS_DECORATIONS} {
562
+ display: block;
563
+ }
564
+
565
+ table
566
+ tr:first-of-type
567
+ td.${ClassName.TABLE_CELL},
568
+ table
569
+ tr:first-of-type
570
+ th.${ClassName.TABLE_HEADER_CELL} {
571
+ &.${ClassName.COLUMN_SELECTED},
572
+ &.${ClassName.HOVERED_COLUMN},
573
+ &.${ClassName.HOVERED_TABLE} {
574
+ .${ClassName.COLUMN_CONTROLS_DECORATIONS}::after {
575
+ ${columnHeaderButtonSelected(props)};
576
+ }
577
+
578
+ &.${ClassName.HOVERED_CELL_IN_DANGER}
579
+ .${ClassName.COLUMN_CONTROLS_DECORATIONS}::after {
580
+ background-color: ${tableToolbarDeleteColor(props)};
581
+ border: 1px solid ${tableBorderDeleteColor(props)};
582
+ border-bottom: none;
583
+ z-index: ${akEditorUnitZIndex * 100};
584
+ }
585
+ }
586
+ }
587
+
588
+ .${ClassName.TABLE_SELECTED}
589
+ table
590
+ tr:first-of-type
591
+ td.${ClassName.TABLE_CELL},
592
+ .${ClassName.TABLE_SELECTED}
593
+ table
594
+ tr:first-of-type
595
+ th.${ClassName.TABLE_HEADER_CELL} {
596
+ .${ClassName.COLUMN_CONTROLS_DECORATIONS}::after {
597
+ ${columnHeaderButtonSelected(props)};
598
+ }
599
+ }
600
+ `;
456
601
  }
457
- `;
602
+ };
458
603
 
459
604
  export const hoveredDeleteButton = (props: ThemeProps) => css`
460
605
  .${ClassName.TABLE_CONTAINER}.${ClassName.HOVERED_DELETE_BUTTON} {
package/tsconfig.app.json CHANGED
@@ -33,6 +33,9 @@
33
33
  "outDir": "../../../tsDist/@atlaskit__editor-plugin-table/app"
34
34
  },
35
35
  "references": [
36
+ {
37
+ "path": "../custom-steps/tsconfig.app.json"
38
+ },
36
39
  {
37
40
  "path": "../editor-common/tsconfig.app.json"
38
41
  },
package/tsconfig.dev.json CHANGED
@@ -42,6 +42,9 @@
42
42
  {
43
43
  "path": "../../design-system/button/tsconfig.app.json"
44
44
  },
45
+ {
46
+ "path": "../custom-steps/tsconfig.app.json"
47
+ },
45
48
  {
46
49
  "path": "../../../build/website/docs/tsconfig.app.json"
47
50
  },