@databiosphere/findable-ui 21.4.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 (372) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/.storybook/main.ts +7 -1
  3. package/CHANGELOG.md +45 -0
  4. package/lib/common/selectors.d.ts +6 -2
  5. package/lib/common/selectors.js +7 -2
  6. package/lib/components/DataDictionary/components/Entities/constants.d.ts +3 -0
  7. package/lib/components/DataDictionary/components/Entities/constants.js +7 -0
  8. package/lib/components/DataDictionary/components/Entities/entities.d.ts +2 -0
  9. package/lib/components/DataDictionary/components/Entities/entities.js +7 -0
  10. package/lib/components/DataDictionary/components/Entities/types.d.ts +6 -0
  11. package/lib/components/DataDictionary/components/Entities/types.js +1 -0
  12. package/lib/components/DataDictionary/components/Entity/constants.d.ts +2 -0
  13. package/lib/components/DataDictionary/components/Entity/constants.js +5 -0
  14. package/lib/components/DataDictionary/components/Entity/entity.d.ts +2 -0
  15. package/lib/components/DataDictionary/components/Entity/entity.js +19 -0
  16. package/lib/components/DataDictionary/components/Entity/entity.styles.d.ts +2 -0
  17. package/lib/components/DataDictionary/components/Entity/entity.styles.js +10 -0
  18. package/lib/components/DataDictionary/components/Entity/types.d.ts +6 -0
  19. package/lib/components/DataDictionary/components/Entity/types.js +1 -0
  20. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.d.ts +2 -0
  21. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.js +5 -0
  22. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.d.ts +5 -0
  23. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.js +19 -0
  24. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/types.d.ts +5 -0
  25. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/types.js +1 -0
  26. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.d.ts +2 -0
  27. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.js +6 -0
  28. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.styles.d.ts +9 -0
  29. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.styles.js +26 -0
  30. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/types.d.ts +5 -0
  31. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/types.js +1 -0
  32. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.d.ts +2 -0
  33. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.js +5 -0
  34. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.styles.d.ts +5 -0
  35. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.styles.js +16 -0
  36. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/types.d.ts +5 -0
  37. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/types.js +1 -0
  38. package/lib/components/DataDictionary/components/Layout/constants.d.ts +5 -0
  39. package/lib/components/DataDictionary/components/Layout/constants.js +5 -0
  40. package/lib/components/DataDictionary/components/Outline/components/ContentsTab/constants.d.ts +2 -0
  41. package/lib/components/DataDictionary/components/Outline/components/ContentsTab/constants.js +5 -0
  42. package/lib/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.d.ts +1 -0
  43. package/lib/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.js +6 -0
  44. package/lib/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.styles.d.ts +3 -0
  45. package/lib/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.styles.js +7 -0
  46. package/lib/components/DataDictionary/components/Outline/outline.d.ts +2 -0
  47. package/lib/components/DataDictionary/components/Outline/outline.js +6 -0
  48. package/lib/components/DataDictionary/components/Outline/outline.styles.d.ts +3 -0
  49. package/lib/components/DataDictionary/components/Outline/outline.styles.js +19 -0
  50. package/lib/components/DataDictionary/components/Outline/types.d.ts +5 -0
  51. package/lib/components/DataDictionary/components/Outline/types.js +1 -0
  52. package/lib/components/DataDictionary/components/Outline/utils.d.ts +8 -0
  53. package/lib/components/DataDictionary/components/Outline/utils.js +15 -0
  54. package/lib/components/DataDictionary/components/Table/columns/columnDef.d.ts +6 -0
  55. package/lib/components/DataDictionary/components/Table/columns/columnDef.js +33 -0
  56. package/lib/components/DataDictionary/components/Table/columns/columnIdentifier.d.ts +5 -0
  57. package/lib/components/DataDictionary/components/Table/columns/columnIdentifier.js +5 -0
  58. package/lib/components/DataDictionary/components/Table/columns/types.d.ts +2 -0
  59. package/lib/components/DataDictionary/components/Table/columns/types.js +1 -0
  60. package/lib/components/DataDictionary/components/Table/components/BasicCell/basicCell.d.ts +2 -0
  61. package/lib/components/DataDictionary/components/Table/components/BasicCell/basicCell.js +6 -0
  62. package/lib/components/DataDictionary/components/Table/components/BasicCell/types.d.ts +4 -0
  63. package/lib/components/DataDictionary/components/Table/components/BasicCell/types.js +1 -0
  64. package/lib/components/DataDictionary/components/Table/hook.d.ts +3 -0
  65. package/lib/components/DataDictionary/components/Table/hook.js +11 -0
  66. package/lib/components/DataDictionary/components/Table/options/core/constants.d.ts +3 -0
  67. package/lib/components/DataDictionary/components/Table/options/core/constants.js +7 -0
  68. package/lib/components/DataDictionary/components/Table/options/hook.d.ts +3 -0
  69. package/lib/components/DataDictionary/components/Table/options/hook.js +8 -0
  70. package/lib/components/DataDictionary/components/Table/options/sorting/constants.d.ts +3 -0
  71. package/lib/components/DataDictionary/components/Table/options/sorting/constants.js +3 -0
  72. package/lib/components/DataDictionary/components/Table/table.d.ts +2 -0
  73. package/lib/components/DataDictionary/components/Table/table.js +17 -0
  74. package/lib/components/DataDictionary/components/Table/table.styles.d.ts +3 -0
  75. package/lib/components/DataDictionary/components/Table/table.styles.js +5 -0
  76. package/lib/components/DataDictionary/components/Table/types.d.ts +5 -0
  77. package/lib/components/DataDictionary/components/Table/types.js +1 -0
  78. package/lib/components/DataDictionary/components/Title/title.d.ts +2 -0
  79. package/lib/components/DataDictionary/components/Title/title.js +3 -0
  80. package/lib/components/DataDictionary/components/Title/title.styles.d.ts +3 -0
  81. package/lib/components/DataDictionary/components/Title/title.styles.js +17 -0
  82. package/lib/components/DataDictionary/dataDictionary.d.ts +2 -0
  83. package/lib/components/DataDictionary/dataDictionary.js +23 -0
  84. package/lib/components/DataDictionary/dataDictionary.styles.d.ts +5 -0
  85. package/lib/components/DataDictionary/dataDictionary.styles.js +20 -0
  86. package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.d.ts +2 -0
  87. package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.js +6 -0
  88. package/lib/components/DataDictionary/hooks/UseDataDictionary/types.d.ts +4 -0
  89. package/lib/components/DataDictionary/hooks/UseDataDictionary/types.js +1 -0
  90. package/lib/components/DataDictionary/hooks/UseLayoutSpacing/hook.d.ts +2 -0
  91. package/lib/components/DataDictionary/hooks/UseLayoutSpacing/hook.js +10 -0
  92. package/lib/components/DataDictionary/hooks/UseLayoutSpacing/types.d.ts +7 -0
  93. package/lib/components/DataDictionary/hooks/UseLayoutSpacing/types.js +1 -0
  94. package/lib/components/DataDictionary/types.d.ts +9 -0
  95. package/lib/components/DataDictionary/types.js +1 -0
  96. package/lib/components/Detail/detail.stories.d.ts +36 -5
  97. package/lib/components/Detail/detail.stories.js +27 -18
  98. package/lib/components/Error/error.js +3 -3
  99. package/lib/components/Export/components/ExportMethod/exportMethod.stories.d.ts +22 -5
  100. package/lib/components/Export/components/ExportMethod/exportMethod.stories.js +9 -9
  101. package/lib/components/Filter/components/Filter/filter.stories.d.ts +25 -5
  102. package/lib/components/Filter/components/Filter/filter.stories.js +25 -24
  103. package/lib/components/Filter/components/FilterLabel/filterLabel.stories.d.ts +31 -5
  104. package/lib/components/Filter/components/FilterLabel/filterLabel.stories.js +10 -8
  105. package/lib/components/Filter/components/FilterMenu/filterMenu.stories.d.ts +38 -5
  106. package/lib/components/Filter/components/FilterMenu/filterMenu.stories.js +107 -104
  107. package/lib/components/Filter/components/FilterTag/filterTag.stories.d.ts +16 -5
  108. package/lib/components/Filter/components/FilterTag/filterTag.stories.js +8 -7
  109. package/lib/components/Filter/components/FilterTags/filterTags.stories.d.ts +18 -5
  110. package/lib/components/Filter/components/FilterTags/filterTags.stories.js +40 -39
  111. package/lib/components/Filter/components/SearchAllFilters/searchAllFilters.js +3 -3
  112. package/lib/components/Index/components/AzulFileDownload/azulFileDownload.stories.d.ts +8 -5
  113. package/lib/components/Index/components/AzulFileDownload/azulFileDownload.stories.js +9 -6
  114. package/lib/components/Index/components/Hero/components/Summaries/summaries.stories.d.ts +13 -5
  115. package/lib/components/Index/components/Hero/components/Summaries/summaries.stories.js +11 -11
  116. package/lib/components/Index/components/Hero/hero.stories.d.ts +23 -5
  117. package/lib/components/Index/components/Hero/hero.stories.js +8 -6
  118. package/lib/components/Index/components/NTagCell/nTagCell.stories.d.ts +16 -5
  119. package/lib/components/Index/components/NTagCell/nTagCell.stories.js +8 -8
  120. package/lib/components/Index/index.js +3 -4
  121. package/lib/components/Index/index.stories.js +2 -1
  122. package/lib/components/Layout/components/BackPage/backPageView.stories.d.ts +31 -5
  123. package/lib/components/Layout/components/BackPage/backPageView.stories.js +27 -18
  124. package/lib/components/Layout/components/ContentLayout/contentLayout.js +7 -7
  125. package/lib/components/Layout/components/Footer/footer.js +4 -1
  126. package/lib/components/Layout/components/Footer/footer.stories.d.ts +24 -3
  127. package/lib/components/Layout/components/Footer/footer.stories.js +4 -3
  128. package/lib/components/Layout/components/Footer/footer.styles.js +1 -0
  129. package/lib/components/Layout/components/Header/header.js +4 -3
  130. package/lib/components/Layout/components/Header/header.stories.js +1 -1
  131. package/lib/components/Layout/components/Main/main.js +3 -4
  132. package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.d.ts +1 -5
  133. package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.js +5 -3
  134. package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.styles.d.ts +1 -1
  135. package/lib/components/Layout/components/Outline/components/ContentsTab/contentsTab.styles.js +2 -2
  136. package/lib/components/Layout/components/Outline/components/ContentsTab/types.d.ts +5 -0
  137. package/lib/components/Layout/components/Outline/components/ContentsTab/types.js +1 -0
  138. package/lib/components/Layout/components/Outline/hooks/UseHash/hook.d.ts +11 -0
  139. package/lib/components/Layout/components/Outline/hooks/UseHash/hook.js +16 -0
  140. package/lib/components/Layout/components/Outline/hooks/UseHash/types.d.ts +3 -0
  141. package/lib/components/Layout/components/Outline/hooks/UseHash/types.js +1 -0
  142. package/lib/components/Layout/components/Outline/hooks/UseTabs/constants.d.ts +2 -0
  143. package/lib/components/Layout/components/Outline/hooks/UseTabs/hook.d.ts +3 -0
  144. package/lib/components/Layout/components/Outline/hooks/UseTabs/hook.js +24 -0
  145. package/lib/components/Layout/components/Outline/hooks/UseTabs/utils.d.ts +9 -0
  146. package/lib/components/Layout/components/Outline/hooks/UseTabs/utils.js +13 -0
  147. package/lib/components/Layout/components/Outline/outline.d.ts +2 -13
  148. package/lib/components/Layout/components/Outline/outline.js +8 -32
  149. package/lib/components/Layout/components/Outline/outline.styles.d.ts +2 -2
  150. package/lib/components/Layout/components/Outline/outline.styles.js +2 -2
  151. package/lib/components/Layout/components/Outline/types.d.ts +14 -0
  152. package/lib/components/Layout/components/Outline/types.js +1 -0
  153. package/lib/components/Layout/components/Sidebar/components/SidebarLabel/sidebarLabel.stories.d.ts +13 -5
  154. package/lib/components/Layout/components/Sidebar/components/SidebarLabel/sidebarLabel.stories.js +6 -6
  155. package/lib/components/Layout/components/Sidebar/components/SidebarPositioner/sidebarPositioner.js +4 -4
  156. package/lib/components/Layout/components/Sidebar/sidebar.stories.js +2 -0
  157. package/lib/components/Links/links.stories.d.ts +13 -5
  158. package/lib/components/Links/links.stories.js +14 -14
  159. package/lib/components/Loading/loading.stories.d.ts +34 -5
  160. package/lib/components/Loading/loading.stories.js +8 -6
  161. package/lib/components/Login/components/Section/components/Warning/warning.js +2 -3
  162. package/lib/components/Project/components/CollaboratingOrganizations/collaboratingOrganizations.stories.d.ts +13 -5
  163. package/lib/components/Project/components/CollaboratingOrganizations/collaboratingOrganizations.stories.js +20 -20
  164. package/lib/components/Project/components/Contacts/contacts.stories.d.ts +13 -5
  165. package/lib/components/Project/components/Contacts/contacts.stories.js +18 -18
  166. package/lib/components/Project/components/Contributors/contributors.stories.d.ts +8 -5
  167. package/lib/components/Project/components/Contributors/contributors.stories.js +27 -27
  168. package/lib/components/Project/components/DataCurators/dataCurators.stories.d.ts +13 -5
  169. package/lib/components/Project/components/DataCurators/dataCurators.stories.js +7 -7
  170. package/lib/components/Project/components/DataReleasePolicy/dataReleasePolicy.stories.d.ts +8 -5
  171. package/lib/components/Project/components/DataReleasePolicy/dataReleasePolicy.stories.js +3 -4
  172. package/lib/components/Project/components/Description/description.stories.d.ts +8 -5
  173. package/lib/components/Project/components/Description/description.stories.js +6 -6
  174. package/lib/components/Project/components/Details/details.stories.d.ts +16 -5
  175. package/lib/components/Project/components/Details/details.stories.js +7 -7
  176. package/lib/components/Project/components/Publications/publications.stories.d.ts +8 -5
  177. package/lib/components/Project/components/Publications/publications.stories.js +17 -17
  178. package/lib/components/Project/components/SupplementaryLinks/supplementaryLinks.stories.d.ts +8 -5
  179. package/lib/components/Project/components/SupplementaryLinks/supplementaryLinks.stories.js +18 -18
  180. package/lib/components/Support/components/SupportRequest/components/SupportRequestForm/common/constants.d.ts +16 -33
  181. package/lib/components/Support/components/SupportRequest/components/SupportRequestForm/common/constants.js +10 -9
  182. package/lib/components/Support/components/SupportRequest/components/SupportRequestForm/supportRequestForm.js +26 -14
  183. package/lib/components/Support/components/ViewSupport/types.d.ts +6 -0
  184. package/lib/components/Support/components/ViewSupport/types.js +1 -0
  185. package/lib/components/Support/components/ViewSupport/viewSupport.d.ts +2 -9
  186. package/lib/components/Support/components/ViewSupport/viewSupport.js +7 -3
  187. package/lib/components/Table/components/Pagination/pagination.stories.d.ts +28 -5
  188. package/lib/components/Table/components/Pagination/pagination.stories.js +11 -7
  189. package/lib/components/Table/components/TableCell/components/RowPositionCell/constants.js +2 -2
  190. package/lib/components/common/Accordion/accordion.stories.d.ts +6 -3
  191. package/lib/components/common/Accordion/accordion.stories.js +2 -1
  192. package/lib/components/common/AnchorLink/anchorLink.d.ts +6 -0
  193. package/lib/components/common/Breadcrumbs/breadcrumbs.stories.d.ts +10 -7
  194. package/lib/components/common/Breadcrumbs/breadcrumbs.stories.js +42 -43
  195. package/lib/components/common/Button/components/CallToActionButton/callToActionButton.stories.d.ts +9 -6
  196. package/lib/components/common/Button/components/CallToActionButton/callToActionButton.stories.js +13 -15
  197. package/lib/components/common/Button/components/HelpIconButton/helpIconButton.stories.d.ts +19 -2
  198. package/lib/components/common/Button/components/HelpIconButton/helpIconButton.stories.js +2 -2
  199. package/lib/components/common/Card/card.stories.d.ts +6 -3
  200. package/lib/components/common/Card/card.stories.js +2 -1
  201. package/lib/components/common/Code/code.stories.d.ts +5 -3
  202. package/lib/components/common/CopyToClipboard/copyToClipboard.stories.d.ts +11 -3
  203. package/lib/components/common/CopyToClipboard/copyToClipboard.stories.js +2 -1
  204. package/lib/components/common/LoginDialog/constants.js +4 -4
  205. package/lib/components/common/Section/components/SectionTitle/sectionTitle.stories.d.ts +13 -5
  206. package/lib/components/common/Section/components/SectionTitle/sectionTitle.stories.js +6 -6
  207. package/lib/components/common/Socials/socials.stories.d.ts +11 -3
  208. package/lib/components/common/Socials/socials.stories.js +2 -1
  209. package/lib/components/common/StaticImage/staticImage.stories.d.ts +22 -5
  210. package/lib/components/common/StaticImage/staticImage.stories.js +8 -8
  211. package/lib/components/common/StatusIcon/statusIcon.stories.d.ts +19 -5
  212. package/lib/components/common/StatusIcon/statusIcon.stories.js +7 -7
  213. package/lib/components/common/Tag/tag.stories.d.ts +15 -5
  214. package/lib/components/common/Tag/tag.stories.js +7 -5
  215. package/lib/components/common/ToggleButtonGroup/toggleButtonGroup.stories.d.ts +18 -5
  216. package/lib/components/common/ToggleButtonGroup/toggleButtonGroup.stories.js +19 -19
  217. package/lib/providers/layoutDimensions/constants.d.ts +2 -0
  218. package/lib/providers/layoutDimensions/constants.js +4 -0
  219. package/lib/providers/layoutDimensions/context.d.ts +2 -0
  220. package/lib/providers/layoutDimensions/context.js +7 -0
  221. package/lib/providers/layoutDimensions/hook.d.ts +2 -0
  222. package/lib/providers/layoutDimensions/hook.js +5 -0
  223. package/lib/providers/layoutDimensions/provider.d.ts +2 -0
  224. package/lib/providers/layoutDimensions/provider.js +14 -0
  225. package/lib/providers/layoutDimensions/types.d.ts +14 -0
  226. package/lib/providers/layoutDimensions/types.js +1 -0
  227. package/lib/styles/common/mui/tab.d.ts +7 -0
  228. package/lib/styles/common/mui/tab.js +9 -0
  229. package/lib/styles/common/mui/tabs.d.ts +9 -0
  230. package/lib/styles/common/mui/tabs.js +11 -0
  231. package/lib/styles/common/mui/typography.d.ts +8 -2
  232. package/lib/styles/common/mui/typography.js +9 -2
  233. package/lib/views/DataDictionaryView/dataDictionaryView.d.ts +2 -0
  234. package/lib/views/DataDictionaryView/dataDictionaryView.js +5 -0
  235. package/package.json +13 -13
  236. package/src/common/selectors.ts +6 -3
  237. package/src/components/DataDictionary/components/Entities/constants.ts +10 -0
  238. package/src/components/DataDictionary/components/Entities/entities.tsx +15 -0
  239. package/src/components/DataDictionary/components/Entities/types.ts +7 -0
  240. package/src/components/DataDictionary/components/Entity/constants.ts +7 -0
  241. package/src/components/DataDictionary/components/Entity/entity.styles.ts +12 -0
  242. package/src/components/DataDictionary/components/Entity/entity.tsx +38 -0
  243. package/src/components/DataDictionary/components/Entity/types.ts +7 -0
  244. package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.ts +22 -0
  245. package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.tsx +10 -0
  246. package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/types.ts +6 -0
  247. package/src/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.styles.ts +31 -0
  248. package/src/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.tsx +14 -0
  249. package/src/components/DataDictionary/components/Layout/components/OutlineLayout/types.ts +6 -0
  250. package/src/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.styles.ts +18 -0
  251. package/src/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.tsx +10 -0
  252. package/src/components/DataDictionary/components/Layout/components/TitleLayout/types.ts +6 -0
  253. package/src/components/DataDictionary/components/Layout/constants.ts +5 -0
  254. package/src/components/DataDictionary/components/Outline/components/ContentsTab/constants.ts +7 -0
  255. package/src/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.styles.ts +8 -0
  256. package/src/components/DataDictionary/components/Outline/components/ContentsTab/contentsTab.tsx +7 -0
  257. package/src/components/DataDictionary/components/Outline/outline.styles.ts +24 -0
  258. package/src/components/DataDictionary/components/Outline/outline.tsx +11 -0
  259. package/src/components/DataDictionary/components/Outline/types.ts +6 -0
  260. package/src/components/DataDictionary/components/Outline/utils.ts +18 -0
  261. package/src/components/DataDictionary/components/Table/columns/columnDef.ts +47 -0
  262. package/src/components/DataDictionary/components/Table/columns/columnIdentifier.ts +5 -0
  263. package/src/components/DataDictionary/components/Table/columns/types.ts +3 -0
  264. package/src/components/DataDictionary/components/Table/components/BasicCell/basicCell.tsx +12 -0
  265. package/src/components/DataDictionary/components/Table/components/BasicCell/types.ts +5 -0
  266. package/src/components/DataDictionary/components/Table/hook.ts +13 -0
  267. package/src/components/DataDictionary/components/Table/options/core/constants.ts +12 -0
  268. package/src/components/DataDictionary/components/Table/options/hook.ts +14 -0
  269. package/src/components/DataDictionary/components/Table/options/sorting/constants.ts +9 -0
  270. package/src/components/DataDictionary/components/Table/table.styles.ts +6 -0
  271. package/src/components/DataDictionary/components/Table/table.tsx +35 -0
  272. package/src/components/DataDictionary/components/Table/types.ts +6 -0
  273. package/src/components/DataDictionary/components/Title/title.styles.ts +18 -0
  274. package/src/components/DataDictionary/components/Title/title.tsx +8 -0
  275. package/src/components/DataDictionary/dataDictionary.styles.ts +22 -0
  276. package/src/components/DataDictionary/dataDictionary.tsx +38 -0
  277. package/src/components/DataDictionary/hooks/UseDataDictionary/hook.ts +10 -0
  278. package/src/components/DataDictionary/hooks/UseDataDictionary/types.ts +5 -0
  279. package/src/components/DataDictionary/hooks/UseLayoutSpacing/hook.ts +12 -0
  280. package/src/components/DataDictionary/hooks/UseLayoutSpacing/types.ts +8 -0
  281. package/src/components/DataDictionary/types.ts +10 -0
  282. package/src/components/Detail/detail.stories.tsx +41 -36
  283. package/src/components/Error/error.tsx +3 -5
  284. package/src/components/Export/components/ExportMethod/exportMethod.stories.tsx +13 -13
  285. package/src/components/Filter/components/Filter/filter.stories.tsx +29 -28
  286. package/src/components/Filter/components/FilterLabel/filterLabel.stories.tsx +14 -12
  287. package/src/components/Filter/components/FilterMenu/filterMenu.stories.tsx +111 -108
  288. package/src/components/Filter/components/FilterTag/filterTag.stories.tsx +12 -11
  289. package/src/components/Filter/components/FilterTags/filterTags.stories.tsx +44 -43
  290. package/src/components/Filter/components/SearchAllFilters/searchAllFilters.tsx +3 -3
  291. package/src/components/Index/components/AzulFileDownload/azulFileDownload.stories.tsx +13 -10
  292. package/src/components/Index/components/Hero/components/Summaries/summaries.stories.tsx +15 -15
  293. package/src/components/Index/components/Hero/hero.stories.tsx +12 -8
  294. package/src/components/Index/components/NTagCell/nTagCell.stories.tsx +12 -12
  295. package/src/components/Index/index.stories.tsx +2 -1
  296. package/src/components/Index/index.tsx +3 -4
  297. package/src/components/Layout/components/BackPage/backPageView.stories.tsx +42 -36
  298. package/src/components/Layout/components/ContentLayout/contentLayout.tsx +7 -9
  299. package/src/components/Layout/components/Footer/footer.stories.tsx +6 -4
  300. package/src/components/Layout/components/Footer/footer.styles.ts +1 -0
  301. package/src/components/Layout/components/Footer/footer.tsx +5 -0
  302. package/src/components/Layout/components/Header/header.stories.tsx +1 -1
  303. package/src/components/Layout/components/Header/header.tsx +9 -3
  304. package/src/components/Layout/components/Main/main.tsx +3 -4
  305. package/src/components/Layout/components/Outline/components/ContentsTab/contentsTab.styles.ts +2 -2
  306. package/src/components/Layout/components/Outline/components/ContentsTab/contentsTab.tsx +8 -11
  307. package/src/components/Layout/components/Outline/components/ContentsTab/types.ts +8 -0
  308. package/src/components/Layout/components/Outline/hooks/UseHash/hook.ts +17 -0
  309. package/src/components/Layout/components/Outline/hooks/UseHash/types.ts +3 -0
  310. package/src/components/Layout/components/Outline/hooks/UseTabs/constants.ts +3 -0
  311. package/src/components/Layout/components/Outline/hooks/UseTabs/hook.ts +32 -0
  312. package/src/components/Layout/components/Outline/hooks/UseTabs/utils.ts +18 -0
  313. package/src/components/Layout/components/Outline/outline.styles.ts +2 -2
  314. package/src/components/Layout/components/Outline/outline.tsx +22 -59
  315. package/src/components/Layout/components/Outline/types.ts +16 -0
  316. package/src/components/Layout/components/Sidebar/components/SidebarLabel/sidebarLabel.stories.tsx +10 -10
  317. package/src/components/Layout/components/Sidebar/components/SidebarPositioner/sidebarPositioner.tsx +7 -6
  318. package/src/components/Layout/components/Sidebar/sidebar.stories.tsx +2 -0
  319. package/src/components/Links/links.stories.tsx +18 -18
  320. package/src/components/Loading/loading.stories.tsx +12 -10
  321. package/src/components/Login/components/Section/components/Warning/warning.tsx +3 -4
  322. package/src/components/Project/components/CollaboratingOrganizations/collaboratingOrganizations.stories.tsx +24 -25
  323. package/src/components/Project/components/Contacts/contacts.stories.tsx +22 -22
  324. package/src/components/Project/components/Contributors/contributors.stories.tsx +31 -31
  325. package/src/components/Project/components/DataCurators/dataCurators.stories.tsx +11 -11
  326. package/src/components/Project/components/DataReleasePolicy/dataReleasePolicy.stories.tsx +7 -8
  327. package/src/components/Project/components/Description/description.stories.tsx +11 -11
  328. package/src/components/Project/components/Details/details.stories.tsx +11 -11
  329. package/src/components/Project/components/Publications/publications.stories.tsx +23 -23
  330. package/src/components/Project/components/SupplementaryLinks/supplementaryLinks.stories.tsx +22 -22
  331. package/src/components/Support/components/SupportRequest/components/SupportRequestForm/common/constants.ts +10 -9
  332. package/src/components/Support/components/SupportRequest/components/SupportRequestForm/supportRequestForm.tsx +44 -15
  333. package/src/components/Support/components/ViewSupport/types.ts +9 -0
  334. package/src/components/Support/components/ViewSupport/viewSupport.tsx +6 -10
  335. package/src/components/Table/components/Pagination/pagination.stories.tsx +15 -11
  336. package/src/components/Table/components/TableCell/components/RowPositionCell/constants.ts +2 -2
  337. package/src/components/common/Accordion/accordion.stories.tsx +4 -2
  338. package/src/components/common/AnchorLink/anchorLink.tsx +7 -0
  339. package/src/components/common/Breadcrumbs/breadcrumbs.stories.tsx +46 -47
  340. package/src/components/common/Button/components/CallToActionButton/callToActionButton.stories.tsx +17 -20
  341. package/src/components/common/Button/components/HelpIconButton/helpIconButton.stories.tsx +4 -4
  342. package/src/components/common/Card/card.stories.tsx +4 -2
  343. package/src/components/common/Code/code.stories.tsx +1 -1
  344. package/src/components/common/CopyToClipboard/copyToClipboard.stories.tsx +4 -2
  345. package/src/components/common/LoginDialog/constants.ts +4 -4
  346. package/src/components/common/Section/components/SectionTitle/sectionTitle.stories.tsx +10 -10
  347. package/src/components/common/Socials/socials.stories.tsx +4 -2
  348. package/src/components/common/StaticImage/staticImage.stories.tsx +12 -12
  349. package/src/components/common/StatusIcon/statusIcon.stories.tsx +11 -11
  350. package/src/components/common/Tag/tag.stories.tsx +11 -9
  351. package/src/components/common/ToggleButtonGroup/toggleButtonGroup.stories.tsx +23 -23
  352. package/src/providers/layoutDimensions/constants.ts +6 -0
  353. package/src/providers/layoutDimensions/context.tsx +10 -0
  354. package/src/providers/layoutDimensions/hook.ts +7 -0
  355. package/src/providers/layoutDimensions/provider.tsx +29 -0
  356. package/src/providers/layoutDimensions/types.ts +17 -0
  357. package/src/styles/common/mui/tab.ts +16 -0
  358. package/src/styles/common/mui/tabs.ts +20 -0
  359. package/src/styles/common/mui/typography.ts +15 -2
  360. package/src/views/DataDictionaryView/dataDictionaryView.tsx +9 -0
  361. package/lib/components/Layout/components/Header/hooks/useMeasureHeader.d.ts +0 -5
  362. package/lib/components/Layout/components/Header/hooks/useMeasureHeader.js +0 -19
  363. package/lib/components/Layout/components/Outline/common/constants.d.ts +0 -2
  364. package/lib/hooks/useLayoutState.d.ts +0 -6
  365. package/lib/hooks/useLayoutState.js +0 -9
  366. package/lib/providers/layoutState.d.ts +0 -40
  367. package/lib/providers/layoutState.js +0 -47
  368. package/src/components/Layout/components/Header/hooks/useMeasureHeader.ts +0 -28
  369. package/src/components/Layout/components/Outline/common/constants.ts +0 -3
  370. package/src/hooks/useLayoutState.ts +0 -13
  371. package/src/providers/layoutState.tsx +0 -94
  372. /package/lib/components/Layout/components/Outline/{common → hooks/UseTabs}/constants.js +0 -0
@@ -11,7 +11,7 @@ import React, {
11
11
  useState,
12
12
  } from "react";
13
13
  import { SelectCategoryView } from "../../../../common/entities";
14
- import { BODY, SIDEBAR_POSITIONER } from "../../../../common/selectors";
14
+ import { SELECTOR } from "../../../../common/selectors";
15
15
  import {
16
16
  BREAKPOINT_FN_NAME,
17
17
  useBreakpointHelper,
@@ -89,8 +89,8 @@ export const SearchAllFilters = ({
89
89
  if (desktopSmUp) {
90
90
  setElementsOverflowStyle(
91
91
  [
92
- document.querySelector(BODY),
93
- document.getElementById(SIDEBAR_POSITIONER),
92
+ document.querySelector(SELECTOR.BODY),
93
+ document.getElementById(SELECTOR.SIDEBAR_POSITIONER),
94
94
  ],
95
95
  overflowStyle
96
96
  );
@@ -1,17 +1,20 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
1
+ import { Meta, StoryObj } from "@storybook/react";
3
2
  import { AzulFileDownload } from "./azulFileDownload";
4
3
 
5
- export default {
4
+ const meta = {
6
5
  component: AzulFileDownload,
7
6
  title: "Components/Common/IconButton/Download",
8
- } as ComponentMeta<typeof AzulFileDownload>;
7
+ } satisfies Meta<typeof AzulFileDownload>;
9
8
 
10
- const AzulFileDownloadTemplate: ComponentStory<typeof AzulFileDownload> = (
11
- args
12
- ) => <AzulFileDownload {...args} />;
9
+ export default meta;
13
10
 
14
- export const AzulFileDownloadStory = AzulFileDownloadTemplate.bind({});
15
- AzulFileDownloadStory.args = {
16
- url: "https://service.dev.singlecell.gi.ucsc.edu/repository/files/d496b624-eb67-5e47-999a-848e856c5bcc?catalog=dcp2&version=2021-09-10T16%3A09%3A44.000000Z",
11
+ type Story = StoryObj<typeof meta>;
12
+
13
+ export const AzulFileDownloadStory: Story = {
14
+ args: {
15
+ entityName: "",
16
+ relatedEntityId: "",
17
+ relatedEntityName: "",
18
+ url: "https://service.dev.singlecell.gi.ucsc.edu/repository/files/d496b624-eb67-5e47-999a-848e856c5bcc?catalog=dcp2&version=2021-09-10T16%3A09%3A44.000000Z",
19
+ },
17
20
  };
@@ -1,24 +1,24 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
1
+ import { Meta, StoryObj } from "@storybook/react";
3
2
  import { Summaries } from "./summaries";
4
3
 
5
- export default {
4
+ const meta = {
6
5
  argTypes: {
7
- summaries: { control: "array" },
6
+ summaries: { control: "object" },
8
7
  },
9
8
  component: Summaries,
10
9
  title: "Components/Summary",
11
- } as ComponentMeta<typeof Summaries>;
10
+ } satisfies Meta<typeof Summaries>;
12
11
 
13
- const SummariesTemplate: ComponentStory<typeof Summaries> = (args) => (
14
- <Summaries {...args} />
15
- );
12
+ export default meta;
16
13
 
17
- export const SummariesStory = SummariesTemplate.bind({});
18
- SummariesStory.args = {
19
- summaries: [
20
- { count: "1", label: "Species" },
21
- { count: "1.1k", label: "Donors" },
22
- { count: "508.5k", label: "Files" },
23
- ],
14
+ type Story = StoryObj<typeof meta>;
15
+
16
+ export const SummariesStory: Story = {
17
+ args: {
18
+ summaries: [
19
+ { count: "1", label: "Species" },
20
+ { count: "1.1k", label: "Donors" },
21
+ { count: "508.5k", label: "Files" },
22
+ ],
23
+ },
24
24
  };
@@ -1,9 +1,10 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
1
+ import { Meta, StoryObj } from "@storybook/react";
2
2
  import React from "react";
3
+ import { Summaries } from "./components/Summaries/summaries";
3
4
  import { SummariesStory } from "./components/Summaries/summaries.stories";
4
5
  import { Hero } from "./hero";
5
6
 
6
- export default {
7
+ const meta = {
7
8
  argTypes: {
8
9
  Summaries: { table: { disable: true } },
9
10
  title: { table: { disable: true } },
@@ -13,12 +14,15 @@ export default {
13
14
  layout: "fullscreen",
14
15
  },
15
16
  title: "Components/Hero/ExploreView",
16
- } as ComponentMeta<typeof Hero>;
17
+ } satisfies Meta<typeof Hero>;
17
18
 
18
- const HeroTemplate: ComponentStory<typeof Hero> = (args) => <Hero {...args} />;
19
+ export default meta;
19
20
 
20
- export const HeroStory = HeroTemplate.bind({});
21
- HeroStory.args = {
22
- Summaries: <SummariesStory {...SummariesStory.args} />,
23
- title: "Data Explorer",
21
+ type Story = StoryObj<typeof meta>;
22
+
23
+ export const HeroStory: Story = {
24
+ args: {
25
+ Summaries: <Summaries {...SummariesStory.args} />,
26
+ title: "Data Explorer",
27
+ },
24
28
  };
@@ -1,22 +1,22 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
2
- import React from "react";
1
+ import { Meta, StoryObj } from "@storybook/react";
3
2
  import { NTagCell } from "./nTagCell";
4
3
 
5
- export default {
4
+ const meta = {
6
5
  argTypes: {
7
6
  label: { control: "text" },
8
- values: { control: "array" },
7
+ values: { control: "object" },
9
8
  },
10
9
  component: NTagCell,
11
10
  title: "Components/Table/Cell/NTagCell",
12
- } as ComponentMeta<typeof NTagCell>;
11
+ } satisfies Meta<typeof NTagCell>;
13
12
 
14
- const NTagCellTemplate: ComponentStory<typeof NTagCell> = (args) => (
15
- <NTagCell {...args} />
16
- );
13
+ export default meta;
17
14
 
18
- export const NTagCellStory = NTagCellTemplate.bind({});
19
- NTagCellStory.args = {
20
- label: "species",
21
- values: ["Homo sapiens", "Mus musculus"],
15
+ type Story = StoryObj<typeof meta>;
16
+
17
+ export const NTagCellStory: Story = {
18
+ args: {
19
+ label: "species",
20
+ values: ["Homo sapiens", "Mus musculus"],
21
+ },
22
22
  };
@@ -1,5 +1,6 @@
1
1
  import { Meta, StoryObj } from "@storybook/react";
2
2
  import React from "react";
3
+ import { Summaries } from "./components/Hero/components/Summaries/summaries";
3
4
  import { SummariesStory } from "./components/Hero/components/Summaries/summaries.stories";
4
5
  import { Index } from "./index";
5
6
 
@@ -22,7 +23,7 @@ type Story = StoryObj<typeof Index>;
22
23
  export const IndexStory: Story = {
23
24
  args: {
24
25
  List: undefined,
25
- Summaries: <SummariesStory {...SummariesStory.args} />,
26
+ Summaries: <Summaries {...SummariesStory.args} />,
26
27
  Tabs: undefined,
27
28
  title: "Explore Data",
28
29
  },
@@ -1,5 +1,5 @@
1
1
  import React, { ReactNode } from "react";
2
- import { useLayoutState } from "../../hooks/useLayoutState";
2
+ import { useLayoutDimensions } from "../../providers/layoutDimensions/hook";
3
3
  import { HeroTitle } from "../common/Title/title";
4
4
  import { Hero } from "./components/Hero/hero";
5
5
  import { Index as IndexLayout } from "./index.styles";
@@ -25,10 +25,9 @@ export const Index = ({
25
25
  Tabs,
26
26
  title,
27
27
  }: IndexProps): JSX.Element => {
28
- const { layoutState } = useLayoutState();
29
- const { headerHeight } = layoutState;
28
+ const { dimensions } = useLayoutDimensions();
30
29
  return (
31
- <IndexLayout className={className} marginTop={headerHeight}>
30
+ <IndexLayout className={className} marginTop={dimensions.header.height}>
32
31
  <Hero SideBarButton={SideBarButton} Summaries={Summaries} title={title} />
33
32
  {SubTitleHero}
34
33
  {Tabs}
@@ -1,17 +1,25 @@
1
- import { ComponentMeta, ComponentStory } from "@storybook/react";
1
+ import { Meta, StoryObj } from "@storybook/react";
2
2
  import React from "react";
3
+ import { CollaboratingOrganizations } from "../../../Project/components/CollaboratingOrganizations/collaboratingOrganizations";
3
4
  import { CollaboratingOrganizationsStory } from "../../../Project/components/CollaboratingOrganizations/collaboratingOrganizations.stories";
5
+ import { Contacts } from "../../../Project/components/Contacts/contacts";
4
6
  import { ContactsStory } from "../../../Project/components/Contacts/contacts.stories";
7
+ import { Contributors } from "../../../Project/components/Contributors/contributors";
5
8
  import { ContributorsStory } from "../../../Project/components/Contributors/contributors.stories";
9
+ import { DataCurators } from "../../../Project/components/DataCurators/dataCurators";
6
10
  import { DataCuratorsStory } from "../../../Project/components/DataCurators/dataCurators.stories";
7
- import { DataReleasePolicyStory } from "../../../Project/components/DataReleasePolicy/dataReleasePolicy.stories";
11
+ import { DataReleasePolicy } from "../../../Project/components/DataReleasePolicy/dataReleasePolicy";
12
+ import { Description } from "../../../Project/components/Description/description";
8
13
  import { DescriptionStory } from "../../../Project/components/Description/description.stories";
14
+ import { Details } from "../../../Project/components/Details/details";
9
15
  import { DetailsStory } from "../../../Project/components/Details/details.stories";
16
+ import { Publications } from "../../../Project/components/Publications/publications";
10
17
  import { PublicationsStory } from "../../../Project/components/Publications/publications.stories";
18
+ import { SupplementaryLinks } from "../../../Project/components/SupplementaryLinks/supplementaryLinks";
11
19
  import { SupplementaryLinksStory } from "../../../Project/components/SupplementaryLinks/supplementaryLinks.stories";
12
20
  import { BackPageView } from "./backPageView";
13
21
 
14
- export default {
22
+ const meta = {
15
23
  argTypes: {
16
24
  isDetailOverview: { control: "boolean" },
17
25
  mainColumn: { table: { disable: true } },
@@ -23,39 +31,37 @@ export default {
23
31
  layout: "fullscreen",
24
32
  },
25
33
  title: "Views/BackPage",
26
- } as ComponentMeta<typeof BackPageView>;
34
+ } satisfies Meta<typeof BackPageView>;
27
35
 
28
- const BackPageViewTemplate: ComponentStory<typeof BackPageView> = (args) => (
29
- <BackPageView {...args} />
30
- );
36
+ export default meta;
31
37
 
32
- export const BackPageViewStory = BackPageViewTemplate.bind({});
33
- BackPageViewStory.args = {
34
- isDetailOverview: true,
35
- mainColumn: (
36
- <>
37
- <DescriptionStory
38
- projectDescription={DescriptionStory.args?.projectDescription || "None"}
39
- />
40
- <ContactsStory {...ContactsStory.args} />
41
- <PublicationsStory {...PublicationsStory.args} />
42
- <ContributorsStory {...ContributorsStory.args} />
43
- <CollaboratingOrganizationsStory
44
- {...CollaboratingOrganizationsStory.args}
45
- />
46
- <DataCuratorsStory {...DataCuratorsStory.args} />
47
- {/*<CitationStory {...CitationStory.args} />*/}
48
- <SupplementaryLinksStory {...SupplementaryLinksStory.args} />
49
- <DataReleasePolicyStory />
50
- </>
51
- ),
52
- sideColumn: (
53
- <>
54
- <DetailsStory
55
- title={DetailsStory.args?.title ?? ""}
56
- keyValuePairs={DetailsStory.args?.keyValuePairs}
57
- />
58
- </>
59
- ),
60
- top: <></>,
38
+ type Story = StoryObj<typeof meta>;
39
+
40
+ export const BackPageViewStory: Story = {
41
+ args: {
42
+ isDetailOverview: true,
43
+ mainColumn: (
44
+ <>
45
+ <Description
46
+ projectDescription={
47
+ DescriptionStory.args?.projectDescription || "None"
48
+ }
49
+ />
50
+ <Contacts {...ContactsStory.args} />
51
+ <Publications {...PublicationsStory.args} />
52
+ <Contributors {...ContributorsStory.args} />
53
+ <CollaboratingOrganizations {...CollaboratingOrganizationsStory.args} />
54
+ <DataCurators {...DataCuratorsStory.args} />
55
+ {/*<Citation {...CitationStory.args} />*/}
56
+ <SupplementaryLinks {...SupplementaryLinksStory.args} />
57
+ <DataReleasePolicy />
58
+ </>
59
+ ),
60
+ sideColumn: (
61
+ <>
62
+ <Details {...DetailsStory.args} />
63
+ </>
64
+ ),
65
+ top: <></>,
66
+ },
61
67
  };
@@ -1,6 +1,6 @@
1
1
  import { useRouter } from "next/router";
2
2
  import React, { ReactNode } from "react";
3
- import { useLayoutState } from "../../../../hooks/useLayoutState";
3
+ import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
4
4
  import { BaseComponentProps } from "../../../types";
5
5
  import { LayoutStyle } from "./common/entities";
6
6
  import {
@@ -29,9 +29,7 @@ export const ContentLayout = ({
29
29
  outline,
30
30
  }: BaseComponentProps & ContentLayoutProps): JSX.Element => {
31
31
  const { asPath } = useRouter();
32
- const {
33
- layoutState: { headerHeight },
34
- } = useLayoutState();
32
+ const { dimensions } = useLayoutDimensions();
35
33
  return (
36
34
  <Layout
37
35
  className={className}
@@ -40,16 +38,16 @@ export const ContentLayout = ({
40
38
  >
41
39
  {navigation && (
42
40
  <NavigationGrid
43
- headerHeight={headerHeight}
41
+ headerHeight={dimensions.header.height}
44
42
  panelColor={layoutStyle?.navigation}
45
43
  >
46
- <Positioner headerHeight={headerHeight}>
44
+ <Positioner headerHeight={dimensions.header.height}>
47
45
  <Navigation>{navigation}</Navigation>
48
46
  </Positioner>
49
47
  </NavigationGrid>
50
48
  )}
51
49
  <ContentGrid
52
- headerHeight={headerHeight}
50
+ headerHeight={dimensions.header.height}
53
51
  panelColor={layoutStyle?.content}
54
52
  >
55
53
  <Content>{content}</Content>
@@ -57,10 +55,10 @@ export const ContentLayout = ({
57
55
  {outline && (
58
56
  <OutlineGrid
59
57
  key={getOutlineKey(asPath)}
60
- headerHeight={headerHeight}
58
+ headerHeight={dimensions.header.height}
61
59
  panelColor={layoutStyle?.outline}
62
60
  >
63
- <Positioner headerHeight={headerHeight}>
61
+ <Positioner headerHeight={dimensions.header.height}>
64
62
  <Outline>{outline}</Outline>
65
63
  </Positioner>
66
64
  </OutlineGrid>
@@ -9,10 +9,10 @@ import { YouTubeIcon } from "../../../common/CustomIcon/components/YouTubeIcon/y
9
9
  import { Logo } from "../Header/components/Content/components/Logo/logo";
10
10
  import { Footer } from "./footer";
11
11
 
12
- export default {
12
+ const meta = {
13
13
  argTypes: {
14
14
  Branding: { control: { disabled: true } },
15
- navLinks: { control: "array" },
15
+ navLinks: { control: "object" },
16
16
  socials: { control: { disabled: true } },
17
17
  },
18
18
  component: Footer,
@@ -20,13 +20,15 @@ export default {
20
20
  layout: "fullscreen",
21
21
  },
22
22
  title: "Components/Layout/Footer",
23
- } as Meta<typeof Footer>;
23
+ } satisfies Meta<typeof Footer>;
24
+
25
+ export default meta;
24
26
 
25
27
  type Story = StoryObj<typeof Footer>;
26
28
 
27
29
  export const FooterStory: Story = {
28
30
  args: {
29
- Branding: <Logo alt="logo" height={24} link={"/"} src={logo} />,
31
+ Branding: <Logo alt="logo" height={24} link={"/"} src={logo.src} />,
30
32
  navLinks: [
31
33
  {
32
34
  label: "Help",
@@ -8,6 +8,7 @@ import { Link as DXLink } from "../../../Links/components/Link/link";
8
8
 
9
9
  export const AppBar = styled(MAppBar)`
10
10
  padding: 16px 0;
11
+ z-index: 1; /* required for outline or navigation overflow */
11
12
 
12
13
  .MuiToolbar-root {
13
14
  align-items: flex-start;
@@ -1,5 +1,7 @@
1
1
  import { Toolbar } from "@mui/material";
2
2
  import React, { ReactNode } from "react";
3
+ import { SELECTOR } from "../../../../common/selectors";
4
+ import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
3
5
  import { Social } from "../../../common/Socials/socials";
4
6
  import { ANCHOR_TARGET } from "../../../Links/common/entities";
5
7
  import { isNodeBoolean } from "../../../utils";
@@ -22,11 +24,14 @@ export const Footer = ({
22
24
  socials,
23
25
  versionInfo,
24
26
  }: FooterProps): JSX.Element => {
27
+ const { footerRef } = useLayoutDimensions();
25
28
  return (
26
29
  <AppBar
27
30
  className={className}
28
31
  color="inherit"
29
32
  component="footer"
33
+ id={SELECTOR.FOOTER}
34
+ ref={footerRef}
30
35
  variant="footer"
31
36
  >
32
37
  <Toolbar variant="dense">
@@ -31,7 +31,7 @@ const url = "/";
31
31
  export const HeaderStory: Story = {
32
32
  args: {
33
33
  authenticationEnabled: false,
34
- logo: <Logo alt="Logo" height={40} link="/" src={logo} />,
34
+ logo: <Logo alt="Logo" height={40} link="/" src={logo.src} />,
35
35
  navigation: [
36
36
  undefined,
37
37
  [
@@ -1,7 +1,9 @@
1
1
  import { Fade, Toolbar } from "@mui/material";
2
2
  import { usePathname } from "next/navigation";
3
3
  import React, { ReactNode } from "react";
4
+ import { SELECTOR } from "../../../../common/selectors";
4
5
  import { ComponentsConfig } from "../../../../config/entities";
6
+ import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
5
7
  import {
6
8
  APP_BAR_PROPS,
7
9
  FADE_TRANSITION_PROPS,
@@ -29,7 +31,6 @@ import { Socials } from "./components/Content/components/Socials/socials.styles"
29
31
  import { AppBar, Center, Left, Right } from "./header.styles";
30
32
  import { useHeaderNavigation } from "./hooks/useHeaderNavigation";
31
33
  import { useHeaderVisibility } from "./hooks/useHeaderVisibility";
32
- import { useMeasureHeader } from "./hooks/useMeasureHeader";
33
34
  import { useMenu } from "./hooks/useMenu";
34
35
 
35
36
  export interface HeaderProps {
@@ -48,7 +49,7 @@ export interface HeaderProps {
48
49
  export const Header = ({ ...headerProps }: HeaderProps): JSX.Element => {
49
50
  const { navigation } = useHeaderNavigation(headerProps);
50
51
  const { isIn } = useHeaderVisibility({ ...headerProps, navigation });
51
- const { headerRef } = useMeasureHeader();
52
+ const { headerRef } = useLayoutDimensions();
52
53
  const { onClose, onOpen, open } = useMenu();
53
54
  const pathname = usePathname() ?? "";
54
55
  const {
@@ -68,7 +69,12 @@ export const Header = ({ ...headerProps }: HeaderProps): JSX.Element => {
68
69
  pathname,
69
70
  };
70
71
  return (
71
- <AppBar {...APP_BAR_PROPS} ref={headerRef} className={className}>
72
+ <AppBar
73
+ {...APP_BAR_PROPS}
74
+ className={className}
75
+ id={SELECTOR.HEADER}
76
+ ref={headerRef}
77
+ >
72
78
  {/* Announcements */}
73
79
  <Announcements announcements={announcements} />
74
80
  {/* Toolbar */}
@@ -1,5 +1,5 @@
1
1
  import React, { ReactNode } from "react";
2
- import { useLayoutState } from "../../../../hooks/useLayoutState";
2
+ import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
3
3
  import { MainWithOffset } from "./main.styles";
4
4
 
5
5
  export interface MainProps {
@@ -8,10 +8,9 @@ export interface MainProps {
8
8
  }
9
9
 
10
10
  export const Main = ({ children, className }: MainProps): JSX.Element => {
11
- const { layoutState } = useLayoutState();
12
- const { headerHeight } = layoutState;
11
+ const { dimensions } = useLayoutDimensions();
13
12
  return (
14
- <MainWithOffset className={className} offset={headerHeight}>
13
+ <MainWithOffset className={className} offset={dimensions.header.height}>
15
14
  {children}
16
15
  </MainWithOffset>
17
16
  );
@@ -1,10 +1,10 @@
1
1
  import styled from "@emotion/styled";
2
- import { Tab as MTab } from "@mui/material";
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
6
 
7
- export const Tab = styled(MTab)`
7
+ export const StyledTab = styled(Tab)`
8
8
  ${tab};
9
9
 
10
10
  && {
@@ -1,24 +1,21 @@
1
- import { TabProps as MTabProps } from "@mui/material";
2
1
  import React from "react";
2
+ import { FONT_SIZE } from "../../../../../../styles/common/mui/icon";
3
+ import { TAB_PROPS } from "../../../../../../styles/common/mui/tab";
3
4
  import { Segment } from "../../../../../common/CustomIcon/components/Segment/segment";
4
- import { Tab } from "./contentsTab.styles";
5
-
6
- export interface ContentsTabProps extends Omit<MTabProps, "value"> {
7
- className?: string;
8
- value: string;
9
- }
5
+ import { StyledTab } from "./contentsTab.styles";
6
+ import { ContentsTabProps } from "./types";
10
7
 
11
8
  export const ContentsTab = ({
12
9
  className,
13
10
  value,
14
- ...props /* Spread props to allow for Mui Tab specific prop overrides. */
11
+ ...props /* MuiTabProps. */
15
12
  }: ContentsTabProps): JSX.Element => {
16
13
  return (
17
- <Tab
14
+ <StyledTab
18
15
  className={className}
19
16
  label="Contents"
20
- icon={<Segment fontSize="small" />}
21
- iconPosition="start"
17
+ icon={<Segment fontSize={FONT_SIZE.SMALL} />}
18
+ iconPosition={TAB_PROPS.ICON_POSITION.START}
22
19
  value={value}
23
20
  {...props}
24
21
  />
@@ -0,0 +1,8 @@
1
+ import { TabProps } from "@mui/material";
2
+ import { BaseComponentProps } from "../../../../../types";
3
+
4
+ export interface ContentsTabProps
5
+ extends BaseComponentProps,
6
+ Omit<TabProps, "value"> {
7
+ value: string;
8
+ }
@@ -0,0 +1,17 @@
1
+ import { isSSR } from "../../../../../../utils/ssr";
2
+ import { UseHash } from "./types";
3
+
4
+ /**
5
+ * Hook to get the current URL hash without the leading '#' character.
6
+ *
7
+ * @description
8
+ * Extracts the hash from window.location.hash and removes the leading '#'.
9
+ * Returns empty string when running in SSR environment.
10
+ *
11
+ * @returns Object containing the hash without leading '#', or empty string if SSR.
12
+ */
13
+ export function useHash(): UseHash {
14
+ if (isSSR()) return { hash: "" };
15
+ const { hash } = window.location;
16
+ return { hash: hash.replace(/^#/, "") };
17
+ }
@@ -0,0 +1,3 @@
1
+ export interface UseHash {
2
+ hash: string;
3
+ }
@@ -0,0 +1,3 @@
1
+ import { TabProps } from "@mui/material";
2
+
3
+ export const DEFAULT_TAB_VALUE: TabProps["value"] = "";
@@ -0,0 +1,32 @@
1
+ import { TabsProps } from "@mui/material";
2
+ import Router from "next/router";
3
+ import { SyntheticEvent, useCallback, useEffect, useState } from "react";
4
+ import { TABS_PROPS } from "../../../../../../styles/common/mui/tabs";
5
+ import { OutlineItem } from "../../types";
6
+ import { useHash } from "../UseHash/hook";
7
+ import { DEFAULT_TAB_VALUE } from "./constants";
8
+ import { getNextValue } from "./utils";
9
+
10
+ export function useTabs(
11
+ outline: OutlineItem[]
12
+ ): Pick<TabsProps, "indicatorColor" | "onChange" | "orientation" | "value"> {
13
+ const [value, setValue] = useState<TabsProps["value"]>(DEFAULT_TAB_VALUE);
14
+ const { hash } = useHash();
15
+
16
+ const onChange = useCallback((_event: SyntheticEvent, hash: string): void => {
17
+ Router.push({ hash });
18
+ }, []);
19
+
20
+ useEffect(() => {
21
+ setValue(getNextValue(hash, outline));
22
+ }, [hash, outline]);
23
+
24
+ return {
25
+ indicatorColor: value
26
+ ? TABS_PROPS.INDICATOR_COLOR.PRIMARY
27
+ : TABS_PROPS.INDICATOR_COLOR.TRANSPARENT,
28
+ onChange,
29
+ orientation: TABS_PROPS.ORIENTATION.VERTICAL,
30
+ value,
31
+ };
32
+ }
@@ -0,0 +1,18 @@
1
+ import { TabsProps } from "@mui/material";
2
+ import { OutlineItem } from "../../types";
3
+ import { DEFAULT_TAB_VALUE } from "./constants";
4
+
5
+ /**
6
+ * Returns the tab value for navigation.
7
+ * @param hash - The current hash from the URL.
8
+ * @param outlineItems - Outline items.
9
+ * @returns The item's hash if found and enabled, otherwise returns the default tab value.
10
+ */
11
+ export function getNextValue(
12
+ hash: string,
13
+ outlineItems: OutlineItem[]
14
+ ): TabsProps["value"] {
15
+ const item = outlineItems.find((item) => item.hash === hash);
16
+ if (!item || item.disabled) return DEFAULT_TAB_VALUE;
17
+ return item.hash;
18
+ }
@@ -24,7 +24,7 @@ export const tab = css`
24
24
  }
25
25
  `;
26
26
 
27
- export const Tabs = styled(MTabs)`
27
+ export const StyledTabs = styled(MTabs)`
28
28
  align-self: flex-start;
29
29
  box-shadow: inset 1px 0 ${smokeMain};
30
30
  margin: 0;
@@ -46,7 +46,7 @@ export const Tabs = styled(MTabs)`
46
46
  }
47
47
  `;
48
48
 
49
- export const Tab = styled(MTab, {
49
+ export const StyledTab = styled(MTab, {
50
50
  shouldForwardProp: (prop) => prop !== "depth",
51
51
  })<Props>`
52
52
  ${tab};