@atlaskit/page-layout 1.3.7 → 1.3.9

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 (104) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/common/constants.js +8 -4
  3. package/dist/cjs/common/hooks/index.js +0 -3
  4. package/dist/cjs/common/hooks/use-is-sidebar-collapsing.js +3 -12
  5. package/dist/cjs/common/hooks/use-is-sidebar-dragging.js +3 -12
  6. package/dist/cjs/common/safe-local-storage.js +2 -13
  7. package/dist/cjs/common/utils.js +0 -35
  8. package/dist/cjs/components/index.js +0 -13
  9. package/dist/cjs/components/resize-control/grab-area.js +8 -17
  10. package/dist/cjs/components/resize-control/index.js +33 -84
  11. package/dist/cjs/components/resize-control/resize-button.js +9 -24
  12. package/dist/cjs/components/resize-control/shadow.js +3 -7
  13. package/dist/cjs/components/skip-links/index.js +0 -2
  14. package/dist/cjs/components/skip-links/skip-link-components.js +18 -48
  15. package/dist/cjs/components/skip-links/use-custom-skip-link.js +3 -8
  16. package/dist/cjs/components/slots/banner-slot.js +10 -21
  17. package/dist/cjs/components/slots/content.js +3 -6
  18. package/dist/cjs/components/slots/internal/left-sidebar-inner.js +9 -14
  19. package/dist/cjs/components/slots/internal/left-sidebar-outer.js +10 -22
  20. package/dist/cjs/components/slots/internal/resizable-children-wrapper.js +10 -15
  21. package/dist/cjs/components/slots/internal/slot-focus-ring.js +5 -8
  22. package/dist/cjs/components/slots/left-panel.js +9 -20
  23. package/dist/cjs/components/slots/left-sidebar-without-resize.js +6 -18
  24. package/dist/cjs/components/slots/left-sidebar.js +39 -75
  25. package/dist/cjs/components/slots/main.js +9 -23
  26. package/dist/cjs/components/slots/page-layout.js +7 -16
  27. package/dist/cjs/components/slots/right-panel.js +9 -20
  28. package/dist/cjs/components/slots/right-sidebar.js +9 -21
  29. package/dist/cjs/components/slots/slot-dimensions.js +1 -5
  30. package/dist/cjs/components/slots/top-navigation.js +10 -21
  31. package/dist/cjs/controllers/index.js +0 -6
  32. package/dist/cjs/controllers/sidebar-resize-context.js +6 -21
  33. package/dist/cjs/controllers/sidebar-resize-controller.js +34 -50
  34. package/dist/cjs/controllers/skip-link-context.js +2 -12
  35. package/dist/cjs/controllers/skip-link-controller.js +6 -22
  36. package/dist/cjs/controllers/use-page-layout-grid.js +6 -12
  37. package/dist/cjs/controllers/use-update-css-vars.js +0 -3
  38. package/dist/cjs/index.js +0 -3
  39. package/dist/cjs/version.json +1 -1
  40. package/dist/es2019/common/constants.js +8 -4
  41. package/dist/es2019/common/hooks/use-is-sidebar-collapsing.js +0 -4
  42. package/dist/es2019/common/hooks/use-is-sidebar-dragging.js +0 -4
  43. package/dist/es2019/common/safe-local-storage.js +2 -12
  44. package/dist/es2019/common/utils.js +4 -20
  45. package/dist/es2019/components/resize-control/grab-area.js +7 -8
  46. package/dist/es2019/components/resize-control/index.js +26 -43
  47. package/dist/es2019/components/resize-control/resize-button.js +7 -11
  48. package/dist/es2019/components/resize-control/shadow.js +3 -3
  49. package/dist/es2019/components/skip-links/skip-link-components.js +16 -31
  50. package/dist/es2019/components/slots/banner-slot.js +1 -3
  51. package/dist/es2019/components/slots/content.js +2 -2
  52. package/dist/es2019/components/slots/internal/left-sidebar-inner.js +5 -5
  53. package/dist/es2019/components/slots/internal/left-sidebar-outer.js +1 -4
  54. package/dist/es2019/components/slots/internal/resizable-children-wrapper.js +4 -4
  55. package/dist/es2019/components/slots/internal/slot-focus-ring.js +3 -3
  56. package/dist/es2019/components/slots/left-panel.js +1 -3
  57. package/dist/es2019/components/slots/left-sidebar-without-resize.js +1 -2
  58. package/dist/es2019/components/slots/left-sidebar.js +25 -40
  59. package/dist/es2019/components/slots/main.js +4 -5
  60. package/dist/es2019/components/slots/page-layout.js +1 -3
  61. package/dist/es2019/components/slots/right-panel.js +1 -3
  62. package/dist/es2019/components/slots/right-sidebar.js +3 -5
  63. package/dist/es2019/components/slots/top-navigation.js +1 -3
  64. package/dist/es2019/controllers/sidebar-resize-context.js +7 -5
  65. package/dist/es2019/controllers/sidebar-resize-controller.js +14 -16
  66. package/dist/es2019/controllers/skip-link-context.js +0 -1
  67. package/dist/es2019/controllers/skip-link-controller.js +3 -7
  68. package/dist/es2019/controllers/use-page-layout-grid.js +4 -5
  69. package/dist/es2019/controllers/use-update-css-vars.js +0 -2
  70. package/dist/es2019/version.json +1 -1
  71. package/dist/esm/common/constants.js +8 -4
  72. package/dist/esm/common/hooks/use-is-sidebar-collapsing.js +3 -8
  73. package/dist/esm/common/hooks/use-is-sidebar-dragging.js +3 -8
  74. package/dist/esm/common/safe-local-storage.js +2 -12
  75. package/dist/esm/common/utils.js +0 -22
  76. package/dist/esm/components/resize-control/grab-area.js +9 -14
  77. package/dist/esm/components/resize-control/index.js +33 -72
  78. package/dist/esm/components/resize-control/resize-button.js +10 -15
  79. package/dist/esm/components/resize-control/shadow.js +3 -3
  80. package/dist/esm/components/skip-links/skip-link-components.js +19 -39
  81. package/dist/esm/components/skip-links/use-custom-skip-link.js +2 -4
  82. package/dist/esm/components/slots/banner-slot.js +9 -11
  83. package/dist/esm/components/slots/content.js +3 -3
  84. package/dist/esm/components/slots/internal/left-sidebar-inner.js +9 -9
  85. package/dist/esm/components/slots/internal/left-sidebar-outer.js +9 -12
  86. package/dist/esm/components/slots/internal/resizable-children-wrapper.js +10 -10
  87. package/dist/esm/components/slots/internal/slot-focus-ring.js +5 -5
  88. package/dist/esm/components/slots/left-panel.js +8 -10
  89. package/dist/esm/components/slots/left-sidebar-without-resize.js +7 -9
  90. package/dist/esm/components/slots/left-sidebar.js +40 -65
  91. package/dist/esm/components/slots/main.js +10 -13
  92. package/dist/esm/components/slots/page-layout.js +6 -10
  93. package/dist/esm/components/slots/right-panel.js +8 -10
  94. package/dist/esm/components/slots/right-sidebar.js +10 -12
  95. package/dist/esm/components/slots/slot-dimensions.js +1 -1
  96. package/dist/esm/components/slots/top-navigation.js +9 -11
  97. package/dist/esm/controllers/sidebar-resize-context.js +6 -11
  98. package/dist/esm/controllers/sidebar-resize-controller.js +34 -38
  99. package/dist/esm/controllers/skip-link-context.js +2 -4
  100. package/dist/esm/controllers/skip-link-controller.js +6 -12
  101. package/dist/esm/controllers/use-page-layout-grid.js +6 -8
  102. package/dist/esm/controllers/use-update-css-vars.js +0 -2
  103. package/dist/esm/version.json +1 -1
  104. package/package.json +2 -2
@@ -1,42 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _react = require("react");
17
-
18
12
  var _react2 = require("@emotion/react");
19
-
20
13
  var _bindEventListener = require("bind-event-listener");
21
-
22
14
  var _rafSchd = _interopRequireDefault(require("raf-schd"));
23
-
24
15
  var _constants = require("../../common/constants");
25
-
26
16
  var _utils = require("../../common/utils");
27
-
28
17
  var _sidebarResizeContext = require("../../controllers/sidebar-resize-context");
29
-
30
18
  var _grabArea = _interopRequireDefault(require("./grab-area"));
31
-
32
19
  var _resizeButton2 = _interopRequireDefault(require("./resize-button"));
33
-
34
20
  var _shadow = _interopRequireDefault(require("./shadow"));
35
-
36
21
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
-
38
22
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
-
40
23
  var cssSelector = (0, _defineProperty2.default)({}, _constants.RESIZE_CONTROL_SELECTOR, true);
41
24
  var resizeControlStyles = (0, _react2.css)({
42
25
  position: 'absolute',
@@ -48,62 +31,52 @@ var resizeControlStyles = (0, _react2.css)({
48
31
  var showResizeButtonStyles = (0, _react2.css)({
49
32
  '--ds--resize-button--opacity': 1
50
33
  });
51
-
52
34
  var ResizeControl = function ResizeControl(_ref) {
53
35
  var testId = _ref.testId,
54
- overrides = _ref.overrides,
55
- _ref$resizeButtonLabe = _ref.resizeButtonLabel,
56
- resizeButtonLabel = _ref$resizeButtonLabe === void 0 ? '' : _ref$resizeButtonLabe,
57
- _ref$resizeGrabAreaLa = _ref.resizeGrabAreaLabel,
58
- resizeGrabAreaLabel = _ref$resizeGrabAreaLa === void 0 ? 'Resize' : _ref$resizeGrabAreaLa,
59
- onResizeStart = _ref.onResizeStart,
60
- onResizeEnd = _ref.onResizeEnd;
61
-
36
+ overrides = _ref.overrides,
37
+ _ref$resizeButtonLabe = _ref.resizeButtonLabel,
38
+ resizeButtonLabel = _ref$resizeButtonLabe === void 0 ? '' : _ref$resizeButtonLabe,
39
+ _ref$resizeGrabAreaLa = _ref.resizeGrabAreaLabel,
40
+ resizeGrabAreaLabel = _ref$resizeGrabAreaLa === void 0 ? 'Resize' : _ref$resizeGrabAreaLa,
41
+ onResizeStart = _ref.onResizeStart,
42
+ onResizeEnd = _ref.onResizeEnd;
62
43
  var _useContext = (0, _react.useContext)(_sidebarResizeContext.SidebarResizeContext),
63
- expandLeftSidebar = _useContext.expandLeftSidebar,
64
- collapseLeftSidebar = _useContext.collapseLeftSidebar,
65
- leftSidebarState = _useContext.leftSidebarState,
66
- setLeftSidebarState = _useContext.setLeftSidebarState;
67
-
44
+ expandLeftSidebar = _useContext.expandLeftSidebar,
45
+ collapseLeftSidebar = _useContext.collapseLeftSidebar,
46
+ leftSidebarState = _useContext.leftSidebarState,
47
+ setLeftSidebarState = _useContext.setLeftSidebarState;
68
48
  var isLeftSidebarCollapsed = leftSidebarState.isLeftSidebarCollapsed,
69
- isResizing = leftSidebarState.isResizing;
70
- var x = (0, _react.useRef)(leftSidebarState[_constants.VAR_LEFT_SIDEBAR_WIDTH]); // Distance of mouse from left sidebar onMouseDown
71
-
49
+ isResizing = leftSidebarState.isResizing;
50
+ var x = (0, _react.useRef)(leftSidebarState[_constants.VAR_LEFT_SIDEBAR_WIDTH]);
51
+ // Distance of mouse from left sidebar onMouseDown
72
52
  var offset = (0, _react.useRef)(0);
73
53
  var keyboardEventTimeout = (0, _react.useRef)();
74
-
75
54
  var _useState = (0, _react.useState)(false),
76
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
77
- isGrabAreaFocused = _useState2[0],
78
- setIsGrabAreaFocused = _useState2[1];
79
-
55
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
56
+ isGrabAreaFocused = _useState2[0],
57
+ setIsGrabAreaFocused = _useState2[1];
80
58
  var unbindEvents = (0, _react.useRef)(null);
81
-
82
59
  var toggleSideBar = function toggleSideBar(e) {
83
60
  if (isResizing) {
84
61
  return;
85
62
  }
86
-
87
63
  if (isLeftSidebarCollapsed) {
88
64
  expandLeftSidebar();
89
65
  } else {
90
66
  collapseLeftSidebar();
91
- } // Bring focus to the resize button if the grab area is
92
- // "clicked" using enter/space on keyboard.
93
-
67
+ }
94
68
 
69
+ // Bring focus to the resize button if the grab area is
70
+ // "clicked" using enter/space on keyboard.
95
71
  if (e && e.nativeEvent.detail === 0) {
96
72
  var _resizeButton = document.querySelector("[".concat(_constants.RESIZE_BUTTON_SELECTOR, "]"));
97
-
98
73
  _resizeButton && _resizeButton.focus();
99
74
  }
100
75
  };
101
-
102
76
  var onMouseDown = function onMouseDown(event) {
103
77
  if (isLeftSidebarCollapsed) {
104
78
  return;
105
79
  }
106
-
107
80
  offset.current = event.clientX - leftSidebarState[_constants.VAR_LEFT_SIDEBAR_WIDTH] - (0, _utils.getLeftPanelWidth)();
108
81
  unbindEvents.current = (0, _bindEventListener.bindAll)(document, [{
109
82
  type: 'mousemove',
@@ -113,18 +86,14 @@ var ResizeControl = function ResizeControl(_ref) {
113
86
  listener: onMouseUp
114
87
  }]);
115
88
  document.documentElement.setAttribute(_constants.IS_SIDEBAR_DRAGGING, 'true');
116
-
117
89
  var newLeftbarState = _objectSpread(_objectSpread({}, leftSidebarState), {}, {
118
90
  isResizing: true
119
91
  });
120
-
121
92
  setLeftSidebarState(newLeftbarState);
122
93
  onResizeStart && onResizeStart(newLeftbarState);
123
94
  };
124
-
125
95
  var cancelDrag = function cancelDrag(shouldCollapse) {
126
96
  var _unbindEvents$current;
127
-
128
97
  onMouseMove.cancel();
129
98
  (_unbindEvents$current = unbindEvents.current) === null || _unbindEvents$current === void 0 ? void 0 : _unbindEvents$current.call(unbindEvents);
130
99
  unbindEvents.current = null;
@@ -132,51 +101,44 @@ var ResizeControl = function ResizeControl(_ref) {
132
101
  offset.current = 0;
133
102
  collapseLeftSidebar(undefined, true);
134
103
  };
135
-
136
104
  var onMouseMove = (0, _rafSchd.default)(function (event) {
137
105
  // Allow the sidebar to be 50% of the available page width
138
106
  var maxWidth = Math.round(window.innerWidth / 2);
139
107
  var leftPanelWidth = (0, _utils.getLeftPanelWidth)();
140
108
  var leftSidebarWidth = leftSidebarState.leftSidebarWidth;
141
109
  var invalidDrag = event.clientX < 0;
142
-
143
110
  if (invalidDrag) {
144
111
  cancelDrag();
145
112
  }
146
-
147
113
  var delta = Math.max(Math.min(event.clientX - leftSidebarWidth - leftPanelWidth, maxWidth - leftSidebarWidth - leftPanelWidth), _constants.COLLAPSED_LEFT_SIDEBAR_WIDTH - leftSidebarWidth - leftPanelWidth);
148
114
  x.current = Math.max(leftSidebarWidth + delta - offset.current, _constants.COLLAPSED_LEFT_SIDEBAR_WIDTH);
149
115
  document.documentElement.style.setProperty("--".concat(_constants.VAR_LEFT_SIDEBAR_WIDTH), "".concat(x.current, "px"));
150
116
  });
151
-
152
117
  var cleanupAfterResize = function cleanupAfterResize() {
153
118
  var _unbindEvents$current2;
154
-
155
119
  x.current = 0;
156
120
  offset.current = 0;
157
121
  (_unbindEvents$current2 = unbindEvents.current) === null || _unbindEvents$current2 === void 0 ? void 0 : _unbindEvents$current2.call(unbindEvents);
158
122
  unbindEvents.current = null;
159
123
  };
160
-
161
124
  var updatedLeftSidebarState = {};
162
-
163
125
  var onMouseUp = function onMouseUp(event) {
164
126
  if (isLeftSidebarCollapsed) {
165
127
  return;
166
128
  }
129
+ document.documentElement.removeAttribute(_constants.IS_SIDEBAR_DRAGGING);
167
130
 
168
- document.documentElement.removeAttribute(_constants.IS_SIDEBAR_DRAGGING); // If it is dragged to below the threshold,
131
+ // If it is dragged to below the threshold,
169
132
  // collapse the navigation
170
-
171
133
  if (x.current < _constants.MIN_LEFT_SIDEBAR_DRAG_THRESHOLD) {
172
134
  document.documentElement.style.setProperty("--".concat(_constants.VAR_LEFT_SIDEBAR_WIDTH), "".concat(_constants.COLLAPSED_LEFT_SIDEBAR_WIDTH, "px"));
173
135
  collapseLeftSidebar(undefined, true);
174
- } // If it is dragged to position in between the
136
+ }
137
+ // If it is dragged to position in between the
175
138
  // min threshold and default width
176
139
  // expand the nav to the default width
177
140
  else if (x.current > _constants.MIN_LEFT_SIDEBAR_DRAG_THRESHOLD && x.current < _constants.DEFAULT_LEFT_SIDEBAR_WIDTH) {
178
141
  var _objectSpread2;
179
-
180
142
  document.documentElement.style.setProperty("--".concat(_constants.VAR_LEFT_SIDEBAR_WIDTH), "".concat(_constants.DEFAULT_LEFT_SIDEBAR_WIDTH, "px"));
181
143
  updatedLeftSidebarState = _objectSpread(_objectSpread({}, leftSidebarState), {}, (_objectSpread2 = {
182
144
  isResizing: false
@@ -184,14 +146,12 @@ var ResizeControl = function ResizeControl(_ref) {
184
146
  setLeftSidebarState(updatedLeftSidebarState);
185
147
  } else {
186
148
  var _objectSpread3;
187
-
188
149
  // otherwise resize it to the desired width
189
150
  updatedLeftSidebarState = _objectSpread(_objectSpread({}, leftSidebarState), {}, (_objectSpread3 = {
190
151
  isResizing: false
191
152
  }, (0, _defineProperty2.default)(_objectSpread3, _constants.VAR_LEFT_SIDEBAR_WIDTH, x.current), (0, _defineProperty2.default)(_objectSpread3, "lastLeftSidebarWidth", x.current), _objectSpread3));
192
153
  setLeftSidebarState(updatedLeftSidebarState);
193
154
  }
194
-
195
155
  requestAnimationFrame(function () {
196
156
  onMouseMove.cancel();
197
157
  setIsGrabAreaFocused(false);
@@ -199,25 +159,20 @@ var ResizeControl = function ResizeControl(_ref) {
199
159
  cleanupAfterResize();
200
160
  });
201
161
  };
202
-
203
162
  var onKeyDown = function onKeyDown(event) {
204
163
  if (isLeftSidebarCollapsed || !isGrabAreaFocused) {
205
164
  return false;
206
165
  }
207
-
208
166
  var key = event.key;
209
167
  var isLeftOrTopArrow = key === 'ArrowLeft' || key === 'ArrowUp' || key === 'Left' || key === 'Up';
210
168
  var isRightOrBottomArrow = key === 'ArrowRight' || key === 'ArrowDown' || key === 'Right' || key === 'Down';
211
169
  var isSpaceOrEnter = key === 'Enter' || key === 'Spacebar' || key === ' ';
212
-
213
170
  if (isSpaceOrEnter) {
214
171
  toggleSideBar(event);
215
172
  event.preventDefault();
216
173
  }
217
-
218
174
  if (isLeftOrTopArrow || isRightOrBottomArrow) {
219
175
  event.preventDefault(); // prevent content scroll
220
-
221
176
  onResizeStart && onResizeStart(leftSidebarState);
222
177
  var step = 10;
223
178
  var stepValue = isLeftOrTopArrow ? -step : step;
@@ -225,7 +180,6 @@ var ResizeControl = function ResizeControl(_ref) {
225
180
  var maxWidth = Math.round(window.innerWidth / 2) - (0, _utils.getLeftPanelWidth)();
226
181
  var hasModifierKey = event.metaKey || event.altKey || event.ctrlKey || event.shiftKey;
227
182
  var width = leftSidebarWidth + stepValue;
228
-
229
183
  if (width <= _constants.DEFAULT_LEFT_SIDEBAR_WIDTH) {
230
184
  width = _constants.DEFAULT_LEFT_SIDEBAR_WIDTH;
231
185
  document.documentElement.style.setProperty("--".concat(_constants.VAR_LEFT_SIDEBAR_WIDTH), "".concat(_constants.DEFAULT_LEFT_SIDEBAR_WIDTH - 20, "px"));
@@ -234,49 +188,44 @@ var ResizeControl = function ResizeControl(_ref) {
234
188
  document.documentElement.style.setProperty("--".concat(_constants.VAR_LEFT_SIDEBAR_WIDTH), "".concat(maxWidth + 20, "px"));
235
189
  } else if (hasModifierKey) {
236
190
  width = isRightOrBottomArrow ? maxWidth : _constants.DEFAULT_LEFT_SIDEBAR_WIDTH;
237
- } // Nesting the setTimeout within requestAnimationFrame helps
238
- // the browser schedule the setTimeout call in an efficient manner
239
-
191
+ }
240
192
 
193
+ // Nesting the setTimeout within requestAnimationFrame helps
194
+ // the browser schedule the setTimeout call in an efficient manner
241
195
  requestAnimationFrame(function () {
242
196
  keyboardEventTimeout.current = window.setTimeout(function () {
243
197
  var _objectSpread4;
244
-
245
198
  keyboardEventTimeout.current && clearTimeout(keyboardEventTimeout.current);
246
199
  document.documentElement.style.setProperty("--".concat(_constants.VAR_LEFT_SIDEBAR_WIDTH), "".concat(width, "px"));
247
-
248
200
  var updatedLeftSidebarState = _objectSpread(_objectSpread({}, leftSidebarState), {}, (_objectSpread4 = {}, (0, _defineProperty2.default)(_objectSpread4, _constants.VAR_LEFT_SIDEBAR_WIDTH, width), (0, _defineProperty2.default)(_objectSpread4, "lastLeftSidebarWidth", width), _objectSpread4));
249
-
250
201
  setLeftSidebarState(updatedLeftSidebarState);
251
202
  onResizeEnd && onResizeEnd(updatedLeftSidebarState);
252
203
  }, 50);
253
204
  });
254
205
  }
255
206
  };
256
-
257
207
  var onFocus = (0, _react.useCallback)(function () {
258
208
  setIsGrabAreaFocused(true);
259
209
  }, []);
260
210
  var onBlur = (0, _react.useCallback)(function () {
261
211
  setIsGrabAreaFocused(false);
262
212
  }, []);
263
-
264
213
  var resizeButton = _objectSpread({
265
214
  render: function render(Component, props) {
266
215
  return (0, _react2.jsx)(Component, props);
267
216
  }
268
- }, overrides && overrides.ResizeButton); // This width is calculated once only on mount.
217
+ }, overrides && overrides.ResizeButton);
218
+
219
+ // This width is calculated once only on mount.
269
220
  // This means resizing the window will cause this value to be incorrect for screen reader users,
270
221
  // however this comes with a substantial performance gain and so is considered acceptable.
271
-
272
-
273
222
  var maxAriaWidth = (0, _react.useMemo)(function () {
274
223
  var innerWidth = typeof window === 'undefined' ? 0 : window.innerWidth;
275
224
  return Math.round(innerWidth / 2) - (0, _utils.getLeftPanelWidth)();
276
225
  }, []);
277
226
  var leftSidebarPercentageExpanded = (0, _utils.getLeftSidebarPercentage)(leftSidebarState.leftSidebarWidth, maxAriaWidth);
278
- /* eslint-disable jsx-a11y/role-supports-aria-props */
279
227
 
228
+ /* eslint-disable jsx-a11y/role-supports-aria-props */
280
229
  return (0, _react2.jsx)("div", (0, _extends2.default)({}, cssSelector, {
281
230
  css: [resizeControlStyles, (isGrabAreaFocused || isLeftSidebarCollapsed) && showResizeButtonStyles]
282
231
  }), (0, _react2.jsx)(_shadow.default, {
@@ -302,8 +251,8 @@ var ResizeControl = function ResizeControl(_ref) {
302
251
  testId: testId && "".concat(testId, "-resize-button")
303
252
  }));
304
253
  /* eslint-enable jsx-a11y/role-supports-aria-props */
305
- }; // eslint-disable-next-line @repo/internal/react/require-jsdoc
306
-
254
+ };
307
255
 
256
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
308
257
  var _default = ResizeControl;
309
258
  exports.default = _default;
@@ -1,30 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _react = require("@emotion/react");
17
-
18
12
  var _chevronRight = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-right"));
19
-
20
13
  var _curves = require("@atlaskit/motion/curves");
21
-
22
14
  var _durations = require("@atlaskit/motion/durations");
23
-
24
15
  var _colors = require("@atlaskit/theme/colors");
25
-
26
16
  var _constants = require("../../common/constants");
27
-
28
17
  var _excluded = ["isLeftSidebarCollapsed", "label", "testId"];
29
18
  var increaseHitAreaStyles = (0, _react.css)({
30
19
  position: 'absolute',
@@ -43,7 +32,6 @@ var resizeIconButtonStyles = (0, _react.css)({
43
32
  backgroundColor: "var(--ds-surface-overlay, ".concat(_colors.N0, ")"),
44
33
  border: 0,
45
34
  borderRadius: '50%',
46
-
47
35
  /**
48
36
  * TODO: https://product-fabric.atlassian.net/browse/DSP-3392
49
37
  * This shadow needs further investigation,
@@ -53,7 +41,6 @@ var resizeIconButtonStyles = (0, _react.css)({
53
41
  boxShadow: "0 0 0 1px ".concat(_colors.N30A, ", 0 2px 4px 1px ").concat(_colors.N30A),
54
42
  color: "var(--ds-text-subtle, ".concat(_colors.N200, ")"),
55
43
  cursor: 'pointer',
56
-
57
44
  /**
58
45
  * The fallback value of 0 ensures that the button is hidden by default,
59
46
  * unless some parent (or the button itself) overrides it.
@@ -77,36 +64,34 @@ var resizeIconButtonExpandedStyles = (0, _react.css)({
77
64
  transform: 'rotate(180deg)',
78
65
  transformOrigin: 7
79
66
  });
80
-
81
67
  var preventDefault = function preventDefault(event) {
82
68
  return event.preventDefault();
83
69
  };
84
-
85
70
  var cssSelector = (0, _defineProperty2.default)({}, _constants.RESIZE_BUTTON_SELECTOR, true);
86
-
87
71
  var ResizeButton = function ResizeButton(_ref) {
88
72
  var isLeftSidebarCollapsed = _ref.isLeftSidebarCollapsed,
89
- label = _ref.label,
90
- testId = _ref.testId,
91
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
73
+ label = _ref.label,
74
+ testId = _ref.testId,
75
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
92
76
  return (0, _react.jsx)("button", (0, _extends2.default)({}, cssSelector, {
93
77
  // DO NOT remove. used as a CSS selector.
94
78
  "aria-expanded": !isLeftSidebarCollapsed,
95
79
  "aria-label": label,
96
80
  type: "button",
97
81
  css: [resizeIconButtonStyles, !isLeftSidebarCollapsed && resizeIconButtonExpandedStyles],
98
- "data-testid": testId // Prevents focus staying attached to the button
82
+ "data-testid": testId
83
+ // Prevents focus staying attached to the button
99
84
  // when pressed
100
85
  ,
101
- onMouseDown: preventDefault // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
102
-
86
+ onMouseDown: preventDefault
87
+ // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
103
88
  }, props), (0, _react.jsx)(_chevronRight.default, {
104
89
  label: ""
105
90
  }), (0, _react.jsx)("div", {
106
91
  css: increaseHitAreaStyles
107
92
  }));
108
- }; // eslint-disable-next-line @repo/internal/react/require-jsdoc
109
-
93
+ };
110
94
 
95
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
111
96
  var _default = ResizeButton;
112
97
  exports.default = _default;
@@ -4,14 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = require("@emotion/react");
9
-
10
8
  var _motion = require("@atlaskit/motion");
11
-
12
9
  var _hooks = require("../../common/hooks");
13
-
14
10
  /** @jsx jsx */
11
+
15
12
  var colorStops = "\n rgba(0, 0, 0, 0.2) 0px,\n rgba(0, 0, 0, 0.2) 1px,\n rgba(0, 0, 0, 0.1) 1px,\n rgba(0, 0, 0, 0) 100%\n ";
16
13
  var direction = 'to left';
17
14
  var transitionDuration = '0.22s';
@@ -34,7 +31,6 @@ var draggingStyles = (0, _react.css)({
34
31
  background: "var(--ds-background-neutral-subtle, ".concat("linear-gradient(".concat(direction, ", ").concat(colorStops, ")"), ")"),
35
32
  opacity: 0.8
36
33
  });
37
-
38
34
  var Shadow = function Shadow(_ref) {
39
35
  var testId = _ref.testId;
40
36
  var isDragging = (0, _hooks.useIsSidebarDragging)();
@@ -42,8 +38,8 @@ var Shadow = function Shadow(_ref) {
42
38
  "data-testid": testId,
43
39
  css: [shadowStyles, isDragging && draggingStyles]
44
40
  });
45
- }; // eslint-disable-next-line @repo/internal/react/require-jsdoc
46
-
41
+ };
47
42
 
43
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
48
44
  var _default = Shadow;
49
45
  exports.default = _default;
@@ -21,7 +21,5 @@ Object.defineProperty(exports, "useCustomSkipLink", {
21
21
  return _useCustomSkipLink.useCustomSkipLink;
22
22
  }
23
23
  });
24
-
25
24
  var _skipLinkComponents = require("./skip-link-components");
26
-
27
25
  var _useCustomSkipLink = require("./use-custom-skip-link");
@@ -1,30 +1,19 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.SkipLinkWrapper = exports.SkipLink = void 0;
9
-
10
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
10
  var _react = require("@emotion/react");
15
-
16
11
  var _motion = require("@atlaskit/motion");
17
-
18
12
  var _colors = require("@atlaskit/theme/colors");
19
-
20
13
  var _constants = require("../../common/constants");
21
-
22
14
  var _controllers = require("../../controllers");
23
-
24
15
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
-
26
16
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
-
28
17
  // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
29
18
  var prefersReducedMotionStyles = (0, _react.css)((0, _motion.prefersReducedMotion)());
30
19
  var skipLinkStyles = (0, _react.css)({
@@ -38,7 +27,6 @@ var skipLinkStyles = (0, _react.css)({
38
27
  borderRadius: 3,
39
28
  boxShadow: "var(--ds-shadow-overlay, ".concat("0 0 0 1px ".concat(_colors.N30A, ", 0 2px 10px ").concat(_colors.N30A, ", 0 0 20px -4px ").concat(_colors.N60A), ")"),
40
29
  opacity: 0,
41
-
42
30
  /* Do the transform when focused */
43
31
  transform: 'translateY(-50%)',
44
32
  transition: "transform 0.3s ".concat(_motion.easeOut),
@@ -65,14 +53,13 @@ var skipLinkListStyles = (0, _react.css)({
65
53
  var skipLinkListItemStyles = (0, _react.css)({
66
54
  marginTop: 0
67
55
  });
68
-
69
56
  var assignIndex = function assignIndex(num, arr) {
70
57
  if (!arr.includes(num)) {
71
58
  return num;
72
59
  }
73
-
74
60
  return assignIndex(num + 1, arr);
75
61
  };
62
+
76
63
  /**
77
64
  * The default label will be used when the `skipLinksLabel` attribute is not
78
65
  * provided or the attribute is an empty string. If a string comprised only of
@@ -80,27 +67,20 @@ var assignIndex = function assignIndex(num, arr) {
80
67
  * default label will still be used in `title` attribute of the skip links
81
68
  * themselves.
82
69
  */
83
-
84
-
85
70
  var SkipLinkWrapper = function SkipLinkWrapper(_ref) {
86
71
  var skipLinksLabel = _ref.skipLinksLabel;
87
-
88
72
  var _useSkipLinks = (0, _controllers.useSkipLinks)(),
89
- skipLinksData = _useSkipLinks.skipLinksData;
90
-
73
+ skipLinksData = _useSkipLinks.skipLinksData;
91
74
  if (skipLinksData.length === 0) {
92
75
  return null;
93
76
  }
94
-
95
77
  var sortSkipLinks = function sortSkipLinks(arr) {
96
78
  var customLinks = arr.filter(function (link) {
97
79
  return Number.isInteger(link.listIndex);
98
80
  });
99
-
100
81
  if (customLinks.length === 0) {
101
82
  return arr;
102
83
  }
103
-
104
84
  var usedIndexes = customLinks.map(function (a) {
105
85
  return a.listIndex;
106
86
  });
@@ -117,25 +97,20 @@ var SkipLinkWrapper = function SkipLinkWrapper(_ref) {
117
97
  return a.listIndex - b.listIndex;
118
98
  });
119
99
  };
120
-
121
100
  var escapeHandler = function escapeHandler(event) {
122
101
  if (event.keyCode === 27) {
123
102
  var container = document.querySelector("[".concat(_constants.PAGE_LAYOUT_CONTAINER_SELECTOR, "=\"true\"]"));
124
-
125
103
  if (container !== null) {
126
104
  container.focus();
127
105
  }
128
106
  }
129
107
  };
130
-
131
108
  var attachEscHandler = function attachEscHandler() {
132
109
  return window.addEventListener('keydown', escapeHandler, false);
133
110
  };
134
-
135
111
  var removeEscHandler = function removeEscHandler() {
136
112
  return window.removeEventListener('keydown', escapeHandler, false);
137
113
  };
138
-
139
114
  var emptyLabelOverride = !!(skipLinksLabel !== null && skipLinksLabel !== void 0 && skipLinksLabel.match(/^\s+$/));
140
115
  var label = skipLinksLabel || _constants.DEFAULT_I18N_PROPS_SKIP_LINKS;
141
116
  return (0, _react.jsx)("div", {
@@ -149,7 +124,7 @@ var SkipLinkWrapper = function SkipLinkWrapper(_ref) {
149
124
  css: skipLinkListStyles
150
125
  }, sortSkipLinks(skipLinksData).map(function (_ref2) {
151
126
  var id = _ref2.id,
152
- skipLinkTitle = _ref2.skipLinkTitle;
127
+ skipLinkTitle = _ref2.skipLinkTitle;
153
128
  return (0, _react.jsx)(SkipLink, {
154
129
  key: id,
155
130
  href: "#".concat(id),
@@ -158,50 +133,46 @@ var SkipLinkWrapper = function SkipLinkWrapper(_ref) {
158
133
  }, skipLinkTitle);
159
134
  })));
160
135
  };
161
-
162
136
  exports.SkipLinkWrapper = SkipLinkWrapper;
163
-
164
137
  var handleBlur = function handleBlur(event) {
165
138
  // @ts-ignore
166
- event.target.removeAttribute('tabindex'); // @ts-ignore
167
-
139
+ event.target.removeAttribute('tabindex');
140
+ // @ts-ignore
168
141
  event.target.removeEventListener('blur', handleBlur);
169
142
  };
170
-
171
143
  var focusTargetRef = function focusTargetRef(href) {
172
144
  return function (event) {
173
145
  event.preventDefault();
174
- var targetRef = document.querySelector(href); // @ts-ignore
146
+ var targetRef = document.querySelector(href);
175
147
 
176
- var key = event.which || event.keycode; // if it is a keypress and the key is not
148
+ // @ts-ignore
149
+ var key = event.which || event.keycode;
150
+ // if it is a keypress and the key is not
177
151
  // space or enter, just ignore it.
178
-
179
152
  if (key && key !== 13 && key !== 32) {
180
153
  return;
181
154
  }
182
-
183
155
  if (targetRef) {
184
- targetRef.setAttribute('tabindex', '-1'); // @ts-ignore
185
-
186
- targetRef.addEventListener('blur', handleBlur); // @ts-ignore
187
-
156
+ targetRef.setAttribute('tabindex', '-1');
157
+ // @ts-ignore
158
+ targetRef.addEventListener('blur', handleBlur);
159
+ // @ts-ignore
188
160
  targetRef.focus();
189
161
  document.activeElement && document.activeElement.scrollIntoView({
190
162
  behavior: 'smooth'
191
163
  });
192
164
  window.scrollTo(0, 0);
193
165
  }
194
-
195
166
  return false;
196
167
  };
197
- }; // eslint-disable-next-line @repo/internal/react/require-jsdoc
198
-
168
+ };
199
169
 
170
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
200
171
  var SkipLink = function SkipLink(_ref3) {
201
172
  var href = _ref3.href,
202
- children = _ref3.children,
203
- isFocusable = _ref3.isFocusable,
204
- title = _ref3.title;
173
+ children = _ref3.children,
174
+ isFocusable = _ref3.isFocusable,
175
+ title = _ref3.title;
205
176
  return (0, _react.jsx)("li", {
206
177
  css: skipLinkListItemStyles
207
178
  }, (0, _react.jsx)("a", {
@@ -211,5 +182,4 @@ var SkipLink = function SkipLink(_ref3) {
211
182
  title: title
212
183
  }, children));
213
184
  };
214
-
215
185
  exports.SkipLink = SkipLink;
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useCustomSkipLink = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _controllers = require("../../controllers");
11
-
12
9
  /** @jsx jsx */
10
+
13
11
  var useCustomSkipLink = function useCustomSkipLink(id, skipLinkTitle) {
14
12
  var listIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
15
-
16
13
  var _useSkipLinks = (0, _controllers.useSkipLinks)(),
17
- registerSkipLink = _useSkipLinks.registerSkipLink,
18
- unregisterSkipLink = _useSkipLinks.unregisterSkipLink;
19
-
14
+ registerSkipLink = _useSkipLinks.registerSkipLink,
15
+ unregisterSkipLink = _useSkipLinks.unregisterSkipLink;
20
16
  (0, _react.useEffect)(function () {
21
17
  registerSkipLink({
22
18
  id: id,
@@ -28,5 +24,4 @@ var useCustomSkipLink = function useCustomSkipLink(id, skipLinkTitle) {
28
24
  };
29
25
  }, [id, listIndex, skipLinkTitle, registerSkipLink, unregisterSkipLink]);
30
26
  };
31
-
32
27
  exports.useCustomSkipLink = useCustomSkipLink;