@atlaskit/renderer 130.2.8 → 130.2.10

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 CHANGED
@@ -1,5 +1,25 @@
1
1
  # @atlaskit/renderer
2
2
 
3
+ ## 130.2.10
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+
9
+ ## 130.2.9
10
+
11
+ ### Patch Changes
12
+
13
+ - [`245a43ebad095`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/245a43ebad095) -
14
+ [EDITOR-4550] prevent inline emojis inside smart links from scaling with fontsize
15
+ - [`1a060960612e2`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/1a060960612e2) -
16
+ [ux] [ED-16212] Render fake left/right table border divs (`pm-table-left-border`,
17
+ `pm-table-right-border`) inside `pm-table-container` so the table's vertical edges remain visible
18
+ regardless of horizontal scroll position. Mirrors the editor-plugin-table behavior. Fixes the
19
+ missing right border on overflowing tables inside reference synced blocks. Gated by
20
+ `platform_synced_block_patch_9`.
21
+ - Updated dependencies
22
+
3
23
  ## 130.2.8
4
24
 
5
25
  ### Patch Changes
@@ -168,8 +168,8 @@ var tableCanBeSticky = exports.tableCanBeSticky = function tableCanBeSticky(node
168
168
  return isHeaderRowEnabled(children) && node && node.firstChild && !hasRowspan(node.firstChild);
169
169
  };
170
170
  /**
171
- *
172
- */
171
+ *
172
+ */
173
173
  // Ignored via go/ees005
174
174
  // eslint-disable-next-line @repo/internal/react/no-class-components
175
175
  var TableContainer = exports.TableContainer = /*#__PURE__*/function (_React$Component) {
@@ -621,6 +621,8 @@ var TableContainer = exports.TableContainer = /*#__PURE__*/function (_React$Comp
621
621
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
622
622
  className: _styles.TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM,
623
623
  "data-testid": "sticky-scrollbar-sentinel-bottom"
624
+ }), /*#__PURE__*/_react.default.createElement(_tableNew.RefSyncBlockFakeBorders, {
625
+ isNumberColumnEnabled: isNumberColumnEnabled
624
626
  })));
625
627
  }
626
628
  }]);
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.tableCanBeSticky = exports.shouldHeaderStick = exports.shouldHeaderPinBottom = exports.orderChildren = exports.isTableResizingEnabled = exports.isStickyScrollbarEnabled = exports.isHeaderRowEnabled = exports.hasRowspan = exports.getRefTop = exports.addSortableColumn = exports.TableProcessorWithContainerStyles = exports.TableContainer = void 0;
7
+ exports.tableCanBeSticky = exports.shouldHeaderStick = exports.shouldHeaderPinBottom = exports.orderChildren = exports.isTableResizingEnabled = exports.isStickyScrollbarEnabled = exports.isHeaderRowEnabled = exports.hasRowspan = exports.getRefTop = exports.addSortableColumn = exports.TableProcessorWithContainerStyles = exports.TableContainer = exports.RefSyncBlockFakeBorders = void 0;
8
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
10
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
@@ -25,6 +25,7 @@ var _sticky = require("./table/sticky");
25
25
  var _table = require("./table/table");
26
26
  var _appearance = require("../utils/appearance");
27
27
  var _TableStickyScrollbar = require("./TableStickyScrollbar");
28
+ var _rendererContext = require("../../renderer-context");
28
29
  var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
29
30
  var _table2 = require("@atlaskit/editor-common/table");
30
31
  var _contentMode = require("./table/content-mode");
@@ -145,6 +146,49 @@ var tableCanBeSticky = exports.tableCanBeSticky = function tableCanBeSticky(node
145
146
  ) {
146
147
  return isHeaderRowEnabled(children) && node && node.firstChild && !hasRowspan(node.firstChild);
147
148
  };
149
+ /**
150
+ * Fake left/right borders rendered as direct children of TABLE_CONTAINER
151
+ * (the non-scrolling parent of the horizontally scrolling TABLE_NODE_WRAPPER).
152
+ *
153
+ * The visible styling for these divs lives in `tableFakeBorderStyles`
154
+ * (`renderer/src/ui/Renderer/RendererStyleContainer.tsx`), which is itself
155
+ * gated on `editorExperiment('platform_synced_block', true)` AND
156
+ * `isInsideSyncBlock` AND `fg('platform_synced_block_patch_9')`.
157
+ *
158
+ * Shared between `renderer/src/react/nodes/table.tsx` and
159
+ * `renderer/src/react/nodes/tableNew.tsx` so the two stay in sync.
160
+ */
161
+ var TableFakeBorders = function TableFakeBorders(_ref2) {
162
+ var isNumberColumnEnabled = _ref2.isNumberColumnEnabled;
163
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
164
+ className: _styles.TableSharedCssClassName.TABLE_LEFT_BORDER,
165
+ "data-with-numbered-table": isNumberColumnEnabled ? 'true' : undefined,
166
+ "data-testid": "table-left-border"
167
+ }), /*#__PURE__*/_react.default.createElement("div", {
168
+ className: _styles.TableSharedCssClassName.TABLE_RIGHT_BORDER,
169
+ "data-with-numbered-table": isNumberColumnEnabled ? 'true' : undefined,
170
+ "data-testid": "table-right-border"
171
+ }));
172
+ };
173
+
174
+ /**
175
+ * Reads `nestedRendererType` from RendererContext and renders the fake left/right
176
+ * borders only when the current renderer is the nested renderer for a reference
177
+ * synced block.
178
+ */
179
+ var RefSyncBlockFakeBorders = exports.RefSyncBlockFakeBorders = function RefSyncBlockFakeBorders(_ref3) {
180
+ var isNumberColumnEnabled = _ref3.isNumberColumnEnabled;
181
+ var _useRendererContext = (0, _rendererContext.useRendererContext)(),
182
+ nestedRendererType = _useRendererContext.nestedRendererType;
183
+ var isInsideOfRefSyncBlock = nestedRendererType === 'syncedBlock';
184
+ if (!isInsideOfRefSyncBlock || !(0, _experiments.editorExperiment)('platform_synced_block', true) || !(0, _platformFeatureFlags.fg)('platform_synced_block_patch_9')) {
185
+ return null;
186
+ }
187
+ return /*#__PURE__*/_react.default.createElement(TableFakeBorders, {
188
+ isNumberColumnEnabled: isNumberColumnEnabled
189
+ });
190
+ };
191
+
148
192
  /**
149
193
  * TableContainer renders tables using only CSS-based rules
150
194
  */
@@ -565,6 +609,8 @@ var TableContainer = exports.TableContainer = /*#__PURE__*/function (_React$Comp
565
609
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
566
610
  className: _styles.TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM,
567
611
  "data-testid": "sticky-scrollbar-sentinel-bottom"
612
+ }), /*#__PURE__*/_react.default.createElement(RefSyncBlockFakeBorders, {
613
+ isNumberColumnEnabled: isNumberColumnEnabled
568
614
  })));
569
615
  }
570
616
  }]);
@@ -1932,6 +1932,41 @@ var scaledDenseEmojiStyles = (0, _react.css)((0, _defineProperty2.default)((0, _
1932
1932
  height: "".concat(_emoji.defaultDenseEmojiHeight, "px"),
1933
1933
  width: "".concat(_emoji.defaultDenseEmojiHeight, "px")
1934
1934
  }));
1935
+
1936
+ // this is gated behind `platform_editor_emojis_in_renderer_smart_links`
1937
+ var scaledDenseEmojiStylesNew = (0, _react.css)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, ".".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE), {
1938
+ height: "".concat(_emoji.defaultDenseEmojiHeight, "px"),
1939
+ minHeight: "".concat(_emoji.defaultDenseEmojiHeight, "px"),
1940
+ minWidth: "".concat(_emoji.defaultDenseEmojiHeight, "px"),
1941
+ maxHeight: "".concat(_emoji.denseEmojiHeightH1, "px"),
1942
+ maxWidth: "".concat(_emoji.denseEmojiHeightH1, "px"),
1943
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
1944
+ img: {
1945
+ width: '100%',
1946
+ height: '100%',
1947
+ objectFit: 'contain'
1948
+ }
1949
+ }), "h1 :is(.".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
1950
+ height: "".concat(_emoji.denseEmojiHeightH1, "px"),
1951
+ width: "".concat(_emoji.denseEmojiHeightH1, "px")
1952
+ }), "h2 :is(.".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
1953
+ height: "".concat(_emoji.denseEmojiHeightH2, "px"),
1954
+ width: "".concat(_emoji.denseEmojiHeightH2, "px")
1955
+ }), "h3 :is(.".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
1956
+ height: "".concat(_emoji.denseEmojiHeightH3, "px"),
1957
+ width: "".concat(_emoji.denseEmojiHeightH3, "px")
1958
+ }), "h4 :is(.".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
1959
+ height: "".concat(_emoji.denseEmojiHeightH4, "px"),
1960
+ width: "".concat(_emoji.denseEmojiHeightH4, "px")
1961
+ }), ":is(h5, h6, p) :is(.".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
1962
+ height: "".concat(_emoji.defaultDenseEmojiHeight, "px"),
1963
+ width: "".concat(_emoji.defaultDenseEmojiHeight, "px")
1964
+ }), "[data-testid=\"icon-wrapper\"] :is(.".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
1965
+ minHeight: "".concat(_emoji.defaultInlineEmojiHeight, "px"),
1966
+ minWidth: "".concat(_emoji.defaultInlineEmojiHeight, "px"),
1967
+ height: "".concat(_emoji.defaultInlineEmojiHeight, "px"),
1968
+ width: "".concat(_emoji.defaultInlineEmojiHeight, "px")
1969
+ }));
1935
1970
  var scaledEmojiStyles = (0, _react.css)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, ".".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE), {
1936
1971
  height: "".concat(_emoji.defaultEmojiHeight, "px"),
1937
1972
  minHeight: "".concat(_emoji.defaultEmojiHeight, "px"),
@@ -1960,6 +1995,41 @@ var scaledEmojiStyles = (0, _react.css)((0, _defineProperty2.default)((0, _defin
1960
1995
  height: "".concat(_emoji.defaultEmojiHeight, "px"),
1961
1996
  width: "".concat(_emoji.defaultEmojiHeight, "px")
1962
1997
  }));
1998
+
1999
+ // this is gated behind `platform_editor_emojis_in_renderer_smart_links`
2000
+ var scaledEmojiStylesNew = (0, _react.css)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, ".".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE), {
2001
+ height: "".concat(_emoji.defaultEmojiHeight, "px"),
2002
+ minHeight: "".concat(_emoji.defaultEmojiHeight, "px"),
2003
+ minWidth: "".concat(_emoji.defaultEmojiHeight, "px"),
2004
+ maxHeight: "".concat(_emoji.scaledEmojiHeightH1, "px"),
2005
+ maxWidth: "".concat(_emoji.scaledEmojiHeightH1, "px"),
2006
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
2007
+ img: {
2008
+ width: '100%',
2009
+ height: '100%',
2010
+ objectFit: 'contain'
2011
+ }
2012
+ }), "h1 :is(.".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
2013
+ height: "".concat(_emoji.scaledEmojiHeightH1, "px"),
2014
+ width: "".concat(_emoji.scaledEmojiHeightH1, "px")
2015
+ }), "h2 :is(.".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
2016
+ height: "".concat(_emoji.scaledEmojiHeightH2, "px"),
2017
+ width: "".concat(_emoji.scaledEmojiHeightH2, "px")
2018
+ }), "h3 :is(.".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
2019
+ height: "".concat(_emoji.scaledEmojiHeightH3, "px"),
2020
+ width: "".concat(_emoji.scaledEmojiHeightH3, "px")
2021
+ }), "h4 :is(.".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
2022
+ height: "".concat(_emoji.scaledEmojiHeightH4, "px"),
2023
+ width: "".concat(_emoji.scaledEmojiHeightH4, "px")
2024
+ }), ":is(h5, h6, p) :is(.".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
2025
+ height: "".concat(_emoji.defaultEmojiHeight, "px"),
2026
+ width: "".concat(_emoji.defaultEmojiHeight, "px")
2027
+ }), "[data-testid=\"icon-wrapper\"] :is(.".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(_emoji.EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
2028
+ minHeight: "".concat(_emoji.defaultInlineEmojiHeight, "px"),
2029
+ minWidth: "".concat(_emoji.defaultInlineEmojiHeight, "px"),
2030
+ height: "".concat(_emoji.defaultInlineEmojiHeight, "px"),
2031
+ width: "".concat(_emoji.defaultInlineEmojiHeight, "px")
2032
+ }));
1963
2033
  var denseStyles = (0, _react.css)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, ".".concat(_emoji.EmojiSharedCssClassName.EMOJI_IMAGE), {
1964
2034
  height: "calc(".concat(_emoji.defaultEmojiHeight, " * var(--ak-renderer-base-font-size) / ").concat(_editorSharedStyles.akEditorFullPageDefaultFontSize, ")"),
1965
2035
  width: "calc(".concat(_emoji.defaultEmojiHeight, " * var(--ak-renderer-base-font-size) / ").concat(_editorSharedStyles.akEditorFullPageDefaultFontSize, ")"),
@@ -2008,6 +2078,37 @@ var syncBlockRendererStyles = (0, _react.css)({
2008
2078
  maxWidth: 'none',
2009
2079
  padding: 0
2010
2080
  });
2081
+
2082
+ /**
2083
+ * Fake left/right table borders.
2084
+ *
2085
+ * Adapted from the editor-plugin-table behavior (see editor-common's
2086
+ * `tableSharedStyle()` in `editor-common/src/styles/shared/table.ts`). The
2087
+ * visible vertical edges of the table are painted by these absolutely-positioned
2088
+ * 1px divs that live inside the (non-scrolling) TABLE_CONTAINER, while the real
2089
+ * <table> left/right borders are made `transparent`. Because the divs are not
2090
+ * inside the horizontally scrolling TABLE_NODE_WRAPPER, they remain visible
2091
+ * regardless of scroll position — fixing the missing right border when an
2092
+ * overflowing table inside a reference synced block is scrolled all the way to
2093
+ * the left.
2094
+ *
2095
+ * The `height` formula adjusted for table in renderer
2096
+ */
2097
+ var tableFakeBorderStyles = (0, _react.css)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, ".".concat(_styles.TableSharedCssClassName.TABLE_CONTAINER), (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, ".".concat(_styles.TableSharedCssClassName.TABLE_RIGHT_BORDER, ",\n\t\t.").concat(_styles.TableSharedCssClassName.TABLE_LEFT_BORDER), {
2098
+ display: 'block',
2099
+ width: '1px',
2100
+ height: "calc(100% - ".concat("var(--ds-space-300, 24px)", " - ", "var(--ds-space-250, 20px)", ")"),
2101
+ background: "var(--ds-background-accent-gray-subtler, #DDDEE1)",
2102
+ position: 'absolute',
2103
+ top: "var(--ds-space-300, 24px)"
2104
+ }), ".".concat(_styles.TableSharedCssClassName.TABLE_RIGHT_BORDER), {
2105
+ right: 0
2106
+ }), ".".concat(_styles.TableSharedCssClassName.TABLE_LEFT_BORDER, ",\n\t\t.").concat(_styles.TableSharedCssClassName.TABLE_LEFT_BORDER, "[data-with-numbered-table='true']"), {
2107
+ left: 0
2108
+ })), ".".concat(_styles.TableSharedCssClassName.TABLE_NODE_WRAPPER, " > table,\n\t.").concat(_styles.TableSharedCssClassName.TABLE_STICKY_WRAPPER, " > table"), {
2109
+ borderLeftColor: 'transparent',
2110
+ borderRightColor: 'transparent'
2111
+ }));
2011
2112
  var syncBlockStyles = (0, _react.css)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, ".".concat(_syncBlock.SyncBlockSharedCssClassName.renderer, ", .").concat(_syncBlock.BodiedSyncBlockSharedCssClassName.renderer, ", .").concat(_syncBlock.SyncBlockSharedCssClassName.error, ", .").concat(_syncBlock.SyncBlockSharedCssClassName.loading), {
2012
2113
  borderRadius: "var(--ds-radius-small, 3px)",
2013
2114
  marginTop: "var(--ds-space-075, 6px)",
@@ -2075,7 +2176,7 @@ var RendererStyleContainer = exports.RendererStyleContainer = function RendererS
2075
2176
  // this should be placed after baseOtherStyles
2076
2177
  (0, _expValEquals.expValEquals)('platform_editor_render_bodied_extension_as_inline', 'isEnabled', true) && ((0, _expValEquals.expValEquals)('platform_editor_remove_important_in_render_ext', 'isEnabled', true) ? extensionAsInlineStyle : oldExtensionAsInlineStyle), inlineExtensionRendererMarginFix, allowNestedHeaderLinks && ((0, _expValEquals.expValEquals)('platform_editor_copy_link_a11y_inconsistency_fix', 'isEnabled', true) ? alignedHeadingAnchorStyle : alignedHeadingAnchorStyleDuplicateAnchor), mediaSingleSharedStyle,
2077
2178
  // merge firstWrappedMediaStyles with mediaSingleSharedStyle when clean up platform_editor_fix_media_in_renderer
2078
- (0, _platformFeatureFlags.fg)('platform_editor_fix_media_in_renderer') && firstWrappedMediaStyles, tableSharedStyle, (0, _expValEquals.expValEquals)('platform_editor_table_fit_to_content_auto_convert', 'isEnabled', true) && tableContentModeStyles, tableRendererHeaderStylesForTableCellOnly, (0, _platformFeatureFlags.fg)('platform_editor_bordered_panel_nested_in_table') && tableRendererNestedPanelStyles, isBackgroundClipBrowserFixNeeded() && tableStylesBackGroundClipForGeckoForTableCellOnly, (0, _platformFeatureFlags.fg)('platform_editor_nested_dnd_styles_changes') ? firstNodeWithNotMarginTopWithNestedDnD : firstNodeWithNotMarginTop, rendererTableStyles, (0, _table.isStickyScrollbarEnabled)(appearance) && stickyScrollbarStyles, rendererTableHeaderEqualHeightStylesForTableCellOnly, allowColumnSorting && rendererTableSortableColumnStyles, allowColumnSorting && allowNestedHeaderLinks && ((0, _expValEquals.expValEquals)('platform_editor_copy_link_a11y_inconsistency_fix', 'isEnabled', true) ? rendererTableHeaderEqualHeightStylesAllowNestedHeaderLinks : rendererTableHeaderEqualHeightStylesAllowNestedHeaderLinksDuplicateAnchor), rendererTableColumnStyles, stickyHeaderStyles, codeBlockAndLayoutStyles, columnLayoutSharedStyle, isAdvancedLayoutsOn && columnLayoutResponsiveSharedStyle, isAdvancedLayoutsOn && columnLayoutResponsiveRendererStyles, isAdvancedLayoutsOn && layoutSectionForAdvancedLayoutsStyles, !useBlockRenderForCodeBlock && gridRenderForCodeBlockStyles, browser.safari && codeBlockInListSafariFixStyles, appearance === 'full-page' && !isPreviewPanelResponsivenessOn && responsiveBreakoutWidth, appearance === 'full-page' && isPreviewPanelResponsivenessOn && responsiveBreakoutWidthWithReducedPadding, (appearance === 'full-width' || appearance === 'max' && ((0, _expValEquals.expValEquals)('editor_tinymce_full_width_mode', 'isEnabled', true) || (0, _expValEquals.expValEquals)('confluence_max_width_content_appearance', 'isEnabled', true))) && responsiveBreakoutWidthFullWidth, (0, _expValEquals.expValEquals)('platform_editor_lovability_emoji_scaling', 'isEnabled', true) ? isCompactModeEnabled ? scaledDenseEmojiStyles : scaledEmojiStyles : isCompactModeEnabled ? denseStyles : undefined, (0, _experiments.editorExperiment)('platform_synced_block', true) && syncBlockStyles, centerWrapperStyles, (0, _experiments.editorExperiment)('platform_synced_block', true) && isInsideSyncBlock && (0, _platformFeatureFlags.fg)('platform_synced_block_patch_9') ? syncBlockRendererStyles : null, (0, _expValEquals.expValEquals)('platform_editor_hide_extension_renderer_support', 'isEnabled', true) && hideExtensionStyles],
2179
+ (0, _platformFeatureFlags.fg)('platform_editor_fix_media_in_renderer') && firstWrappedMediaStyles, tableSharedStyle, (0, _expValEquals.expValEquals)('platform_editor_table_fit_to_content_auto_convert', 'isEnabled', true) && tableContentModeStyles, tableRendererHeaderStylesForTableCellOnly, (0, _platformFeatureFlags.fg)('platform_editor_bordered_panel_nested_in_table') && tableRendererNestedPanelStyles, isBackgroundClipBrowserFixNeeded() && tableStylesBackGroundClipForGeckoForTableCellOnly, (0, _platformFeatureFlags.fg)('platform_editor_nested_dnd_styles_changes') ? firstNodeWithNotMarginTopWithNestedDnD : firstNodeWithNotMarginTop, rendererTableStyles, (0, _table.isStickyScrollbarEnabled)(appearance) && stickyScrollbarStyles, rendererTableHeaderEqualHeightStylesForTableCellOnly, allowColumnSorting && rendererTableSortableColumnStyles, allowColumnSorting && allowNestedHeaderLinks && ((0, _expValEquals.expValEquals)('platform_editor_copy_link_a11y_inconsistency_fix', 'isEnabled', true) ? rendererTableHeaderEqualHeightStylesAllowNestedHeaderLinks : rendererTableHeaderEqualHeightStylesAllowNestedHeaderLinksDuplicateAnchor), rendererTableColumnStyles, stickyHeaderStyles, codeBlockAndLayoutStyles, columnLayoutSharedStyle, isAdvancedLayoutsOn && columnLayoutResponsiveSharedStyle, isAdvancedLayoutsOn && columnLayoutResponsiveRendererStyles, isAdvancedLayoutsOn && layoutSectionForAdvancedLayoutsStyles, !useBlockRenderForCodeBlock && gridRenderForCodeBlockStyles, browser.safari && codeBlockInListSafariFixStyles, appearance === 'full-page' && !isPreviewPanelResponsivenessOn && responsiveBreakoutWidth, appearance === 'full-page' && isPreviewPanelResponsivenessOn && responsiveBreakoutWidthWithReducedPadding, (appearance === 'full-width' || appearance === 'max' && ((0, _expValEquals.expValEquals)('editor_tinymce_full_width_mode', 'isEnabled', true) || (0, _expValEquals.expValEquals)('confluence_max_width_content_appearance', 'isEnabled', true))) && responsiveBreakoutWidthFullWidth, (0, _expValEquals.expValEquals)('platform_editor_lovability_emoji_scaling', 'isEnabled', true) ? (0, _expValEquals.expValEquals)('platform_editor_emojis_in_renderer_smart_links', 'isEnabled', true) ? isCompactModeEnabled ? scaledDenseEmojiStylesNew : scaledEmojiStylesNew : isCompactModeEnabled ? scaledDenseEmojiStyles : scaledEmojiStyles : isCompactModeEnabled ? denseStyles : undefined, (0, _experiments.editorExperiment)('platform_synced_block', true) && syncBlockStyles, centerWrapperStyles, (0, _experiments.editorExperiment)('platform_synced_block', true) && isInsideSyncBlock && (0, _platformFeatureFlags.fg)('platform_synced_block_patch_9') ? syncBlockRendererStyles : null, isInsideSyncBlock && (0, _experiments.editorExperiment)('platform_synced_block', true) && (0, _platformFeatureFlags.fg)('platform_synced_block_patch_9') && tableFakeBorderStyles, (0, _expValEquals.expValEquals)('platform_editor_hide_extension_renderer_support', 'isEnabled', true) && hideExtensionStyles],
2079
2180
  "data-testid": testId
2080
2181
  }, children);
2081
2182
  };
@@ -71,7 +71,7 @@ var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
71
71
  var TABLE_INFO_TIMEOUT = 10000;
72
72
  var RENDER_EVENT_SAMPLE_RATE = 0.2;
73
73
  var packageName = "@atlaskit/renderer";
74
- var packageVersion = "130.2.7";
74
+ var packageVersion = "130.2.9";
75
75
  var setAsQueryContainerStyles = (0, _react2.css)({
76
76
  containerName: 'ak-renderer-wrapper',
77
77
  containerType: 'inline-size'
@@ -18,7 +18,7 @@ import { StickyTable, tableStickyPadding, OverflowParent } from './table/sticky'
18
18
  import { Table } from './table/table';
19
19
  import { isCommentAppearance, isFullPageAppearance, isFullWidthAppearance, isFullWidthOrFullPageAppearance, isMaxWidthAppearance } from '../utils/appearance';
20
20
  import { TableStickyScrollbar } from './TableStickyScrollbar';
21
- import { TableProcessorWithContainerStyles } from './tableNew';
21
+ import { TableProcessorWithContainerStyles, RefSyncBlockFakeBorders } from './tableNew';
22
22
  import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
23
23
  import { isTableInContentMode } from '@atlaskit/editor-common/table';
24
24
  import { isContentModeSupported } from './table/content-mode';
@@ -137,8 +137,8 @@ export const tableCanBeSticky = (node, children
137
137
  return isHeaderRowEnabled(children) && node && node.firstChild && !hasRowspan(node.firstChild);
138
138
  };
139
139
  /**
140
- *
141
- */
140
+ *
141
+ */
142
142
  // Ignored via go/ees005
143
143
  // eslint-disable-next-line @repo/internal/react/no-class-components
144
144
  export class TableContainer extends React.Component {
@@ -564,6 +564,8 @@ export class TableContainer extends React.Component {
564
564
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
565
565
  className: TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM,
566
566
  "data-testid": "sticky-scrollbar-sentinel-bottom"
567
+ }), /*#__PURE__*/React.createElement(RefSyncBlockFakeBorders, {
568
+ isNumberColumnEnabled: isNumberColumnEnabled
567
569
  })));
568
570
  }
569
571
  }
@@ -14,6 +14,7 @@ import { StickyTable, tableStickyPadding, OverflowParent } from './table/sticky'
14
14
  import { Table } from './table/table';
15
15
  import { isCommentAppearance, isFullWidthOrFullPageAppearance, isFullWidthAppearance, isMaxWidthAppearance, isFullPageAppearance } from '../utils/appearance';
16
16
  import { TableStickyScrollbar } from './TableStickyScrollbar';
17
+ import { useRendererContext } from '../../renderer-context';
17
18
  import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
18
19
  import { isTableInContentMode } from '@atlaskit/editor-common/table';
19
20
  import { isContentModeSupported } from './table/content-mode';
@@ -114,6 +115,50 @@ export const tableCanBeSticky = (node, children
114
115
  ) => {
115
116
  return isHeaderRowEnabled(children) && node && node.firstChild && !hasRowspan(node.firstChild);
116
117
  };
118
+ /**
119
+ * Fake left/right borders rendered as direct children of TABLE_CONTAINER
120
+ * (the non-scrolling parent of the horizontally scrolling TABLE_NODE_WRAPPER).
121
+ *
122
+ * The visible styling for these divs lives in `tableFakeBorderStyles`
123
+ * (`renderer/src/ui/Renderer/RendererStyleContainer.tsx`), which is itself
124
+ * gated on `editorExperiment('platform_synced_block', true)` AND
125
+ * `isInsideSyncBlock` AND `fg('platform_synced_block_patch_9')`.
126
+ *
127
+ * Shared between `renderer/src/react/nodes/table.tsx` and
128
+ * `renderer/src/react/nodes/tableNew.tsx` so the two stay in sync.
129
+ */
130
+ const TableFakeBorders = ({
131
+ isNumberColumnEnabled
132
+ }) => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
133
+ className: TableSharedCssClassName.TABLE_LEFT_BORDER,
134
+ "data-with-numbered-table": isNumberColumnEnabled ? 'true' : undefined,
135
+ "data-testid": "table-left-border"
136
+ }), /*#__PURE__*/React.createElement("div", {
137
+ className: TableSharedCssClassName.TABLE_RIGHT_BORDER,
138
+ "data-with-numbered-table": isNumberColumnEnabled ? 'true' : undefined,
139
+ "data-testid": "table-right-border"
140
+ }));
141
+
142
+ /**
143
+ * Reads `nestedRendererType` from RendererContext and renders the fake left/right
144
+ * borders only when the current renderer is the nested renderer for a reference
145
+ * synced block.
146
+ */
147
+ export const RefSyncBlockFakeBorders = ({
148
+ isNumberColumnEnabled
149
+ }) => {
150
+ const {
151
+ nestedRendererType
152
+ } = useRendererContext();
153
+ const isInsideOfRefSyncBlock = nestedRendererType === 'syncedBlock';
154
+ if (!isInsideOfRefSyncBlock || !editorExperiment('platform_synced_block', true) || !fg('platform_synced_block_patch_9')) {
155
+ return null;
156
+ }
157
+ return /*#__PURE__*/React.createElement(TableFakeBorders, {
158
+ isNumberColumnEnabled: isNumberColumnEnabled
159
+ });
160
+ };
161
+
117
162
  /**
118
163
  * TableContainer renders tables using only CSS-based rules
119
164
  */
@@ -513,6 +558,8 @@ export class TableContainer extends React.Component {
513
558
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
514
559
  className: TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM,
515
560
  "data-testid": "sticky-scrollbar-sentinel-bottom"
561
+ }), /*#__PURE__*/React.createElement(RefSyncBlockFakeBorders, {
562
+ isNumberColumnEnabled: isNumberColumnEnabled
516
563
  })));
517
564
  }
518
565
  }
@@ -23,7 +23,7 @@ import { SORTABLE_COLUMN_ICON_CLASSNAME } from '@atlaskit/editor-common/table';
23
23
  import { LightWeightCodeBlockCssClassName } from '../../react/nodes/codeBlock/components/lightWeightCodeBlock';
24
24
  import { editorUGCToken } from '@atlaskit/editor-common/ugc-tokens';
25
25
  import { getBaseFontSize } from './get-base-font-size';
26
- import { EmojiSharedCssClassName, defaultEmojiHeight, defaultDenseEmojiHeight, scaledEmojiHeightH1, scaledEmojiHeightH2, scaledEmojiHeightH3, scaledEmojiHeightH4, denseEmojiHeightH1, denseEmojiHeightH2, denseEmojiHeightH3, denseEmojiHeightH4 } from '@atlaskit/editor-common/emoji';
26
+ import { EmojiSharedCssClassName, defaultEmojiHeight, defaultDenseEmojiHeight, defaultInlineEmojiHeight, scaledEmojiHeightH1, scaledEmojiHeightH2, scaledEmojiHeightH3, scaledEmojiHeightH4, denseEmojiHeightH1, denseEmojiHeightH2, denseEmojiHeightH3, denseEmojiHeightH4 } from '@atlaskit/editor-common/emoji';
27
27
  import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
28
28
  import { BodiedSyncBlockSharedCssClassName, SyncBlockSharedCssClassName } from '@atlaskit/editor-common/sync-block';
29
29
  const wrappedMediaBreakoutPoint = 410;
@@ -2458,6 +2458,50 @@ const scaledDenseEmojiStyles = css({
2458
2458
  width: `${defaultDenseEmojiHeight}px`
2459
2459
  }
2460
2460
  });
2461
+
2462
+ // this is gated behind `platform_editor_emojis_in_renderer_smart_links`
2463
+ const scaledDenseEmojiStylesNew = css({
2464
+ [`.${EmojiSharedCssClassName.EMOJI_IMAGE}`]: {
2465
+ height: `${defaultDenseEmojiHeight}px`,
2466
+ minHeight: `${defaultDenseEmojiHeight}px`,
2467
+ minWidth: `${defaultDenseEmojiHeight}px`,
2468
+ maxHeight: `${denseEmojiHeightH1}px`,
2469
+ maxWidth: `${denseEmojiHeightH1}px`,
2470
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
2471
+ img: {
2472
+ width: '100%',
2473
+ height: '100%',
2474
+ objectFit: 'contain'
2475
+ }
2476
+ },
2477
+ [`h1 :is(.${EmojiSharedCssClassName.EMOJI_IMAGE}, .${EmojiSharedCssClassName.EMOJI_SPRITE}, .${EmojiSharedCssClassName.EMOJI_PLACEHOLDER})`]: {
2478
+ height: `${denseEmojiHeightH1}px`,
2479
+ width: `${denseEmojiHeightH1}px`
2480
+ },
2481
+ [`h2 :is(.${EmojiSharedCssClassName.EMOJI_IMAGE}, .${EmojiSharedCssClassName.EMOJI_SPRITE}, .${EmojiSharedCssClassName.EMOJI_PLACEHOLDER})`]: {
2482
+ height: `${denseEmojiHeightH2}px`,
2483
+ width: `${denseEmojiHeightH2}px`
2484
+ },
2485
+ [`h3 :is(.${EmojiSharedCssClassName.EMOJI_IMAGE}, .${EmojiSharedCssClassName.EMOJI_SPRITE}, .${EmojiSharedCssClassName.EMOJI_PLACEHOLDER})`]: {
2486
+ height: `${denseEmojiHeightH3}px`,
2487
+ width: `${denseEmojiHeightH3}px`
2488
+ },
2489
+ [`h4 :is(.${EmojiSharedCssClassName.EMOJI_IMAGE}, .${EmojiSharedCssClassName.EMOJI_SPRITE}, .${EmojiSharedCssClassName.EMOJI_PLACEHOLDER})`]: {
2490
+ height: `${denseEmojiHeightH4}px`,
2491
+ width: `${denseEmojiHeightH4}px`
2492
+ },
2493
+ [`:is(h5, h6, p) :is(.${EmojiSharedCssClassName.EMOJI_IMAGE}, .${EmojiSharedCssClassName.EMOJI_SPRITE}, .${EmojiSharedCssClassName.EMOJI_PLACEHOLDER})`]: {
2494
+ height: `${defaultDenseEmojiHeight}px`,
2495
+ width: `${defaultDenseEmojiHeight}px`
2496
+ },
2497
+ // sync with platform/packages/linking-platform/smart-card/src/view/InlineCard/IconAndTitleLayout/index.tsx
2498
+ [`[data-testid="icon-wrapper"] :is(.${EmojiSharedCssClassName.EMOJI_IMAGE}, .${EmojiSharedCssClassName.EMOJI_SPRITE}, .${EmojiSharedCssClassName.EMOJI_PLACEHOLDER})`]: {
2499
+ minHeight: `${defaultInlineEmojiHeight}px`,
2500
+ minWidth: `${defaultInlineEmojiHeight}px`,
2501
+ height: `${defaultInlineEmojiHeight}px`,
2502
+ width: `${defaultInlineEmojiHeight}px`
2503
+ }
2504
+ });
2461
2505
  const scaledEmojiStyles = css({
2462
2506
  [`.${EmojiSharedCssClassName.EMOJI_IMAGE}`]: {
2463
2507
  height: `${defaultEmojiHeight}px`,
@@ -2493,6 +2537,50 @@ const scaledEmojiStyles = css({
2493
2537
  width: `${defaultEmojiHeight}px`
2494
2538
  }
2495
2539
  });
2540
+
2541
+ // this is gated behind `platform_editor_emojis_in_renderer_smart_links`
2542
+ const scaledEmojiStylesNew = css({
2543
+ [`.${EmojiSharedCssClassName.EMOJI_IMAGE}`]: {
2544
+ height: `${defaultEmojiHeight}px`,
2545
+ minHeight: `${defaultEmojiHeight}px`,
2546
+ minWidth: `${defaultEmojiHeight}px`,
2547
+ maxHeight: `${scaledEmojiHeightH1}px`,
2548
+ maxWidth: `${scaledEmojiHeightH1}px`,
2549
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
2550
+ img: {
2551
+ width: '100%',
2552
+ height: '100%',
2553
+ objectFit: 'contain'
2554
+ }
2555
+ },
2556
+ [`h1 :is(.${EmojiSharedCssClassName.EMOJI_IMAGE}, .${EmojiSharedCssClassName.EMOJI_SPRITE}, .${EmojiSharedCssClassName.EMOJI_PLACEHOLDER})`]: {
2557
+ height: `${scaledEmojiHeightH1}px`,
2558
+ width: `${scaledEmojiHeightH1}px`
2559
+ },
2560
+ [`h2 :is(.${EmojiSharedCssClassName.EMOJI_IMAGE}, .${EmojiSharedCssClassName.EMOJI_SPRITE}, .${EmojiSharedCssClassName.EMOJI_PLACEHOLDER})`]: {
2561
+ height: `${scaledEmojiHeightH2}px`,
2562
+ width: `${scaledEmojiHeightH2}px`
2563
+ },
2564
+ [`h3 :is(.${EmojiSharedCssClassName.EMOJI_IMAGE}, .${EmojiSharedCssClassName.EMOJI_SPRITE}, .${EmojiSharedCssClassName.EMOJI_PLACEHOLDER})`]: {
2565
+ height: `${scaledEmojiHeightH3}px`,
2566
+ width: `${scaledEmojiHeightH3}px`
2567
+ },
2568
+ [`h4 :is(.${EmojiSharedCssClassName.EMOJI_IMAGE}, .${EmojiSharedCssClassName.EMOJI_SPRITE}, .${EmojiSharedCssClassName.EMOJI_PLACEHOLDER})`]: {
2569
+ height: `${scaledEmojiHeightH4}px`,
2570
+ width: `${scaledEmojiHeightH4}px`
2571
+ },
2572
+ [`:is(h5, h6, p) :is(.${EmojiSharedCssClassName.EMOJI_IMAGE}, .${EmojiSharedCssClassName.EMOJI_SPRITE}, .${EmojiSharedCssClassName.EMOJI_PLACEHOLDER})`]: {
2573
+ height: `${defaultEmojiHeight}px`,
2574
+ width: `${defaultEmojiHeight}px`
2575
+ },
2576
+ // sync with platform/packages/linking-platform/smart-card/src/view/InlineCard/IconAndTitleLayout/index.tsx
2577
+ [`[data-testid="icon-wrapper"] :is(.${EmojiSharedCssClassName.EMOJI_IMAGE}, .${EmojiSharedCssClassName.EMOJI_SPRITE}, .${EmojiSharedCssClassName.EMOJI_PLACEHOLDER})`]: {
2578
+ minHeight: `${defaultInlineEmojiHeight}px`,
2579
+ minWidth: `${defaultInlineEmojiHeight}px`,
2580
+ height: `${defaultInlineEmojiHeight}px`,
2581
+ width: `${defaultInlineEmojiHeight}px`
2582
+ }
2583
+ });
2496
2584
  const denseStyles = css({
2497
2585
  // Scale emoji size based on base font size
2498
2586
  // Default: 20px emoji at 16px base font
@@ -2552,6 +2640,55 @@ const syncBlockRendererStyles = css({
2552
2640
  maxWidth: 'none',
2553
2641
  padding: 0
2554
2642
  });
2643
+
2644
+ /**
2645
+ * Fake left/right table borders.
2646
+ *
2647
+ * Adapted from the editor-plugin-table behavior (see editor-common's
2648
+ * `tableSharedStyle()` in `editor-common/src/styles/shared/table.ts`). The
2649
+ * visible vertical edges of the table are painted by these absolutely-positioned
2650
+ * 1px divs that live inside the (non-scrolling) TABLE_CONTAINER, while the real
2651
+ * <table> left/right borders are made `transparent`. Because the divs are not
2652
+ * inside the horizontally scrolling TABLE_NODE_WRAPPER, they remain visible
2653
+ * regardless of scroll position — fixing the missing right border when an
2654
+ * overflowing table inside a reference synced block is scrolled all the way to
2655
+ * the left.
2656
+ *
2657
+ * The `height` formula adjusted for table in renderer
2658
+ */
2659
+ const tableFakeBorderStyles = css({
2660
+ [`.${TableSharedCssClassName.TABLE_CONTAINER}`]: {
2661
+ // Mirror the editor's tableSharedStyle() rule from
2662
+ // `editor-common/src/styles/shared/table.ts` (lines 142-150). The fake
2663
+ // borders are absolutely positioned inside pm-table-container;
2664
+ // their height is adjusted for renderer to `100% - space.300 - space.250` so the border runs from
2665
+ // the top of the table to the bottom of the container
2666
+ [`.${TableSharedCssClassName.TABLE_RIGHT_BORDER},
2667
+ .${TableSharedCssClassName.TABLE_LEFT_BORDER}`]: {
2668
+ display: 'block',
2669
+ width: '1px',
2670
+ height: `calc(100% - ${"var(--ds-space-300, 24px)"} - ${"var(--ds-space-250, 20px)"})`,
2671
+ background: "var(--ds-background-accent-gray-subtler, #DDDEE1)",
2672
+ position: 'absolute',
2673
+ top: "var(--ds-space-300, 24px)"
2674
+ },
2675
+ [`.${TableSharedCssClassName.TABLE_RIGHT_BORDER}`]: {
2676
+ right: 0
2677
+ },
2678
+ [`.${TableSharedCssClassName.TABLE_LEFT_BORDER},
2679
+ .${TableSharedCssClassName.TABLE_LEFT_BORDER}[data-with-numbered-table='true']`]: {
2680
+ left: 0
2681
+ }
2682
+ },
2683
+ // Make the real left/right table borders transparent so the fake border
2684
+ // divs above are the only painted vertical edges. Top/bottom borders on the
2685
+ // <table> element remain visible.
2686
+ [`.${TableSharedCssClassName.TABLE_NODE_WRAPPER} > table,
2687
+ .${TableSharedCssClassName.TABLE_STICKY_WRAPPER} > table`]: {
2688
+ borderLeftColor: 'transparent',
2689
+ borderRightColor: 'transparent'
2690
+ }
2691
+ });
2555
2692
  const syncBlockStyles = css({
2556
2693
  [`.${SyncBlockSharedCssClassName.renderer}, .${BodiedSyncBlockSharedCssClassName.renderer}, .${SyncBlockSharedCssClassName.error}, .${SyncBlockSharedCssClassName.loading}`]: {
2557
2694
  borderRadius: "var(--ds-radius-small, 3px)",
@@ -2629,7 +2766,7 @@ export const RendererStyleContainer = props => {
2629
2766
  // this should be placed after baseOtherStyles
2630
2767
  expValEquals('platform_editor_render_bodied_extension_as_inline', 'isEnabled', true) && (expValEquals('platform_editor_remove_important_in_render_ext', 'isEnabled', true) ? extensionAsInlineStyle : oldExtensionAsInlineStyle), inlineExtensionRendererMarginFix, allowNestedHeaderLinks && (expValEquals('platform_editor_copy_link_a11y_inconsistency_fix', 'isEnabled', true) ? alignedHeadingAnchorStyle : alignedHeadingAnchorStyleDuplicateAnchor), mediaSingleSharedStyle,
2631
2768
  // merge firstWrappedMediaStyles with mediaSingleSharedStyle when clean up platform_editor_fix_media_in_renderer
2632
- fg('platform_editor_fix_media_in_renderer') && firstWrappedMediaStyles, tableSharedStyle, expValEquals('platform_editor_table_fit_to_content_auto_convert', 'isEnabled', true) && tableContentModeStyles, tableRendererHeaderStylesForTableCellOnly, fg('platform_editor_bordered_panel_nested_in_table') && tableRendererNestedPanelStyles, isBackgroundClipBrowserFixNeeded() && tableStylesBackGroundClipForGeckoForTableCellOnly, fg('platform_editor_nested_dnd_styles_changes') ? firstNodeWithNotMarginTopWithNestedDnD : firstNodeWithNotMarginTop, rendererTableStyles, isStickyScrollbarEnabled(appearance) && stickyScrollbarStyles, rendererTableHeaderEqualHeightStylesForTableCellOnly, allowColumnSorting && rendererTableSortableColumnStyles, allowColumnSorting && allowNestedHeaderLinks && (expValEquals('platform_editor_copy_link_a11y_inconsistency_fix', 'isEnabled', true) ? rendererTableHeaderEqualHeightStylesAllowNestedHeaderLinks : rendererTableHeaderEqualHeightStylesAllowNestedHeaderLinksDuplicateAnchor), rendererTableColumnStyles, stickyHeaderStyles, codeBlockAndLayoutStyles, columnLayoutSharedStyle, isAdvancedLayoutsOn && columnLayoutResponsiveSharedStyle, isAdvancedLayoutsOn && columnLayoutResponsiveRendererStyles, isAdvancedLayoutsOn && layoutSectionForAdvancedLayoutsStyles, !useBlockRenderForCodeBlock && gridRenderForCodeBlockStyles, browser.safari && codeBlockInListSafariFixStyles, appearance === 'full-page' && !isPreviewPanelResponsivenessOn && responsiveBreakoutWidth, appearance === 'full-page' && isPreviewPanelResponsivenessOn && responsiveBreakoutWidthWithReducedPadding, (appearance === 'full-width' || appearance === 'max' && (expValEquals('editor_tinymce_full_width_mode', 'isEnabled', true) || expValEquals('confluence_max_width_content_appearance', 'isEnabled', true))) && responsiveBreakoutWidthFullWidth, expValEquals('platform_editor_lovability_emoji_scaling', 'isEnabled', true) ? isCompactModeEnabled ? scaledDenseEmojiStyles : scaledEmojiStyles : isCompactModeEnabled ? denseStyles : undefined, editorExperiment('platform_synced_block', true) && syncBlockStyles, centerWrapperStyles, editorExperiment('platform_synced_block', true) && isInsideSyncBlock && fg('platform_synced_block_patch_9') ? syncBlockRendererStyles : null, expValEquals('platform_editor_hide_extension_renderer_support', 'isEnabled', true) && hideExtensionStyles],
2769
+ fg('platform_editor_fix_media_in_renderer') && firstWrappedMediaStyles, tableSharedStyle, expValEquals('platform_editor_table_fit_to_content_auto_convert', 'isEnabled', true) && tableContentModeStyles, tableRendererHeaderStylesForTableCellOnly, fg('platform_editor_bordered_panel_nested_in_table') && tableRendererNestedPanelStyles, isBackgroundClipBrowserFixNeeded() && tableStylesBackGroundClipForGeckoForTableCellOnly, fg('platform_editor_nested_dnd_styles_changes') ? firstNodeWithNotMarginTopWithNestedDnD : firstNodeWithNotMarginTop, rendererTableStyles, isStickyScrollbarEnabled(appearance) && stickyScrollbarStyles, rendererTableHeaderEqualHeightStylesForTableCellOnly, allowColumnSorting && rendererTableSortableColumnStyles, allowColumnSorting && allowNestedHeaderLinks && (expValEquals('platform_editor_copy_link_a11y_inconsistency_fix', 'isEnabled', true) ? rendererTableHeaderEqualHeightStylesAllowNestedHeaderLinks : rendererTableHeaderEqualHeightStylesAllowNestedHeaderLinksDuplicateAnchor), rendererTableColumnStyles, stickyHeaderStyles, codeBlockAndLayoutStyles, columnLayoutSharedStyle, isAdvancedLayoutsOn && columnLayoutResponsiveSharedStyle, isAdvancedLayoutsOn && columnLayoutResponsiveRendererStyles, isAdvancedLayoutsOn && layoutSectionForAdvancedLayoutsStyles, !useBlockRenderForCodeBlock && gridRenderForCodeBlockStyles, browser.safari && codeBlockInListSafariFixStyles, appearance === 'full-page' && !isPreviewPanelResponsivenessOn && responsiveBreakoutWidth, appearance === 'full-page' && isPreviewPanelResponsivenessOn && responsiveBreakoutWidthWithReducedPadding, (appearance === 'full-width' || appearance === 'max' && (expValEquals('editor_tinymce_full_width_mode', 'isEnabled', true) || expValEquals('confluence_max_width_content_appearance', 'isEnabled', true))) && responsiveBreakoutWidthFullWidth, expValEquals('platform_editor_lovability_emoji_scaling', 'isEnabled', true) ? expValEquals('platform_editor_emojis_in_renderer_smart_links', 'isEnabled', true) ? isCompactModeEnabled ? scaledDenseEmojiStylesNew : scaledEmojiStylesNew : isCompactModeEnabled ? scaledDenseEmojiStyles : scaledEmojiStyles : isCompactModeEnabled ? denseStyles : undefined, editorExperiment('platform_synced_block', true) && syncBlockStyles, centerWrapperStyles, editorExperiment('platform_synced_block', true) && isInsideSyncBlock && fg('platform_synced_block_patch_9') ? syncBlockRendererStyles : null, isInsideSyncBlock && editorExperiment('platform_synced_block', true) && fg('platform_synced_block_patch_9') && tableFakeBorderStyles, expValEquals('platform_editor_hide_extension_renderer_support', 'isEnabled', true) && hideExtensionStyles],
2633
2770
  "data-testid": testId
2634
2771
  }, children);
2635
2772
  };
@@ -57,7 +57,7 @@ export const DEGRADED_SEVERITY_THRESHOLD = 3000;
57
57
  const TABLE_INFO_TIMEOUT = 10000;
58
58
  const RENDER_EVENT_SAMPLE_RATE = 0.2;
59
59
  const packageName = "@atlaskit/renderer";
60
- const packageVersion = "130.2.7";
60
+ const packageVersion = "130.2.9";
61
61
  const setAsQueryContainerStyles = css({
62
62
  containerName: 'ak-renderer-wrapper',
63
63
  containerType: 'inline-size'
@@ -31,7 +31,7 @@ import { StickyTable, tableStickyPadding, OverflowParent } from './table/sticky'
31
31
  import { Table } from './table/table';
32
32
  import { isCommentAppearance, isFullPageAppearance, isFullWidthAppearance, isFullWidthOrFullPageAppearance, isMaxWidthAppearance } from '../utils/appearance';
33
33
  import { TableStickyScrollbar } from './TableStickyScrollbar';
34
- import { TableProcessorWithContainerStyles } from './tableNew';
34
+ import { TableProcessorWithContainerStyles, RefSyncBlockFakeBorders } from './tableNew';
35
35
  import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
36
36
  import { isTableInContentMode } from '@atlaskit/editor-common/table';
37
37
  import { isContentModeSupported } from './table/content-mode';
@@ -161,8 +161,8 @@ export var tableCanBeSticky = function tableCanBeSticky(node, children
161
161
  return isHeaderRowEnabled(children) && node && node.firstChild && !hasRowspan(node.firstChild);
162
162
  };
163
163
  /**
164
- *
165
- */
164
+ *
165
+ */
166
166
  // Ignored via go/ees005
167
167
  // eslint-disable-next-line @repo/internal/react/no-class-components
168
168
  export var TableContainer = /*#__PURE__*/function (_React$Component) {
@@ -614,6 +614,8 @@ export var TableContainer = /*#__PURE__*/function (_React$Component) {
614
614
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
615
615
  className: TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM,
616
616
  "data-testid": "sticky-scrollbar-sentinel-bottom"
617
+ }), /*#__PURE__*/React.createElement(RefSyncBlockFakeBorders, {
618
+ isNumberColumnEnabled: isNumberColumnEnabled
617
619
  })));
618
620
  }
619
621
  }]);
@@ -26,6 +26,7 @@ import { StickyTable, tableStickyPadding, OverflowParent } from './table/sticky'
26
26
  import { Table } from './table/table';
27
27
  import { isCommentAppearance, isFullWidthOrFullPageAppearance, isFullWidthAppearance, isMaxWidthAppearance, isFullPageAppearance } from '../utils/appearance';
28
28
  import { TableStickyScrollbar } from './TableStickyScrollbar';
29
+ import { useRendererContext } from '../../renderer-context';
29
30
  import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
30
31
  import { isTableInContentMode } from '@atlaskit/editor-common/table';
31
32
  import { isContentModeSupported } from './table/content-mode';
@@ -139,6 +140,49 @@ export var tableCanBeSticky = function tableCanBeSticky(node, children
139
140
  ) {
140
141
  return isHeaderRowEnabled(children) && node && node.firstChild && !hasRowspan(node.firstChild);
141
142
  };
143
+ /**
144
+ * Fake left/right borders rendered as direct children of TABLE_CONTAINER
145
+ * (the non-scrolling parent of the horizontally scrolling TABLE_NODE_WRAPPER).
146
+ *
147
+ * The visible styling for these divs lives in `tableFakeBorderStyles`
148
+ * (`renderer/src/ui/Renderer/RendererStyleContainer.tsx`), which is itself
149
+ * gated on `editorExperiment('platform_synced_block', true)` AND
150
+ * `isInsideSyncBlock` AND `fg('platform_synced_block_patch_9')`.
151
+ *
152
+ * Shared between `renderer/src/react/nodes/table.tsx` and
153
+ * `renderer/src/react/nodes/tableNew.tsx` so the two stay in sync.
154
+ */
155
+ var TableFakeBorders = function TableFakeBorders(_ref2) {
156
+ var isNumberColumnEnabled = _ref2.isNumberColumnEnabled;
157
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
158
+ className: TableSharedCssClassName.TABLE_LEFT_BORDER,
159
+ "data-with-numbered-table": isNumberColumnEnabled ? 'true' : undefined,
160
+ "data-testid": "table-left-border"
161
+ }), /*#__PURE__*/React.createElement("div", {
162
+ className: TableSharedCssClassName.TABLE_RIGHT_BORDER,
163
+ "data-with-numbered-table": isNumberColumnEnabled ? 'true' : undefined,
164
+ "data-testid": "table-right-border"
165
+ }));
166
+ };
167
+
168
+ /**
169
+ * Reads `nestedRendererType` from RendererContext and renders the fake left/right
170
+ * borders only when the current renderer is the nested renderer for a reference
171
+ * synced block.
172
+ */
173
+ export var RefSyncBlockFakeBorders = function RefSyncBlockFakeBorders(_ref3) {
174
+ var isNumberColumnEnabled = _ref3.isNumberColumnEnabled;
175
+ var _useRendererContext = useRendererContext(),
176
+ nestedRendererType = _useRendererContext.nestedRendererType;
177
+ var isInsideOfRefSyncBlock = nestedRendererType === 'syncedBlock';
178
+ if (!isInsideOfRefSyncBlock || !editorExperiment('platform_synced_block', true) || !fg('platform_synced_block_patch_9')) {
179
+ return null;
180
+ }
181
+ return /*#__PURE__*/React.createElement(TableFakeBorders, {
182
+ isNumberColumnEnabled: isNumberColumnEnabled
183
+ });
184
+ };
185
+
142
186
  /**
143
187
  * TableContainer renders tables using only CSS-based rules
144
188
  */
@@ -559,6 +603,8 @@ export var TableContainer = /*#__PURE__*/function (_React$Component) {
559
603
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
560
604
  className: TableSharedCssClassName.TABLE_STICKY_SCROLLBAR_SENTINEL_BOTTOM,
561
605
  "data-testid": "sticky-scrollbar-sentinel-bottom"
606
+ }), /*#__PURE__*/React.createElement(RefSyncBlockFakeBorders, {
607
+ isNumberColumnEnabled: isNumberColumnEnabled
562
608
  })));
563
609
  }
564
610
  }]);
@@ -27,7 +27,7 @@ import { SORTABLE_COLUMN_ICON_CLASSNAME } from '@atlaskit/editor-common/table';
27
27
  import { LightWeightCodeBlockCssClassName } from '../../react/nodes/codeBlock/components/lightWeightCodeBlock';
28
28
  import { editorUGCToken } from '@atlaskit/editor-common/ugc-tokens';
29
29
  import { getBaseFontSize } from './get-base-font-size';
30
- import { EmojiSharedCssClassName, defaultEmojiHeight, defaultDenseEmojiHeight, scaledEmojiHeightH1, scaledEmojiHeightH2, scaledEmojiHeightH3, scaledEmojiHeightH4, denseEmojiHeightH1, denseEmojiHeightH2, denseEmojiHeightH3, denseEmojiHeightH4 } from '@atlaskit/editor-common/emoji';
30
+ import { EmojiSharedCssClassName, defaultEmojiHeight, defaultDenseEmojiHeight, defaultInlineEmojiHeight, scaledEmojiHeightH1, scaledEmojiHeightH2, scaledEmojiHeightH3, scaledEmojiHeightH4, denseEmojiHeightH1, denseEmojiHeightH2, denseEmojiHeightH3, denseEmojiHeightH4 } from '@atlaskit/editor-common/emoji';
31
31
  import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
32
32
  import { BodiedSyncBlockSharedCssClassName, SyncBlockSharedCssClassName } from '@atlaskit/editor-common/sync-block';
33
33
  var wrappedMediaBreakoutPoint = 410;
@@ -1925,6 +1925,41 @@ var scaledDenseEmojiStyles = css(_defineProperty(_defineProperty(_defineProperty
1925
1925
  height: "".concat(defaultDenseEmojiHeight, "px"),
1926
1926
  width: "".concat(defaultDenseEmojiHeight, "px")
1927
1927
  }));
1928
+
1929
+ // this is gated behind `platform_editor_emojis_in_renderer_smart_links`
1930
+ var scaledDenseEmojiStylesNew = css(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ".".concat(EmojiSharedCssClassName.EMOJI_IMAGE), {
1931
+ height: "".concat(defaultDenseEmojiHeight, "px"),
1932
+ minHeight: "".concat(defaultDenseEmojiHeight, "px"),
1933
+ minWidth: "".concat(defaultDenseEmojiHeight, "px"),
1934
+ maxHeight: "".concat(denseEmojiHeightH1, "px"),
1935
+ maxWidth: "".concat(denseEmojiHeightH1, "px"),
1936
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
1937
+ img: {
1938
+ width: '100%',
1939
+ height: '100%',
1940
+ objectFit: 'contain'
1941
+ }
1942
+ }), "h1 :is(.".concat(EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
1943
+ height: "".concat(denseEmojiHeightH1, "px"),
1944
+ width: "".concat(denseEmojiHeightH1, "px")
1945
+ }), "h2 :is(.".concat(EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
1946
+ height: "".concat(denseEmojiHeightH2, "px"),
1947
+ width: "".concat(denseEmojiHeightH2, "px")
1948
+ }), "h3 :is(.".concat(EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
1949
+ height: "".concat(denseEmojiHeightH3, "px"),
1950
+ width: "".concat(denseEmojiHeightH3, "px")
1951
+ }), "h4 :is(.".concat(EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
1952
+ height: "".concat(denseEmojiHeightH4, "px"),
1953
+ width: "".concat(denseEmojiHeightH4, "px")
1954
+ }), ":is(h5, h6, p) :is(.".concat(EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
1955
+ height: "".concat(defaultDenseEmojiHeight, "px"),
1956
+ width: "".concat(defaultDenseEmojiHeight, "px")
1957
+ }), "[data-testid=\"icon-wrapper\"] :is(.".concat(EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
1958
+ minHeight: "".concat(defaultInlineEmojiHeight, "px"),
1959
+ minWidth: "".concat(defaultInlineEmojiHeight, "px"),
1960
+ height: "".concat(defaultInlineEmojiHeight, "px"),
1961
+ width: "".concat(defaultInlineEmojiHeight, "px")
1962
+ }));
1928
1963
  var scaledEmojiStyles = css(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ".".concat(EmojiSharedCssClassName.EMOJI_IMAGE), {
1929
1964
  height: "".concat(defaultEmojiHeight, "px"),
1930
1965
  minHeight: "".concat(defaultEmojiHeight, "px"),
@@ -1953,6 +1988,41 @@ var scaledEmojiStyles = css(_defineProperty(_defineProperty(_defineProperty(_def
1953
1988
  height: "".concat(defaultEmojiHeight, "px"),
1954
1989
  width: "".concat(defaultEmojiHeight, "px")
1955
1990
  }));
1991
+
1992
+ // this is gated behind `platform_editor_emojis_in_renderer_smart_links`
1993
+ var scaledEmojiStylesNew = css(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ".".concat(EmojiSharedCssClassName.EMOJI_IMAGE), {
1994
+ height: "".concat(defaultEmojiHeight, "px"),
1995
+ minHeight: "".concat(defaultEmojiHeight, "px"),
1996
+ minWidth: "".concat(defaultEmojiHeight, "px"),
1997
+ maxHeight: "".concat(scaledEmojiHeightH1, "px"),
1998
+ maxWidth: "".concat(scaledEmojiHeightH1, "px"),
1999
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors
2000
+ img: {
2001
+ width: '100%',
2002
+ height: '100%',
2003
+ objectFit: 'contain'
2004
+ }
2005
+ }), "h1 :is(.".concat(EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
2006
+ height: "".concat(scaledEmojiHeightH1, "px"),
2007
+ width: "".concat(scaledEmojiHeightH1, "px")
2008
+ }), "h2 :is(.".concat(EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
2009
+ height: "".concat(scaledEmojiHeightH2, "px"),
2010
+ width: "".concat(scaledEmojiHeightH2, "px")
2011
+ }), "h3 :is(.".concat(EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
2012
+ height: "".concat(scaledEmojiHeightH3, "px"),
2013
+ width: "".concat(scaledEmojiHeightH3, "px")
2014
+ }), "h4 :is(.".concat(EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
2015
+ height: "".concat(scaledEmojiHeightH4, "px"),
2016
+ width: "".concat(scaledEmojiHeightH4, "px")
2017
+ }), ":is(h5, h6, p) :is(.".concat(EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
2018
+ height: "".concat(defaultEmojiHeight, "px"),
2019
+ width: "".concat(defaultEmojiHeight, "px")
2020
+ }), "[data-testid=\"icon-wrapper\"] :is(.".concat(EmojiSharedCssClassName.EMOJI_IMAGE, ", .").concat(EmojiSharedCssClassName.EMOJI_SPRITE, ", .").concat(EmojiSharedCssClassName.EMOJI_PLACEHOLDER, ")"), {
2021
+ minHeight: "".concat(defaultInlineEmojiHeight, "px"),
2022
+ minWidth: "".concat(defaultInlineEmojiHeight, "px"),
2023
+ height: "".concat(defaultInlineEmojiHeight, "px"),
2024
+ width: "".concat(defaultInlineEmojiHeight, "px")
2025
+ }));
1956
2026
  var denseStyles = css(_defineProperty(_defineProperty(_defineProperty({}, ".".concat(EmojiSharedCssClassName.EMOJI_IMAGE), {
1957
2027
  height: "calc(".concat(defaultEmojiHeight, " * var(--ak-renderer-base-font-size) / ").concat(akEditorFullPageDefaultFontSize, ")"),
1958
2028
  width: "calc(".concat(defaultEmojiHeight, " * var(--ak-renderer-base-font-size) / ").concat(akEditorFullPageDefaultFontSize, ")"),
@@ -2001,6 +2071,37 @@ var syncBlockRendererStyles = css({
2001
2071
  maxWidth: 'none',
2002
2072
  padding: 0
2003
2073
  });
2074
+
2075
+ /**
2076
+ * Fake left/right table borders.
2077
+ *
2078
+ * Adapted from the editor-plugin-table behavior (see editor-common's
2079
+ * `tableSharedStyle()` in `editor-common/src/styles/shared/table.ts`). The
2080
+ * visible vertical edges of the table are painted by these absolutely-positioned
2081
+ * 1px divs that live inside the (non-scrolling) TABLE_CONTAINER, while the real
2082
+ * <table> left/right borders are made `transparent`. Because the divs are not
2083
+ * inside the horizontally scrolling TABLE_NODE_WRAPPER, they remain visible
2084
+ * regardless of scroll position — fixing the missing right border when an
2085
+ * overflowing table inside a reference synced block is scrolled all the way to
2086
+ * the left.
2087
+ *
2088
+ * The `height` formula adjusted for table in renderer
2089
+ */
2090
+ var tableFakeBorderStyles = css(_defineProperty(_defineProperty({}, ".".concat(TableSharedCssClassName.TABLE_CONTAINER), _defineProperty(_defineProperty(_defineProperty({}, ".".concat(TableSharedCssClassName.TABLE_RIGHT_BORDER, ",\n\t\t.").concat(TableSharedCssClassName.TABLE_LEFT_BORDER), {
2091
+ display: 'block',
2092
+ width: '1px',
2093
+ height: "calc(100% - ".concat("var(--ds-space-300, 24px)", " - ", "var(--ds-space-250, 20px)", ")"),
2094
+ background: "var(--ds-background-accent-gray-subtler, #DDDEE1)",
2095
+ position: 'absolute',
2096
+ top: "var(--ds-space-300, 24px)"
2097
+ }), ".".concat(TableSharedCssClassName.TABLE_RIGHT_BORDER), {
2098
+ right: 0
2099
+ }), ".".concat(TableSharedCssClassName.TABLE_LEFT_BORDER, ",\n\t\t.").concat(TableSharedCssClassName.TABLE_LEFT_BORDER, "[data-with-numbered-table='true']"), {
2100
+ left: 0
2101
+ })), ".".concat(TableSharedCssClassName.TABLE_NODE_WRAPPER, " > table,\n\t.").concat(TableSharedCssClassName.TABLE_STICKY_WRAPPER, " > table"), {
2102
+ borderLeftColor: 'transparent',
2103
+ borderRightColor: 'transparent'
2104
+ }));
2004
2105
  var syncBlockStyles = css(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, ".".concat(SyncBlockSharedCssClassName.renderer, ", .").concat(BodiedSyncBlockSharedCssClassName.renderer, ", .").concat(SyncBlockSharedCssClassName.error, ", .").concat(SyncBlockSharedCssClassName.loading), {
2005
2106
  borderRadius: "var(--ds-radius-small, 3px)",
2006
2107
  marginTop: "var(--ds-space-075, 6px)",
@@ -2068,7 +2169,7 @@ export var RendererStyleContainer = function RendererStyleContainer(props) {
2068
2169
  // this should be placed after baseOtherStyles
2069
2170
  expValEquals('platform_editor_render_bodied_extension_as_inline', 'isEnabled', true) && (expValEquals('platform_editor_remove_important_in_render_ext', 'isEnabled', true) ? extensionAsInlineStyle : oldExtensionAsInlineStyle), inlineExtensionRendererMarginFix, allowNestedHeaderLinks && (expValEquals('platform_editor_copy_link_a11y_inconsistency_fix', 'isEnabled', true) ? alignedHeadingAnchorStyle : alignedHeadingAnchorStyleDuplicateAnchor), mediaSingleSharedStyle,
2070
2171
  // merge firstWrappedMediaStyles with mediaSingleSharedStyle when clean up platform_editor_fix_media_in_renderer
2071
- fg('platform_editor_fix_media_in_renderer') && firstWrappedMediaStyles, tableSharedStyle, expValEquals('platform_editor_table_fit_to_content_auto_convert', 'isEnabled', true) && tableContentModeStyles, tableRendererHeaderStylesForTableCellOnly, fg('platform_editor_bordered_panel_nested_in_table') && tableRendererNestedPanelStyles, isBackgroundClipBrowserFixNeeded() && tableStylesBackGroundClipForGeckoForTableCellOnly, fg('platform_editor_nested_dnd_styles_changes') ? firstNodeWithNotMarginTopWithNestedDnD : firstNodeWithNotMarginTop, rendererTableStyles, isStickyScrollbarEnabled(appearance) && stickyScrollbarStyles, rendererTableHeaderEqualHeightStylesForTableCellOnly, allowColumnSorting && rendererTableSortableColumnStyles, allowColumnSorting && allowNestedHeaderLinks && (expValEquals('platform_editor_copy_link_a11y_inconsistency_fix', 'isEnabled', true) ? rendererTableHeaderEqualHeightStylesAllowNestedHeaderLinks : rendererTableHeaderEqualHeightStylesAllowNestedHeaderLinksDuplicateAnchor), rendererTableColumnStyles, stickyHeaderStyles, codeBlockAndLayoutStyles, columnLayoutSharedStyle, isAdvancedLayoutsOn && columnLayoutResponsiveSharedStyle, isAdvancedLayoutsOn && columnLayoutResponsiveRendererStyles, isAdvancedLayoutsOn && layoutSectionForAdvancedLayoutsStyles, !useBlockRenderForCodeBlock && gridRenderForCodeBlockStyles, browser.safari && codeBlockInListSafariFixStyles, appearance === 'full-page' && !isPreviewPanelResponsivenessOn && responsiveBreakoutWidth, appearance === 'full-page' && isPreviewPanelResponsivenessOn && responsiveBreakoutWidthWithReducedPadding, (appearance === 'full-width' || appearance === 'max' && (expValEquals('editor_tinymce_full_width_mode', 'isEnabled', true) || expValEquals('confluence_max_width_content_appearance', 'isEnabled', true))) && responsiveBreakoutWidthFullWidth, expValEquals('platform_editor_lovability_emoji_scaling', 'isEnabled', true) ? isCompactModeEnabled ? scaledDenseEmojiStyles : scaledEmojiStyles : isCompactModeEnabled ? denseStyles : undefined, editorExperiment('platform_synced_block', true) && syncBlockStyles, centerWrapperStyles, editorExperiment('platform_synced_block', true) && isInsideSyncBlock && fg('platform_synced_block_patch_9') ? syncBlockRendererStyles : null, expValEquals('platform_editor_hide_extension_renderer_support', 'isEnabled', true) && hideExtensionStyles],
2172
+ fg('platform_editor_fix_media_in_renderer') && firstWrappedMediaStyles, tableSharedStyle, expValEquals('platform_editor_table_fit_to_content_auto_convert', 'isEnabled', true) && tableContentModeStyles, tableRendererHeaderStylesForTableCellOnly, fg('platform_editor_bordered_panel_nested_in_table') && tableRendererNestedPanelStyles, isBackgroundClipBrowserFixNeeded() && tableStylesBackGroundClipForGeckoForTableCellOnly, fg('platform_editor_nested_dnd_styles_changes') ? firstNodeWithNotMarginTopWithNestedDnD : firstNodeWithNotMarginTop, rendererTableStyles, isStickyScrollbarEnabled(appearance) && stickyScrollbarStyles, rendererTableHeaderEqualHeightStylesForTableCellOnly, allowColumnSorting && rendererTableSortableColumnStyles, allowColumnSorting && allowNestedHeaderLinks && (expValEquals('platform_editor_copy_link_a11y_inconsistency_fix', 'isEnabled', true) ? rendererTableHeaderEqualHeightStylesAllowNestedHeaderLinks : rendererTableHeaderEqualHeightStylesAllowNestedHeaderLinksDuplicateAnchor), rendererTableColumnStyles, stickyHeaderStyles, codeBlockAndLayoutStyles, columnLayoutSharedStyle, isAdvancedLayoutsOn && columnLayoutResponsiveSharedStyle, isAdvancedLayoutsOn && columnLayoutResponsiveRendererStyles, isAdvancedLayoutsOn && layoutSectionForAdvancedLayoutsStyles, !useBlockRenderForCodeBlock && gridRenderForCodeBlockStyles, browser.safari && codeBlockInListSafariFixStyles, appearance === 'full-page' && !isPreviewPanelResponsivenessOn && responsiveBreakoutWidth, appearance === 'full-page' && isPreviewPanelResponsivenessOn && responsiveBreakoutWidthWithReducedPadding, (appearance === 'full-width' || appearance === 'max' && (expValEquals('editor_tinymce_full_width_mode', 'isEnabled', true) || expValEquals('confluence_max_width_content_appearance', 'isEnabled', true))) && responsiveBreakoutWidthFullWidth, expValEquals('platform_editor_lovability_emoji_scaling', 'isEnabled', true) ? expValEquals('platform_editor_emojis_in_renderer_smart_links', 'isEnabled', true) ? isCompactModeEnabled ? scaledDenseEmojiStylesNew : scaledEmojiStylesNew : isCompactModeEnabled ? scaledDenseEmojiStyles : scaledEmojiStyles : isCompactModeEnabled ? denseStyles : undefined, editorExperiment('platform_synced_block', true) && syncBlockStyles, centerWrapperStyles, editorExperiment('platform_synced_block', true) && isInsideSyncBlock && fg('platform_synced_block_patch_9') ? syncBlockRendererStyles : null, isInsideSyncBlock && editorExperiment('platform_synced_block', true) && fg('platform_synced_block_patch_9') && tableFakeBorderStyles, expValEquals('platform_editor_hide_extension_renderer_support', 'isEnabled', true) && hideExtensionStyles],
2072
2173
  "data-testid": testId
2073
2174
  }, children);
2074
2175
  };
@@ -62,7 +62,7 @@ export var DEGRADED_SEVERITY_THRESHOLD = 3000;
62
62
  var TABLE_INFO_TIMEOUT = 10000;
63
63
  var RENDER_EVENT_SAMPLE_RATE = 0.2;
64
64
  var packageName = "@atlaskit/renderer";
65
- var packageVersion = "130.2.7";
65
+ var packageVersion = "130.2.9";
66
66
  var setAsQueryContainerStyles = css({
67
67
  containerName: 'ak-renderer-wrapper',
68
68
  containerType: 'inline-size'
@@ -42,8 +42,7 @@ export interface TableState {
42
42
  headerRowHeight: number;
43
43
  stickyMode: StickyMode;
44
44
  wrapperWidth: number;
45
- }
46
- /**
45
+ } /**
47
46
  *
48
47
  */
49
48
  export declare class TableContainer extends React.Component<TableProps & OverflowShadowProps & WithSmartCardStorageProps, TableState> {
@@ -42,6 +42,14 @@ export interface TableState {
42
42
  stickyMode: StickyMode;
43
43
  wrapperWidth: number;
44
44
  }
45
+ /**
46
+ * Reads `nestedRendererType` from RendererContext and renders the fake left/right
47
+ * borders only when the current renderer is the nested renderer for a reference
48
+ * synced block.
49
+ */
50
+ export declare const RefSyncBlockFakeBorders: ({ isNumberColumnEnabled, }: {
51
+ isNumberColumnEnabled: boolean;
52
+ }) => React.JSX.Element | null;
45
53
  /**
46
54
  * TableContainer renders tables using only CSS-based rules
47
55
  */
@@ -42,8 +42,7 @@ export interface TableState {
42
42
  headerRowHeight: number;
43
43
  stickyMode: StickyMode;
44
44
  wrapperWidth: number;
45
- }
46
- /**
45
+ } /**
47
46
  *
48
47
  */
49
48
  export declare class TableContainer extends React.Component<TableProps & OverflowShadowProps & WithSmartCardStorageProps, TableState> {
@@ -42,6 +42,14 @@ export interface TableState {
42
42
  stickyMode: StickyMode;
43
43
  wrapperWidth: number;
44
44
  }
45
+ /**
46
+ * Reads `nestedRendererType` from RendererContext and renders the fake left/right
47
+ * borders only when the current renderer is the nested renderer for a reference
48
+ * synced block.
49
+ */
50
+ export declare const RefSyncBlockFakeBorders: ({ isNumberColumnEnabled, }: {
51
+ isNumberColumnEnabled: boolean;
52
+ }) => React.JSX.Element | null;
45
53
  /**
46
54
  * TableContainer renders tables using only CSS-based rules
47
55
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "130.2.8",
3
+ "version": "130.2.10",
4
4
  "description": "Renderer component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -30,7 +30,7 @@
30
30
  }
31
31
  },
32
32
  "dependencies": {
33
- "@atlaskit/adf-schema": "^52.5.0",
33
+ "@atlaskit/adf-schema": "^52.6.0",
34
34
  "@atlaskit/adf-utils": "^19.27.0",
35
35
  "@atlaskit/afm-i18n-platform-editor-renderer": "2.10.0",
36
36
  "@atlaskit/analytics-listeners": "^10.0.0",
@@ -44,14 +44,14 @@
44
44
  "@atlaskit/editor-prosemirror": "^7.3.0",
45
45
  "@atlaskit/editor-shared-styles": "^3.10.0",
46
46
  "@atlaskit/editor-smart-link-draggable": "^0.5.0",
47
- "@atlaskit/emoji": "^70.1.0",
47
+ "@atlaskit/emoji": "^70.2.0",
48
48
  "@atlaskit/feature-gate-js-client": "^5.5.0",
49
49
  "@atlaskit/icon": "^34.3.0",
50
50
  "@atlaskit/link": "^3.4.0",
51
51
  "@atlaskit/link-datasource": "^5.2.0",
52
52
  "@atlaskit/link-extractors": "^2.4.0",
53
53
  "@atlaskit/linking-common": "^9.11.0",
54
- "@atlaskit/media-card": "^80.1.0",
54
+ "@atlaskit/media-card": "^80.2.0",
55
55
  "@atlaskit/media-client": "^36.0.0",
56
56
  "@atlaskit/media-client-react": "^5.0.0",
57
57
  "@atlaskit/media-common": "^13.0.0",
@@ -66,9 +66,9 @@
66
66
  "@atlaskit/status": "^4.0.0",
67
67
  "@atlaskit/task-decision": "^20.0.0",
68
68
  "@atlaskit/theme": "^23.1.0",
69
- "@atlaskit/tmp-editor-statsig": "^66.0.0",
69
+ "@atlaskit/tmp-editor-statsig": "^68.0.0",
70
70
  "@atlaskit/tokens": "^13.0.0",
71
- "@atlaskit/tooltip": "^21.1.0",
71
+ "@atlaskit/tooltip": "^21.2.0",
72
72
  "@atlaskit/visually-hidden": "^3.0.0",
73
73
  "@babel/runtime": "^7.0.0",
74
74
  "@emotion/react": "^11.7.1",
@@ -79,7 +79,7 @@
79
79
  "uuid": "^3.1.0"
80
80
  },
81
81
  "peerDependencies": {
82
- "@atlaskit/editor-common": "^114.7.0",
82
+ "@atlaskit/editor-common": "^114.9.0",
83
83
  "@atlaskit/link-provider": "^4.3.0",
84
84
  "@atlaskit/media-core": "^37.0.0",
85
85
  "react": "^18.2.0",
@@ -97,8 +97,8 @@
97
97
  "@atlaskit/media-integration-test-helpers": "workspace:^",
98
98
  "@atlaskit/media-test-helpers": "^41.0.0",
99
99
  "@atlaskit/mention": "^25.0.0",
100
- "@atlaskit/modal-dialog": "^14.17.0",
101
- "@atlaskit/navigation-system": "^8.1.0",
100
+ "@atlaskit/modal-dialog": "^14.18.0",
101
+ "@atlaskit/navigation-system": "^8.2.0",
102
102
  "@atlaskit/profilecard": "^25.1.0",
103
103
  "@atlaskit/side-nav-items": "^1.13.0",
104
104
  "@atlaskit/util-data-test": "^18.5.0",