@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,7 +1,6 @@
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
  });
@@ -53,13 +52,8 @@ Object.defineProperty(exports, "useSkipLinks", {
53
52
  return _skipLinkContext.useSkipLinks;
54
53
  }
55
54
  });
56
-
57
55
  var _usePageLayoutGrid = _interopRequireDefault(require("./use-page-layout-grid"));
58
-
59
56
  var _sidebarResizeContext = require("./sidebar-resize-context");
60
-
61
57
  var _sidebarResizeController = require("./sidebar-resize-controller");
62
-
63
58
  var _skipLinkContext = require("./skip-link-context");
64
-
65
59
  var _skipLinkController = require("./skip-link-controller");
@@ -1,26 +1,17 @@
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.usePageLayoutResize = exports.useLeftSidebarFlyoutLock = exports.SidebarResizeContext = void 0;
9
-
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
10
  var _react = require("react");
15
-
16
11
  var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
17
-
18
12
  var _excluded = ["setLeftSidebarState"];
19
-
20
13
  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; }
21
-
22
14
  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; }
23
-
24
15
  var leftSidebarState = {
25
16
  isFlyoutOpen: false,
26
17
  isResizing: false,
@@ -29,8 +20,8 @@ var leftSidebarState = {
29
20
  lastLeftSidebarWidth: 0,
30
21
  flyoutLockCount: 0,
31
22
  isFixed: true
32
- }; // eslint-disable-next-line @repo/internal/react/require-jsdoc
33
-
23
+ };
24
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
34
25
  var SidebarResizeContext = /*#__PURE__*/(0, _react.createContext)({
35
26
  isLeftSidebarCollapsed: false,
36
27
  expandLeftSidebar: _noop.default,
@@ -39,14 +30,13 @@ var SidebarResizeContext = /*#__PURE__*/(0, _react.createContext)({
39
30
  setLeftSidebarState: _noop.default
40
31
  });
41
32
  exports.SidebarResizeContext = SidebarResizeContext;
42
-
43
33
  var usePageLayoutResize = function usePageLayoutResize() {
44
34
  var _useContext = (0, _react.useContext)(SidebarResizeContext),
45
- setLeftSidebarState = _useContext.setLeftSidebarState,
46
- context = (0, _objectWithoutProperties2.default)(_useContext, _excluded);
47
-
35
+ setLeftSidebarState = _useContext.setLeftSidebarState,
36
+ context = (0, _objectWithoutProperties2.default)(_useContext, _excluded);
48
37
  return context;
49
38
  };
39
+
50
40
  /**
51
41
  * _**WARNING:**_ This hook is intended as a temporary solution and
52
42
  * is likely to be removed in a future version of page-layout.
@@ -64,14 +54,10 @@ var usePageLayoutResize = function usePageLayoutResize() {
64
54
  * you are rendering. This way the left sidebar will be locked for
65
55
  * as long as the popup is open.
66
56
  */
67
-
68
-
69
57
  exports.usePageLayoutResize = usePageLayoutResize;
70
-
71
58
  var useLeftSidebarFlyoutLock = function useLeftSidebarFlyoutLock() {
72
59
  var _useContext2 = (0, _react.useContext)(SidebarResizeContext),
73
- setLeftSidebarState = _useContext2.setLeftSidebarState;
74
-
60
+ setLeftSidebarState = _useContext2.setLeftSidebarState;
75
61
  (0, _react.useEffect)(function () {
76
62
  setLeftSidebarState(function (current) {
77
63
  return _objectSpread(_objectSpread({}, current), {}, {
@@ -87,5 +73,4 @@ var useLeftSidebarFlyoutLock = function useLeftSidebarFlyoutLock() {
87
73
  };
88
74
  }, [setLeftSidebarState]);
89
75
  };
90
-
91
76
  exports.useLeftSidebarFlyoutLock = useLeftSidebarFlyoutLock;
@@ -1,75 +1,61 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.SidebarResizeController = void 0;
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
10
  var _react = _interopRequireWildcard(require("react"));
15
-
16
11
  var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
17
-
18
12
  var _motion = require("@atlaskit/motion");
19
-
20
13
  var _constants = require("../common/constants");
21
-
22
14
  var _utils = require("../common/utils");
23
-
24
15
  var _sidebarResizeContext = require("./sidebar-resize-context");
25
-
26
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
-
28
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
-
30
18
  var handleDataAttributesAndCb = function handleDataAttributesAndCb() {
31
19
  var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _noop.default;
32
20
  var isLeftSidebarCollapsed = arguments.length > 1 ? arguments[1] : undefined;
33
21
  var leftSidebarState = arguments.length > 2 ? arguments[2] : undefined;
34
22
  document.documentElement.removeAttribute(_constants.IS_SIDEBAR_COLLAPSING);
35
23
  callback(leftSidebarState);
36
- }; // eslint-disable-next-line @repo/internal/react/require-jsdoc
37
-
24
+ };
38
25
 
26
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
39
27
  var SidebarResizeController = function SidebarResizeController(_ref) {
40
28
  var children = _ref.children,
41
- onExpand = _ref.onLeftSidebarExpand,
42
- onCollapse = _ref.onLeftSidebarCollapse;
43
-
29
+ onExpand = _ref.onLeftSidebarExpand,
30
+ onCollapse = _ref.onLeftSidebarCollapse;
44
31
  var _useState = (0, _react.useState)({
45
- isFlyoutOpen: false,
46
- isResizing: false,
47
- isLeftSidebarCollapsed: false,
48
- leftSidebarWidth: 0,
49
- lastLeftSidebarWidth: 0,
50
- flyoutLockCount: 0,
51
- isFixed: true
52
- }),
53
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
54
- leftSidebarState = _useState2[0],
55
- setLeftSidebarState = _useState2[1];
56
-
32
+ isFlyoutOpen: false,
33
+ isResizing: false,
34
+ isLeftSidebarCollapsed: false,
35
+ leftSidebarWidth: 0,
36
+ lastLeftSidebarWidth: 0,
37
+ flyoutLockCount: 0,
38
+ isFixed: true
39
+ }),
40
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
41
+ leftSidebarState = _useState2[0],
42
+ setLeftSidebarState = _useState2[1];
57
43
  var isLeftSidebarCollapsed = leftSidebarState.isLeftSidebarCollapsed;
58
44
  var leftSidebarSelector = (0, _utils.getPageLayoutSlotCSSSelector)('left-sidebar');
59
45
  var transitionEventHandler = (0, _react.useCallback)(function (event) {
60
46
  if (event.propertyName === 'width' && event.target && event.target.matches(leftSidebarSelector)) {
61
47
  var $leftSidebarResizeController = document.querySelector("[".concat(_constants.GRAB_AREA_SELECTOR, "]"));
62
48
  var isCollapsed = !!$leftSidebarResizeController && $leftSidebarResizeController.hasAttribute('disabled');
63
- handleDataAttributesAndCb(isCollapsed ? onCollapse : onExpand, isCollapsed, leftSidebarState); // Make sure multiple event handlers do not get attached
64
- // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
49
+ handleDataAttributesAndCb(isCollapsed ? onCollapse : onExpand, isCollapsed, leftSidebarState);
65
50
 
51
+ // Make sure multiple event handlers do not get attached
52
+ // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
66
53
  document.querySelector(leftSidebarSelector).removeEventListener('transitionend', transitionEventHandler);
67
- } // eslint-disable-next-line react-hooks/exhaustive-deps
68
-
54
+ }
55
+ // eslint-disable-next-line react-hooks/exhaustive-deps
69
56
  }, []);
70
57
  (0, _react.useEffect)(function () {
71
58
  var $leftSidebar = document.querySelector(leftSidebarSelector);
72
-
73
59
  if ($leftSidebar && !(0, _motion.isReducedMotion)()) {
74
60
  // eslint-disable-next-line @repo/internal/dom-events/no-unsafe-event-listeners
75
61
  $leftSidebar.addEventListener('transitionend', transitionEventHandler);
@@ -77,14 +63,12 @@ var SidebarResizeController = function SidebarResizeController(_ref) {
77
63
  }, [isLeftSidebarCollapsed, leftSidebarSelector, leftSidebarState, onCollapse, onExpand, transitionEventHandler]);
78
64
  var expandLeftSidebar = (0, _react.useCallback)(function () {
79
65
  var lastLeftSidebarWidth = leftSidebarState.lastLeftSidebarWidth,
80
- isResizing = leftSidebarState.isResizing,
81
- flyoutLockCount = leftSidebarState.flyoutLockCount,
82
- isFixed = leftSidebarState.isFixed;
83
-
66
+ isResizing = leftSidebarState.isResizing,
67
+ flyoutLockCount = leftSidebarState.flyoutLockCount,
68
+ isFixed = leftSidebarState.isFixed;
84
69
  if (isResizing) {
85
70
  return;
86
71
  }
87
-
88
72
  var width = Math.max(lastLeftSidebarWidth, _constants.DEFAULT_LEFT_SIDEBAR_WIDTH);
89
73
  var updatedLeftSidebarState = {
90
74
  isLeftSidebarCollapsed: false,
@@ -95,25 +79,25 @@ var SidebarResizeController = function SidebarResizeController(_ref) {
95
79
  flyoutLockCount: flyoutLockCount,
96
80
  isFixed: isFixed
97
81
  };
98
- setLeftSidebarState(updatedLeftSidebarState); // onTransitionEnd isn't triggered when a user prefers reduced motion
82
+ setLeftSidebarState(updatedLeftSidebarState);
99
83
 
84
+ // onTransitionEnd isn't triggered when a user prefers reduced motion
100
85
  if ((0, _motion.isReducedMotion)()) {
101
86
  handleDataAttributesAndCb(onExpand, false, updatedLeftSidebarState);
102
87
  }
103
88
  }, [leftSidebarState, onExpand]);
104
89
  var collapseLeftSidebar = (0, _react.useCallback)(function (event, collapseWithoutTransition) {
105
90
  var leftSidebarWidth = leftSidebarState.leftSidebarWidth,
106
- isResizing = leftSidebarState.isResizing,
107
- flyoutLockCount = leftSidebarState.flyoutLockCount,
108
- isFixed = leftSidebarState.isFixed,
109
- isLeftSidebarCollapsed = leftSidebarState.isLeftSidebarCollapsed;
110
-
91
+ isResizing = leftSidebarState.isResizing,
92
+ flyoutLockCount = leftSidebarState.flyoutLockCount,
93
+ isFixed = leftSidebarState.isFixed,
94
+ isLeftSidebarCollapsed = leftSidebarState.isLeftSidebarCollapsed;
111
95
  if (isResizing || isLeftSidebarCollapsed) {
112
96
  return;
113
- } // data-attribute is used as a CSS selector to sync the hiding/showing
114
- // of the nav contents with expand/collapse animation
115
-
97
+ }
116
98
 
99
+ // data-attribute is used as a CSS selector to sync the hiding/showing
100
+ // of the nav contents with expand/collapse animation
117
101
  document.documentElement.setAttribute(_constants.IS_SIDEBAR_COLLAPSING, 'true');
118
102
  var updatedLeftSidebarState = {
119
103
  isLeftSidebarCollapsed: true,
@@ -124,8 +108,9 @@ var SidebarResizeController = function SidebarResizeController(_ref) {
124
108
  flyoutLockCount: flyoutLockCount,
125
109
  isFixed: isFixed
126
110
  };
127
- setLeftSidebarState(updatedLeftSidebarState); // onTransitionEnd isn't triggered when a user prefers reduced motion
111
+ setLeftSidebarState(updatedLeftSidebarState);
128
112
 
113
+ // onTransitionEnd isn't triggered when a user prefers reduced motion
129
114
  if (collapseWithoutTransition || (0, _motion.isReducedMotion)()) {
130
115
  handleDataAttributesAndCb(onCollapse, true, updatedLeftSidebarState);
131
116
  }
@@ -143,5 +128,4 @@ var SidebarResizeController = function SidebarResizeController(_ref) {
143
128
  value: context
144
129
  }, children);
145
130
  };
146
-
147
131
  exports.SidebarResizeController = SidebarResizeController;
@@ -1,16 +1,12 @@
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.useSkipLinks = exports.useSkipLink = exports.SkipLinksContext = void 0;
9
-
10
8
  var _react = require("react");
11
-
12
9
  var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
13
-
14
10
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
15
11
  var SkipLinksContext = /*#__PURE__*/(0, _react.createContext)({
16
12
  skipLinksData: [],
@@ -18,18 +14,14 @@ var SkipLinksContext = /*#__PURE__*/(0, _react.createContext)({
18
14
  unregisterSkipLink: _noop.default
19
15
  });
20
16
  exports.SkipLinksContext = SkipLinksContext;
21
-
22
17
  var useSkipLinks = function useSkipLinks() {
23
18
  return (0, _react.useContext)(SkipLinksContext);
24
19
  };
25
-
26
20
  exports.useSkipLinks = useSkipLinks;
27
-
28
21
  var useSkipLink = function useSkipLink(id, skipLinkTitle) {
29
22
  var _useSkipLinks = useSkipLinks(),
30
- registerSkipLink = _useSkipLinks.registerSkipLink,
31
- unregisterSkipLink = _useSkipLinks.unregisterSkipLink;
32
-
23
+ registerSkipLink = _useSkipLinks.registerSkipLink,
24
+ unregisterSkipLink = _useSkipLinks.unregisterSkipLink;
33
25
  (0, _react.useEffect)(function () {
34
26
  if (id && skipLinkTitle) {
35
27
  registerSkipLink({
@@ -37,11 +29,9 @@ var useSkipLink = function useSkipLink(id, skipLinkTitle) {
37
29
  skipLinkTitle: skipLinkTitle
38
30
  });
39
31
  }
40
-
41
32
  return function () {
42
33
  unregisterSkipLink(id);
43
34
  };
44
35
  }, [id, skipLinkTitle, registerSkipLink, unregisterSkipLink]);
45
36
  };
46
-
47
37
  exports.useSkipLink = useSkipLink;
@@ -1,43 +1,32 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.SkipLinksController = void 0;
11
-
12
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
11
  var _react = _interopRequireWildcard(require("react"));
17
-
18
12
  var _constants = require("../common/constants");
19
-
20
13
  var _skipLinkContext = require("./skip-link-context");
21
-
22
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
-
24
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
-
26
16
  var byDOMOrder = function byDOMOrder(a, b) {
27
17
  var _a$listIndex, _b$listIndex;
28
-
29
18
  var elems = Array.from(document.querySelectorAll("[".concat(_constants.PAGE_LAYOUT_SLOT_SELECTOR, "]")));
30
19
  var elemA = document.getElementById(a.id);
31
20
  var elemB = document.getElementById(b.id);
32
21
  var indexA = (_a$listIndex = a.listIndex) !== null && _a$listIndex !== void 0 ? _a$listIndex : elems.indexOf(elemA);
33
22
  var indexB = (_b$listIndex = b.listIndex) !== null && _b$listIndex !== void 0 ? _b$listIndex : elems.indexOf(elemB);
23
+
34
24
  /**
35
25
  * If they are tied it is because one (or both) is
36
26
  * a custom skiplink with a set index.
37
27
  *
38
28
  * Give the custom skiplink priority.
39
29
  */
40
-
41
30
  if (indexA === indexB) {
42
31
  if (a.listIndex !== undefined) {
43
32
  return -1;
@@ -45,19 +34,16 @@ var byDOMOrder = function byDOMOrder(a, b) {
45
34
  return 1;
46
35
  }
47
36
  }
48
-
49
37
  return indexA - indexB;
50
- }; // eslint-disable-next-line @repo/internal/react/require-jsdoc
51
-
38
+ };
52
39
 
40
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
53
41
  var SkipLinksController = function SkipLinksController(_ref) {
54
42
  var children = _ref.children;
55
-
56
43
  var _useState = (0, _react.useState)([]),
57
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
58
- links = _useState2[0],
59
- setLinks = _useState2[1];
60
-
44
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
45
+ links = _useState2[0],
46
+ setLinks = _useState2[1];
61
47
  var registerSkipLink = (0, _react.useRef)(function (skipLinkData) {
62
48
  // Don't add duplicate SkipLinks
63
49
  setLinks(function (oldLinks) {
@@ -67,7 +53,6 @@ var SkipLinksController = function SkipLinksController(_ref) {
67
53
  })) {
68
54
  return oldLinks;
69
55
  }
70
-
71
56
  return [].concat((0, _toConsumableArray2.default)(oldLinks), [skipLinkData]).sort(byDOMOrder);
72
57
  });
73
58
  });
@@ -87,5 +72,4 @@ var SkipLinksController = function SkipLinksController(_ref) {
87
72
  value: context
88
73
  }, children);
89
74
  };
90
-
91
75
  exports.SkipLinksController = SkipLinksController;
@@ -1,37 +1,31 @@
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
10
  var _utils = require("../common/utils");
15
-
16
11
  var publishGridState = function publishGridState(gridState) {
17
12
  Object.entries(gridState).forEach(function (_ref) {
18
13
  var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
19
- slotName = _ref2[0],
20
- value = _ref2[1];
21
-
14
+ slotName = _ref2[0],
15
+ value = _ref2[1];
22
16
  if (!value) {
23
17
  document.documentElement.style.removeProperty("--".concat(slotName));
24
18
  (0, _utils.removeFromGridStateInStorage)('gridState', slotName);
25
19
  return;
26
- } //Update the css variable
20
+ }
27
21
 
22
+ //Update the css variable
23
+ document.documentElement.style.setProperty("--".concat(slotName), "".concat(value, "px"));
28
24
 
29
- document.documentElement.style.setProperty("--".concat(slotName), "".concat(value, "px")); // also update state in local storage so that
25
+ // also update state in local storage so that
30
26
  // it persists across page refresh, across tabs etc
31
-
32
27
  (0, _utils.mergeGridStateIntoStorage)('gridState', (0, _defineProperty2.default)({}, slotName, value));
33
28
  });
34
29
  };
35
-
36
30
  var _default = publishGridState;
37
31
  exports.default = _default;
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _react = require("react");
9
-
10
8
  function useUpdateCssVar(cssVar, value) {
11
9
  (0, _react.useEffect)(function () {
12
10
  document.documentElement.style.setProperty("--".concat(cssVar), "".concat(value, "px"));
@@ -15,6 +13,5 @@ function useUpdateCssVar(cssVar, value) {
15
13
  };
16
14
  }, [cssVar, value]);
17
15
  }
18
-
19
16
  var _default = useUpdateCssVar;
20
17
  exports.default = _default;
package/dist/cjs/index.js CHANGED
@@ -117,9 +117,6 @@ Object.defineProperty(exports, "usePageLayoutResize", {
117
117
  return _controllers.usePageLayoutResize;
118
118
  }
119
119
  });
120
-
121
120
  var _components = require("./components");
122
-
123
121
  var _constants = require("./common/constants");
124
-
125
122
  var _controllers = require("./controllers");
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/page-layout",
3
- "version": "1.3.7",
3
+ "version": "1.3.9",
4
4
  "sideEffects": false
5
5
  }
@@ -6,8 +6,9 @@ export const VAR_RIGHT_PANEL_WIDTH = 'rightPanelWidth';
6
6
  export const VAR_TOP_NAVIGATION_HEIGHT = 'topNavigationHeight';
7
7
  export const VAR_BANNER_HEIGHT = 'bannerHeight';
8
8
  export const VAR_LEFT_SIDEBAR_FLYOUT = 'leftSidebarFlyoutWidth';
9
- export const DIMENSIONS = [VAR_LEFT_PANEL_WIDTH, VAR_RIGHT_PANEL_WIDTH, VAR_BANNER_HEIGHT, VAR_TOP_NAVIGATION_HEIGHT, VAR_LEFT_SIDEBAR_WIDTH, VAR_RIGHT_SIDEBAR_WIDTH]; // Grid area names
9
+ export const DIMENSIONS = [VAR_LEFT_PANEL_WIDTH, VAR_RIGHT_PANEL_WIDTH, VAR_BANNER_HEIGHT, VAR_TOP_NAVIGATION_HEIGHT, VAR_LEFT_SIDEBAR_WIDTH, VAR_RIGHT_SIDEBAR_WIDTH];
10
10
 
11
+ // Grid area names
11
12
  export const LEFT_PANEL = 'left-panel';
12
13
  export const RIGHT_PANEL = 'right-panel';
13
14
  export const BANNER = 'banner';
@@ -15,15 +16,17 @@ export const TOP_NAVIGATION = 'top-navigation';
15
16
  export const CONTENT = 'content';
16
17
  export const MAIN = 'main';
17
18
  export const LEFT_SIDEBAR = 'left-sidebar';
18
- export const RIGHT_SIDEBAR = 'right-sidebar'; // Default slot dimension values
19
+ export const RIGHT_SIDEBAR = 'right-sidebar';
19
20
 
21
+ // Default slot dimension values
20
22
  export const DEFAULT_BANNER_HEIGHT = 56;
21
23
  export const DEFAULT_TOP_NAVIGATION_HEIGHT = 56;
22
24
  export const DEFAULT_LEFT_SIDEBAR_WIDTH = 240;
23
25
  export const DEFAULT_RIGHT_SIDEBAR_WIDTH = 280;
24
26
  export const DEFAULT_RIGHT_PANEL_WIDTH = 368;
25
- export const DEFAULT_LEFT_PANEL_WIDTH = 368; // Other constants
27
+ export const DEFAULT_LEFT_PANEL_WIDTH = 368;
26
28
 
29
+ // Other constants
27
30
  export const COLLAPSED_LEFT_SIDEBAR_WIDTH = 20;
28
31
  export const MIN_LEFT_SIDEBAR_WIDTH = 80;
29
32
  export const DEFAULT_LEFT_SIDEBAR_FLYOUT_WIDTH = 240;
@@ -31,8 +34,9 @@ export const MIN_LEFT_SIDEBAR_DRAG_THRESHOLD = 200;
31
34
  export const TRANSITION_DURATION = 300;
32
35
  export const FLYOUT_DELAY = 200;
33
36
  export const LEFT_SIDEBAR_EXPANDED_WIDTH = 'expandedLeftSidebarWidth';
34
- export const PAGE_LAYOUT_LS_KEY = 'DS_PAGE_LAYOUT_UI_STATE'; // Data attributes
37
+ export const PAGE_LAYOUT_LS_KEY = 'DS_PAGE_LAYOUT_UI_STATE';
35
38
 
39
+ // Data attributes
36
40
  export const IS_SIDEBAR_DRAGGING = 'data-is-sidebar-dragging';
37
41
  export const IS_SIDEBAR_COLLAPSING = 'data-is-sidebar-collapsing';
38
42
  export const IS_FLYOUT_OPEN = 'data-is-flyout-open';
@@ -1,15 +1,12 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import { IS_SIDEBAR_COLLAPSING } from '../constants';
3
-
4
3
  const getIsCollapsing = () => {
5
4
  // SSR bail-out because document is undefined on the server
6
5
  if (typeof document === 'undefined') {
7
6
  return false;
8
7
  }
9
-
10
8
  return document.documentElement.getAttribute(IS_SIDEBAR_COLLAPSING) === 'true';
11
9
  };
12
-
13
10
  const useIsSidebarCollapsing = () => {
14
11
  const [isCollapsing, setIsCollapsing] = useState(getIsCollapsing);
15
12
  useEffect(() => {
@@ -25,5 +22,4 @@ const useIsSidebarCollapsing = () => {
25
22
  }, []);
26
23
  return isCollapsing;
27
24
  };
28
-
29
25
  export default useIsSidebarCollapsing;
@@ -1,15 +1,12 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import { IS_SIDEBAR_DRAGGING } from '../constants';
3
-
4
3
  const getIsDragging = () => {
5
4
  // SSR bail-out because document is undefined on the server
6
5
  if (typeof document === 'undefined') {
7
6
  return false;
8
7
  }
9
-
10
8
  return document.documentElement.getAttribute(IS_SIDEBAR_DRAGGING) === 'true';
11
9
  };
12
-
13
10
  const useIsSidebarDragging = () => {
14
11
  const [isDragging, setIsDragging] = useState(getIsDragging);
15
12
  useEffect(() => {
@@ -25,5 +22,4 @@ const useIsSidebarDragging = () => {
25
22
  }, []);
26
23
  return isDragging;
27
24
  };
28
-
29
25
  export default useIsSidebarDragging;
@@ -13,13 +13,12 @@ const isLocalStorageSupported = () => {
13
13
  return false;
14
14
  }
15
15
  };
16
-
17
16
  const safeLocalStorage = () => {
18
17
  if (isLocalStorageSupported()) {
19
18
  return localStorage;
20
- } // Returning a mock object here in the case that this is run in SSR mode
21
-
19
+ }
22
20
 
21
+ // Returning a mock object here in the case that this is run in SSR mode
23
22
  if (typeof window === 'undefined') {
24
23
  return {
25
24
  getItem: _key => null,
@@ -27,24 +26,19 @@ const safeLocalStorage = () => {
27
26
  removeItem: _key => null,
28
27
  clear: () => null,
29
28
  key: _index => null,
30
-
31
29
  get length() {
32
30
  return 0;
33
31
  }
34
-
35
32
  };
36
33
  }
37
-
38
34
  if (window.__localStorageFallback && Object.keys(window.__localStorageFallback).length !== 0) {
39
35
  return window.__localStorageFallback;
40
36
  }
41
-
42
37
  const storageAPI = {
43
38
  getItem: key => {
44
39
  if (window.__localStorageFallback.hasOwnProperty(key)) {
45
40
  return window.__localStorageFallback[key];
46
41
  }
47
-
48
42
  return null;
49
43
  },
50
44
  setItem: (key, value) => {
@@ -60,18 +54,14 @@ const safeLocalStorage = () => {
60
54
  }
61
55
  }
62
56
  },
63
-
64
57
  get length() {
65
58
  if (!window.__localStorageFallback) {
66
59
  return 0;
67
60
  }
68
-
69
61
  return Object.keys(window.__localStorageFallback).length;
70
62
  }
71
-
72
63
  };
73
64
  window.__localStorageFallback = Object.create(storageAPI);
74
65
  return window.__localStorageFallback;
75
66
  };
76
-
77
67
  export default safeLocalStorage;