@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.
Files changed (192) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +28 -0
  3. package/lib/common/selectors.d.ts +6 -2
  4. package/lib/common/selectors.js +7 -2
  5. package/lib/components/DataDictionary/components/Entities/constants.d.ts +1 -0
  6. package/lib/components/DataDictionary/components/Entities/constants.js +2 -1
  7. package/lib/components/DataDictionary/components/Entities/entities.d.ts +1 -1
  8. package/lib/components/DataDictionary/components/Entities/entities.js +2 -2
  9. package/lib/components/DataDictionary/components/Entities/types.d.ts +2 -0
  10. package/lib/components/DataDictionary/components/Entity/entity.d.ts +1 -1
  11. package/lib/components/DataDictionary/components/Entity/entity.js +9 -4
  12. package/lib/components/DataDictionary/components/Entity/entity.styles.d.ts +2 -0
  13. package/lib/components/DataDictionary/components/Entity/entity.styles.js +10 -0
  14. package/lib/components/DataDictionary/components/Entity/types.d.ts +2 -0
  15. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.d.ts +2 -0
  16. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.js +5 -0
  17. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.d.ts +5 -0
  18. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.js +19 -0
  19. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/types.d.ts +5 -0
  20. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/types.js +1 -0
  21. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.d.ts +2 -0
  22. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.js +6 -0
  23. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.styles.d.ts +9 -0
  24. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.styles.js +26 -0
  25. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/types.d.ts +5 -0
  26. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/types.js +1 -0
  27. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.d.ts +2 -0
  28. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.js +5 -0
  29. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.styles.d.ts +5 -0
  30. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.styles.js +16 -0
  31. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/types.d.ts +5 -0
  32. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/types.js +1 -0
  33. package/lib/components/DataDictionary/components/Layout/constants.d.ts +5 -0
  34. package/lib/components/DataDictionary/components/Layout/constants.js +5 -0
  35. package/lib/components/DataDictionary/components/Outline/components/ContentsTab/constants.d.ts +2 -0
  36. package/lib/components/DataDictionary/components/Outline/components/ContentsTab/constants.js +5 -0
  37. package/lib/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.d.ts +1 -0
  38. package/lib/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.js +6 -0
  39. package/lib/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.styles.d.ts +3 -0
  40. package/lib/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.styles.js +7 -0
  41. package/lib/components/DataDictionary/components/Outline/outline.d.ts +2 -0
  42. package/lib/components/DataDictionary/components/Outline/outline.js +6 -0
  43. package/lib/components/DataDictionary/components/Outline/outline.styles.d.ts +3 -0
  44. package/lib/components/DataDictionary/components/Outline/outline.styles.js +19 -0
  45. package/lib/components/DataDictionary/components/Outline/types.d.ts +5 -0
  46. package/lib/components/DataDictionary/components/Outline/types.js +1 -0
  47. package/lib/components/DataDictionary/components/Outline/utils.d.ts +8 -0
  48. package/lib/components/DataDictionary/components/Outline/utils.js +15 -0
  49. package/lib/components/DataDictionary/components/Table/components/BasicCell/basicCell.js +2 -2
  50. package/lib/components/DataDictionary/components/Title/title.d.ts +2 -0
  51. package/lib/components/DataDictionary/components/Title/title.js +3 -0
  52. package/lib/components/DataDictionary/components/Title/title.styles.d.ts +3 -0
  53. package/lib/components/DataDictionary/components/Title/title.styles.js +17 -0
  54. package/lib/components/DataDictionary/dataDictionary.d.ts +2 -2
  55. package/lib/components/DataDictionary/dataDictionary.js +17 -3
  56. package/lib/components/DataDictionary/dataDictionary.styles.d.ts +5 -1
  57. package/lib/components/DataDictionary/dataDictionary.styles.js +16 -3
  58. package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.js +2 -1
  59. package/lib/components/DataDictionary/hooks/UseLayoutSpacing/hook.d.ts +2 -0
  60. package/lib/components/DataDictionary/hooks/UseLayoutSpacing/hook.js +10 -0
  61. package/lib/components/DataDictionary/hooks/UseLayoutSpacing/types.d.ts +7 -0
  62. package/lib/components/DataDictionary/hooks/UseLayoutSpacing/types.js +1 -0
  63. package/lib/components/DataDictionary/types.d.ts +9 -0
  64. package/lib/components/DataDictionary/types.js +1 -0
  65. package/lib/components/Error/error.js +3 -3
  66. package/lib/components/Filter/components/SearchAllFilters/searchAllFilters.js +3 -3
  67. package/lib/components/Index/index.js +3 -4
  68. package/lib/components/Layout/components/ContentLayout/contentLayout.js +7 -7
  69. package/lib/components/Layout/components/Footer/footer.js +4 -1
  70. package/lib/components/Layout/components/Footer/footer.styles.js +1 -0
  71. package/lib/components/Layout/components/Header/header.js +4 -3
  72. package/lib/components/Layout/components/Main/main.js +3 -4
  73. package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.d.ts +1 -5
  74. package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.js +5 -3
  75. package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.styles.d.ts +1 -1
  76. package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.styles.js +2 -2
  77. package/lib/components/Layout/components/Outline/components/ContentsTab/types.d.ts +5 -0
  78. package/lib/components/Layout/components/Outline/components/ContentsTab/types.js +1 -0
  79. package/lib/components/Layout/components/Outline/hooks/UseHash/hook.d.ts +11 -0
  80. package/lib/components/Layout/components/Outline/hooks/UseHash/hook.js +16 -0
  81. package/lib/components/Layout/components/Outline/hooks/UseHash/types.d.ts +3 -0
  82. package/lib/components/Layout/components/Outline/hooks/UseHash/types.js +1 -0
  83. package/lib/components/Layout/components/Outline/hooks/UseTabs/constants.d.ts +2 -0
  84. package/lib/components/Layout/components/Outline/hooks/UseTabs/hook.d.ts +3 -0
  85. package/lib/components/Layout/components/Outline/hooks/UseTabs/hook.js +24 -0
  86. package/lib/components/Layout/components/Outline/hooks/UseTabs/utils.d.ts +9 -0
  87. package/lib/components/Layout/components/Outline/hooks/UseTabs/utils.js +13 -0
  88. package/lib/components/Layout/components/Outline/outline.d.ts +2 -13
  89. package/lib/components/Layout/components/Outline/outline.js +8 -32
  90. package/lib/components/Layout/components/Outline/outline.styles.d.ts +2 -2
  91. package/lib/components/Layout/components/Outline/outline.styles.js +2 -2
  92. package/lib/components/Layout/components/Outline/types.d.ts +14 -0
  93. package/lib/components/Layout/components/Outline/types.js +1 -0
  94. package/lib/components/Layout/components/Sidebar/components/SidebarPositioner/sidebarPositioner.js +4 -4
  95. package/lib/components/Login/components/Section/components/Warning/warning.js +2 -3
  96. package/lib/components/Table/components/TableCell/components/RowPositionCell/constants.js +2 -2
  97. package/lib/components/common/AnchorLink/anchorLink.d.ts +6 -0
  98. package/lib/components/common/LoginDialog/constants.js +4 -4
  99. package/lib/providers/layoutDimensions/constants.d.ts +2 -0
  100. package/lib/providers/layoutDimensions/constants.js +4 -0
  101. package/lib/providers/layoutDimensions/context.d.ts +2 -0
  102. package/lib/providers/layoutDimensions/context.js +7 -0
  103. package/lib/providers/layoutDimensions/hook.d.ts +2 -0
  104. package/lib/providers/layoutDimensions/hook.js +5 -0
  105. package/lib/providers/layoutDimensions/provider.d.ts +2 -0
  106. package/lib/providers/layoutDimensions/provider.js +14 -0
  107. package/lib/providers/layoutDimensions/types.d.ts +14 -0
  108. package/lib/providers/layoutDimensions/types.js +1 -0
  109. package/lib/styles/common/mui/tab.d.ts +7 -0
  110. package/lib/styles/common/mui/tab.js +9 -0
  111. package/lib/styles/common/mui/tabs.d.ts +9 -0
  112. package/lib/styles/common/mui/tabs.js +11 -0
  113. package/lib/styles/common/mui/typography.d.ts +8 -2
  114. package/lib/styles/common/mui/typography.js +8 -2
  115. package/package.json +1 -1
  116. package/src/common/selectors.ts +6 -3
  117. package/src/components/DataDictionary/components/Entities/constants.ts +3 -1
  118. package/src/components/DataDictionary/components/Entities/entities.tsx +2 -2
  119. package/src/components/DataDictionary/components/Entities/types.ts +2 -0
  120. package/src/components/DataDictionary/components/Entity/entity.styles.ts +12 -0
  121. package/src/components/DataDictionary/components/Entity/entity.tsx +17 -7
  122. package/src/components/DataDictionary/components/Entity/types.ts +2 -0
  123. package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.ts +22 -0
  124. package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.tsx +10 -0
  125. package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/types.ts +6 -0
  126. package/src/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.styles.ts +31 -0
  127. package/src/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.tsx +14 -0
  128. package/src/components/DataDictionary/components/Layout/components/OutlineLayout/types.ts +6 -0
  129. package/src/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.styles.ts +18 -0
  130. package/src/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.tsx +10 -0
  131. package/src/components/DataDictionary/components/Layout/components/TitleLayout/types.ts +6 -0
  132. package/src/components/DataDictionary/components/Layout/constants.ts +5 -0
  133. package/src/components/DataDictionary/components/Outline/components/ContentsTab/constants.ts +7 -0
  134. package/src/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.styles.ts +8 -0
  135. package/src/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.tsx +7 -0
  136. package/src/components/DataDictionary/components/Outline/outline.styles.ts +24 -0
  137. package/src/components/DataDictionary/components/Outline/outline.tsx +11 -0
  138. package/src/components/DataDictionary/components/Outline/types.ts +6 -0
  139. package/src/components/DataDictionary/components/Outline/utils.ts +18 -0
  140. package/src/components/DataDictionary/components/Table/components/BasicCell/basicCell.tsx +6 -2
  141. package/src/components/DataDictionary/components/Title/title.styles.ts +18 -0
  142. package/src/components/DataDictionary/components/Title/title.tsx +8 -0
  143. package/src/components/DataDictionary/dataDictionary.styles.ts +17 -3
  144. package/src/components/DataDictionary/dataDictionary.tsx +26 -4
  145. package/src/components/DataDictionary/hooks/UseDataDictionary/hook.ts +2 -1
  146. package/src/components/DataDictionary/hooks/UseLayoutSpacing/hook.ts +12 -0
  147. package/src/components/DataDictionary/hooks/UseLayoutSpacing/types.ts +8 -0
  148. package/src/components/DataDictionary/types.ts +10 -0
  149. package/src/components/Error/error.tsx +3 -5
  150. package/src/components/Filter/components/SearchAllFilters/searchAllFilters.tsx +3 -3
  151. package/src/components/Index/index.tsx +3 -4
  152. package/src/components/Layout/components/ContentLayout/contentLayout.tsx +7 -9
  153. package/src/components/Layout/components/Footer/footer.styles.ts +1 -0
  154. package/src/components/Layout/components/Footer/footer.tsx +5 -0
  155. package/src/components/Layout/components/Header/header.tsx +9 -3
  156. package/src/components/Layout/components/Main/main.tsx +3 -4
  157. package/src/components/Layout/components/Outline/components/ContentsTab/contentsTab.styles.ts +2 -2
  158. package/src/components/Layout/components/Outline/components/ContentsTab/contentsTab.tsx +8 -11
  159. package/src/components/Layout/components/Outline/components/ContentsTab/types.ts +8 -0
  160. package/src/components/Layout/components/Outline/hooks/UseHash/hook.ts +17 -0
  161. package/src/components/Layout/components/Outline/hooks/UseHash/types.ts +3 -0
  162. package/src/components/Layout/components/Outline/hooks/UseTabs/constants.ts +3 -0
  163. package/src/components/Layout/components/Outline/hooks/UseTabs/hook.ts +32 -0
  164. package/src/components/Layout/components/Outline/hooks/UseTabs/utils.ts +18 -0
  165. package/src/components/Layout/components/Outline/outline.styles.ts +2 -2
  166. package/src/components/Layout/components/Outline/outline.tsx +22 -59
  167. package/src/components/Layout/components/Outline/types.ts +16 -0
  168. package/src/components/Layout/components/Sidebar/components/SidebarPositioner/sidebarPositioner.tsx +7 -6
  169. package/src/components/Login/components/Section/components/Warning/warning.tsx +3 -4
  170. package/src/components/Table/components/TableCell/components/RowPositionCell/constants.ts +2 -2
  171. package/src/components/common/AnchorLink/anchorLink.tsx +7 -0
  172. package/src/components/common/LoginDialog/constants.ts +4 -4
  173. package/src/providers/layoutDimensions/constants.ts +6 -0
  174. package/src/providers/layoutDimensions/context.tsx +10 -0
  175. package/src/providers/layoutDimensions/hook.ts +7 -0
  176. package/src/providers/layoutDimensions/provider.tsx +29 -0
  177. package/src/providers/layoutDimensions/types.ts +17 -0
  178. package/src/styles/common/mui/tab.ts +16 -0
  179. package/src/styles/common/mui/tabs.ts +20 -0
  180. package/src/styles/common/mui/typography.ts +14 -2
  181. package/lib/components/Layout/components/Header/hooks/useMeasureHeader.d.ts +0 -5
  182. package/lib/components/Layout/components/Header/hooks/useMeasureHeader.js +0 -19
  183. package/lib/components/Layout/components/Outline/common/constants.d.ts +0 -2
  184. package/lib/hooks/useLayoutState.d.ts +0 -6
  185. package/lib/hooks/useLayoutState.js +0 -9
  186. package/lib/providers/layoutState.d.ts +0 -40
  187. package/lib/providers/layoutState.js +0 -47
  188. package/src/components/Layout/components/Header/hooks/useMeasureHeader.ts +0 -28
  189. package/src/components/Layout/components/Outline/common/constants.ts +0 -3
  190. package/src/hooks/useLayoutState.ts +0 -13
  191. package/src/providers/layoutState.tsx +0 -94
  192. /package/lib/components/Layout/components/Outline/{common → hooks/UseTabs}/constants.js +0 -0
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "22.0.0"
2
+ ".": "23.0.0"
3
3
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## [23.0.0](https://github.com/DataBiosphere/findable-ui/compare/v22.0.0...v23.0.0) (2025-03-21)
4
+
5
+
6
+ ### ⚠ BREAKING CHANGES
7
+
8
+ * create data dictionary left-hand navigation component and add dictionary layout ([#337](https://github.com/DataBiosphere/findable-ui/issues/337)) (#338)
9
+ * layoutdimensions provider and remove layout state provider ([#348](https://github.com/DataBiosphere/findable-ui/issues/348)) (#349)
10
+ * refactor outline component with new hook handling state and disabled outline item ([#346](https://github.com/DataBiosphere/findable-ui/issues/346)) (#347)
11
+ * refactor selectors into an enum and add ids to header and footer ([#341](https://github.com/DataBiosphere/findable-ui/issues/341)) (#343)
12
+ * refactor typography constants ([#339](https://github.com/DataBiosphere/findable-ui/issues/339)) (#340)
13
+
14
+ ### Features
15
+
16
+ * create a new provider that returns header and footer dimensions ([#344](https://github.com/DataBiosphere/findable-ui/issues/344)) ([#345](https://github.com/DataBiosphere/findable-ui/issues/345)) ([7800842](https://github.com/DataBiosphere/findable-ui/commit/7800842b43b6e2edae926dcc26c842ccb592c407))
17
+ * create data dictionary left-hand navigation component and add dictionary layout ([#337](https://github.com/DataBiosphere/findable-ui/issues/337)) ([#338](https://github.com/DataBiosphere/findable-ui/issues/338)) ([94115b3](https://github.com/DataBiosphere/findable-ui/commit/94115b3a308f150bdeba9a9e374a9dcc510f3405))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * layoutdimensions provider and remove layout state provider ([#348](https://github.com/DataBiosphere/findable-ui/issues/348)) ([#349](https://github.com/DataBiosphere/findable-ui/issues/349)) ([77deafe](https://github.com/DataBiosphere/findable-ui/commit/77deafe915d5a6fe42667a404d2b1f062f67cabb))
23
+
24
+
25
+ ### Code Refactoring
26
+
27
+ * refactor outline component with new hook handling state and disabled outline item ([#346](https://github.com/DataBiosphere/findable-ui/issues/346)) ([#347](https://github.com/DataBiosphere/findable-ui/issues/347)) ([0d8fdba](https://github.com/DataBiosphere/findable-ui/commit/0d8fdba669c47e61d5e524274b237eed55998fd6))
28
+ * refactor selectors into an enum and add ids to header and footer ([#341](https://github.com/DataBiosphere/findable-ui/issues/341)) ([#343](https://github.com/DataBiosphere/findable-ui/issues/343)) ([71b7444](https://github.com/DataBiosphere/findable-ui/commit/71b74449330ce507f22939d7bdaf0f92af985de8))
29
+ * refactor typography constants ([#339](https://github.com/DataBiosphere/findable-ui/issues/339)) ([#340](https://github.com/DataBiosphere/findable-ui/issues/340)) ([a5632b5](https://github.com/DataBiosphere/findable-ui/commit/a5632b50d852323a0002eae7b0524378728ff081))
30
+
3
31
  ## [22.0.0](https://github.com/DataBiosphere/findable-ui/compare/v21.4.0...v22.0.0) (2025-03-14)
4
32
 
5
33
 
@@ -1,2 +1,6 @@
1
- export declare const BODY = "body";
2
- export declare const SIDEBAR_POSITIONER = "sidebar-positioner";
1
+ export declare enum SELECTOR {
2
+ BODY = "body",
3
+ FOOTER = "footer",
4
+ HEADER = "header",
5
+ SIDEBAR_POSITIONER = "sidebar-positioner"
6
+ }
@@ -1,2 +1,7 @@
1
- export const BODY = "body";
2
- export const SIDEBAR_POSITIONER = "sidebar-positioner";
1
+ export var SELECTOR;
2
+ (function (SELECTOR) {
3
+ SELECTOR["BODY"] = "body";
4
+ SELECTOR["FOOTER"] = "footer";
5
+ SELECTOR["HEADER"] = "header";
6
+ SELECTOR["SIDEBAR_POSITIONER"] = "sidebar-positioner";
7
+ })(SELECTOR || (SELECTOR = {}));
@@ -1,2 +1,3 @@
1
1
  import { Grid2Props } from "@mui/material";
2
+ export declare const ENTITIES_ROW_GAP = 8;
2
3
  export declare const GRID2_PROPS: Grid2Props;
@@ -1,6 +1,7 @@
1
+ export const ENTITIES_ROW_GAP = 8;
1
2
  export const GRID2_PROPS = {
2
3
  container: true,
3
4
  direction: "column",
4
5
  flexWrap: "nowrap",
5
- rowGap: 8,
6
+ rowGap: ENTITIES_ROW_GAP,
6
7
  };
@@ -1,2 +1,2 @@
1
1
  import { ClassesProps } from "./types";
2
- export declare const Entities: ({ classes }: ClassesProps) => JSX.Element;
2
+ export declare const Entities: ({ classes, spacing }: ClassesProps) => JSX.Element;
@@ -2,6 +2,6 @@ import { Grid2 } from "@mui/material";
2
2
  import React from "react";
3
3
  import { Entity } from "../Entity/entity";
4
4
  import { GRID2_PROPS } from "./constants";
5
- export const Entities = ({ classes }) => {
6
- return (React.createElement(Grid2, { ...GRID2_PROPS }, classes.map((classData) => (React.createElement(Entity, { key: classData.key, class: classData })))));
5
+ export const Entities = ({ classes, spacing }) => {
6
+ return (React.createElement(Grid2, { ...GRID2_PROPS }, classes.map((classData) => (React.createElement(Entity, { key: classData.key, class: classData, spacing: spacing })))));
7
7
  };
@@ -1,4 +1,6 @@
1
1
  import { Class } from "../../../../common/entities";
2
+ import { LayoutSpacing } from "../../hooks/UseLayoutSpacing/types";
2
3
  export interface ClassesProps {
3
4
  classes: Class[];
5
+ spacing?: LayoutSpacing;
4
6
  }
@@ -1,2 +1,2 @@
1
1
  import { EntityProps } from "./types";
2
- export declare const Entity: ({ class: classData }: EntityProps) => JSX.Element;
2
+ export declare const Entity: ({ class: classData, spacing, }: EntityProps) => JSX.Element;
@@ -1,14 +1,19 @@
1
1
  import { Grid2, Typography } from "@mui/material";
2
2
  import React from "react";
3
- import { COLOR, VARIANT } from "../../../../styles/common/mui/typography";
3
+ import { TYPOGRAPHY_PROPS } from "../../../../styles/common/mui/typography";
4
+ import { AnchorLink } from "../../../common/AnchorLink/anchorLink";
4
5
  import { useTable } from "../Table/hook";
5
6
  import { Table } from "../Table/table";
6
7
  import { GRID2_PROPS } from "./constants";
7
- export const Entity = ({ class: classData }) => {
8
+ import { StyledTypography } from "./entity.styles";
9
+ export const Entity = ({ class: classData, spacing, }) => {
8
10
  const table = useTable(classData.attributes);
9
11
  return (React.createElement(Grid2, { ...GRID2_PROPS, rowGap: 4 },
10
12
  React.createElement(Grid2, { ...GRID2_PROPS, rowGap: 1 },
11
- React.createElement(Typography, { component: "h3", variant: VARIANT.TEXT_HEADING_SMALL }, classData.label),
12
- React.createElement(Typography, { color: COLOR.INK_LIGHT, component: "div", variant: VARIANT.TEXT_BODY_400_2_LINES }, classData.description)),
13
+ React.createElement(StyledTypography, { component: "h3", id: classData.key, variant: TYPOGRAPHY_PROPS.VARIANT.TEXT_HEADING_SMALL, ...spacing },
14
+ classData.label,
15
+ " ",
16
+ React.createElement(AnchorLink, { anchorLink: classData.key })),
17
+ React.createElement(Typography, { color: TYPOGRAPHY_PROPS.COLOR.INK_LIGHT, component: "div", variant: TYPOGRAPHY_PROPS.VARIANT.TEXT_BODY_400_2_LINES }, classData.description)),
13
18
  React.createElement(Table, { table: table })));
14
19
  };
@@ -0,0 +1,2 @@
1
+ import { Typography } from "@mui/material";
2
+ export declare const StyledTypography: typeof Typography;
@@ -0,0 +1,10 @@
1
+ import styled from "@emotion/styled";
2
+ import { Typography } from "@mui/material";
3
+ import { ENTITIES_ROW_GAP } from "../Entities/constants";
4
+ export const StyledTypography = styled(Typography) `
5
+ scroll-margin-top: ${({ top = 0 }) => top + ENTITIES_ROW_GAP}px;
6
+
7
+ &:hover a {
8
+ opacity: 1;
9
+ }
10
+ `;
@@ -1,4 +1,6 @@
1
1
  import { Class } from "../../../../common/entities";
2
+ import { LayoutSpacing } from "../../hooks/UseLayoutSpacing/types";
2
3
  export interface EntityProps {
3
4
  class: Class;
5
+ spacing?: LayoutSpacing;
4
6
  }
@@ -0,0 +1,2 @@
1
+ import { EntitiesLayoutProps } from "./types";
2
+ export declare const EntitiesLayout: ({ children, ...props }: EntitiesLayoutProps) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { Layout } from "./entitiesLayout.styles";
3
+ export const EntitiesLayout = ({ children, ...props }) => {
4
+ return React.createElement(Layout, { ...props }, children);
5
+ };
@@ -0,0 +1,5 @@
1
+ import { LayoutSpacing } from "../../../../hooks/UseLayoutSpacing/types";
2
+ export declare const Layout: import("@emotion/styled").StyledComponent<{
3
+ theme?: import("@emotion/react").Theme;
4
+ as?: import("react").ElementType;
5
+ } & LayoutSpacing, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -0,0 +1,19 @@
1
+ import styled from "@emotion/styled";
2
+ import { mediaTabletDown } from "../../../../../../styles/common/mixins/breakpoints";
3
+ import { LAYOUT_SPACING } from "../../constants";
4
+ const PB = LAYOUT_SPACING.CONTENT_PADDING_BOTTOM; /* bottom padding */
5
+ const PT = LAYOUT_SPACING.CONTENT_PADDING_TOP; /* top padding */
6
+ const TITLE_HEIGHT = LAYOUT_SPACING.TITLE_HEIGHT; /* title height */
7
+ export const Layout = styled("div") `
8
+ grid-column: 2;
9
+ grid-row: 1;
10
+ padding-bottom: ${PB}px;
11
+ padding-top: ${({ top }) => top + TITLE_HEIGHT + PT}px;
12
+ z-index: 1; /* not required, but helpful in that the entities are always on top */
13
+
14
+ ${mediaTabletDown} {
15
+ grid-column: 1;
16
+ grid-row: auto;
17
+ padding-top: ${PT}px;
18
+ }
19
+ `;
@@ -0,0 +1,5 @@
1
+ import { ReactNode } from "react";
2
+ import { LayoutSpacing } from "../../../../hooks/UseLayoutSpacing/types";
3
+ export interface EntitiesLayoutProps extends LayoutSpacing {
4
+ children: ReactNode;
5
+ }
@@ -0,0 +1,2 @@
1
+ import { OutlineLayoutProps } from "./types";
2
+ export declare const OutlineLayout: ({ children, ...props }: OutlineLayoutProps) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import { Layout, LayoutScroller } from "./outlineLayout.styles";
3
+ export const OutlineLayout = ({ children, ...props }) => {
4
+ return (React.createElement(Layout, { ...props },
5
+ React.createElement(LayoutScroller, null, children)));
6
+ };
@@ -0,0 +1,9 @@
1
+ import { LayoutSpacing } from "../../../../hooks/UseLayoutSpacing/types";
2
+ export declare const Layout: import("@emotion/styled").StyledComponent<{
3
+ theme?: import("@emotion/react").Theme;
4
+ as?: import("react").ElementType;
5
+ } & LayoutSpacing, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
6
+ export declare const LayoutScroller: import("@emotion/styled").StyledComponent<{
7
+ theme?: import("@emotion/react").Theme;
8
+ as?: import("react").ElementType;
9
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -0,0 +1,26 @@
1
+ import styled from "@emotion/styled";
2
+ import { mediaTabletDown } from "../../../../../../styles/common/mixins/breakpoints";
3
+ import { LAYOUT_SPACING } from "../../constants";
4
+ const PB = LAYOUT_SPACING.CONTENT_PADDING_BOTTOM; /* bottom padding */
5
+ const PT = LAYOUT_SPACING.CONTENT_PADDING_TOP; /* top padding */
6
+ const TITLE_HEIGHT = LAYOUT_SPACING.TITLE_HEIGHT; /* title height */
7
+ export const Layout = styled("div") `
8
+ grid-column: 1;
9
+ grid-row: 1;
10
+ margin-bottom: ${({ bottom }) => -bottom}px; /* required; prevents sticky element from scrolling when footer scrolls into viewport */
11
+ max-height: 100vh;
12
+ overflow: hidden;
13
+ padding-bottom: ${({ bottom }) => bottom}px; /* footer height */
14
+ padding-top: ${({ top }) => top + TITLE_HEIGHT + PT}px;
15
+ position: sticky;
16
+ top: 0;
17
+
18
+ ${mediaTabletDown} {
19
+ display: none;
20
+ }
21
+ `;
22
+ export const LayoutScroller = styled("div") `
23
+ height: 100%;
24
+ overflow: auto;
25
+ padding-bottom: ${PB}px;
26
+ `;
@@ -0,0 +1,5 @@
1
+ import { ReactNode } from "react";
2
+ import { LayoutSpacing } from "../../../../hooks/UseLayoutSpacing/types";
3
+ export interface OutlineLayoutProps extends LayoutSpacing {
4
+ children: ReactNode;
5
+ }
@@ -0,0 +1,2 @@
1
+ import { TitleLayoutProps } from "./types";
2
+ export declare const TitleLayout: ({ children, ...props }: TitleLayoutProps) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { Layout } from "./titleLayout.styles";
3
+ export const TitleLayout = ({ children, ...props }) => {
4
+ return React.createElement(Layout, { ...props }, children);
5
+ };
@@ -0,0 +1,5 @@
1
+ import { LayoutSpacing } from "../../../../hooks/UseLayoutSpacing/types";
2
+ export declare const Layout: import("@emotion/styled").StyledComponent<{
3
+ theme?: import("@emotion/react").Theme;
4
+ as?: import("react").ElementType;
5
+ } & LayoutSpacing, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -0,0 +1,16 @@
1
+ import styled from "@emotion/styled";
2
+ import { mediaTabletDown } from "../../../../../../styles/common/mixins/breakpoints";
3
+ export const Layout = styled("div") `
4
+ grid-column: 1 / -1;
5
+ grid-row: 1;
6
+ height: fit-content;
7
+ padding-top: ${({ top }) => top}px; /* header height */
8
+ position: sticky;
9
+ top: 0;
10
+
11
+ ${mediaTabletDown} {
12
+ grid-column: 1;
13
+ grid-row: auto;
14
+ position: relative;
15
+ }
16
+ `;
@@ -0,0 +1,5 @@
1
+ import { ReactNode } from "react";
2
+ import { LayoutSpacing } from "../../../../hooks/UseLayoutSpacing/types";
3
+ export interface TitleLayoutProps extends LayoutSpacing {
4
+ children: ReactNode;
5
+ }
@@ -0,0 +1,5 @@
1
+ export declare const LAYOUT_SPACING: {
2
+ CONTENT_PADDING_BOTTOM: number;
3
+ CONTENT_PADDING_TOP: number;
4
+ TITLE_HEIGHT: number;
5
+ };
@@ -0,0 +1,5 @@
1
+ export const LAYOUT_SPACING = {
2
+ CONTENT_PADDING_BOTTOM: 24,
3
+ CONTENT_PADDING_TOP: 16,
4
+ TITLE_HEIGHT: 74,
5
+ };
@@ -0,0 +1,2 @@
1
+ import { ContentsTabProps } from "../../../../../Layout/components/Outline/components/ContentsTab/types";
2
+ export declare const TAB_PROPS: ContentsTabProps;
@@ -0,0 +1,5 @@
1
+ export const TAB_PROPS = {
2
+ icon: undefined,
3
+ label: "Entity Type",
4
+ value: "",
5
+ };
@@ -0,0 +1 @@
1
+ export declare const ContentsTab: () => JSX.Element;
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import { TAB_PROPS } from "./constants";
3
+ import { StyledContentsTab } from "./contentsTab.styles";
4
+ export const ContentsTab = () => {
5
+ return React.createElement(StyledContentsTab, { ...TAB_PROPS });
6
+ };
@@ -0,0 +1,3 @@
1
+ export declare const StyledContentsTab: import("@emotion/styled").StyledComponent<import("../../../../../Layout/components/Outline/components/ContentsTab/types").ContentsTabProps & {
2
+ theme?: import("@emotion/react").Theme;
3
+ }, {}, {}>;
@@ -0,0 +1,7 @@
1
+ import styled from "@emotion/styled";
2
+ import { ContentsTab } from "../../../../../Layout/components/Outline/components/ContentsTab/contentsTab";
3
+ export const StyledContentsTab = styled(ContentsTab) `
4
+ & {
5
+ padding: 8px 24px;
6
+ }
7
+ `;
@@ -0,0 +1,2 @@
1
+ import { OutlineProps } from "./types";
2
+ export declare const Outline: ({ outline, ...props }: OutlineProps) => JSX.Element;
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import { ContentsTab } from "./components/ContentsTab/contentsTab";
3
+ import { StyledOutline } from "./outline.styles";
4
+ export const Outline = ({ outline, ...props /* MuiTabsProps */ }) => {
5
+ return React.createElement(StyledOutline, { Contents: ContentsTab, outline: outline, ...props });
6
+ };
@@ -0,0 +1,3 @@
1
+ export declare const StyledOutline: import("@emotion/styled").StyledComponent<import("../../../Layout/components/Outline/types").OutlineProps & {
2
+ theme?: import("@emotion/react").Theme;
3
+ }, {}, {}>;
@@ -0,0 +1,19 @@
1
+ import styled from "@emotion/styled";
2
+ import { inkLight, inkMain, smokeDark, } from "../../../../styles/common/mixins/colors";
3
+ import { Outline } from "../../../Layout/components/Outline/outline";
4
+ export const StyledOutline = styled(Outline) `
5
+ &.MuiTabs-root {
6
+ .MuiTab-root {
7
+ color: ${inkLight};
8
+
9
+ &.Mui-selected {
10
+ color: ${inkMain};
11
+ }
12
+
13
+ &.Mui-disabled {
14
+ color: ${smokeDark};
15
+ opacity: 1;
16
+ }
17
+ }
18
+ }
19
+ `;
@@ -0,0 +1,5 @@
1
+ import { TabsProps } from "@mui/material";
2
+ import { OutlineItem } from "../../../Layout/components/Outline/types";
3
+ export interface OutlineProps extends TabsProps {
4
+ outline: OutlineItem[];
5
+ }
@@ -0,0 +1,8 @@
1
+ import { Class } from "../../../../common/entities";
2
+ import { OutlineItem } from "../../../Layout/components/Outline/types";
3
+ /**
4
+ * Returns outline items from classes.
5
+ * @param classes - Class entities.
6
+ * @returns Outline items.
7
+ */
8
+ export declare function buildClassesOutline(classes: Class[]): OutlineItem[];
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Returns outline items from classes.
3
+ * @param classes - Class entities.
4
+ * @returns Outline items.
5
+ */
6
+ export function buildClassesOutline(classes) {
7
+ return classes.map(({ key, name }) => {
8
+ return {
9
+ depth: 2,
10
+ disabled: false,
11
+ hash: key,
12
+ value: name,
13
+ };
14
+ });
15
+ }
@@ -1,6 +1,6 @@
1
1
  import { Typography } from "@mui/material";
2
2
  import React from "react";
3
- import { VARIANT } from "../../../../../../styles/common/mui/typography";
3
+ import { TYPOGRAPHY_PROPS } from "../../../../../../styles/common/mui/typography";
4
4
  export const BasicCell = ({ getValue }) => {
5
- return React.createElement(Typography, { variant: VARIANT.INHERIT }, getValue());
5
+ return (React.createElement(Typography, { variant: TYPOGRAPHY_PROPS.VARIANT.INHERIT }, getValue()));
6
6
  };
@@ -0,0 +1,2 @@
1
+ import { TitleProps } from "../../../common/Title/title";
2
+ export declare const Title: ({ title, ...props }: TitleProps) => JSX.Element;
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ import { StyledTitle } from "./title.styles";
3
+ export const Title = ({ title = "Data Dictionary", ...props }) => React.createElement(StyledTitle, { title: title, ...props });
@@ -0,0 +1,3 @@
1
+ export declare const StyledTitle: import("@emotion/styled").StyledComponent<import("../../../common/Title/title").TitleProps & {
2
+ theme?: import("@emotion/react").Theme;
3
+ }, {}, {}>;
@@ -0,0 +1,17 @@
1
+ import styled from "@emotion/styled";
2
+ import { mediaTabletDown } from "../../../../styles/common/mixins/breakpoints";
3
+ import { Title } from "../../../common/Title/title";
4
+ export const StyledTitle = styled(Title) `
5
+ & {
6
+ font-size: 34px;
7
+ grid-column: 1 / -1;
8
+ letter-spacing: normal;
9
+ line-height: 42px;
10
+ margin: 24px 0 8px;
11
+
12
+ ${mediaTabletDown} {
13
+ font-size: 26px;
14
+ line-height: 34px;
15
+ }
16
+ }
17
+ `;
@@ -1,2 +1,2 @@
1
- import { BaseComponentProps } from "../types";
2
- export declare const DataDictionary: ({ className, }: BaseComponentProps) => JSX.Element;
1
+ import { DataDictionaryProps } from "./types";
2
+ export declare const DataDictionary: ({ className, EntitiesLayout, Outline, OutlineLayout, Title, TitleLayout, }: DataDictionaryProps) => JSX.Element;
@@ -1,9 +1,23 @@
1
- import React from "react";
1
+ import React, { useMemo } from "react";
2
2
  import { Entities } from "./components/Entities/entities";
3
+ import { EntitiesLayout as DefaultEntitiesLayout } from "./components/Layout/components/EntitiesLayout/entitiesLayout";
4
+ import { OutlineLayout as DefaultOutlineLayout } from "./components/Layout/components/OutlineLayout/outlineLayout";
5
+ import { TitleLayout as DefaultTitleLayout } from "./components/Layout/components/TitleLayout/titleLayout";
6
+ import { Outline as DefaultOutline } from "./components/Outline/outline";
7
+ import { buildClassesOutline } from "./components/Outline/utils";
8
+ import { Title as DefaultTitle } from "./components/Title/title";
3
9
  import { View } from "./dataDictionary.styles";
4
10
  import { useDataDictionary } from "./hooks/UseDataDictionary/hook";
5
- export const DataDictionary = ({ className, }) => {
11
+ import { useLayoutSpacing } from "./hooks/UseLayoutSpacing/hook";
12
+ export const DataDictionary = ({ className, EntitiesLayout = DefaultEntitiesLayout, Outline = DefaultOutline, OutlineLayout = DefaultOutlineLayout, Title = DefaultTitle, TitleLayout = DefaultTitleLayout, }) => {
6
13
  const { classes } = useDataDictionary();
14
+ const { spacing } = useLayoutSpacing();
15
+ const outline = useMemo(() => buildClassesOutline(classes), [classes]);
7
16
  return (React.createElement(View, { className: className },
8
- React.createElement(Entities, { classes: classes })));
17
+ React.createElement(TitleLayout, { ...spacing },
18
+ React.createElement(Title, null)),
19
+ React.createElement(OutlineLayout, { ...spacing },
20
+ React.createElement(Outline, { outline: outline })),
21
+ React.createElement(EntitiesLayout, { ...spacing },
22
+ React.createElement(Entities, { classes: classes, spacing: spacing }))));
9
23
  };
@@ -1 +1,5 @@
1
- export declare const View: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
1
+ export declare const grid: import("@emotion/react").SerializedStyles;
2
+ export declare const View: import("@emotion/styled").StyledComponent<{
3
+ theme?: import("@emotion/react").Theme;
4
+ as?: import("react").ElementType;
5
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1,7 +1,20 @@
1
- import { styled } from "@mui/material";
1
+ import { css } from "@emotion/react";
2
+ import styled from "@emotion/styled";
3
+ import { mediaTabletDown } from "../../styles/common/mixins/breakpoints";
4
+ export const grid = css `
5
+ column-gap: 24px;
6
+ display: grid;
7
+ grid-template-columns: 242px 1fr;
8
+ `;
2
9
  export const View = styled("div") `
10
+ ${grid};
3
11
  flex: 1;
4
12
  margin: 0 auto;
5
- max-width: calc(100vw - 48px);
6
- padding: 24px 0;
13
+ max-width: min(calc(100vw - 48px), 1392px);
14
+ position: relative;
15
+
16
+ ${mediaTabletDown} {
17
+ grid-template-columns: 1fr;
18
+ max-width: calc(100vw - 32px);
19
+ }
7
20
  `;
@@ -1,5 +1,6 @@
1
+ import { useMemo } from "react";
1
2
  import { useConfig } from "../../../../hooks/useConfig";
2
3
  export const useDataDictionary = () => {
3
4
  const { config: { dataDictionary: { classes = [] } = {} }, } = useConfig();
4
- return { classes };
5
+ return useMemo(() => ({ classes }), [classes]);
5
6
  };
@@ -0,0 +1,2 @@
1
+ import { UseLayoutSpacing } from "./types";
2
+ export declare const useLayoutSpacing: () => UseLayoutSpacing;
@@ -0,0 +1,10 @@
1
+ import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
2
+ export const useLayoutSpacing = () => {
3
+ const { dimensions } = useLayoutDimensions();
4
+ return {
5
+ spacing: {
6
+ bottom: dimensions.footer.height,
7
+ top: dimensions.header.height,
8
+ },
9
+ };
10
+ };
@@ -0,0 +1,7 @@
1
+ export interface LayoutSpacing {
2
+ bottom: number;
3
+ top: number;
4
+ }
5
+ export interface UseLayoutSpacing {
6
+ spacing: LayoutSpacing;
7
+ }
@@ -0,0 +1,9 @@
1
+ import { ElementType } from "react";
2
+ import { BaseComponentProps } from "../types";
3
+ export interface DataDictionaryProps extends BaseComponentProps {
4
+ EntitiesLayout?: ElementType;
5
+ Outline?: ElementType;
6
+ OutlineLayout?: ElementType;
7
+ Title?: ElementType;
8
+ TitleLayout?: ElementType;
9
+ }
@@ -0,0 +1 @@
1
+ export {};