@databiosphere/findable-ui 22.0.0 → 23.0.0
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/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +28 -0
- package/lib/common/selectors.d.ts +6 -2
- package/lib/common/selectors.js +7 -2
- package/lib/components/DataDictionary/components/Entities/constants.d.ts +1 -0
- package/lib/components/DataDictionary/components/Entities/constants.js +2 -1
- package/lib/components/DataDictionary/components/Entities/entities.d.ts +1 -1
- package/lib/components/DataDictionary/components/Entities/entities.js +2 -2
- package/lib/components/DataDictionary/components/Entities/types.d.ts +2 -0
- package/lib/components/DataDictionary/components/Entity/entity.d.ts +1 -1
- package/lib/components/DataDictionary/components/Entity/entity.js +9 -4
- package/lib/components/DataDictionary/components/Entity/entity.styles.d.ts +2 -0
- package/lib/components/DataDictionary/components/Entity/entity.styles.js +10 -0
- package/lib/components/DataDictionary/components/Entity/types.d.ts +2 -0
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.d.ts +2 -0
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.js +5 -0
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.d.ts +5 -0
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.js +19 -0
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/types.d.ts +5 -0
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/types.js +1 -0
- package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.d.ts +2 -0
- package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.js +6 -0
- package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.styles.d.ts +9 -0
- package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.styles.js +26 -0
- package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/types.d.ts +5 -0
- package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/types.js +1 -0
- package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.d.ts +2 -0
- package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.js +5 -0
- package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.styles.d.ts +5 -0
- package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.styles.js +16 -0
- package/lib/components/DataDictionary/components/Layout/components/TitleLayout/types.d.ts +5 -0
- package/lib/components/DataDictionary/components/Layout/components/TitleLayout/types.js +1 -0
- package/lib/components/DataDictionary/components/Layout/constants.d.ts +5 -0
- package/lib/components/DataDictionary/components/Layout/constants.js +5 -0
- package/lib/components/DataDictionary/components/Outline/components/ContentsTab/constants.d.ts +2 -0
- package/lib/components/DataDictionary/components/Outline/components/ContentsTab/constants.js +5 -0
- package/lib/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.d.ts +1 -0
- package/lib/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.js +6 -0
- package/lib/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.styles.d.ts +3 -0
- package/lib/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.styles.js +7 -0
- package/lib/components/DataDictionary/components/Outline/outline.d.ts +2 -0
- package/lib/components/DataDictionary/components/Outline/outline.js +6 -0
- package/lib/components/DataDictionary/components/Outline/outline.styles.d.ts +3 -0
- package/lib/components/DataDictionary/components/Outline/outline.styles.js +19 -0
- package/lib/components/DataDictionary/components/Outline/types.d.ts +5 -0
- package/lib/components/DataDictionary/components/Outline/types.js +1 -0
- package/lib/components/DataDictionary/components/Outline/utils.d.ts +8 -0
- package/lib/components/DataDictionary/components/Outline/utils.js +15 -0
- package/lib/components/DataDictionary/components/Table/components/BasicCell/basicCell.js +2 -2
- package/lib/components/DataDictionary/components/Title/title.d.ts +2 -0
- package/lib/components/DataDictionary/components/Title/title.js +3 -0
- package/lib/components/DataDictionary/components/Title/title.styles.d.ts +3 -0
- package/lib/components/DataDictionary/components/Title/title.styles.js +17 -0
- package/lib/components/DataDictionary/dataDictionary.d.ts +2 -2
- package/lib/components/DataDictionary/dataDictionary.js +17 -3
- package/lib/components/DataDictionary/dataDictionary.styles.d.ts +5 -1
- package/lib/components/DataDictionary/dataDictionary.styles.js +16 -3
- package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.js +2 -1
- package/lib/components/DataDictionary/hooks/UseLayoutSpacing/hook.d.ts +2 -0
- package/lib/components/DataDictionary/hooks/UseLayoutSpacing/hook.js +10 -0
- package/lib/components/DataDictionary/hooks/UseLayoutSpacing/types.d.ts +7 -0
- package/lib/components/DataDictionary/hooks/UseLayoutSpacing/types.js +1 -0
- package/lib/components/DataDictionary/types.d.ts +9 -0
- package/lib/components/DataDictionary/types.js +1 -0
- package/lib/components/Error/error.js +3 -3
- package/lib/components/Filter/components/SearchAllFilters/searchAllFilters.js +3 -3
- package/lib/components/Index/index.js +3 -4
- package/lib/components/Layout/components/ContentLayout/contentLayout.js +7 -7
- package/lib/components/Layout/components/Footer/footer.js +4 -1
- package/lib/components/Layout/components/Footer/footer.styles.js +1 -0
- package/lib/components/Layout/components/Header/header.js +4 -3
- package/lib/components/Layout/components/Main/main.js +3 -4
- package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.d.ts +1 -5
- package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.js +5 -3
- package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.styles.d.ts +1 -1
- package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.styles.js +2 -2
- package/lib/components/Layout/components/Outline/components/ContentsTab/types.d.ts +5 -0
- package/lib/components/Layout/components/Outline/components/ContentsTab/types.js +1 -0
- package/lib/components/Layout/components/Outline/hooks/UseHash/hook.d.ts +11 -0
- package/lib/components/Layout/components/Outline/hooks/UseHash/hook.js +16 -0
- package/lib/components/Layout/components/Outline/hooks/UseHash/types.d.ts +3 -0
- package/lib/components/Layout/components/Outline/hooks/UseHash/types.js +1 -0
- package/lib/components/Layout/components/Outline/hooks/UseTabs/constants.d.ts +2 -0
- package/lib/components/Layout/components/Outline/hooks/UseTabs/hook.d.ts +3 -0
- package/lib/components/Layout/components/Outline/hooks/UseTabs/hook.js +24 -0
- package/lib/components/Layout/components/Outline/hooks/UseTabs/utils.d.ts +9 -0
- package/lib/components/Layout/components/Outline/hooks/UseTabs/utils.js +13 -0
- package/lib/components/Layout/components/Outline/outline.d.ts +2 -13
- package/lib/components/Layout/components/Outline/outline.js +8 -32
- package/lib/components/Layout/components/Outline/outline.styles.d.ts +2 -2
- package/lib/components/Layout/components/Outline/outline.styles.js +2 -2
- package/lib/components/Layout/components/Outline/types.d.ts +14 -0
- package/lib/components/Layout/components/Outline/types.js +1 -0
- package/lib/components/Layout/components/Sidebar/components/SidebarPositioner/sidebarPositioner.js +4 -4
- package/lib/components/Login/components/Section/components/Warning/warning.js +2 -3
- package/lib/components/Table/components/TableCell/components/RowPositionCell/constants.js +2 -2
- package/lib/components/common/AnchorLink/anchorLink.d.ts +6 -0
- package/lib/components/common/LoginDialog/constants.js +4 -4
- package/lib/providers/layoutDimensions/constants.d.ts +2 -0
- package/lib/providers/layoutDimensions/constants.js +4 -0
- package/lib/providers/layoutDimensions/context.d.ts +2 -0
- package/lib/providers/layoutDimensions/context.js +7 -0
- package/lib/providers/layoutDimensions/hook.d.ts +2 -0
- package/lib/providers/layoutDimensions/hook.js +5 -0
- package/lib/providers/layoutDimensions/provider.d.ts +2 -0
- package/lib/providers/layoutDimensions/provider.js +14 -0
- package/lib/providers/layoutDimensions/types.d.ts +14 -0
- package/lib/providers/layoutDimensions/types.js +1 -0
- package/lib/styles/common/mui/tab.d.ts +7 -0
- package/lib/styles/common/mui/tab.js +9 -0
- package/lib/styles/common/mui/tabs.d.ts +9 -0
- package/lib/styles/common/mui/tabs.js +11 -0
- package/lib/styles/common/mui/typography.d.ts +8 -2
- package/lib/styles/common/mui/typography.js +8 -2
- package/package.json +1 -1
- package/src/common/selectors.ts +6 -3
- package/src/components/DataDictionary/components/Entities/constants.ts +3 -1
- package/src/components/DataDictionary/components/Entities/entities.tsx +2 -2
- package/src/components/DataDictionary/components/Entities/types.ts +2 -0
- package/src/components/DataDictionary/components/Entity/entity.styles.ts +12 -0
- package/src/components/DataDictionary/components/Entity/entity.tsx +17 -7
- package/src/components/DataDictionary/components/Entity/types.ts +2 -0
- package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.ts +22 -0
- package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.tsx +10 -0
- package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/types.ts +6 -0
- package/src/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.styles.ts +31 -0
- package/src/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.tsx +14 -0
- package/src/components/DataDictionary/components/Layout/components/OutlineLayout/types.ts +6 -0
- package/src/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.styles.ts +18 -0
- package/src/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.tsx +10 -0
- package/src/components/DataDictionary/components/Layout/components/TitleLayout/types.ts +6 -0
- package/src/components/DataDictionary/components/Layout/constants.ts +5 -0
- package/src/components/DataDictionary/components/Outline/components/ContentsTab/constants.ts +7 -0
- package/src/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.styles.ts +8 -0
- package/src/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.tsx +7 -0
- package/src/components/DataDictionary/components/Outline/outline.styles.ts +24 -0
- package/src/components/DataDictionary/components/Outline/outline.tsx +11 -0
- package/src/components/DataDictionary/components/Outline/types.ts +6 -0
- package/src/components/DataDictionary/components/Outline/utils.ts +18 -0
- package/src/components/DataDictionary/components/Table/components/BasicCell/basicCell.tsx +6 -2
- package/src/components/DataDictionary/components/Title/title.styles.ts +18 -0
- package/src/components/DataDictionary/components/Title/title.tsx +8 -0
- package/src/components/DataDictionary/dataDictionary.styles.ts +17 -3
- package/src/components/DataDictionary/dataDictionary.tsx +26 -4
- package/src/components/DataDictionary/hooks/UseDataDictionary/hook.ts +2 -1
- package/src/components/DataDictionary/hooks/UseLayoutSpacing/hook.ts +12 -0
- package/src/components/DataDictionary/hooks/UseLayoutSpacing/types.ts +8 -0
- package/src/components/DataDictionary/types.ts +10 -0
- package/src/components/Error/error.tsx +3 -5
- package/src/components/Filter/components/SearchAllFilters/searchAllFilters.tsx +3 -3
- package/src/components/Index/index.tsx +3 -4
- package/src/components/Layout/components/ContentLayout/contentLayout.tsx +7 -9
- package/src/components/Layout/components/Footer/footer.styles.ts +1 -0
- package/src/components/Layout/components/Footer/footer.tsx +5 -0
- package/src/components/Layout/components/Header/header.tsx +9 -3
- package/src/components/Layout/components/Main/main.tsx +3 -4
- package/src/components/Layout/components/Outline/components/ContentsTab/contentsTab.styles.ts +2 -2
- package/src/components/Layout/components/Outline/components/ContentsTab/contentsTab.tsx +8 -11
- package/src/components/Layout/components/Outline/components/ContentsTab/types.ts +8 -0
- package/src/components/Layout/components/Outline/hooks/UseHash/hook.ts +17 -0
- package/src/components/Layout/components/Outline/hooks/UseHash/types.ts +3 -0
- package/src/components/Layout/components/Outline/hooks/UseTabs/constants.ts +3 -0
- package/src/components/Layout/components/Outline/hooks/UseTabs/hook.ts +32 -0
- package/src/components/Layout/components/Outline/hooks/UseTabs/utils.ts +18 -0
- package/src/components/Layout/components/Outline/outline.styles.ts +2 -2
- package/src/components/Layout/components/Outline/outline.tsx +22 -59
- package/src/components/Layout/components/Outline/types.ts +16 -0
- package/src/components/Layout/components/Sidebar/components/SidebarPositioner/sidebarPositioner.tsx +7 -6
- package/src/components/Login/components/Section/components/Warning/warning.tsx +3 -4
- package/src/components/Table/components/TableCell/components/RowPositionCell/constants.ts +2 -2
- package/src/components/common/AnchorLink/anchorLink.tsx +7 -0
- package/src/components/common/LoginDialog/constants.ts +4 -4
- package/src/providers/layoutDimensions/constants.ts +6 -0
- package/src/providers/layoutDimensions/context.tsx +10 -0
- package/src/providers/layoutDimensions/hook.ts +7 -0
- package/src/providers/layoutDimensions/provider.tsx +29 -0
- package/src/providers/layoutDimensions/types.ts +17 -0
- package/src/styles/common/mui/tab.ts +16 -0
- package/src/styles/common/mui/tabs.ts +20 -0
- package/src/styles/common/mui/typography.ts +14 -2
- package/lib/components/Layout/components/Header/hooks/useMeasureHeader.d.ts +0 -5
- package/lib/components/Layout/components/Header/hooks/useMeasureHeader.js +0 -19
- package/lib/components/Layout/components/Outline/common/constants.d.ts +0 -2
- package/lib/hooks/useLayoutState.d.ts +0 -6
- package/lib/hooks/useLayoutState.js +0 -9
- package/lib/providers/layoutState.d.ts +0 -40
- package/lib/providers/layoutState.js +0 -47
- package/src/components/Layout/components/Header/hooks/useMeasureHeader.ts +0 -28
- package/src/components/Layout/components/Outline/common/constants.ts +0 -3
- package/src/hooks/useLayoutState.ts +0 -13
- package/src/providers/layoutState.tsx +0 -94
- /package/lib/components/Layout/components/Outline/{common → hooks/UseTabs}/constants.js +0 -0
|
@@ -2,8 +2,8 @@ import { Divider, Typography } from "@mui/material";
|
|
|
2
2
|
import Link from "next/link";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import { useExploreState } from "../../hooks/useExploreState";
|
|
5
|
-
import { useLayoutState } from "../../hooks/useLayoutState";
|
|
6
5
|
import { ExploreActionKind } from "../../providers/exploreState";
|
|
6
|
+
import { useLayoutDimensions } from "../../providers/layoutDimensions/hook";
|
|
7
7
|
import { ButtonPrimary } from "../common/Button/components/ButtonPrimary/buttonPrimary";
|
|
8
8
|
import { AlertIcon } from "../common/CustomIcon/components/AlertIcon/alertIcon";
|
|
9
9
|
import { Grid } from "../common/Grid/grid";
|
|
@@ -17,7 +17,7 @@ const ErrorMessage = ({ detail, title, }) => (React.createElement(Content, null,
|
|
|
17
17
|
React.createElement(ErrorCode, null, detail))));
|
|
18
18
|
export const Error = ({ errorMessage, onReset, requestUrlMessage, rootPath, }) => {
|
|
19
19
|
const { exploreDispatch } = useExploreState();
|
|
20
|
-
const {
|
|
20
|
+
const { dimensions } = useLayoutDimensions();
|
|
21
21
|
const handleToHomePageClicked = () => {
|
|
22
22
|
onReset?.();
|
|
23
23
|
exploreDispatch({
|
|
@@ -25,7 +25,7 @@ export const Error = ({ errorMessage, onReset, requestUrlMessage, rootPath, }) =
|
|
|
25
25
|
type: ExploreActionKind.ResetState,
|
|
26
26
|
});
|
|
27
27
|
};
|
|
28
|
-
return (React.createElement(ErrorLayout, { offset:
|
|
28
|
+
return (React.createElement(ErrorLayout, { offset: dimensions.header.height },
|
|
29
29
|
React.createElement(CustomError, null,
|
|
30
30
|
React.createElement(ErrorSection, null,
|
|
31
31
|
React.createElement(StatusIcon, { priority: PRIORITY.HIGH, StatusIcon: AlertIcon }),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { createContext, useContext, useEffect, useRef, useState, } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { SELECTOR } from "../../../../common/selectors";
|
|
3
3
|
import { BREAKPOINT_FN_NAME, useBreakpointHelper, } from "../../../../hooks/useBreakpointHelper";
|
|
4
4
|
import { DESKTOP_SM } from "../../../../theme/common/breakpoints";
|
|
5
5
|
import { SearchCloseButton } from "../SearchAllFiltersSearch/components/SearchCloseButton/searchCloseButton";
|
|
@@ -35,8 +35,8 @@ export const SearchAllFilters = ({ categoryViews, drawerOpen = false, onFilter,
|
|
|
35
35
|
const handleBackgroundScroll = (overflowStyle) => {
|
|
36
36
|
if (desktopSmUp) {
|
|
37
37
|
setElementsOverflowStyle([
|
|
38
|
-
document.querySelector(BODY),
|
|
39
|
-
document.getElementById(SIDEBAR_POSITIONER),
|
|
38
|
+
document.querySelector(SELECTOR.BODY),
|
|
39
|
+
document.getElementById(SELECTOR.SIDEBAR_POSITIONER),
|
|
40
40
|
], overflowStyle);
|
|
41
41
|
}
|
|
42
42
|
};
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { useLayoutDimensions } from "../../providers/layoutDimensions/hook";
|
|
3
3
|
import { Hero } from "./components/Hero/hero";
|
|
4
4
|
import { Index as IndexLayout } from "./index.styles";
|
|
5
5
|
export const Index = ({ className, List, ListHero, SideBarButton, SubTitleHero, Summaries, Tabs, title, }) => {
|
|
6
|
-
const {
|
|
7
|
-
|
|
8
|
-
return (React.createElement(IndexLayout, { className: className, marginTop: headerHeight },
|
|
6
|
+
const { dimensions } = useLayoutDimensions();
|
|
7
|
+
return (React.createElement(IndexLayout, { className: className, marginTop: dimensions.header.height },
|
|
9
8
|
React.createElement(Hero, { SideBarButton: SideBarButton, Summaries: Summaries, title: title }),
|
|
10
9
|
SubTitleHero,
|
|
11
10
|
Tabs,
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { useRouter } from "next/router";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import {
|
|
3
|
+
import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
|
|
4
4
|
import { Content, ContentGrid, ContentLayout as Layout, Navigation, NavigationGrid, Outline, OutlineGrid, Positioner, } from "./contentLayout.styles";
|
|
5
5
|
export const ContentLayout = ({ className, content, layoutStyle, navigation, outline, }) => {
|
|
6
6
|
const { asPath } = useRouter();
|
|
7
|
-
const {
|
|
7
|
+
const { dimensions } = useLayoutDimensions();
|
|
8
8
|
return (React.createElement(Layout, { className: className, hasNavigation: Boolean(navigation), panelColor: layoutStyle?.content },
|
|
9
|
-
navigation && (React.createElement(NavigationGrid, { headerHeight:
|
|
10
|
-
React.createElement(Positioner, { headerHeight:
|
|
9
|
+
navigation && (React.createElement(NavigationGrid, { headerHeight: dimensions.header.height, panelColor: layoutStyle?.navigation },
|
|
10
|
+
React.createElement(Positioner, { headerHeight: dimensions.header.height },
|
|
11
11
|
React.createElement(Navigation, null, navigation)))),
|
|
12
|
-
React.createElement(ContentGrid, { headerHeight:
|
|
12
|
+
React.createElement(ContentGrid, { headerHeight: dimensions.header.height, panelColor: layoutStyle?.content },
|
|
13
13
|
React.createElement(Content, null, content)),
|
|
14
|
-
outline && (React.createElement(OutlineGrid, { key: getOutlineKey(asPath), headerHeight:
|
|
15
|
-
React.createElement(Positioner, { headerHeight:
|
|
14
|
+
outline && (React.createElement(OutlineGrid, { key: getOutlineKey(asPath), headerHeight: dimensions.header.height, panelColor: layoutStyle?.outline },
|
|
15
|
+
React.createElement(Positioner, { headerHeight: dimensions.header.height },
|
|
16
16
|
React.createElement(Outline, null, outline))))));
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { Toolbar } from "@mui/material";
|
|
2
2
|
import React from "react";
|
|
3
|
+
import { SELECTOR } from "../../../../common/selectors";
|
|
4
|
+
import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
|
|
3
5
|
import { ANCHOR_TARGET } from "../../../Links/common/entities";
|
|
4
6
|
import { isNodeBoolean } from "../../../utils";
|
|
5
7
|
import { VersionInfo } from "./components/VersionInfo/versionInfo";
|
|
6
8
|
import { AppBar, Link, Links, Socials } from "./footer.styles";
|
|
7
9
|
export const Footer = ({ Branding, className, navLinks, socials, versionInfo, }) => {
|
|
8
|
-
|
|
10
|
+
const { footerRef } = useLayoutDimensions();
|
|
11
|
+
return (React.createElement(AppBar, { className: className, color: "inherit", component: "footer", id: SELECTOR.FOOTER, ref: footerRef, variant: "footer" },
|
|
9
12
|
React.createElement(Toolbar, { variant: "dense" },
|
|
10
13
|
Branding,
|
|
11
14
|
(navLinks || socials || versionInfo) && (React.createElement(Links, null,
|
|
@@ -7,6 +7,7 @@ import { Socials as DXSocials } from "../../../common/Socials/socials";
|
|
|
7
7
|
import { Link as DXLink } from "../../../Links/components/Link/link";
|
|
8
8
|
export const AppBar = styled(MAppBar) `
|
|
9
9
|
padding: 16px 0;
|
|
10
|
+
z-index: 1; /* required for outline or navigation overflow */
|
|
10
11
|
|
|
11
12
|
.MuiToolbar-root {
|
|
12
13
|
align-items: flex-start;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Fade, Toolbar } from "@mui/material";
|
|
2
2
|
import { usePathname } from "next/navigation";
|
|
3
3
|
import React from "react";
|
|
4
|
+
import { SELECTOR } from "../../../../common/selectors";
|
|
5
|
+
import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
|
|
4
6
|
import { APP_BAR_PROPS, FADE_TRANSITION_PROPS, TOOLBAR_PROPS, } from "./common/constants";
|
|
5
7
|
import { Announcements } from "./components/Announcements/announcements";
|
|
6
8
|
import { Actions } from "./components/Content/components/Actions/actions";
|
|
@@ -15,12 +17,11 @@ import { Socials } from "./components/Content/components/Socials/socials.styles"
|
|
|
15
17
|
import { AppBar, Center, Left, Right } from "./header.styles";
|
|
16
18
|
import { useHeaderNavigation } from "./hooks/useHeaderNavigation";
|
|
17
19
|
import { useHeaderVisibility } from "./hooks/useHeaderVisibility";
|
|
18
|
-
import { useMeasureHeader } from "./hooks/useMeasureHeader";
|
|
19
20
|
import { useMenu } from "./hooks/useMenu";
|
|
20
21
|
export const Header = ({ ...headerProps }) => {
|
|
21
22
|
const { navigation } = useHeaderNavigation(headerProps);
|
|
22
23
|
const { isIn } = useHeaderVisibility({ ...headerProps, navigation });
|
|
23
|
-
const { headerRef } =
|
|
24
|
+
const { headerRef } = useLayoutDimensions();
|
|
24
25
|
const { onClose, onOpen, open } = useMenu();
|
|
25
26
|
const pathname = usePathname() ?? "";
|
|
26
27
|
const { actions, announcements, authenticationEnabled, className, logo, searchEnabled, searchURL, slogan, socialMedia, } = headerProps;
|
|
@@ -29,7 +30,7 @@ export const Header = ({ ...headerProps }) => {
|
|
|
29
30
|
headerProps: { ...headerProps, navigation },
|
|
30
31
|
pathname,
|
|
31
32
|
};
|
|
32
|
-
return (React.createElement(AppBar, { ...APP_BAR_PROPS,
|
|
33
|
+
return (React.createElement(AppBar, { ...APP_BAR_PROPS, className: className, id: SELECTOR.HEADER, ref: headerRef },
|
|
33
34
|
React.createElement(Announcements, { announcements: announcements }),
|
|
34
35
|
React.createElement(Toolbar, { ...TOOLBAR_PROPS },
|
|
35
36
|
React.createElement(Fade, { ...FADE_TRANSITION_PROPS, in: isIn.isLeftGroupIn },
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
|
|
3
3
|
import { MainWithOffset } from "./main.styles";
|
|
4
4
|
export const Main = ({ children, className }) => {
|
|
5
|
-
const {
|
|
6
|
-
|
|
7
|
-
return (React.createElement(MainWithOffset, { className: className, offset: headerHeight }, children));
|
|
5
|
+
const { dimensions } = useLayoutDimensions();
|
|
6
|
+
return (React.createElement(MainWithOffset, { className: className, offset: dimensions.header.height }, children));
|
|
8
7
|
};
|
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export interface ContentsTabProps extends Omit<MTabProps, "value"> {
|
|
3
|
-
className?: string;
|
|
4
|
-
value: string;
|
|
5
|
-
}
|
|
1
|
+
import { ContentsTabProps } from "./types";
|
|
6
2
|
export declare const ContentsTab: ({ className, value, ...props }: ContentsTabProps) => JSX.Element;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { FONT_SIZE } from "../../../../../../styles/common/mui/icon";
|
|
3
|
+
import { TAB_PROPS } from "../../../../../../styles/common/mui/tab";
|
|
2
4
|
import { Segment } from "../../../../../common/CustomIcon/components/Segment/segment";
|
|
3
|
-
import {
|
|
4
|
-
export const ContentsTab = ({ className, value, ...props /*
|
|
5
|
-
return (React.createElement(
|
|
5
|
+
import { StyledTab } from "./contentsTab.styles";
|
|
6
|
+
export const ContentsTab = ({ className, value, ...props /* MuiTabProps. */ }) => {
|
|
7
|
+
return (React.createElement(StyledTab, { className: className, label: "Contents", icon: React.createElement(Segment, { fontSize: FONT_SIZE.SMALL }), iconPosition: TAB_PROPS.ICON_POSITION.START, value: value, ...props }));
|
|
6
8
|
};
|
package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.styles.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const StyledTab: import("@emotion/styled").StyledComponent<import("@mui/material").TabOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
2
2
|
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
3
3
|
}, "label" | "style" | "className" | "classes" | "tabIndex" | "children" | "sx" | "disabled" | "value" | "action" | "icon" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "wrapped" | "iconPosition"> & {
|
|
4
4
|
theme?: import("@emotion/react").Theme;
|
package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.styles.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import styled from "@emotion/styled";
|
|
2
|
-
import { Tab
|
|
2
|
+
import { Tab } from "@mui/material";
|
|
3
3
|
import { inkLight } from "../../../../../../styles/common/mixins/colors";
|
|
4
4
|
import { textUppercase500 } from "../../../../../../styles/common/mixins/fonts";
|
|
5
5
|
import { tab } from "../../outline.styles";
|
|
6
|
-
export const
|
|
6
|
+
export const StyledTab = styled(Tab) `
|
|
7
7
|
${tab};
|
|
8
8
|
|
|
9
9
|
&& {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { UseHash } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Hook to get the current URL hash without the leading '#' character.
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Extracts the hash from window.location.hash and removes the leading '#'.
|
|
7
|
+
* Returns empty string when running in SSR environment.
|
|
8
|
+
*
|
|
9
|
+
* @returns Object containing the hash without leading '#', or empty string if SSR.
|
|
10
|
+
*/
|
|
11
|
+
export declare function useHash(): UseHash;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { isSSR } from "../../../../../../utils/ssr";
|
|
2
|
+
/**
|
|
3
|
+
* Hook to get the current URL hash without the leading '#' character.
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Extracts the hash from window.location.hash and removes the leading '#'.
|
|
7
|
+
* Returns empty string when running in SSR environment.
|
|
8
|
+
*
|
|
9
|
+
* @returns Object containing the hash without leading '#', or empty string if SSR.
|
|
10
|
+
*/
|
|
11
|
+
export function useHash() {
|
|
12
|
+
if (isSSR())
|
|
13
|
+
return { hash: "" };
|
|
14
|
+
const { hash } = window.location;
|
|
15
|
+
return { hash: hash.replace(/^#/, "") };
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import Router from "next/router";
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
import { TABS_PROPS } from "../../../../../../styles/common/mui/tabs";
|
|
4
|
+
import { useHash } from "../UseHash/hook";
|
|
5
|
+
import { DEFAULT_TAB_VALUE } from "./constants";
|
|
6
|
+
import { getNextValue } from "./utils";
|
|
7
|
+
export function useTabs(outline) {
|
|
8
|
+
const [value, setValue] = useState(DEFAULT_TAB_VALUE);
|
|
9
|
+
const { hash } = useHash();
|
|
10
|
+
const onChange = useCallback((_event, hash) => {
|
|
11
|
+
Router.push({ hash });
|
|
12
|
+
}, []);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
setValue(getNextValue(hash, outline));
|
|
15
|
+
}, [hash, outline]);
|
|
16
|
+
return {
|
|
17
|
+
indicatorColor: value
|
|
18
|
+
? TABS_PROPS.INDICATOR_COLOR.PRIMARY
|
|
19
|
+
: TABS_PROPS.INDICATOR_COLOR.TRANSPARENT,
|
|
20
|
+
onChange,
|
|
21
|
+
orientation: TABS_PROPS.ORIENTATION.VERTICAL,
|
|
22
|
+
value,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TabsProps } from "@mui/material";
|
|
2
|
+
import { OutlineItem } from "../../types";
|
|
3
|
+
/**
|
|
4
|
+
* Returns the tab value for navigation.
|
|
5
|
+
* @param hash - The current hash from the URL.
|
|
6
|
+
* @param outlineItems - Outline items.
|
|
7
|
+
* @returns The item's hash if found and enabled, otherwise returns the default tab value.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getNextValue(hash: string, outlineItems: OutlineItem[]): TabsProps["value"];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DEFAULT_TAB_VALUE } from "./constants";
|
|
2
|
+
/**
|
|
3
|
+
* Returns the tab value for navigation.
|
|
4
|
+
* @param hash - The current hash from the URL.
|
|
5
|
+
* @param outlineItems - Outline items.
|
|
6
|
+
* @returns The item's hash if found and enabled, otherwise returns the default tab value.
|
|
7
|
+
*/
|
|
8
|
+
export function getNextValue(hash, outlineItems) {
|
|
9
|
+
const item = outlineItems.find((item) => item.hash === hash);
|
|
10
|
+
if (!item || item.disabled)
|
|
11
|
+
return DEFAULT_TAB_VALUE;
|
|
12
|
+
return item.hash;
|
|
13
|
+
}
|
|
@@ -1,13 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export interface OutlineItem {
|
|
4
|
-
depth: number;
|
|
5
|
-
hash: string;
|
|
6
|
-
value: string;
|
|
7
|
-
}
|
|
8
|
-
export interface OutlineProps {
|
|
9
|
-
className?: string;
|
|
10
|
-
Contents: ElementType<ContentsTabProps>;
|
|
11
|
-
outline: OutlineItem[];
|
|
12
|
-
}
|
|
13
|
-
export declare const Outline: ({ className, Contents, outline, ...props }: OutlineProps) => JSX.Element;
|
|
1
|
+
import { OutlineProps } from "./types";
|
|
2
|
+
export declare const Outline: ({ className, Contents, outline, ...props }: OutlineProps) => JSX.Element | null;
|
|
@@ -1,34 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
export const Outline = ({ className, Contents, outline, ...props /*
|
|
6
|
-
const {
|
|
7
|
-
|
|
8
|
-
// Callback fired when selected tab value changes.
|
|
9
|
-
const handleChange = (_event, tabValue) => {
|
|
10
|
-
push(`#${tabValue}`);
|
|
11
|
-
};
|
|
12
|
-
// Update active tab when path changes.
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
setActiveTab(getActiveTab(outline, asPath));
|
|
15
|
-
}, [asPath, outline]);
|
|
16
|
-
return (React.createElement(Tabs, { className: className, indicatorColor: activeTab ? "primary" : "transparent", onChange: handleChange, orientation: "vertical", value: activeTab, ...props },
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { DEFAULT_TAB_VALUE } from "./hooks/UseTabs/constants";
|
|
3
|
+
import { useTabs } from "./hooks/UseTabs/hook";
|
|
4
|
+
import { StyledTab, StyledTabs } from "./outline.styles";
|
|
5
|
+
export const Outline = ({ className, Contents, outline, ...props /* MuiTabsProps */ }) => {
|
|
6
|
+
const { indicatorColor, onChange, orientation, value } = useTabs(outline);
|
|
7
|
+
return (React.createElement(StyledTabs, { className: className, indicatorColor: indicatorColor, onChange: onChange, orientation: orientation, value: value, ...props },
|
|
17
8
|
React.createElement(Contents, { value: DEFAULT_TAB_VALUE }),
|
|
18
|
-
outline.map(({ depth, hash, value }) => (React.createElement(
|
|
9
|
+
outline.map(({ depth, disabled, hash, value }) => (React.createElement(StyledTab, { depth: depth, disabled: disabled, key: hash, label: value, value: hash })))));
|
|
19
10
|
};
|
|
20
|
-
/**
|
|
21
|
-
* Initializes active tab.
|
|
22
|
-
* @param outline - Outline items.
|
|
23
|
-
* @param asPath - Current path.
|
|
24
|
-
* @returns active tab.
|
|
25
|
-
*/
|
|
26
|
-
function getActiveTab(outline, asPath) {
|
|
27
|
-
if (asPath.includes("#")) {
|
|
28
|
-
const hashLink = asPath.split("#")[1];
|
|
29
|
-
if (outline.some(({ hash }) => hash === hashLink)) {
|
|
30
|
-
return hashLink;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return DEFAULT_TAB_VALUE;
|
|
34
|
-
}
|
|
@@ -3,12 +3,12 @@ interface Props extends TabProps {
|
|
|
3
3
|
depth: number;
|
|
4
4
|
}
|
|
5
5
|
export declare const tab: import("@emotion/react").SerializedStyles;
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const StyledTabs: import("@emotion/styled").StyledComponent<import("@mui/material").TabsOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
7
7
|
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
8
8
|
}, "style" | "className" | "classes" | "aria-label" | "aria-labelledby" | "children" | "onChange" | "sx" | "variant" | "orientation" | "value" | "action" | "slotProps" | "slots" | "allowScrollButtonsMobile" | "centered" | "indicatorColor" | "ScrollButtonComponent" | "scrollButtons" | "selectionFollowsFocus" | "TabIndicatorProps" | "TabScrollButtonProps" | "textColor" | "visibleScrollbar"> & {
|
|
9
9
|
theme?: import("@emotion/react").Theme;
|
|
10
10
|
}, {}, {}>;
|
|
11
|
-
export declare const
|
|
11
|
+
export declare const StyledTab: import("@emotion/styled").StyledComponent<import("@mui/material").TabOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
12
12
|
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
13
13
|
}, "label" | "style" | "className" | "classes" | "tabIndex" | "children" | "sx" | "disabled" | "value" | "action" | "icon" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "wrapped" | "iconPosition"> & {
|
|
14
14
|
theme?: import("@emotion/react").Theme;
|
|
@@ -15,7 +15,7 @@ export const tab = css `
|
|
|
15
15
|
text-decoration: none;
|
|
16
16
|
}
|
|
17
17
|
`;
|
|
18
|
-
export const
|
|
18
|
+
export const StyledTabs = styled(MTabs) `
|
|
19
19
|
align-self: flex-start;
|
|
20
20
|
box-shadow: inset 1px 0 ${smokeMain};
|
|
21
21
|
margin: 0;
|
|
@@ -36,7 +36,7 @@ export const Tabs = styled(MTabs) `
|
|
|
36
36
|
width: 3px;
|
|
37
37
|
}
|
|
38
38
|
`;
|
|
39
|
-
export const
|
|
39
|
+
export const StyledTab = styled(MTab, {
|
|
40
40
|
shouldForwardProp: (prop) => prop !== "depth",
|
|
41
41
|
}) `
|
|
42
42
|
${tab};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TabsProps } from "@mui/material";
|
|
2
|
+
import { ElementType } from "react";
|
|
3
|
+
import { BaseComponentProps } from "../../../types";
|
|
4
|
+
import { ContentsTabProps } from "./components/ContentsTab/types";
|
|
5
|
+
export interface OutlineItem {
|
|
6
|
+
depth: number;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
hash: string;
|
|
9
|
+
value: string;
|
|
10
|
+
}
|
|
11
|
+
export interface OutlineProps extends BaseComponentProps, TabsProps {
|
|
12
|
+
Contents: ElementType<ContentsTabProps>;
|
|
13
|
+
outline: OutlineItem[];
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/components/Layout/components/Sidebar/components/SidebarPositioner/sidebarPositioner.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { SELECTOR } from "../../../../../../common/selectors";
|
|
3
|
+
import { useLayoutDimensions } from "../../../../../../providers/layoutDimensions/hook";
|
|
4
4
|
import { SidebarPositioner as Positioner } from "./sidebarPositioner.styles";
|
|
5
5
|
export const SidebarPositioner = ({ children, }) => {
|
|
6
|
-
const {
|
|
7
|
-
return (React.createElement(Positioner, { headerHeight:
|
|
6
|
+
const { dimensions } = useLayoutDimensions();
|
|
7
|
+
return (React.createElement(Positioner, { headerHeight: dimensions.header.height, id: SELECTOR.SIDEBAR_POSITIONER }, children));
|
|
8
8
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Typography } from "@mui/material";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import {
|
|
4
|
-
import { TEXT_BODY_SMALL_400 } from "../../../../../../theme/common/typography";
|
|
3
|
+
import { TYPOGRAPHY_PROPS } from "../../../../../../styles/common/mui/typography";
|
|
5
4
|
export const Warning = ({ children, className, ...props /* Mui TypographyOwnProps */ }) => {
|
|
6
5
|
if (!children)
|
|
7
6
|
return null;
|
|
8
|
-
return (React.createElement(Typography, { className: className, color: COLOR.INK_LIGHT, mt: 6, variant: TEXT_BODY_SMALL_400, ...props }, children));
|
|
7
|
+
return (React.createElement(Typography, { className: className, color: TYPOGRAPHY_PROPS.COLOR.INK_LIGHT, mt: 6, variant: TYPOGRAPHY_PROPS.VARIANT.TEXT_BODY_SMALL_400, ...props }, children));
|
|
9
8
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TYPOGRAPHY_PROPS as MUI_TYPOGRAPHY_PROPS } from "../../../../../../styles/common/mui/typography";
|
|
2
2
|
export const TYPOGRAPHY_PROPS = {
|
|
3
3
|
sx: { marginRight: -2, paddingLeft: 2 },
|
|
4
|
-
variant: VARIANT.INHERIT,
|
|
4
|
+
variant: MUI_TYPOGRAPHY_PROPS.VARIANT.INHERIT,
|
|
5
5
|
};
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An anchor link component that provides deep linking functionality.
|
|
3
|
+
* @important The parent element must have `position: relative` CSS property
|
|
4
|
+
* to ensure proper positioning of the anchor link icon, and hover pseudo-class
|
|
5
|
+
* to change opacity of the icon.
|
|
6
|
+
*/
|
|
1
7
|
interface AnchorLinkProps {
|
|
2
8
|
anchorLink: string;
|
|
3
9
|
className?: string;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { FONT_SIZE } from "../../../styles/common/mui/icon";
|
|
2
|
-
import {
|
|
2
|
+
import { TYPOGRAPHY_PROPS } from "../../../styles/common/mui/typography";
|
|
3
3
|
export const DIALOG_CONTENT_TEXT_PROPS = {
|
|
4
|
-
color: COLOR.INK_LIGHT,
|
|
4
|
+
color: TYPOGRAPHY_PROPS.COLOR.INK_LIGHT,
|
|
5
5
|
component: "div",
|
|
6
|
-
variant: VARIANT.TEXT_BODY_400,
|
|
6
|
+
variant: TYPOGRAPHY_PROPS.VARIANT.TEXT_BODY_400,
|
|
7
7
|
};
|
|
8
8
|
export const DIALOG_PROPS = {
|
|
9
9
|
PaperProps: { elevation: 0 },
|
|
10
10
|
};
|
|
11
11
|
export const DIALOG_TITLE_PROPS = {
|
|
12
|
-
variant: VARIANT.TEXT_HEADING_SMALL,
|
|
12
|
+
variant: TYPOGRAPHY_PROPS.VARIANT.TEXT_HEADING_SMALL,
|
|
13
13
|
};
|
|
14
14
|
export const ICON_BUTTON_PROPS = {
|
|
15
15
|
color: "inkLight",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React, { useRef } from "react";
|
|
2
|
+
import { getBorderBoxSizeHeight, useResizeObserver, } from "../../hooks/useResizeObserver";
|
|
3
|
+
import { LayoutDimensionsContext } from "./context";
|
|
4
|
+
export const LayoutDimensionsProvider = ({ children, }) => {
|
|
5
|
+
const footerRef = useRef(null);
|
|
6
|
+
const headerRef = useRef(null);
|
|
7
|
+
const footerRect = useResizeObserver(footerRef, getBorderBoxSizeHeight);
|
|
8
|
+
const headerRect = useResizeObserver(headerRef, getBorderBoxSizeHeight);
|
|
9
|
+
const dimensions = {
|
|
10
|
+
footer: { height: footerRect?.height ?? 0 },
|
|
11
|
+
header: { height: headerRect?.height ?? 0 },
|
|
12
|
+
};
|
|
13
|
+
return (React.createElement(LayoutDimensionsContext.Provider, { value: { dimensions, footerRef, headerRef } }, children));
|
|
14
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactNode, RefObject } from "react";
|
|
2
|
+
import { ElementRect } from "../../hooks/useResizeObserver";
|
|
3
|
+
export interface LayoutDimensions {
|
|
4
|
+
footer: Pick<ElementRect, "height">;
|
|
5
|
+
header: Pick<ElementRect, "height">;
|
|
6
|
+
}
|
|
7
|
+
export interface LayoutDimensionsContextProps {
|
|
8
|
+
dimensions: LayoutDimensions;
|
|
9
|
+
footerRef: RefObject<HTMLElement> | null;
|
|
10
|
+
headerRef: RefObject<HTMLElement> | null;
|
|
11
|
+
}
|
|
12
|
+
export interface LayoutDimensionsProviderProps {
|
|
13
|
+
children: ReactNode | ReactNode[];
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TabsProps } from "@mui/material";
|
|
2
|
+
type TabsPropsOptions = {
|
|
3
|
+
INDICATOR_COLOR: typeof INDICATOR_COLOR;
|
|
4
|
+
ORIENTATION: typeof ORIENTATION;
|
|
5
|
+
};
|
|
6
|
+
declare const INDICATOR_COLOR: Record<string, TabsProps["indicatorColor"]>;
|
|
7
|
+
declare const ORIENTATION: Record<string, TabsProps["orientation"]>;
|
|
8
|
+
export declare const TABS_PROPS: TabsPropsOptions;
|
|
9
|
+
export {};
|