@atlaskit/editor-common 103.11.2 → 103.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/afm-cc/tsconfig.json +3 -0
  3. package/dist/cjs/analytics/types/enums.js +1 -0
  4. package/dist/cjs/element-browser/components/ElementList/ElementList.js +4 -4
  5. package/dist/cjs/monitoring/error.js +1 -1
  6. package/dist/cjs/ui/DropList/index.js +1 -1
  7. package/dist/cjs/ui/TableSelector/index.js +270 -0
  8. package/dist/cjs/ui/TableSelector/table-selector.js +162 -0
  9. package/dist/cjs/ui/WidthProvider/index.js +1 -0
  10. package/dist/cjs/ui/index.js +7 -0
  11. package/dist/cjs/utils/get-dom-ref-from-selection.js +38 -0
  12. package/dist/es2019/analytics/types/enums.js +1 -0
  13. package/dist/es2019/element-browser/components/ElementList/ElementList.js +1 -1
  14. package/dist/es2019/monitoring/error.js +1 -1
  15. package/dist/es2019/ui/DropList/index.js +1 -1
  16. package/dist/es2019/ui/TableSelector/index.js +265 -0
  17. package/dist/es2019/ui/TableSelector/table-selector.js +154 -0
  18. package/dist/es2019/ui/WidthProvider/index.js +1 -0
  19. package/dist/es2019/ui/index.js +2 -1
  20. package/dist/es2019/utils/get-dom-ref-from-selection.js +32 -0
  21. package/dist/esm/analytics/types/enums.js +1 -0
  22. package/dist/esm/element-browser/components/ElementList/ElementList.js +1 -1
  23. package/dist/esm/monitoring/error.js +1 -1
  24. package/dist/esm/ui/DropList/index.js +1 -1
  25. package/dist/esm/ui/TableSelector/index.js +264 -0
  26. package/dist/esm/ui/TableSelector/table-selector.js +154 -0
  27. package/dist/esm/ui/WidthProvider/index.js +1 -0
  28. package/dist/esm/ui/index.js +2 -1
  29. package/dist/esm/utils/get-dom-ref-from-selection.js +32 -0
  30. package/dist/types/analytics/types/enums.d.ts +1 -0
  31. package/dist/types/ui/TableSelector/index.d.ts +28 -0
  32. package/dist/types/ui/TableSelector/table-selector.d.ts +31 -0
  33. package/dist/types/ui/index.d.ts +1 -0
  34. package/dist/types/utils/get-dom-ref-from-selection.d.ts +4 -0
  35. package/dist/types-ts4.5/analytics/types/enums.d.ts +1 -0
  36. package/dist/types-ts4.5/ui/TableSelector/index.d.ts +28 -0
  37. package/dist/types-ts4.5/ui/TableSelector/table-selector.d.ts +31 -0
  38. package/dist/types-ts4.5/ui/index.d.ts +1 -0
  39. package/dist/types-ts4.5/utils/get-dom-ref-from-selection.d.ts +4 -0
  40. package/get-dom-ref-from-selection/package.json +17 -0
  41. package/package.json +7 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 103.12.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#142352](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/142352)
8
+ [`05903fde6d94d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/05903fde6d94d) -
9
+ Internal change to use Compiled variant of `@atlaskit/primitives`.
10
+
11
+ ## 103.12.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [#142852](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/142852)
16
+ [`ca0f841e860ab`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/ca0f841e860ab) -
17
+ [ux] [ED-27466] When table option in quick insert typeahead is selected, shows table size picker
18
+ allow user selecting the table size before inserting
19
+
20
+ ### Patch Changes
21
+
22
+ - [#142798](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/142798)
23
+ [`9dd2803c4c1dc`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9dd2803c4c1dc) -
24
+ Preserved the previously set value for width provider
25
+
3
26
  ## 103.11.2
4
27
 
5
28
  ### Patch Changes
@@ -143,6 +143,9 @@
143
143
  {
144
144
  "path": "../../../design-system/textfield/afm-cc/tsconfig.json"
145
145
  },
146
+ {
147
+ "path": "../../../design-system/theme/afm-cc/tsconfig.json"
148
+ },
146
149
  {
147
150
  "path": "../../tmp-editor-statsig/afm-cc/tsconfig.json"
148
151
  },
@@ -433,6 +433,7 @@ var ACTION_SUBJECT_ID = exports.ACTION_SUBJECT_ID = /*#__PURE__*/function (ACTIO
433
433
  ACTION_SUBJECT_ID["PICKER_MEDIA"] = "mediaPicker";
434
434
  ACTION_SUBJECT_ID["PICKER_COLOR"] = "colorPicker";
435
435
  ACTION_SUBJECT_ID["PICKER_EMOJI"] = "emojiPicker";
436
+ ACTION_SUBJECT_ID["PICKER_TABLE_SIZE"] = "tableSizePicker";
436
437
  ACTION_SUBJECT_ID["DOCKED_PRIMARY_TOOLBAR"] = "dockedPrimaryToolbar";
437
438
  ACTION_SUBJECT_ID["PLACEHOLDER_TEXT"] = "placeholderText";
438
439
  ACTION_SUBJECT_ID["POST_QUERY_SEARCH_RESULTS"] = "postQuerySearchResults";
@@ -19,7 +19,7 @@ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
19
19
  var _shortcut = require("@atlaskit/editor-shared-styles/shortcut");
20
20
  var _menu = require("@atlaskit/menu");
21
21
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
22
- var _primitives = require("@atlaskit/primitives");
22
+ var _compiled = require("@atlaskit/primitives/compiled");
23
23
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
24
24
  var _analytics = require("../../../analytics");
25
25
  var _quickInsert = require("../../../quick-insert");
@@ -444,18 +444,18 @@ var ItemContent = /*#__PURE__*/(0, _react.memo)(function (_ref8) {
444
444
  className: "item-body"
445
445
  }, (0, _react2.jsx)("div", {
446
446
  css: itemText
447
- }, (0, _react2.jsx)(_primitives.Stack, {
447
+ }, (0, _react2.jsx)(_compiled.Stack, {
448
448
  space: "space.025"
449
449
  }, (0, _react2.jsx)("div", {
450
450
  css: itemTitleWrapper
451
- }, (0, _react2.jsx)(_primitives.Text, {
451
+ }, (0, _react2.jsx)(_compiled.Text, {
452
452
  color: isDisabled ? 'color.text.disabled' : undefined,
453
453
  maxLines: 1
454
454
  }, title), (0, _react2.jsx)("div", {
455
455
  css: itemAfter
456
456
  }, keyshortcut && (0, _react2.jsx)("div", {
457
457
  css: _shortcut.shortcutStyle
458
- }, keyshortcut))), description && (0, _react2.jsx)(_primitives.Text, {
458
+ }, keyshortcut))), description && (0, _react2.jsx)(_compiled.Text, {
459
459
  color: isDisabled ? 'color.text.disabled' : 'color.text.subtle',
460
460
  size: "small",
461
461
  maxLines: 2
@@ -17,7 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
17
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
19
19
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
20
- var packageVersion = "103.11.2";
20
+ var packageVersion = "103.12.1";
21
21
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
22
22
  // Remove URL as it has UGC
23
23
  // Ignored via go/ees007
@@ -23,7 +23,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
23
23
  * @jsx jsx
24
24
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
25
25
  var packageName = "@atlaskit/editor-common";
26
- var packageVersion = "103.11.2";
26
+ var packageVersion = "103.12.1";
27
27
  var halfFocusRing = 1;
28
28
  var dropOffset = '0, 8';
29
29
  // Ignored via go/ees005
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.TableSelectorPopup = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _react = require("react");
12
+ var _react2 = require("@emotion/react");
13
+ var _bindEventListener = require("bind-event-listener");
14
+ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
15
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
+ var _colors = require("@atlaskit/theme/colors");
17
+ var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
18
+ var _uiReact = require("../../ui-react");
19
+ var _Popup = _interopRequireDefault(require("../Popup"));
20
+ var _tableSelector = _interopRequireWildcard(require("./table-selector"));
21
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
22
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
25
+ * @jsxRuntime classic
26
+ * @jsx jsx
27
+ */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
28
+ var TABLE_SELECTOR_PADDING_TOP = 8;
29
+ var TABLE_SELECTOR_PADDING_SIDE = 10;
30
+ var DEFAULT_TABLE_SELECTOR_ROWS = 5;
31
+ var DEFAULT_TABLE_SELECTOR_COLS = 10;
32
+ var DEFAULT_TABLE_SELECTOR_SELECTION_SIZE = 1;
33
+ var DEFAULT_MAX_TABLE_SELECTOR_ROWS = 10;
34
+ var TableSelectorWithListeners = (0, _uiReact.withReactEditorViewOuterListeners)(_tableSelector.default);
35
+ var initialSizeState = {
36
+ col: DEFAULT_TABLE_SELECTOR_SELECTION_SIZE,
37
+ row: DEFAULT_TABLE_SELECTOR_SELECTION_SIZE,
38
+ maxCol: DEFAULT_TABLE_SELECTOR_COLS,
39
+ maxRow: DEFAULT_TABLE_SELECTOR_ROWS
40
+ };
41
+ var tableSelectorPopupWrapperStyles = (0, _react2.css)({
42
+ borderRadius: "var(--ds-border-radius, 3px)",
43
+ backgroundColor: "var(--ds-surface-overlay, ".concat(_colors.N0, ")"),
44
+ boxShadow: "var(--ds-shadow-overlay, ".concat("0 0 0 1px ".concat(_colors.N30A, ", 0 2px 1px ").concat(_colors.N30A, ", 0 0 20px -6px ").concat(_colors.N60A), ")"),
45
+ padding: "".concat("var(--ds-space-100, ".concat("".concat(TABLE_SELECTOR_PADDING_TOP, "px"), ")"), " ", TABLE_SELECTOR_PADDING_SIDE, "px")
46
+ });
47
+ var TableSelectorPopup = exports.TableSelectorPopup = function TableSelectorPopup(props) {
48
+ var _useState = (0, _react.useState)(_objectSpread(_objectSpread({}, initialSizeState), props.defaultSize)),
49
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
50
+ size = _useState2[0],
51
+ setSize = _useState2[1];
52
+ var tablePopupRef = (0, _react.useRef)(null);
53
+ // If popup opened by keyboard enable keyboard mode
54
+ var isKeyboardMode = (0, _react.useRef)(props.isOpenedByKeyboard);
55
+ var enableKeyboardMode = (0, _react.useCallback)(function () {
56
+ if (!isKeyboardMode.current) {
57
+ isKeyboardMode.current = true;
58
+ }
59
+ }, [isKeyboardMode]);
60
+ var disableKeyboardMode = (0, _react.useCallback)(function () {
61
+ if (isKeyboardMode.current) {
62
+ isKeyboardMode.current = false;
63
+ }
64
+ }, [isKeyboardMode]);
65
+
66
+ // Mouse move is used to allow selection changes outside of the popup and is more reactive to changes.
67
+ var handleMouseMove = (0, _react.useCallback)(function (e) {
68
+ if (!tablePopupRef.current) {
69
+ return;
70
+ }
71
+ disableKeyboardMode();
72
+ var tablePopup = tablePopupRef.current;
73
+ var _tablePopup$getBoundi = tablePopup.getBoundingClientRect(),
74
+ left = _tablePopup$getBoundi.left,
75
+ top = _tablePopup$getBoundi.top;
76
+
77
+ // Mouse position on popup
78
+ var selectedWidth = e.clientX - left;
79
+ var selectedHeight = e.clientY - top;
80
+
81
+ // Calculate number grid cells selected
82
+ var selectedGridCols = Math.ceil((selectedWidth - TABLE_SELECTOR_PADDING_SIDE + _tableSelector.TABLE_SELECTOR_BUTTON_GAP) / (_tableSelector.TABLE_SELECTOR_BUTTON_GAP + _tableSelector.TABLE_SELECTOR_BUTTON_SIZE));
83
+ var selectedGridRows = Math.ceil((selectedHeight - TABLE_SELECTOR_PADDING_TOP + _tableSelector.TABLE_SELECTOR_BUTTON_GAP) / (_tableSelector.TABLE_SELECTOR_BUTTON_GAP + _tableSelector.TABLE_SELECTOR_BUTTON_SIZE));
84
+ // Keep the selected rows and columns within the defined bounds
85
+ var gridRows = DEFAULT_TABLE_SELECTOR_ROWS;
86
+ if (selectedGridCols < 1) {
87
+ selectedGridCols = 1;
88
+ }
89
+ if (selectedGridCols > size.maxCol) {
90
+ selectedGridCols = size.maxCol;
91
+ }
92
+ if (selectedGridRows < 1) {
93
+ selectedGridRows = 1;
94
+ }
95
+
96
+ // Expand grid when row selection is greater than the default grid size
97
+ if (selectedGridRows >= DEFAULT_TABLE_SELECTOR_ROWS && selectedGridRows < DEFAULT_MAX_TABLE_SELECTOR_ROWS) {
98
+ gridRows = selectedGridRows + 1;
99
+ }
100
+ if (selectedGridRows >= DEFAULT_MAX_TABLE_SELECTOR_ROWS) {
101
+ selectedGridRows = DEFAULT_MAX_TABLE_SELECTOR_ROWS;
102
+ gridRows = DEFAULT_MAX_TABLE_SELECTOR_ROWS;
103
+ }
104
+ if (selectedGridCols !== size.col || selectedGridRows !== size.row) {
105
+ setSize({
106
+ col: selectedGridCols,
107
+ row: selectedGridRows,
108
+ maxCol: DEFAULT_TABLE_SELECTOR_COLS,
109
+ maxRow: gridRows
110
+ });
111
+ }
112
+ }, [disableKeyboardMode, size, setSize]);
113
+ var decreasingSequence = function decreasingSequence(maxNumber, prevNumber) {
114
+ var nextNumber = prevNumber - 1;
115
+ if (prevNumber === 1) {
116
+ nextNumber = maxNumber;
117
+ }
118
+ return nextNumber;
119
+ };
120
+ var getMaxRow = function getMaxRow(prevSize, eventKey) {
121
+ switch (eventKey) {
122
+ case 'ArrowDown':
123
+ // Expand the grid size when last row selected
124
+ if (prevSize.maxRow < DEFAULT_MAX_TABLE_SELECTOR_ROWS && prevSize.row >= DEFAULT_TABLE_SELECTOR_ROWS - 1) {
125
+ return prevSize.maxRow + 1;
126
+ }
127
+ if (prevSize.row === DEFAULT_MAX_TABLE_SELECTOR_ROWS) {
128
+ return DEFAULT_TABLE_SELECTOR_ROWS;
129
+ }
130
+ return prevSize.maxRow;
131
+ case 'ArrowLeft':
132
+ var moveToPrevRow = prevSize.col === 1 && prevSize.row > 1;
133
+ var moveToLastRow = prevSize.row === 1 && prevSize.col === 1;
134
+ // Expand the popup to max size when selected row wraps around to last row
135
+ if (moveToLastRow) {
136
+ return DEFAULT_MAX_TABLE_SELECTOR_ROWS;
137
+ }
138
+ // Decrease the popup when decreased row selection
139
+ if (prevSize.maxRow > DEFAULT_TABLE_SELECTOR_ROWS && moveToPrevRow) {
140
+ return prevSize.row;
141
+ }
142
+ return prevSize.maxRow;
143
+ case 'ArrowUp':
144
+ if (prevSize.row === 1) {
145
+ return DEFAULT_MAX_TABLE_SELECTOR_ROWS;
146
+ // Decrease the popup size when decreased row selection
147
+ } else if (prevSize.maxRow > DEFAULT_TABLE_SELECTOR_ROWS) {
148
+ return prevSize.row;
149
+ }
150
+ return prevSize.maxRow;
151
+ case 'ArrowRight':
152
+ var moveToNextRow = prevSize.col === DEFAULT_TABLE_SELECTOR_COLS;
153
+ var increaseMaxRow = prevSize.maxRow < DEFAULT_MAX_TABLE_SELECTOR_ROWS && moveToNextRow && prevSize.row + 1 === prevSize.maxRow;
154
+
155
+ // Decrease popup size for wrap around to selection 1 x 1
156
+ if (prevSize.row === DEFAULT_MAX_TABLE_SELECTOR_ROWS && prevSize.col === DEFAULT_TABLE_SELECTOR_COLS) {
157
+ return DEFAULT_TABLE_SELECTOR_ROWS;
158
+ // Decrease the popup size when decreased row selection
159
+ } else if (increaseMaxRow) {
160
+ return prevSize.maxRow + 1;
161
+ }
162
+ return prevSize.maxRow;
163
+ default:
164
+ return prevSize.maxRow;
165
+ }
166
+ };
167
+ var handleInitialButtonFocus = (0, _react.useCallback)(function () {
168
+ if (isKeyboardMode.current !== true) {
169
+ enableKeyboardMode();
170
+ setSize(initialSizeState);
171
+ }
172
+ }, [enableKeyboardMode, setSize]);
173
+ var handleKeyDown = (0, _react.useCallback)(
174
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
175
+ function (event) {
176
+ if (event.key === 'ArrowDown') {
177
+ enableKeyboardMode();
178
+ setSize(function (prevSize) {
179
+ return _objectSpread(_objectSpread({}, prevSize), {}, {
180
+ row: prevSize.row % prevSize.maxRow + 1,
181
+ maxRow: getMaxRow(prevSize, event.key)
182
+ });
183
+ });
184
+ if ((0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') && (0, _platformFeatureFlags.fg)('platform_editor_controls_table_picker')) {
185
+ event.preventDefault();
186
+ }
187
+ }
188
+ if (event.key === 'ArrowRight') {
189
+ enableKeyboardMode();
190
+ setSize(function (prevSize) {
191
+ var moveToNextRow = prevSize.col === DEFAULT_TABLE_SELECTOR_COLS;
192
+ return _objectSpread(_objectSpread({}, prevSize), {}, {
193
+ col: prevSize.col % DEFAULT_TABLE_SELECTOR_COLS + 1,
194
+ row: moveToNextRow ? prevSize.row % prevSize.maxRow + 1 : prevSize.row,
195
+ maxRow: getMaxRow(prevSize, event.key)
196
+ });
197
+ });
198
+ }
199
+ if (event.key === 'ArrowLeft') {
200
+ enableKeyboardMode();
201
+ setSize(function (prevSize) {
202
+ var getRow = function getRow(prevRow, prevCol) {
203
+ var row = prevRow;
204
+ // Move to previous row for wrap around
205
+ if (prevSize.col === 1 && prevSize.row > 1) {
206
+ return prevRow - 1;
207
+ // Increase the selection to max size when selected row and column wraps around
208
+ } else if (prevRow === 1 && prevCol === 1) {
209
+ return DEFAULT_MAX_TABLE_SELECTOR_ROWS;
210
+ }
211
+ return row;
212
+ };
213
+ return _objectSpread(_objectSpread({}, prevSize), {}, {
214
+ col: decreasingSequence(prevSize.maxCol, prevSize.col),
215
+ row: getRow(prevSize.row, prevSize.col),
216
+ maxRow: getMaxRow(prevSize, event.key)
217
+ });
218
+ });
219
+ }
220
+ if (event.key === 'ArrowUp') {
221
+ enableKeyboardMode();
222
+ setSize(function (prevSize) {
223
+ var moveToLastRow = prevSize.row === 1;
224
+ return _objectSpread(_objectSpread({}, prevSize), {}, {
225
+ row: moveToLastRow ? DEFAULT_MAX_TABLE_SELECTOR_ROWS : decreasingSequence(prevSize.maxRow, prevSize.row),
226
+ maxRow: getMaxRow(prevSize, event.key)
227
+ });
228
+ });
229
+ if ((0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') && (0, _platformFeatureFlags.fg)('platform_editor_controls_table_picker')) {
230
+ event.preventDefault();
231
+ }
232
+ }
233
+ }, [enableKeyboardMode, setSize]);
234
+ (0, _react.useEffect)(function () {
235
+ var unbind;
236
+ var target = props.allowOutsideSelection ? window : tablePopupRef.current;
237
+ if (target) {
238
+ unbind = (0, _bindEventListener.bind)(target, {
239
+ type: 'mousemove',
240
+ listener: handleMouseMove
241
+ });
242
+ }
243
+ return unbind;
244
+ }, [handleMouseMove, props.allowOutsideSelection, tablePopupRef]);
245
+ return (0, _react2.jsx)(_Popup.default, {
246
+ target: props.target,
247
+ offset: [0, 3],
248
+ mountTo: props.popupsMountPoint,
249
+ boundariesElement: props.popupsBoundariesElement,
250
+ scrollableElement: props.popupsScrollableElement,
251
+ focusTrap: true,
252
+ onUnmount: props.onUnmount,
253
+ zIndex: _editorSharedStyles.akEditorMenuZIndex
254
+ }, (0, _react2.jsx)("div", {
255
+ css: tableSelectorPopupWrapperStyles,
256
+ ref: tablePopupRef
257
+ }, (0, _react2.jsx)(TableSelectorWithListeners, {
258
+ handleClickOutside: props.handleClickOutside,
259
+ handleEscapeKeydown: props.handleEscapeKeydown,
260
+ maxCols: size.maxCol,
261
+ maxRows: size.maxRow,
262
+ onSelection: props.onSelection,
263
+ selectedCol: size.col,
264
+ selectedRow: size.row,
265
+ onKeyDown: handleKeyDown,
266
+ isFocused: isKeyboardMode.current,
267
+ handleInitialButtonFocus: handleInitialButtonFocus
268
+ })));
269
+ };
270
+ var _default = exports.default = TableSelectorPopup;
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.TABLE_SELECTOR_BUTTON_SIZE = exports.TABLE_SELECTOR_BUTTON_GAP = void 0;
7
+ var _react = require("react");
8
+ var _react2 = require("@emotion/react");
9
+ var _reactIntlNext = require("react-intl-next");
10
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
+ var _compiled = require("@atlaskit/primitives/compiled");
12
+ var _colors = require("@atlaskit/theme/colors");
13
+ var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
14
+ var _messages = require("../../messages");
15
+ var _uiReact = require("../../ui-react");
16
+ /**
17
+ * @jsxRuntime classic
18
+ * @jsx jsx
19
+ */
20
+
21
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
22
+
23
+ var TABLE_SELECTOR_BUTTON_GAP = exports.TABLE_SELECTOR_BUTTON_GAP = 2;
24
+ var TABLE_SELECTOR_BUTTON_SIZE = exports.TABLE_SELECTOR_BUTTON_SIZE = 17;
25
+ var selectedButtonStyles = (0, _react2.css)({
26
+ backgroundColor: "var(--ds-background-accent-blue-subtlest, #579DFF)",
27
+ border: "1px solid ".concat("var(--ds-background-accent-blue-subtle, #579DFF)")
28
+ });
29
+ var buttonStyles = (0, _react2.css)({
30
+ height: "".concat(TABLE_SELECTOR_BUTTON_SIZE, "px"),
31
+ width: "".concat(TABLE_SELECTOR_BUTTON_SIZE, "px"),
32
+ border: "1px solid ".concat("var(--ds-border, #091e4224)"),
33
+ backgroundColor: "var(--ds-background-input, #ffffff)",
34
+ borderRadius: '3px',
35
+ cursor: 'pointer',
36
+ display: 'block',
37
+ '&:focus': {
38
+ outline: 'none',
39
+ border: "1px solid ".concat("var(--ds-border-focused, ".concat(_colors.B100, ")")),
40
+ boxShadow: "0 0 0 0.5px ".concat("var(--ds-border-focused, ".concat(_colors.B100, ")"))
41
+ }
42
+ });
43
+ var selectionSizeTextStyles = (0, _react2.css)({
44
+ // eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
45
+ lineHeight: '14px',
46
+ display: 'flex',
47
+ justifyContent: 'center',
48
+ marginTop: "var(--ds-space-075, 5px)",
49
+ padding: "var(--ds-space-075, 10px)"
50
+ });
51
+ var TableSelectorButton = function TableSelectorButton(_ref) {
52
+ var row = _ref.row,
53
+ col = _ref.col,
54
+ isActive = _ref.isActive,
55
+ _onClick = _ref.onClick,
56
+ label = _ref.label,
57
+ onKeyDown = _ref.onKeyDown,
58
+ isFocused = _ref.isFocused,
59
+ handleInitialButtonFocus = _ref.handleInitialButtonFocus;
60
+ var btnRef = (0, _react.useRef)(null);
61
+ (0, _react.useEffect)(function () {
62
+ if (btnRef.current) {
63
+ if (isFocused) {
64
+ btnRef.current.focus({
65
+ preventScroll: (0, _experiments.editorExperiment)('platform_editor_controls', 'variant1') && (0, _platformFeatureFlags.fg)('platform_editor_controls_table_picker') ? true : undefined
66
+ });
67
+ } else {
68
+ btnRef.current.blur();
69
+ }
70
+ }
71
+ }, [isFocused, btnRef]);
72
+ var handleFocus = col === 1 && row === 1 ? function () {
73
+ return handleInitialButtonFocus();
74
+ } : undefined;
75
+ return (0, _react2.jsx)("button", {
76
+ type: "button",
77
+ css: [buttonStyles, isActive ? selectedButtonStyles : undefined],
78
+ onClick: function onClick() {
79
+ return _onClick(row, col);
80
+ },
81
+ "aria-label": label,
82
+ onKeyDown: onKeyDown,
83
+ ref: btnRef,
84
+ onFocus: handleFocus
85
+ });
86
+ };
87
+ var createArray = function createArray(maxCols, maxRows) {
88
+ var arr = [];
89
+ for (var i = 1; i < maxRows + 1; i++) {
90
+ for (var j = 1; j < maxCols + 1; j++) {
91
+ arr.push({
92
+ col: j,
93
+ row: i
94
+ });
95
+ }
96
+ }
97
+ return arr;
98
+ };
99
+ var gridWrapperStyles = function gridWrapperStyles(_ref2) {
100
+ var maxCols = _ref2.maxCols,
101
+ maxRows = _ref2.maxRows;
102
+ return (0, _react2.css)({
103
+ display: 'grid',
104
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
105
+ gridTemplateColumns: "repeat(".concat(maxCols, ", 1fr)"),
106
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
107
+ gridTemplateRows: "repeat(".concat(maxRows, ", 1fr)"),
108
+ gap: "".concat("var(--ds-space-025, ".concat("".concat(TABLE_SELECTOR_BUTTON_GAP, "px"), ")"))
109
+ });
110
+ };
111
+ var TableSelectorPopup = function TableSelectorPopup(_ref3) {
112
+ var maxCols = _ref3.maxCols,
113
+ maxRows = _ref3.maxRows,
114
+ onSelection = _ref3.onSelection,
115
+ selectedCol = _ref3.selectedCol,
116
+ selectedRow = _ref3.selectedRow,
117
+ onKeyDown = _ref3.onKeyDown,
118
+ isFocused = _ref3.isFocused,
119
+ handleInitialButtonFocus = _ref3.handleInitialButtonFocus,
120
+ formatMessage = _ref3.intl.formatMessage;
121
+ var buttons = (0, _react.useMemo)(function () {
122
+ return createArray(maxCols, maxRows);
123
+ }, [maxCols, maxRows]);
124
+ var setOutsideClickTargetRef = (0, _react.useContext)(_uiReact.OutsideClickTargetRefContext);
125
+ return (0, _react2.jsx)(_compiled.Stack, {
126
+ ref: setOutsideClickTargetRef
127
+ }, (0, _react2.jsx)("div", {
128
+ "aria-label": "".concat(formatMessage(_messages.toolbarInsertBlockMessages.tableSizeSelectorPopup)),
129
+ css:
130
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage
131
+ gridWrapperStyles({
132
+ maxCols: maxCols,
133
+ maxRows: maxRows
134
+ })
135
+ }, buttons.map(function (_ref4, index) {
136
+ var col = _ref4.col,
137
+ row = _ref4.row;
138
+ var isCurrentFocused = isFocused && selectedCol === col && selectedRow === row;
139
+ var isActive = selectedCol >= col && selectedRow >= row ? true : false;
140
+ return (0, _react2.jsx)(TableSelectorButton
141
+ // Ignored via go/ees005
142
+ // eslint-disable-next-line react/no-array-index-key
143
+ , {
144
+ key: index,
145
+ isActive: isActive,
146
+ col: col,
147
+ row: row,
148
+ onClick: onSelection,
149
+ label: "".concat(formatMessage(_messages.toolbarInsertBlockMessages.tableSizeSelectorButton, {
150
+ numberOfColumns: col,
151
+ numberOfRows: row
152
+ })),
153
+ onKeyDown: onKeyDown,
154
+ isFocused: isCurrentFocused,
155
+ handleInitialButtonFocus: handleInitialButtonFocus
156
+ });
157
+ })), (0, _react2.jsx)("span", {
158
+ css: selectionSizeTextStyles,
159
+ "aria-hidden": true
160
+ }, "".concat(selectedCol, " x ").concat(selectedRow)));
161
+ };
162
+ var _default = exports.default = (0, _reactIntlNext.injectIntl)(TableSelectorPopup);
@@ -93,6 +93,7 @@ var WidthProvider = exports.WidthProvider = function WidthProvider(_ref) {
93
93
  if (!isMountedRef.current) {
94
94
  return;
95
95
  }
96
+ widthRef.current = nextWidth;
96
97
  setWidth(nextWidth);
97
98
  });
98
99
  }, []);
@@ -203,6 +203,12 @@ Object.defineProperty(exports, "SmallerEditIcon", {
203
203
  return _SmallerEditIcon.SmallerEditIcon;
204
204
  }
205
205
  });
206
+ Object.defineProperty(exports, "TableSelectorPopup", {
207
+ enumerable: true,
208
+ get: function get() {
209
+ return _TableSelector.default;
210
+ }
211
+ });
206
212
  Object.defineProperty(exports, "ToolbarButtonGroup", {
207
213
  enumerable: true,
208
214
  get: function get() {
@@ -485,5 +491,6 @@ var _ExpandIcon = require("./Toolbar/ExpandIcon");
485
491
  var _Separator2 = require("./Toolbar/Separator");
486
492
  var _DropList = _interopRequireDefault(require("./DropList"));
487
493
  var _MultiBodiedExtension = require("./MultiBodiedExtension");
494
+ var _TableSelector = _interopRequireDefault(require("./TableSelector"));
488
495
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
489
496
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDomRefFromSelection = void 0;
7
+ var _utils = require("@atlaskit/editor-prosemirror/utils");
8
+ var _analytics = require("../analytics");
9
+ var getDomRefFromSelection = exports.getDomRefFromSelection = function getDomRefFromSelection(view, actionSubjectId, dispatchAnalyticsEvent) {
10
+ try {
11
+ var domRef = (0, _utils.findDomRefAtPos)(view.state.selection.from, view.domAtPos.bind(view));
12
+ if (domRef instanceof HTMLElement) {
13
+ // If element is not a paragraph, we need to find the closest paragraph parent
14
+ if (domRef.nodeName !== 'P') {
15
+ var paragraphRef = domRef.closest('p');
16
+ if (paragraphRef) {
17
+ return paragraphRef;
18
+ }
19
+ }
20
+ return domRef;
21
+ } else {
22
+ throw new Error('Invalid DOM reference');
23
+ }
24
+ } catch (error) {
25
+ if (dispatchAnalyticsEvent) {
26
+ var payload = {
27
+ action: _analytics.ACTION.ERRORED,
28
+ actionSubject: _analytics.ACTION_SUBJECT.PICKER,
29
+ actionSubjectId: actionSubjectId,
30
+ eventType: _analytics.EVENT_TYPE.OPERATIONAL,
31
+ attributes: {
32
+ error: 'Error getting DOM reference from selection'
33
+ }
34
+ };
35
+ dispatchAnalyticsEvent(payload);
36
+ }
37
+ }
38
+ };
@@ -427,6 +427,7 @@ export let ACTION_SUBJECT_ID = /*#__PURE__*/function (ACTION_SUBJECT_ID) {
427
427
  ACTION_SUBJECT_ID["PICKER_MEDIA"] = "mediaPicker";
428
428
  ACTION_SUBJECT_ID["PICKER_COLOR"] = "colorPicker";
429
429
  ACTION_SUBJECT_ID["PICKER_EMOJI"] = "emojiPicker";
430
+ ACTION_SUBJECT_ID["PICKER_TABLE_SIZE"] = "tableSizePicker";
430
431
  ACTION_SUBJECT_ID["DOCKED_PRIMARY_TOOLBAR"] = "dockedPrimaryToolbar";
431
432
  ACTION_SUBJECT_ID["PLACEHOLDER_TEXT"] = "placeholderText";
432
433
  ACTION_SUBJECT_ID["POST_QUERY_SEARCH_RESULTS"] = "postQuerySearchResults";
@@ -15,7 +15,7 @@ import { relativeFontSizeToBase16 } from '@atlaskit/editor-shared-styles';
15
15
  import { shortcutStyle } from '@atlaskit/editor-shared-styles/shortcut';
16
16
  import { ButtonItem } from '@atlaskit/menu';
17
17
  import { fg } from '@atlaskit/platform-feature-flags';
18
- import { Stack, Text } from '@atlaskit/primitives';
18
+ import { Stack, Text } from '@atlaskit/primitives/compiled';
19
19
  import Tooltip from '@atlaskit/tooltip';
20
20
  import { ACTION, ACTION_SUBJECT, EVENT_TYPE, fireAnalyticsEvent } from '../../../analytics';
21
21
  import { IconFallback } from '../../../quick-insert';
@@ -1,7 +1,7 @@
1
1
  import { isFedRamp } from './environment';
2
2
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
3
3
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
4
- const packageVersion = "103.11.2";
4
+ const packageVersion = "103.12.1";
5
5
  const sanitiseSentryEvents = (data, _hint) => {
6
6
  // Remove URL as it has UGC
7
7
  // Ignored via go/ees007
@@ -13,7 +13,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
13
13
  import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
14
14
  import Layer from '../Layer';
15
15
  const packageName = "@atlaskit/editor-common";
16
- const packageVersion = "103.11.2";
16
+ const packageVersion = "103.12.1";
17
17
  const halfFocusRing = 1;
18
18
  const dropOffset = '0, 8';
19
19
  // Ignored via go/ees005