@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.
- package/CHANGELOG.md +12 -0
- package/dist/cjs/common/constants.js +8 -4
- package/dist/cjs/common/hooks/index.js +0 -3
- package/dist/cjs/common/hooks/use-is-sidebar-collapsing.js +3 -12
- package/dist/cjs/common/hooks/use-is-sidebar-dragging.js +3 -12
- package/dist/cjs/common/safe-local-storage.js +2 -13
- package/dist/cjs/common/utils.js +0 -35
- package/dist/cjs/components/index.js +0 -13
- package/dist/cjs/components/resize-control/grab-area.js +8 -17
- package/dist/cjs/components/resize-control/index.js +33 -84
- package/dist/cjs/components/resize-control/resize-button.js +9 -24
- package/dist/cjs/components/resize-control/shadow.js +3 -7
- package/dist/cjs/components/skip-links/index.js +0 -2
- package/dist/cjs/components/skip-links/skip-link-components.js +18 -48
- package/dist/cjs/components/skip-links/use-custom-skip-link.js +3 -8
- package/dist/cjs/components/slots/banner-slot.js +10 -21
- package/dist/cjs/components/slots/content.js +3 -6
- package/dist/cjs/components/slots/internal/left-sidebar-inner.js +9 -14
- package/dist/cjs/components/slots/internal/left-sidebar-outer.js +10 -22
- package/dist/cjs/components/slots/internal/resizable-children-wrapper.js +10 -15
- package/dist/cjs/components/slots/internal/slot-focus-ring.js +5 -8
- package/dist/cjs/components/slots/left-panel.js +9 -20
- package/dist/cjs/components/slots/left-sidebar-without-resize.js +6 -18
- package/dist/cjs/components/slots/left-sidebar.js +39 -75
- package/dist/cjs/components/slots/main.js +9 -23
- package/dist/cjs/components/slots/page-layout.js +7 -16
- package/dist/cjs/components/slots/right-panel.js +9 -20
- package/dist/cjs/components/slots/right-sidebar.js +9 -21
- package/dist/cjs/components/slots/slot-dimensions.js +1 -5
- package/dist/cjs/components/slots/top-navigation.js +10 -21
- package/dist/cjs/controllers/index.js +0 -6
- package/dist/cjs/controllers/sidebar-resize-context.js +6 -21
- package/dist/cjs/controllers/sidebar-resize-controller.js +34 -50
- package/dist/cjs/controllers/skip-link-context.js +2 -12
- package/dist/cjs/controllers/skip-link-controller.js +6 -22
- package/dist/cjs/controllers/use-page-layout-grid.js +6 -12
- package/dist/cjs/controllers/use-update-css-vars.js +0 -3
- package/dist/cjs/index.js +0 -3
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/common/constants.js +8 -4
- package/dist/es2019/common/hooks/use-is-sidebar-collapsing.js +0 -4
- package/dist/es2019/common/hooks/use-is-sidebar-dragging.js +0 -4
- package/dist/es2019/common/safe-local-storage.js +2 -12
- package/dist/es2019/common/utils.js +4 -20
- package/dist/es2019/components/resize-control/grab-area.js +7 -8
- package/dist/es2019/components/resize-control/index.js +26 -43
- package/dist/es2019/components/resize-control/resize-button.js +7 -11
- package/dist/es2019/components/resize-control/shadow.js +3 -3
- package/dist/es2019/components/skip-links/skip-link-components.js +16 -31
- package/dist/es2019/components/slots/banner-slot.js +1 -3
- package/dist/es2019/components/slots/content.js +2 -2
- package/dist/es2019/components/slots/internal/left-sidebar-inner.js +5 -5
- package/dist/es2019/components/slots/internal/left-sidebar-outer.js +1 -4
- package/dist/es2019/components/slots/internal/resizable-children-wrapper.js +4 -4
- package/dist/es2019/components/slots/internal/slot-focus-ring.js +3 -3
- package/dist/es2019/components/slots/left-panel.js +1 -3
- package/dist/es2019/components/slots/left-sidebar-without-resize.js +1 -2
- package/dist/es2019/components/slots/left-sidebar.js +25 -40
- package/dist/es2019/components/slots/main.js +4 -5
- package/dist/es2019/components/slots/page-layout.js +1 -3
- package/dist/es2019/components/slots/right-panel.js +1 -3
- package/dist/es2019/components/slots/right-sidebar.js +3 -5
- package/dist/es2019/components/slots/top-navigation.js +1 -3
- package/dist/es2019/controllers/sidebar-resize-context.js +7 -5
- package/dist/es2019/controllers/sidebar-resize-controller.js +14 -16
- package/dist/es2019/controllers/skip-link-context.js +0 -1
- package/dist/es2019/controllers/skip-link-controller.js +3 -7
- package/dist/es2019/controllers/use-page-layout-grid.js +4 -5
- package/dist/es2019/controllers/use-update-css-vars.js +0 -2
- package/dist/es2019/version.json +1 -1
- package/dist/esm/common/constants.js +8 -4
- package/dist/esm/common/hooks/use-is-sidebar-collapsing.js +3 -8
- package/dist/esm/common/hooks/use-is-sidebar-dragging.js +3 -8
- package/dist/esm/common/safe-local-storage.js +2 -12
- package/dist/esm/common/utils.js +0 -22
- package/dist/esm/components/resize-control/grab-area.js +9 -14
- package/dist/esm/components/resize-control/index.js +33 -72
- package/dist/esm/components/resize-control/resize-button.js +10 -15
- package/dist/esm/components/resize-control/shadow.js +3 -3
- package/dist/esm/components/skip-links/skip-link-components.js +19 -39
- package/dist/esm/components/skip-links/use-custom-skip-link.js +2 -4
- package/dist/esm/components/slots/banner-slot.js +9 -11
- package/dist/esm/components/slots/content.js +3 -3
- package/dist/esm/components/slots/internal/left-sidebar-inner.js +9 -9
- package/dist/esm/components/slots/internal/left-sidebar-outer.js +9 -12
- package/dist/esm/components/slots/internal/resizable-children-wrapper.js +10 -10
- package/dist/esm/components/slots/internal/slot-focus-ring.js +5 -5
- package/dist/esm/components/slots/left-panel.js +8 -10
- package/dist/esm/components/slots/left-sidebar-without-resize.js +7 -9
- package/dist/esm/components/slots/left-sidebar.js +40 -65
- package/dist/esm/components/slots/main.js +10 -13
- package/dist/esm/components/slots/page-layout.js +6 -10
- package/dist/esm/components/slots/right-panel.js +8 -10
- package/dist/esm/components/slots/right-sidebar.js +10 -12
- package/dist/esm/components/slots/slot-dimensions.js +1 -1
- package/dist/esm/components/slots/top-navigation.js +9 -11
- package/dist/esm/controllers/sidebar-resize-context.js +6 -11
- package/dist/esm/controllers/sidebar-resize-controller.js +34 -38
- package/dist/esm/controllers/skip-link-context.js +2 -4
- package/dist/esm/controllers/skip-link-controller.js +6 -12
- package/dist/esm/controllers/use-page-layout-grid.js +6 -8
- package/dist/esm/controllers/use-update-css-vars.js +0 -2
- package/dist/esm/version.json +1 -1
- 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
|
-
};
|
|
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
|
-
|
|
46
|
-
|
|
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
|
-
|
|
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
|
-
};
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
29
|
+
onExpand = _ref.onLeftSidebarExpand,
|
|
30
|
+
onCollapse = _ref.onLeftSidebarCollapse;
|
|
44
31
|
var _useState = (0, _react.useState)({
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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);
|
|
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
|
-
}
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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);
|
|
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
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
}
|
|
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);
|
|
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
|
-
|
|
31
|
-
|
|
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
|
-
};
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
20
|
-
|
|
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
|
-
}
|
|
20
|
+
}
|
|
27
21
|
|
|
22
|
+
//Update the css variable
|
|
23
|
+
document.documentElement.style.setProperty("--".concat(slotName), "".concat(value, "px"));
|
|
28
24
|
|
|
29
|
-
|
|
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");
|
package/dist/cjs/version.json
CHANGED
|
@@ -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];
|
|
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';
|
|
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;
|
|
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';
|
|
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
|
-
}
|
|
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;
|