@atlaskit/page-layout 1.3.0 → 1.3.2
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 +13 -0
- package/dist/cjs/components/index.js +2 -2
- package/dist/cjs/components/slots/{banner.js → banner-slot.js} +0 -0
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/components/index.js +1 -1
- package/dist/es2019/components/slots/{banner.js → banner-slot.js} +0 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/slots/{banner.js → banner-slot.js} +0 -0
- package/dist/esm/version.json +1 -1
- package/dist/types/components/index.d.ts +1 -1
- package/dist/types/components/slots/banner-slot.d.ts +12 -0
- package/dist/types-ts4.0/common/constants.d.ts +47 -0
- package/dist/types-ts4.0/common/hooks/index.d.ts +2 -0
- package/dist/types-ts4.0/common/hooks/use-is-sidebar-collapsing.d.ts +2 -0
- package/dist/types-ts4.0/common/hooks/use-is-sidebar-dragging.d.ts +2 -0
- package/dist/types-ts4.0/common/safe-local-storage.d.ts +2 -0
- package/dist/types-ts4.0/common/types.d.ts +117 -0
- package/dist/types-ts4.0/common/utils.d.ts +13 -0
- package/dist/types-ts4.0/components/index.d.ts +12 -0
- package/dist/types-ts4.0/components/resize-control/grab-area.d.ts +9 -0
- package/dist/types-ts4.0/components/resize-control/index.d.ts +4 -0
- package/dist/types-ts4.0/components/resize-control/resize-button.d.ts +4 -0
- package/dist/types-ts4.0/components/resize-control/shadow.d.ts +6 -0
- package/dist/types-ts4.0/components/resize-control/types.d.ts +25 -0
- package/dist/types-ts4.0/components/skip-links/index.d.ts +2 -0
- package/dist/types-ts4.0/components/skip-links/skip-link-components.d.ts +11 -0
- package/dist/types-ts4.0/components/skip-links/types.d.ts +8 -0
- package/dist/types-ts4.0/components/skip-links/use-custom-skip-link.d.ts +2 -0
- package/dist/{types/components/slots/banner.d.ts → types-ts4.0/components/slots/banner-slot.d.ts} +0 -0
- package/dist/types-ts4.0/components/slots/content.d.ts +23 -0
- package/dist/types-ts4.0/components/slots/internal/left-sidebar-inner.d.ts +10 -0
- package/dist/types-ts4.0/components/slots/internal/left-sidebar-outer.d.ts +13 -0
- package/dist/types-ts4.0/components/slots/internal/resizable-children-wrapper.d.ts +11 -0
- package/dist/types-ts4.0/components/slots/internal/slot-focus-ring.d.ts +20 -0
- package/dist/types-ts4.0/components/slots/left-panel.d.ts +12 -0
- package/dist/types-ts4.0/components/slots/left-sidebar-without-resize.d.ts +12 -0
- package/dist/types-ts4.0/components/slots/left-sidebar.d.ts +12 -0
- package/dist/types-ts4.0/components/slots/main.d.ts +12 -0
- package/dist/types-ts4.0/components/slots/page-layout.d.ts +12 -0
- package/dist/types-ts4.0/components/slots/right-panel.d.ts +12 -0
- package/dist/types-ts4.0/components/slots/right-sidebar.d.ts +12 -0
- package/dist/types-ts4.0/components/slots/slot-dimensions.d.ts +7 -0
- package/dist/types-ts4.0/components/slots/top-navigation.d.ts +12 -0
- package/dist/types-ts4.0/controllers/index.d.ts +6 -0
- package/dist/types-ts4.0/controllers/sidebar-resize-context.d.ts +42 -0
- package/dist/types-ts4.0/controllers/sidebar-resize-controller.d.ts +3 -0
- package/dist/types-ts4.0/controllers/skip-link-context.d.ts +5 -0
- package/dist/types-ts4.0/controllers/skip-link-controller.d.ts +2 -0
- package/dist/types-ts4.0/controllers/types.d.ts +22 -0
- package/dist/types-ts4.0/controllers/use-page-layout-grid.d.ts +3 -0
- package/dist/types-ts4.0/controllers/use-update-css-vars.d.ts +2 -0
- package/dist/types-ts4.0/index.d.ts +4 -0
- package/package.json +19 -12
- package/report.api.md +170 -41
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/page-layout
|
|
2
2
|
|
|
3
|
+
## 1.3.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`522a27e6119`](https://bitbucket.org/atlassian/atlassian-frontend/commits/522a27e6119) - Remove `isOpen` prop from @atlaskit/banner, it is now open by default.
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
|
|
10
|
+
## 1.3.1
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [`8cc2f888c83`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8cc2f888c83) - Upgrade Typescript from `4.3.5` to `4.5.5`
|
|
15
|
+
|
|
3
16
|
## 1.3.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
Object.defineProperty(exports, "Banner", {
|
|
9
9
|
enumerable: true,
|
|
10
10
|
get: function get() {
|
|
11
|
-
return
|
|
11
|
+
return _bannerSlot.default;
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
14
|
Object.defineProperty(exports, "Content", {
|
|
@@ -92,7 +92,7 @@ var _leftSidebar = _interopRequireDefault(require("./slots/left-sidebar"));
|
|
|
92
92
|
|
|
93
93
|
var _leftSidebarWithoutResize = _interopRequireDefault(require("./slots/left-sidebar-without-resize"));
|
|
94
94
|
|
|
95
|
-
var
|
|
95
|
+
var _bannerSlot = _interopRequireDefault(require("./slots/banner-slot"));
|
|
96
96
|
|
|
97
97
|
var _topNavigation = _interopRequireDefault(require("./slots/top-navigation"));
|
|
98
98
|
|
|
File without changes
|
package/dist/cjs/version.json
CHANGED
|
@@ -5,7 +5,7 @@ export { default as LeftPanel } from './slots/left-panel';
|
|
|
5
5
|
export { default as RightSidebar } from './slots/right-sidebar';
|
|
6
6
|
export { default as LeftSidebar } from './slots/left-sidebar';
|
|
7
7
|
export { default as LeftSidebarWithoutResize } from './slots/left-sidebar-without-resize';
|
|
8
|
-
export { default as Banner } from './slots/banner';
|
|
8
|
+
export { default as Banner } from './slots/banner-slot';
|
|
9
9
|
export { default as TopNavigation } from './slots/top-navigation';
|
|
10
10
|
export { default as Content } from './slots/content';
|
|
11
11
|
export { default as ResizeControl } from './resize-control';
|
|
File without changes
|
package/dist/es2019/version.json
CHANGED
|
@@ -5,7 +5,7 @@ export { default as LeftPanel } from './slots/left-panel';
|
|
|
5
5
|
export { default as RightSidebar } from './slots/right-sidebar';
|
|
6
6
|
export { default as LeftSidebar } from './slots/left-sidebar';
|
|
7
7
|
export { default as LeftSidebarWithoutResize } from './slots/left-sidebar-without-resize';
|
|
8
|
-
export { default as Banner } from './slots/banner';
|
|
8
|
+
export { default as Banner } from './slots/banner-slot';
|
|
9
9
|
export { default as TopNavigation } from './slots/top-navigation';
|
|
10
10
|
export { default as Content } from './slots/content';
|
|
11
11
|
export { default as ResizeControl } from './resize-control';
|
|
File without changes
|
package/dist/esm/version.json
CHANGED
|
@@ -5,7 +5,7 @@ export { default as LeftPanel } from './slots/left-panel';
|
|
|
5
5
|
export { default as RightSidebar } from './slots/right-sidebar';
|
|
6
6
|
export { default as LeftSidebar } from './slots/left-sidebar';
|
|
7
7
|
export { default as LeftSidebarWithoutResize } from './slots/left-sidebar-without-resize';
|
|
8
|
-
export { default as Banner } from './slots/banner';
|
|
8
|
+
export { default as Banner } from './slots/banner-slot';
|
|
9
9
|
export { default as TopNavigation } from './slots/top-navigation';
|
|
10
10
|
export { default as Content } from './slots/content';
|
|
11
11
|
export { default as ResizeControl } from './resize-control';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from '@emotion/react';
|
|
2
|
+
import { SlotHeightProps } from '../../common/types';
|
|
3
|
+
/**
|
|
4
|
+
* __Banner__
|
|
5
|
+
*
|
|
6
|
+
* Provides a slot for a Banner within the PageLayout.
|
|
7
|
+
*
|
|
8
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
9
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
10
|
+
*/
|
|
11
|
+
declare const Banner: (props: SlotHeightProps) => jsx.JSX.Element;
|
|
12
|
+
export default Banner;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export declare const VAR_LEFT_PANEL_WIDTH = "leftPanelWidth";
|
|
2
|
+
export declare const VAR_LEFT_SIDEBAR_WIDTH = "leftSidebarWidth";
|
|
3
|
+
export declare const VAR_RIGHT_SIDEBAR_WIDTH = "rightSidebarWidth";
|
|
4
|
+
export declare const VAR_RIGHT_PANEL_WIDTH = "rightPanelWidth";
|
|
5
|
+
export declare const VAR_TOP_NAVIGATION_HEIGHT = "topNavigationHeight";
|
|
6
|
+
export declare const VAR_BANNER_HEIGHT = "bannerHeight";
|
|
7
|
+
export declare const VAR_LEFT_SIDEBAR_FLYOUT = "leftSidebarFlyoutWidth";
|
|
8
|
+
export declare const DIMENSIONS: string[];
|
|
9
|
+
export declare const LEFT_PANEL = "left-panel";
|
|
10
|
+
export declare const RIGHT_PANEL = "right-panel";
|
|
11
|
+
export declare const BANNER = "banner";
|
|
12
|
+
export declare const TOP_NAVIGATION = "top-navigation";
|
|
13
|
+
export declare const CONTENT = "content";
|
|
14
|
+
export declare const MAIN = "main";
|
|
15
|
+
export declare const LEFT_SIDEBAR = "left-sidebar";
|
|
16
|
+
export declare const RIGHT_SIDEBAR = "right-sidebar";
|
|
17
|
+
export declare const DEFAULT_BANNER_HEIGHT = 56;
|
|
18
|
+
export declare const DEFAULT_TOP_NAVIGATION_HEIGHT = 56;
|
|
19
|
+
export declare const DEFAULT_LEFT_SIDEBAR_WIDTH = 240;
|
|
20
|
+
export declare const DEFAULT_RIGHT_SIDEBAR_WIDTH = 280;
|
|
21
|
+
export declare const DEFAULT_RIGHT_PANEL_WIDTH = 368;
|
|
22
|
+
export declare const DEFAULT_LEFT_PANEL_WIDTH = 368;
|
|
23
|
+
export declare const COLLAPSED_LEFT_SIDEBAR_WIDTH = 20;
|
|
24
|
+
export declare const MIN_LEFT_SIDEBAR_WIDTH = 80;
|
|
25
|
+
export declare const DEFAULT_LEFT_SIDEBAR_FLYOUT_WIDTH = 240;
|
|
26
|
+
export declare const MIN_LEFT_SIDEBAR_DRAG_THRESHOLD = 200;
|
|
27
|
+
export declare const TRANSITION_DURATION = 300;
|
|
28
|
+
export declare const FLYOUT_DELAY = 200;
|
|
29
|
+
export declare const LEFT_SIDEBAR_EXPANDED_WIDTH = "expandedLeftSidebarWidth";
|
|
30
|
+
export declare const PAGE_LAYOUT_LS_KEY = "DS_PAGE_LAYOUT_UI_STATE";
|
|
31
|
+
export declare const IS_SIDEBAR_DRAGGING = "data-is-sidebar-dragging";
|
|
32
|
+
export declare const IS_SIDEBAR_COLLAPSING = "data-is-sidebar-collapsing";
|
|
33
|
+
export declare const IS_FLYOUT_OPEN = "data-is-flyout-open";
|
|
34
|
+
export declare const GRAB_AREA_LINE_SELECTOR = "data-grab-area-line";
|
|
35
|
+
export declare const GRAB_AREA_SELECTOR = "data-grab-area";
|
|
36
|
+
export declare const RESIZE_BUTTON_SELECTOR = "data-resize-button";
|
|
37
|
+
export declare const RESIZE_CONTROL_SELECTOR = "data-resize-control";
|
|
38
|
+
export declare const PAGE_LAYOUT_SLOT_SELECTOR = "data-ds--page-layout--slot";
|
|
39
|
+
export declare const DEFAULT_I18N_PROPS_SKIP_LINKS = "Skip to:";
|
|
40
|
+
export declare const PAGE_LAYOUT_CONTAINER_SELECTOR = "data-layout-container";
|
|
41
|
+
export declare const LEFT_PANEL_WIDTH: string;
|
|
42
|
+
export declare const RIGHT_PANEL_WIDTH: string;
|
|
43
|
+
export declare const LEFT_SIDEBAR_WIDTH: string;
|
|
44
|
+
export declare const RIGHT_SIDEBAR_WIDTH: string;
|
|
45
|
+
export declare const TOP_NAVIGATION_HEIGHT: string;
|
|
46
|
+
export declare const BANNER_HEIGHT: string;
|
|
47
|
+
export declare const LEFT_SIDEBAR_FLYOUT_WIDTH: string;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { ElementType, ReactElement, ReactNode } from 'react';
|
|
2
|
+
import { ResizeButtonProps } from '../components/resize-control/types';
|
|
3
|
+
import { LeftSidebarState } from '../controllers/sidebar-resize-context';
|
|
4
|
+
interface SlotProps {
|
|
5
|
+
/**
|
|
6
|
+
* Sets positon to fixed.
|
|
7
|
+
*/
|
|
8
|
+
isFixed?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* A `testId` prop is provided for specified elements, which is a unique string that appears as a data attribute `data-testid` in the rendered code, serving as a hook for automated tests .
|
|
11
|
+
*/
|
|
12
|
+
testId?: string;
|
|
13
|
+
/**
|
|
14
|
+
* React Children!
|
|
15
|
+
*/
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
id?: string;
|
|
18
|
+
skipLinkTitle?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface SlotHeightProps extends SlotProps {
|
|
21
|
+
/**
|
|
22
|
+
* It save height in local storage.
|
|
23
|
+
*/
|
|
24
|
+
shouldPersistHeight?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Height!
|
|
27
|
+
*/
|
|
28
|
+
height?: number;
|
|
29
|
+
}
|
|
30
|
+
export interface SlotWidthProps extends SlotProps {
|
|
31
|
+
/**
|
|
32
|
+
* It save width in local storage.
|
|
33
|
+
*/
|
|
34
|
+
shouldPersistWidth?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Width!
|
|
37
|
+
*/
|
|
38
|
+
width?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface LeftSidebarProps extends SlotWidthProps {
|
|
41
|
+
/**
|
|
42
|
+
* A `testId` prop is provided for specified elements, which is a unique string that appears as a data attribute `data-testid` in the rendered code, serving as a hook for automated tests.
|
|
43
|
+
*/
|
|
44
|
+
testId?: string;
|
|
45
|
+
/**
|
|
46
|
+
* You can override prop(s) for the mentioned component(s).
|
|
47
|
+
*/
|
|
48
|
+
overrides?: {
|
|
49
|
+
ResizeButton?: {
|
|
50
|
+
render?: (Component: ElementType<ResizeButtonProps>, props: ResizeButtonProps) => ReactElement;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Display label for grab area. This will be announced to the screenreaders when the grab area receives focus
|
|
55
|
+
*/
|
|
56
|
+
resizeGrabAreaLabel?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Display label for resize button.
|
|
59
|
+
*/
|
|
60
|
+
resizeButtonLabel?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Called when left-sidebar is collapsed.
|
|
63
|
+
*/
|
|
64
|
+
onCollapse?: () => void;
|
|
65
|
+
/**
|
|
66
|
+
* Called when left-sidebar is expanded.
|
|
67
|
+
*/
|
|
68
|
+
onExpand?: () => void;
|
|
69
|
+
/**
|
|
70
|
+
* Called when left-sidebar resize starts using mouse or touch.
|
|
71
|
+
*/
|
|
72
|
+
onResizeStart?: (leftSidebarState: LeftSidebarState) => void;
|
|
73
|
+
/**
|
|
74
|
+
* Called when left-sidebar resize ends using mouse or touch.
|
|
75
|
+
*/
|
|
76
|
+
onResizeEnd?: (leftSidebarState: LeftSidebarState) => void;
|
|
77
|
+
/**
|
|
78
|
+
* Called when left-sidebar is collapsed and mouse leaves the area.
|
|
79
|
+
*/
|
|
80
|
+
onFlyoutCollapse?: () => void;
|
|
81
|
+
/**
|
|
82
|
+
* Called after flyout delay when left-sidebar is collapsed and mouse enters the area.
|
|
83
|
+
*/
|
|
84
|
+
onFlyoutExpand?: () => void;
|
|
85
|
+
/**
|
|
86
|
+
* Controls whether the LeftSidebar mounts in a collapsed state, this will override the setting in localStorage
|
|
87
|
+
*/
|
|
88
|
+
collapsedState?: 'collapsed' | 'expanded';
|
|
89
|
+
/**
|
|
90
|
+
* Controls the width when LeftSidebar mounts, this will override the setting in localStorage
|
|
91
|
+
*/
|
|
92
|
+
width?: number;
|
|
93
|
+
}
|
|
94
|
+
export declare type SidebarResizeControllerProps = {
|
|
95
|
+
/**
|
|
96
|
+
* Called when left-sidebar expanded.
|
|
97
|
+
*/
|
|
98
|
+
onLeftSidebarExpand?: (leftSidebarState: LeftSidebarState) => void;
|
|
99
|
+
/**
|
|
100
|
+
* Called when left-sidebar collapsed.
|
|
101
|
+
*/
|
|
102
|
+
onLeftSidebarCollapse?: (leftSidebarState: LeftSidebarState) => void;
|
|
103
|
+
};
|
|
104
|
+
export declare type DimensionNames = 'leftPanelWidth' | 'bannerHeight' | 'topNavigationHeight' | 'leftSidebarWidth' | 'leftSidebarFlyoutWidth' | 'rightSidebarWidth' | 'rightPanelWidth';
|
|
105
|
+
export declare type Dimensions = Partial<Record<DimensionNames, number>>;
|
|
106
|
+
export interface PageLayoutProps extends SidebarResizeControllerProps {
|
|
107
|
+
/**
|
|
108
|
+
* React children!
|
|
109
|
+
*/
|
|
110
|
+
children: ReactNode;
|
|
111
|
+
skipLinksLabel?: string;
|
|
112
|
+
/**
|
|
113
|
+
* A `testId` prop is provided for specified elements, which is a unique string that appears as a data attribute `data-testid` in the rendered code, serving as a hook for automated tests.
|
|
114
|
+
*/
|
|
115
|
+
testId?: string;
|
|
116
|
+
}
|
|
117
|
+
export type { LeftSidebarState } from '../controllers/sidebar-resize-context';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DimensionNames, Dimensions } from './types';
|
|
2
|
+
declare const emptyGridState: Dimensions;
|
|
3
|
+
declare const mergeGridStateIntoStorage: (key: string, value: any) => void;
|
|
4
|
+
declare const getGridStateFromStorage: (key: string) => any;
|
|
5
|
+
declare const removeFromGridStateInStorage: (key: string, secondKey?: string | undefined) => void;
|
|
6
|
+
declare const resolveDimension: (key: DimensionNames, dimension?: number, shouldPersist?: boolean) => any;
|
|
7
|
+
declare const getLeftPanelWidth: () => number;
|
|
8
|
+
declare const getLeftSidebarPercentage: (currentWidth: number, maxWidth: number) => number;
|
|
9
|
+
declare const getPageLayoutSlotSelector: (slotName: string) => {
|
|
10
|
+
"data-ds--page-layout--slot": string;
|
|
11
|
+
};
|
|
12
|
+
declare const getPageLayoutSlotCSSSelector: (slotName: string) => string;
|
|
13
|
+
export { emptyGridState, mergeGridStateIntoStorage, getGridStateFromStorage, removeFromGridStateInStorage, resolveDimension, getLeftPanelWidth, getLeftSidebarPercentage, getPageLayoutSlotSelector, getPageLayoutSlotCSSSelector, };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { default as PageLayout } from './slots/page-layout';
|
|
2
|
+
export { default as Main } from './slots/main';
|
|
3
|
+
export { default as RightPanel } from './slots/right-panel';
|
|
4
|
+
export { default as LeftPanel } from './slots/left-panel';
|
|
5
|
+
export { default as RightSidebar } from './slots/right-sidebar';
|
|
6
|
+
export { default as LeftSidebar } from './slots/left-sidebar';
|
|
7
|
+
export { default as LeftSidebarWithoutResize } from './slots/left-sidebar-without-resize';
|
|
8
|
+
export { default as Banner } from './slots/banner-slot';
|
|
9
|
+
export { default as TopNavigation } from './slots/top-navigation';
|
|
10
|
+
export { default as Content } from './slots/content';
|
|
11
|
+
export { default as ResizeControl } from './resize-control';
|
|
12
|
+
export { useCustomSkipLink } from './skip-links';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { ComponentProps } from 'react';
|
|
3
|
+
import { jsx } from '@emotion/react';
|
|
4
|
+
export declare type GrabAreaProps = {
|
|
5
|
+
testId?: string;
|
|
6
|
+
isLeftSidebarCollapsed: boolean;
|
|
7
|
+
} & ComponentProps<'button'>;
|
|
8
|
+
declare const GrabArea: ({ testId, isLeftSidebarCollapsed, ...rest }: GrabAreaProps) => jsx.JSX.Element;
|
|
9
|
+
export default GrabArea;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx } from '@emotion/react';
|
|
2
|
+
import { ResizeControlProps } from './types';
|
|
3
|
+
declare const ResizeControl: ({ testId, overrides, resizeButtonLabel, resizeGrabAreaLabel, onResizeStart, onResizeEnd, }: ResizeControlProps) => jsx.JSX.Element;
|
|
4
|
+
export default ResizeControl;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes, ElementType, ReactElement } from 'react';
|
|
2
|
+
import { LeftSidebarState } from '../../controllers/sidebar-resize-context';
|
|
3
|
+
export declare type ResizeButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
4
|
+
isLeftSidebarCollapsed: boolean;
|
|
5
|
+
label: string;
|
|
6
|
+
testId?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare type ResizeControlProps = {
|
|
9
|
+
testId?: string;
|
|
10
|
+
overrides?: {
|
|
11
|
+
ResizeButton?: {
|
|
12
|
+
render?: (Component: ElementType<ResizeButtonProps>, props: ResizeButtonProps) => ReactElement;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
resizeGrabAreaLabel?: string;
|
|
16
|
+
resizeButtonLabel?: string;
|
|
17
|
+
onCollapse?: (leftSidebarState: LeftSidebarState) => void;
|
|
18
|
+
onExpand?: (leftSidebarState: LeftSidebarState) => void;
|
|
19
|
+
onResizeStart?: (leftSidebarState: LeftSidebarState) => void;
|
|
20
|
+
onResizeEnd?: (leftSidebarState: LeftSidebarState) => void;
|
|
21
|
+
onFlyoutCollapse?: () => void;
|
|
22
|
+
onFlyoutExpand?: () => void;
|
|
23
|
+
leftSidebarState: LeftSidebarState;
|
|
24
|
+
setLeftSidebarState: (leftSidebarState: LeftSidebarState) => void;
|
|
25
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { jsx } from '@emotion/react';
|
|
4
|
+
import { SkipLinkWrapperProps } from './types';
|
|
5
|
+
export declare const SkipLinkWrapper: ({ skipLinksLabel }: SkipLinkWrapperProps) => jsx.JSX.Element | null;
|
|
6
|
+
export declare const SkipLink: ({ href, children, isFocusable, title, }: {
|
|
7
|
+
href: string;
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
isFocusable: boolean;
|
|
10
|
+
title: string;
|
|
11
|
+
}) => jsx.JSX.Element;
|
package/dist/{types/components/slots/banner.d.ts → types-ts4.0/components/slots/banner-slot.d.ts}
RENAMED
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { jsx } from '@emotion/react';
|
|
4
|
+
interface ContentProps {
|
|
5
|
+
/**
|
|
6
|
+
* React children
|
|
7
|
+
*/
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* A `testId` prop is provided for specified elements, which is a unique string that appears as a data attribute `data-testid` in the rendered code, serving as a hook for automated tests.
|
|
11
|
+
*/
|
|
12
|
+
testId?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* __Content__
|
|
16
|
+
*
|
|
17
|
+
* Provides a slot for your application content within the PageLayout.
|
|
18
|
+
*
|
|
19
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
20
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
21
|
+
*/
|
|
22
|
+
declare const Content: (props: ContentProps) => jsx.JSX.Element;
|
|
23
|
+
export default Content;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
import { jsx } from '@emotion/react';
|
|
4
|
+
declare type LeftSidebarInnerProps = {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
isFixed?: boolean;
|
|
7
|
+
isFlyoutOpen?: boolean;
|
|
8
|
+
};
|
|
9
|
+
declare const LeftSidebarInner: ({ children, isFixed, isFlyoutOpen, }: LeftSidebarInnerProps) => jsx.JSX.Element;
|
|
10
|
+
export default LeftSidebarInner;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { MouseEventHandler, ReactNode } from 'react';
|
|
3
|
+
declare type LeftSidebarOuterProps = {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
isFixed?: boolean;
|
|
6
|
+
isFlyoutOpen?: boolean;
|
|
7
|
+
testId?: string;
|
|
8
|
+
id?: string;
|
|
9
|
+
onMouseOver?: MouseEventHandler;
|
|
10
|
+
onMouseLeave?: MouseEventHandler;
|
|
11
|
+
};
|
|
12
|
+
declare const _default: import("react").ForwardRefExoticComponent<LeftSidebarOuterProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
import { jsx } from '@emotion/react';
|
|
4
|
+
declare type ResizableChildrenWrapperProps = {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
isFlyoutOpen?: boolean;
|
|
7
|
+
isLeftSidebarCollapsed?: boolean;
|
|
8
|
+
hasCollapsedState?: boolean;
|
|
9
|
+
};
|
|
10
|
+
declare const ResizableChildrenWrapper: ({ children, isLeftSidebarCollapsed, hasCollapsedState, isFlyoutOpen, }: ResizableChildrenWrapperProps) => jsx.JSX.Element;
|
|
11
|
+
export default ResizableChildrenWrapper;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
import { jsx } from '@emotion/react';
|
|
4
|
+
declare type SlotFocusRingProps = {
|
|
5
|
+
children: (props: {
|
|
6
|
+
className: string;
|
|
7
|
+
}) => ReactNode;
|
|
8
|
+
isSidebar?: boolean;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* We don't use `@atlaskit/focus-ring` here,
|
|
12
|
+
* because we need inset focus styles and:
|
|
13
|
+
*
|
|
14
|
+
* 1. If we set them directly to the layout element,
|
|
15
|
+
* then any child element's background will cover the shadow.
|
|
16
|
+
* 2. We cannot wrap `children` in `FocusRing`,
|
|
17
|
+
* because there's no guarantee the passed child takes `className`.
|
|
18
|
+
*/
|
|
19
|
+
declare const SlotFocusRing: ({ children, isSidebar }: SlotFocusRingProps) => jsx.JSX.Element;
|
|
20
|
+
export default SlotFocusRing;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from '@emotion/react';
|
|
2
|
+
import { SlotWidthProps } from '../../common/types';
|
|
3
|
+
/**
|
|
4
|
+
* __Left panel__
|
|
5
|
+
*
|
|
6
|
+
* Provides a slot for a left panel within the PageLayout.
|
|
7
|
+
*
|
|
8
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
9
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
10
|
+
*/
|
|
11
|
+
declare const LeftPanel: (props: SlotWidthProps) => jsx.JSX.Element;
|
|
12
|
+
export default LeftPanel;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from '@emotion/react';
|
|
2
|
+
import { SlotWidthProps } from '../../common/types';
|
|
3
|
+
/**
|
|
4
|
+
* __Left sidebar without resize__
|
|
5
|
+
*
|
|
6
|
+
* Provides a slot for a left sidebar without resize within the PageLayout.
|
|
7
|
+
*
|
|
8
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
9
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
10
|
+
*/
|
|
11
|
+
declare const LeftSidebarWithoutResize: (props: SlotWidthProps) => jsx.JSX.Element;
|
|
12
|
+
export default LeftSidebarWithoutResize;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from '@emotion/react';
|
|
2
|
+
import { LeftSidebarProps } from '../../common/types';
|
|
3
|
+
/**
|
|
4
|
+
* __Left sidebar__
|
|
5
|
+
*
|
|
6
|
+
* Provides a slot for a left sidebar within the PageLayout.
|
|
7
|
+
*
|
|
8
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
9
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
10
|
+
*/
|
|
11
|
+
declare const LeftSidebar: (props: LeftSidebarProps) => jsx.JSX.Element;
|
|
12
|
+
export default LeftSidebar;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from '@emotion/react';
|
|
2
|
+
import { SlotWidthProps } from '../../common/types';
|
|
3
|
+
/**
|
|
4
|
+
* __Main__
|
|
5
|
+
*
|
|
6
|
+
* Provides a slot for main content within the PageLayout.
|
|
7
|
+
*
|
|
8
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
9
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
10
|
+
*/
|
|
11
|
+
declare const Main: (props: SlotWidthProps) => jsx.JSX.Element;
|
|
12
|
+
export default Main;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from '@emotion/react';
|
|
2
|
+
import { PageLayoutProps } from '../../common/types';
|
|
3
|
+
/**
|
|
4
|
+
* __Page layout__
|
|
5
|
+
*
|
|
6
|
+
* A collection of components which let you compose an application's page layout.
|
|
7
|
+
*
|
|
8
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
9
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
10
|
+
*/
|
|
11
|
+
declare const PageLayout: ({ skipLinksLabel, children, testId, onLeftSidebarExpand, onLeftSidebarCollapse, }: PageLayoutProps) => jsx.JSX.Element;
|
|
12
|
+
export default PageLayout;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from '@emotion/react';
|
|
2
|
+
import { SlotWidthProps } from '../../common/types';
|
|
3
|
+
/**
|
|
4
|
+
* __Right panel__
|
|
5
|
+
*
|
|
6
|
+
* Provides a slot for a right panel within the PageLayout.
|
|
7
|
+
*
|
|
8
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
9
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
10
|
+
*/
|
|
11
|
+
declare const RightPanel: (props: SlotWidthProps) => jsx.JSX.Element;
|
|
12
|
+
export default RightPanel;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from '@emotion/react';
|
|
2
|
+
import { SlotWidthProps } from '../../common/types';
|
|
3
|
+
/**
|
|
4
|
+
* __Right sidebar__
|
|
5
|
+
*
|
|
6
|
+
* Provides a slot for a right sidebar within the PageLayout.
|
|
7
|
+
*
|
|
8
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
9
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
10
|
+
*/
|
|
11
|
+
declare const RightSidebar: (props: SlotWidthProps) => jsx.JSX.Element;
|
|
12
|
+
export default RightSidebar;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from '@emotion/react';
|
|
2
|
+
import { SlotHeightProps } from '../../common/types';
|
|
3
|
+
/**
|
|
4
|
+
* __Top navigation__
|
|
5
|
+
*
|
|
6
|
+
* Provides a slot for top navigation within the PageLayout.
|
|
7
|
+
*
|
|
8
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
9
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
10
|
+
*/
|
|
11
|
+
declare const TopNavigation: (props: SlotHeightProps) => jsx.JSX.Element;
|
|
12
|
+
export default TopNavigation;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { SkipLinkData } from './types';
|
|
2
|
+
export { default as publishGridState } from './use-page-layout-grid';
|
|
3
|
+
export { SidebarResizeContext, usePageLayoutResize, useLeftSidebarFlyoutLock, } from './sidebar-resize-context';
|
|
4
|
+
export { SidebarResizeController } from './sidebar-resize-controller';
|
|
5
|
+
export { useSkipLinks, useSkipLink } from './skip-link-context';
|
|
6
|
+
export { SkipLinksController } from './skip-link-controller';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { KeyboardEvent, MouseEvent } from 'react';
|
|
2
|
+
export declare type LeftSidebarState = {
|
|
3
|
+
isFlyoutOpen: boolean;
|
|
4
|
+
isResizing: boolean;
|
|
5
|
+
isLeftSidebarCollapsed: boolean;
|
|
6
|
+
leftSidebarWidth: number;
|
|
7
|
+
lastLeftSidebarWidth: number;
|
|
8
|
+
flyoutLockCount: number;
|
|
9
|
+
isFixed: boolean;
|
|
10
|
+
};
|
|
11
|
+
export declare type SidebarResizeContextValue = {
|
|
12
|
+
isLeftSidebarCollapsed: boolean;
|
|
13
|
+
expandLeftSidebar: () => void;
|
|
14
|
+
collapseLeftSidebar: (event?: MouseEvent | KeyboardEvent, collapseWithoutTransition?: boolean) => void;
|
|
15
|
+
leftSidebarState: LeftSidebarState;
|
|
16
|
+
setLeftSidebarState: (value: LeftSidebarState | ((prevState: LeftSidebarState) => LeftSidebarState)) => void;
|
|
17
|
+
};
|
|
18
|
+
export declare const SidebarResizeContext: import("react").Context<SidebarResizeContextValue>;
|
|
19
|
+
export declare const usePageLayoutResize: () => {
|
|
20
|
+
isLeftSidebarCollapsed: boolean;
|
|
21
|
+
expandLeftSidebar: () => void;
|
|
22
|
+
collapseLeftSidebar: (event?: MouseEvent<Element, globalThis.MouseEvent> | KeyboardEvent<Element> | undefined, collapseWithoutTransition?: boolean | undefined) => void;
|
|
23
|
+
leftSidebarState: LeftSidebarState;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* _**WARNING:**_ This hook is intended as a temporary solution and
|
|
27
|
+
* is likely to be removed in a future version of page-layout.
|
|
28
|
+
*
|
|
29
|
+
* ---
|
|
30
|
+
*
|
|
31
|
+
* This hook will prevent the left sidebar from automatically collapsing
|
|
32
|
+
* when it is in a flyout state.
|
|
33
|
+
*
|
|
34
|
+
* The intended use case for this hook is to allow popup menus in the
|
|
35
|
+
* left sidebar to be usable while it is in a flyout state.
|
|
36
|
+
*
|
|
37
|
+
* ## Usage
|
|
38
|
+
* The intended usage is to use this hook within the popup component
|
|
39
|
+
* you are rendering. This way the left sidebar will be locked for
|
|
40
|
+
* as long as the popup is open.
|
|
41
|
+
*/
|
|
42
|
+
export declare const useLeftSidebarFlyoutLock: () => void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { SkipLinkContextProps } from './types';
|
|
3
|
+
export declare const SkipLinksContext: import("react").Context<SkipLinkContextProps>;
|
|
4
|
+
export declare const useSkipLinks: () => SkipLinkContextProps;
|
|
5
|
+
export declare const useSkipLink: (id?: string | undefined, skipLinkTitle?: string | undefined) => void;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare type SkipLinkContextProps = {
|
|
2
|
+
skipLinksData: SkipLinkData[];
|
|
3
|
+
registerSkipLink: (skipLinkDate: SkipLinkData) => void;
|
|
4
|
+
unregisterSkipLink: (id: string | undefined) => void;
|
|
5
|
+
};
|
|
6
|
+
export declare type SkipLinkData = {
|
|
7
|
+
/**
|
|
8
|
+
* id for the element that will be skipped to
|
|
9
|
+
*/
|
|
10
|
+
id: string;
|
|
11
|
+
/**
|
|
12
|
+
* Text for the link that will appear in the skip link menu
|
|
13
|
+
*/
|
|
14
|
+
skipLinkTitle: string;
|
|
15
|
+
/**
|
|
16
|
+
* Desired position in the skip link menu
|
|
17
|
+
*/
|
|
18
|
+
listIndex?: number;
|
|
19
|
+
};
|
|
20
|
+
export declare type SkipLinkI18n = {
|
|
21
|
+
title: string;
|
|
22
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { PageLayout, Main, Content, RightSidebar, LeftSidebar, LeftSidebarWithoutResize, RightPanel, LeftPanel, Banner, TopNavigation, useCustomSkipLink, } from './components';
|
|
2
|
+
export { LEFT_PANEL_WIDTH, RIGHT_PANEL_WIDTH, BANNER_HEIGHT, TOP_NAVIGATION_HEIGHT, LEFT_SIDEBAR_WIDTH, RIGHT_SIDEBAR_WIDTH, } from './common/constants';
|
|
3
|
+
export { usePageLayoutResize, useLeftSidebarFlyoutLock } from './controllers';
|
|
4
|
+
export type { SlotHeightProps, SlotWidthProps, Dimensions, LeftSidebarState, } from './common/types';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/page-layout",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"description": "A collection of components which let you compose an application's page layout.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -12,6 +12,13 @@
|
|
|
12
12
|
"module": "dist/esm/index.js",
|
|
13
13
|
"module:es2019": "dist/es2019/index.js",
|
|
14
14
|
"types": "dist/types/index.d.ts",
|
|
15
|
+
"typesVersions": {
|
|
16
|
+
">=4.0 <4.5": {
|
|
17
|
+
"*": [
|
|
18
|
+
"dist/types-ts4.0/*"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
},
|
|
15
22
|
"sideEffects": false,
|
|
16
23
|
"atlaskit:src": "src/index.tsx",
|
|
17
24
|
"atlassian": {
|
|
@@ -26,7 +33,7 @@
|
|
|
26
33
|
"homepage": "https://atlassian.design/components/page-layout/",
|
|
27
34
|
"dependencies": {
|
|
28
35
|
"@atlaskit/ds-lib": "^2.1.0",
|
|
29
|
-
"@atlaskit/icon": "^21.
|
|
36
|
+
"@atlaskit/icon": "^21.11.0",
|
|
30
37
|
"@atlaskit/motion": "^1.2.0",
|
|
31
38
|
"@atlaskit/theme": "^12.2.0",
|
|
32
39
|
"@atlaskit/tokens": "^0.10.0",
|
|
@@ -44,29 +51,29 @@
|
|
|
44
51
|
"@atlaskit/atlassian-notifications": "^0.3.0",
|
|
45
52
|
"@atlaskit/button": "^16.3.0",
|
|
46
53
|
"@atlaskit/docs": "*",
|
|
47
|
-
"@atlaskit/drawer": "^7.
|
|
54
|
+
"@atlaskit/drawer": "^7.3.0",
|
|
48
55
|
"@atlaskit/icon": "*",
|
|
49
|
-
"@atlaskit/logo": "^13.
|
|
56
|
+
"@atlaskit/logo": "^13.10.0",
|
|
50
57
|
"@atlaskit/menu": "^1.3.0",
|
|
51
58
|
"@atlaskit/notification-indicator": "^9.0.0",
|
|
52
59
|
"@atlaskit/notification-log-client": "^6.0.0",
|
|
53
|
-
"@atlaskit/onboarding": "^10.
|
|
54
|
-
"@atlaskit/popup": "^1.
|
|
55
|
-
"@atlaskit/section-message": "^6.
|
|
56
|
-
"@atlaskit/side-navigation": "^1.
|
|
60
|
+
"@atlaskit/onboarding": "^10.6.0",
|
|
61
|
+
"@atlaskit/popup": "^1.5.0",
|
|
62
|
+
"@atlaskit/section-message": "^6.3.0",
|
|
63
|
+
"@atlaskit/side-navigation": "^1.3.0",
|
|
57
64
|
"@atlaskit/ssr": "*",
|
|
58
65
|
"@atlaskit/tooltip": "*",
|
|
59
66
|
"@atlaskit/visual-regression": "*",
|
|
60
67
|
"@atlaskit/webdriver-runner": "*",
|
|
61
68
|
"@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
|
|
62
|
-
"@testing-library/dom": "^
|
|
63
|
-
"@testing-library/react": "^
|
|
64
|
-
"@testing-library/react-hooks": "^
|
|
69
|
+
"@testing-library/dom": "^8.17.1",
|
|
70
|
+
"@testing-library/react": "^12.1.5",
|
|
71
|
+
"@testing-library/react-hooks": "^8.0.1",
|
|
65
72
|
"@types/raf-schd": "^4.0.1",
|
|
66
73
|
"jest-emotion": "^10.0.32",
|
|
67
74
|
"raf-stub": "^2.0.1",
|
|
68
75
|
"storybook-addon-performance": "^0.16.0",
|
|
69
|
-
"typescript": "4.
|
|
76
|
+
"typescript": "4.5.5"
|
|
70
77
|
},
|
|
71
78
|
"keywords": [
|
|
72
79
|
"atlaskit",
|
package/report.api.md
CHANGED
|
@@ -1,29 +1,48 @@
|
|
|
1
|
-
## API Report File for "@atlaskit/page-layout"
|
|
1
|
+
## API Report File for "@atlaskit/page-layout".
|
|
2
2
|
|
|
3
|
-
> Do not edit this file.
|
|
3
|
+
> Do not edit this file. This report is auto-generated by [API Extractor](https://api-extractor.com/).
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
/// <reference types="react" />
|
|
5
|
+
[Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)
|
|
7
6
|
|
|
7
|
+
```ts
|
|
8
8
|
import { ButtonHTMLAttributes } from 'react';
|
|
9
9
|
import { ElementType } from 'react';
|
|
10
|
+
import { jsx } from '@emotion/react';
|
|
10
11
|
import { KeyboardEvent as KeyboardEvent_2 } from 'react';
|
|
11
12
|
import { MouseEvent as MouseEvent_2 } from 'react';
|
|
12
13
|
import { ReactElement } from 'react';
|
|
13
14
|
import { ReactNode } from 'react';
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
/**
|
|
17
|
+
* __Banner__
|
|
18
|
+
*
|
|
19
|
+
* Provides a slot for a Banner within the PageLayout.
|
|
20
|
+
*
|
|
21
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
22
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
23
|
+
*/
|
|
24
|
+
export declare const Banner: (props: SlotHeightProps) => jsx.JSX.Element;
|
|
16
25
|
|
|
17
26
|
export declare const BANNER_HEIGHT: string;
|
|
18
27
|
|
|
19
|
-
|
|
28
|
+
/**
|
|
29
|
+
* __Content__
|
|
30
|
+
*
|
|
31
|
+
* Provides a slot for your application content within the PageLayout.
|
|
32
|
+
*
|
|
33
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
34
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
35
|
+
*/
|
|
36
|
+
export declare const Content: (props: ContentProps) => jsx.JSX.Element;
|
|
20
37
|
|
|
21
38
|
declare interface ContentProps {
|
|
22
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* React children
|
|
41
|
+
*/
|
|
23
42
|
children: ReactNode;
|
|
24
43
|
/**
|
|
25
44
|
* A `testId` prop is provided for specified elements, which is a unique string that appears as a data attribute `data-testid` in the rendered code, serving as a hook for automated tests.
|
|
26
|
-
|
|
45
|
+
*/
|
|
27
46
|
testId?: string;
|
|
28
47
|
}
|
|
29
48
|
|
|
@@ -42,16 +61,34 @@ export declare const LEFT_PANEL_WIDTH: string;
|
|
|
42
61
|
|
|
43
62
|
export declare const LEFT_SIDEBAR_WIDTH: string;
|
|
44
63
|
|
|
45
|
-
|
|
64
|
+
/**
|
|
65
|
+
* __Left panel__
|
|
66
|
+
*
|
|
67
|
+
* Provides a slot for a left panel within the PageLayout.
|
|
68
|
+
*
|
|
69
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
70
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
71
|
+
*/
|
|
72
|
+
export declare const LeftPanel: (props: SlotWidthProps) => jsx.JSX.Element;
|
|
46
73
|
|
|
47
|
-
|
|
74
|
+
/**
|
|
75
|
+
* __Left sidebar__
|
|
76
|
+
*
|
|
77
|
+
* Provides a slot for a left sidebar within the PageLayout.
|
|
78
|
+
*
|
|
79
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
80
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
81
|
+
*/
|
|
82
|
+
export declare const LeftSidebar: (props: LeftSidebarProps) => jsx.JSX.Element;
|
|
48
83
|
|
|
49
84
|
declare interface LeftSidebarProps extends SlotWidthProps {
|
|
50
85
|
/**
|
|
51
86
|
* A `testId` prop is provided for specified elements, which is a unique string that appears as a data attribute `data-testid` in the rendered code, serving as a hook for automated tests.
|
|
52
87
|
*/
|
|
53
88
|
testId?: string;
|
|
54
|
-
/**
|
|
89
|
+
/**
|
|
90
|
+
* You can override prop(s) for the mentioned component(s).
|
|
91
|
+
*/
|
|
55
92
|
overrides?: {
|
|
56
93
|
ResizeButton?: {
|
|
57
94
|
render?: (
|
|
@@ -60,25 +97,45 @@ declare interface LeftSidebarProps extends SlotWidthProps {
|
|
|
60
97
|
) => ReactElement;
|
|
61
98
|
};
|
|
62
99
|
};
|
|
63
|
-
/**
|
|
100
|
+
/**
|
|
101
|
+
* Display label for grab area. This will be announced to the screenreaders when the grab area receives focus
|
|
102
|
+
*/
|
|
64
103
|
resizeGrabAreaLabel?: string;
|
|
65
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* Display label for resize button.
|
|
106
|
+
*/
|
|
66
107
|
resizeButtonLabel?: string;
|
|
67
|
-
/**
|
|
108
|
+
/**
|
|
109
|
+
* Called when left-sidebar is collapsed.
|
|
110
|
+
*/
|
|
68
111
|
onCollapse?: () => void;
|
|
69
|
-
/**
|
|
112
|
+
/**
|
|
113
|
+
* Called when left-sidebar is expanded.
|
|
114
|
+
*/
|
|
70
115
|
onExpand?: () => void;
|
|
71
|
-
/**
|
|
116
|
+
/**
|
|
117
|
+
* Called when left-sidebar resize starts using mouse or touch.
|
|
118
|
+
*/
|
|
72
119
|
onResizeStart?: (leftSidebarState: LeftSidebarState) => void;
|
|
73
|
-
/**
|
|
120
|
+
/**
|
|
121
|
+
* Called when left-sidebar resize ends using mouse or touch.
|
|
122
|
+
*/
|
|
74
123
|
onResizeEnd?: (leftSidebarState: LeftSidebarState) => void;
|
|
75
|
-
/**
|
|
124
|
+
/**
|
|
125
|
+
* Called when left-sidebar is collapsed and mouse leaves the area.
|
|
126
|
+
*/
|
|
76
127
|
onFlyoutCollapse?: () => void;
|
|
77
|
-
/**
|
|
128
|
+
/**
|
|
129
|
+
* Called after flyout delay when left-sidebar is collapsed and mouse enters the area.
|
|
130
|
+
*/
|
|
78
131
|
onFlyoutExpand?: () => void;
|
|
79
|
-
/**
|
|
132
|
+
/**
|
|
133
|
+
* Controls whether the LeftSidebar mounts in a collapsed state, this will override the setting in localStorage
|
|
134
|
+
*/
|
|
80
135
|
collapsedState?: 'collapsed' | 'expanded';
|
|
81
|
-
/**
|
|
136
|
+
/**
|
|
137
|
+
* Controls the width when LeftSidebar mounts, this will override the setting in localStorage
|
|
138
|
+
*/
|
|
82
139
|
width?: number;
|
|
83
140
|
}
|
|
84
141
|
|
|
@@ -92,27 +149,53 @@ export declare type LeftSidebarState = {
|
|
|
92
149
|
isFixed: boolean;
|
|
93
150
|
};
|
|
94
151
|
|
|
152
|
+
/**
|
|
153
|
+
* __Left sidebar without resize__
|
|
154
|
+
*
|
|
155
|
+
* Provides a slot for a left sidebar without resize within the PageLayout.
|
|
156
|
+
*
|
|
157
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
158
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
159
|
+
*/
|
|
95
160
|
export declare const LeftSidebarWithoutResize: (
|
|
96
161
|
props: SlotWidthProps,
|
|
97
|
-
) => JSX.Element;
|
|
162
|
+
) => jsx.JSX.Element;
|
|
98
163
|
|
|
99
|
-
|
|
164
|
+
/**
|
|
165
|
+
* __Main__
|
|
166
|
+
*
|
|
167
|
+
* Provides a slot for main content within the PageLayout.
|
|
168
|
+
*
|
|
169
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
170
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
171
|
+
*/
|
|
172
|
+
export declare const Main: (props: SlotWidthProps) => jsx.JSX.Element;
|
|
100
173
|
|
|
174
|
+
/**
|
|
175
|
+
* __Page layout__
|
|
176
|
+
*
|
|
177
|
+
* A collection of components which let you compose an application's page layout.
|
|
178
|
+
*
|
|
179
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
180
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
181
|
+
*/
|
|
101
182
|
export declare const PageLayout: ({
|
|
102
183
|
skipLinksLabel,
|
|
103
184
|
children,
|
|
104
185
|
testId,
|
|
105
186
|
onLeftSidebarExpand,
|
|
106
187
|
onLeftSidebarCollapse,
|
|
107
|
-
}: PageLayoutProps) => JSX.Element;
|
|
188
|
+
}: PageLayoutProps) => jsx.JSX.Element;
|
|
108
189
|
|
|
109
190
|
declare interface PageLayoutProps extends SidebarResizeControllerProps {
|
|
110
|
-
/**
|
|
191
|
+
/**
|
|
192
|
+
* React children!
|
|
193
|
+
*/
|
|
111
194
|
children: ReactNode;
|
|
112
195
|
skipLinksLabel?: string;
|
|
113
196
|
/**
|
|
114
197
|
* A `testId` prop is provided for specified elements, which is a unique string that appears as a data attribute `data-testid` in the rendered code, serving as a hook for automated tests.
|
|
115
|
-
|
|
198
|
+
*/
|
|
116
199
|
testId?: string;
|
|
117
200
|
}
|
|
118
201
|
|
|
@@ -126,56 +209,102 @@ export declare const RIGHT_PANEL_WIDTH: string;
|
|
|
126
209
|
|
|
127
210
|
export declare const RIGHT_SIDEBAR_WIDTH: string;
|
|
128
211
|
|
|
129
|
-
|
|
212
|
+
/**
|
|
213
|
+
* __Right panel__
|
|
214
|
+
*
|
|
215
|
+
* Provides a slot for a right panel within the PageLayout.
|
|
216
|
+
*
|
|
217
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
218
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
219
|
+
*/
|
|
220
|
+
export declare const RightPanel: (props: SlotWidthProps) => jsx.JSX.Element;
|
|
130
221
|
|
|
131
|
-
|
|
222
|
+
/**
|
|
223
|
+
* __Right sidebar__
|
|
224
|
+
*
|
|
225
|
+
* Provides a slot for a right sidebar within the PageLayout.
|
|
226
|
+
*
|
|
227
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
228
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
229
|
+
*/
|
|
230
|
+
export declare const RightSidebar: (props: SlotWidthProps) => jsx.JSX.Element;
|
|
132
231
|
|
|
133
232
|
declare type SidebarResizeControllerProps = {
|
|
134
|
-
/**
|
|
233
|
+
/**
|
|
234
|
+
* Called when left-sidebar expanded.
|
|
235
|
+
*/
|
|
135
236
|
onLeftSidebarExpand?: (leftSidebarState: LeftSidebarState) => void;
|
|
136
|
-
/**
|
|
237
|
+
/**
|
|
238
|
+
* Called when left-sidebar collapsed.
|
|
239
|
+
*/
|
|
137
240
|
onLeftSidebarCollapse?: (leftSidebarState: LeftSidebarState) => void;
|
|
138
241
|
};
|
|
139
242
|
|
|
140
243
|
declare type SkipLinkData = {
|
|
141
|
-
/**
|
|
244
|
+
/**
|
|
245
|
+
* id for the element that will be skipped to
|
|
246
|
+
*/
|
|
142
247
|
id: string;
|
|
143
|
-
/**
|
|
248
|
+
/**
|
|
249
|
+
* Text for the link that will appear in the skip link menu
|
|
250
|
+
*/
|
|
144
251
|
skipLinkTitle: string;
|
|
145
|
-
/**
|
|
252
|
+
/**
|
|
253
|
+
* Desired position in the skip link menu
|
|
254
|
+
*/
|
|
146
255
|
listIndex?: number;
|
|
147
256
|
};
|
|
148
257
|
|
|
149
258
|
export declare interface SlotHeightProps extends SlotProps {
|
|
150
|
-
/**
|
|
259
|
+
/**
|
|
260
|
+
* It save height in local storage.
|
|
261
|
+
*/
|
|
151
262
|
shouldPersistHeight?: boolean;
|
|
152
|
-
/**
|
|
263
|
+
/**
|
|
264
|
+
* Height!
|
|
265
|
+
*/
|
|
153
266
|
height?: number;
|
|
154
267
|
}
|
|
155
268
|
|
|
156
269
|
declare interface SlotProps {
|
|
157
|
-
/**
|
|
270
|
+
/**
|
|
271
|
+
* Sets positon to fixed.
|
|
272
|
+
*/
|
|
158
273
|
isFixed?: boolean;
|
|
159
274
|
/**
|
|
160
275
|
* A `testId` prop is provided for specified elements, which is a unique string that appears as a data attribute `data-testid` in the rendered code, serving as a hook for automated tests .
|
|
161
276
|
*/
|
|
162
277
|
testId?: string;
|
|
163
|
-
/**
|
|
278
|
+
/**
|
|
279
|
+
* React Children!
|
|
280
|
+
*/
|
|
164
281
|
children: ReactNode;
|
|
165
282
|
id?: string;
|
|
166
283
|
skipLinkTitle?: string;
|
|
167
284
|
}
|
|
168
285
|
|
|
169
286
|
export declare interface SlotWidthProps extends SlotProps {
|
|
170
|
-
/**
|
|
287
|
+
/**
|
|
288
|
+
* It save width in local storage.
|
|
289
|
+
*/
|
|
171
290
|
shouldPersistWidth?: boolean;
|
|
172
|
-
/**
|
|
291
|
+
/**
|
|
292
|
+
* Width!
|
|
293
|
+
*/
|
|
173
294
|
width?: number;
|
|
174
295
|
}
|
|
175
296
|
|
|
176
297
|
export declare const TOP_NAVIGATION_HEIGHT: string;
|
|
177
298
|
|
|
178
|
-
|
|
299
|
+
/**
|
|
300
|
+
* __Top navigation__
|
|
301
|
+
*
|
|
302
|
+
* Provides a slot for top navigation within the PageLayout.
|
|
303
|
+
*
|
|
304
|
+
* - [Examples](https://atlassian.design/components/page-layout/examples)
|
|
305
|
+
* - [Code](https://atlassian.design/components/page-layout/code)
|
|
306
|
+
*/
|
|
307
|
+
export declare const TopNavigation: (props: SlotHeightProps) => jsx.JSX.Element;
|
|
179
308
|
|
|
180
309
|
export declare const useCustomSkipLink: (
|
|
181
310
|
id: SkipLinkData['id'],
|
|
@@ -184,7 +313,7 @@ export declare const useCustomSkipLink: (
|
|
|
184
313
|
) => void;
|
|
185
314
|
|
|
186
315
|
/**
|
|
187
|
-
* **WARNING:** This hook is intended as a temporary solution and
|
|
316
|
+
* _**WARNING:**_ This hook is intended as a temporary solution and
|
|
188
317
|
* is likely to be removed in a future version of page-layout.
|
|
189
318
|
*
|
|
190
319
|
* ---
|