@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
@@ -1,5 +1,31 @@
1
- import { ComponentMeta } from "@storybook/react";
2
- import { BackPageView } from "./backPageView";
3
- declare const _default: ComponentMeta<typeof BackPageView>;
4
- export default _default;
5
- export declare const BackPageViewStory: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("./backPageView").BackPageViewProps>;
1
+ import { StoryObj } from "@storybook/react";
2
+ declare const meta: {
3
+ argTypes: {
4
+ isDetailOverview: {
5
+ control: "boolean";
6
+ };
7
+ mainColumn: {
8
+ table: {
9
+ disable: true;
10
+ };
11
+ };
12
+ sideColumn: {
13
+ table: {
14
+ disable: true;
15
+ };
16
+ };
17
+ top: {
18
+ table: {
19
+ disable: true;
20
+ };
21
+ };
22
+ };
23
+ component: ({ isDetailOverview, mainColumn, sideColumn, Tabs, top, }: import("./backPageView").BackPageViewProps) => JSX.Element;
24
+ parameters: {
25
+ layout: string;
26
+ };
27
+ title: string;
28
+ };
29
+ export default meta;
30
+ type Story = StoryObj<typeof meta>;
31
+ export declare const BackPageViewStory: Story;
@@ -1,15 +1,23 @@
1
1
  import React from "react";
2
+ import { CollaboratingOrganizations } from "../../../Project/components/CollaboratingOrganizations/collaboratingOrganizations";
2
3
  import { CollaboratingOrganizationsStory } from "../../../Project/components/CollaboratingOrganizations/collaboratingOrganizations.stories";
4
+ import { Contacts } from "../../../Project/components/Contacts/contacts";
3
5
  import { ContactsStory } from "../../../Project/components/Contacts/contacts.stories";
6
+ import { Contributors } from "../../../Project/components/Contributors/contributors";
4
7
  import { ContributorsStory } from "../../../Project/components/Contributors/contributors.stories";
8
+ import { DataCurators } from "../../../Project/components/DataCurators/dataCurators";
5
9
  import { DataCuratorsStory } from "../../../Project/components/DataCurators/dataCurators.stories";
6
- import { DataReleasePolicyStory } from "../../../Project/components/DataReleasePolicy/dataReleasePolicy.stories";
10
+ import { DataReleasePolicy } from "../../../Project/components/DataReleasePolicy/dataReleasePolicy";
11
+ import { Description } from "../../../Project/components/Description/description";
7
12
  import { DescriptionStory } from "../../../Project/components/Description/description.stories";
13
+ import { Details } from "../../../Project/components/Details/details";
8
14
  import { DetailsStory } from "../../../Project/components/Details/details.stories";
15
+ import { Publications } from "../../../Project/components/Publications/publications";
9
16
  import { PublicationsStory } from "../../../Project/components/Publications/publications.stories";
17
+ import { SupplementaryLinks } from "../../../Project/components/SupplementaryLinks/supplementaryLinks";
10
18
  import { SupplementaryLinksStory } from "../../../Project/components/SupplementaryLinks/supplementaryLinks.stories";
11
19
  import { BackPageView } from "./backPageView";
12
- export default {
20
+ const meta = {
13
21
  argTypes: {
14
22
  isDetailOverview: { control: "boolean" },
15
23
  mainColumn: { table: { disable: true } },
@@ -22,20 +30,21 @@ export default {
22
30
  },
23
31
  title: "Views/BackPage",
24
32
  };
25
- const BackPageViewTemplate = (args) => (React.createElement(BackPageView, { ...args }));
26
- export const BackPageViewStory = BackPageViewTemplate.bind({});
27
- BackPageViewStory.args = {
28
- isDetailOverview: true,
29
- mainColumn: (React.createElement(React.Fragment, null,
30
- React.createElement(DescriptionStory, { projectDescription: DescriptionStory.args?.projectDescription || "None" }),
31
- React.createElement(ContactsStory, { ...ContactsStory.args }),
32
- React.createElement(PublicationsStory, { ...PublicationsStory.args }),
33
- React.createElement(ContributorsStory, { ...ContributorsStory.args }),
34
- React.createElement(CollaboratingOrganizationsStory, { ...CollaboratingOrganizationsStory.args }),
35
- React.createElement(DataCuratorsStory, { ...DataCuratorsStory.args }),
36
- React.createElement(SupplementaryLinksStory, { ...SupplementaryLinksStory.args }),
37
- React.createElement(DataReleasePolicyStory, null))),
38
- sideColumn: (React.createElement(React.Fragment, null,
39
- React.createElement(DetailsStory, { title: DetailsStory.args?.title ?? "", keyValuePairs: DetailsStory.args?.keyValuePairs }))),
40
- top: React.createElement(React.Fragment, null),
33
+ export default meta;
34
+ export const BackPageViewStory = {
35
+ args: {
36
+ isDetailOverview: true,
37
+ mainColumn: (React.createElement(React.Fragment, null,
38
+ React.createElement(Description, { projectDescription: DescriptionStory.args?.projectDescription || "None" }),
39
+ React.createElement(Contacts, { ...ContactsStory.args }),
40
+ React.createElement(Publications, { ...PublicationsStory.args }),
41
+ React.createElement(Contributors, { ...ContributorsStory.args }),
42
+ React.createElement(CollaboratingOrganizations, { ...CollaboratingOrganizationsStory.args }),
43
+ React.createElement(DataCurators, { ...DataCuratorsStory.args }),
44
+ React.createElement(SupplementaryLinks, { ...SupplementaryLinksStory.args }),
45
+ React.createElement(DataReleasePolicy, null))),
46
+ sideColumn: (React.createElement(React.Fragment, null,
47
+ React.createElement(Details, { ...DetailsStory.args }))),
48
+ top: React.createElement(React.Fragment, null),
49
+ },
41
50
  };
@@ -1,18 +1,18 @@
1
1
  import { useRouter } from "next/router";
2
2
  import React from "react";
3
- import { useLayoutState } from "../../../../hooks/useLayoutState";
3
+ import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
4
4
  import { Content, ContentGrid, ContentLayout as Layout, Navigation, NavigationGrid, Outline, OutlineGrid, Positioner, } from "./contentLayout.styles";
5
5
  export const ContentLayout = ({ className, content, layoutStyle, navigation, outline, }) => {
6
6
  const { asPath } = useRouter();
7
- const { layoutState: { headerHeight }, } = useLayoutState();
7
+ const { dimensions } = useLayoutDimensions();
8
8
  return (React.createElement(Layout, { className: className, hasNavigation: Boolean(navigation), panelColor: layoutStyle?.content },
9
- navigation && (React.createElement(NavigationGrid, { headerHeight: headerHeight, panelColor: layoutStyle?.navigation },
10
- React.createElement(Positioner, { headerHeight: headerHeight },
9
+ navigation && (React.createElement(NavigationGrid, { headerHeight: dimensions.header.height, panelColor: layoutStyle?.navigation },
10
+ React.createElement(Positioner, { headerHeight: dimensions.header.height },
11
11
  React.createElement(Navigation, null, navigation)))),
12
- React.createElement(ContentGrid, { headerHeight: headerHeight, panelColor: layoutStyle?.content },
12
+ React.createElement(ContentGrid, { headerHeight: dimensions.header.height, panelColor: layoutStyle?.content },
13
13
  React.createElement(Content, null, content)),
14
- outline && (React.createElement(OutlineGrid, { key: getOutlineKey(asPath), headerHeight: headerHeight, panelColor: layoutStyle?.outline },
15
- React.createElement(Positioner, { headerHeight: headerHeight },
14
+ outline && (React.createElement(OutlineGrid, { key: getOutlineKey(asPath), headerHeight: dimensions.header.height, panelColor: layoutStyle?.outline },
15
+ React.createElement(Positioner, { headerHeight: dimensions.header.height },
16
16
  React.createElement(Outline, null, outline))))));
17
17
  };
18
18
  /**
@@ -1,11 +1,14 @@
1
1
  import { Toolbar } from "@mui/material";
2
2
  import React from "react";
3
+ import { SELECTOR } from "../../../../common/selectors";
4
+ import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
3
5
  import { ANCHOR_TARGET } from "../../../Links/common/entities";
4
6
  import { isNodeBoolean } from "../../../utils";
5
7
  import { VersionInfo } from "./components/VersionInfo/versionInfo";
6
8
  import { AppBar, Link, Links, Socials } from "./footer.styles";
7
9
  export const Footer = ({ Branding, className, navLinks, socials, versionInfo, }) => {
8
- return (React.createElement(AppBar, { className: className, color: "inherit", component: "footer", variant: "footer" },
10
+ const { footerRef } = useLayoutDimensions();
11
+ return (React.createElement(AppBar, { className: className, color: "inherit", component: "footer", id: SELECTOR.FOOTER, ref: footerRef, variant: "footer" },
9
12
  React.createElement(Toolbar, { variant: "dense" },
10
13
  Branding,
11
14
  (navLinks || socials || versionInfo) && (React.createElement(Links, null,
@@ -1,6 +1,27 @@
1
- import { Meta, StoryObj } from "@storybook/react";
1
+ import { StoryObj } from "@storybook/react";
2
2
  import { Footer } from "./footer";
3
- declare const _default: Meta<typeof Footer>;
4
- export default _default;
3
+ declare const meta: {
4
+ argTypes: {
5
+ Branding: {
6
+ control: {
7
+ disabled: boolean;
8
+ };
9
+ };
10
+ navLinks: {
11
+ control: "object";
12
+ };
13
+ socials: {
14
+ control: {
15
+ disabled: boolean;
16
+ };
17
+ };
18
+ };
19
+ component: ({ Branding, className, navLinks, socials, versionInfo, }: import("./footer").FooterProps) => JSX.Element;
20
+ parameters: {
21
+ layout: string;
22
+ };
23
+ title: string;
24
+ };
25
+ export default meta;
5
26
  type Story = StoryObj<typeof Footer>;
6
27
  export declare const FooterStory: Story;
@@ -7,10 +7,10 @@ import { XIcon } from "../../../common/CustomIcon/components/XIcon/xIcon";
7
7
  import { YouTubeIcon } from "../../../common/CustomIcon/components/YouTubeIcon/youTubeIcon";
8
8
  import { Logo } from "../Header/components/Content/components/Logo/logo";
9
9
  import { Footer } from "./footer";
10
- export default {
10
+ const meta = {
11
11
  argTypes: {
12
12
  Branding: { control: { disabled: true } },
13
- navLinks: { control: "array" },
13
+ navLinks: { control: "object" },
14
14
  socials: { control: { disabled: true } },
15
15
  },
16
16
  component: Footer,
@@ -19,9 +19,10 @@ export default {
19
19
  },
20
20
  title: "Components/Layout/Footer",
21
21
  };
22
+ export default meta;
22
23
  export const FooterStory = {
23
24
  args: {
24
- Branding: React.createElement(Logo, { alt: "logo", height: 24, link: "/", src: logo }),
25
+ Branding: React.createElement(Logo, { alt: "logo", height: 24, link: "/", src: logo.src }),
25
26
  navLinks: [
26
27
  {
27
28
  label: "Help",
@@ -7,6 +7,7 @@ import { Socials as DXSocials } from "../../../common/Socials/socials";
7
7
  import { Link as DXLink } from "../../../Links/components/Link/link";
8
8
  export const AppBar = styled(MAppBar) `
9
9
  padding: 16px 0;
10
+ z-index: 1; /* required for outline or navigation overflow */
10
11
 
11
12
  .MuiToolbar-root {
12
13
  align-items: flex-start;
@@ -1,6 +1,8 @@
1
1
  import { Fade, Toolbar } from "@mui/material";
2
2
  import { usePathname } from "next/navigation";
3
3
  import React from "react";
4
+ import { SELECTOR } from "../../../../common/selectors";
5
+ import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
4
6
  import { APP_BAR_PROPS, FADE_TRANSITION_PROPS, TOOLBAR_PROPS, } from "./common/constants";
5
7
  import { Announcements } from "./components/Announcements/announcements";
6
8
  import { Actions } from "./components/Content/components/Actions/actions";
@@ -15,12 +17,11 @@ import { Socials } from "./components/Content/components/Socials/socials.styles"
15
17
  import { AppBar, Center, Left, Right } from "./header.styles";
16
18
  import { useHeaderNavigation } from "./hooks/useHeaderNavigation";
17
19
  import { useHeaderVisibility } from "./hooks/useHeaderVisibility";
18
- import { useMeasureHeader } from "./hooks/useMeasureHeader";
19
20
  import { useMenu } from "./hooks/useMenu";
20
21
  export const Header = ({ ...headerProps }) => {
21
22
  const { navigation } = useHeaderNavigation(headerProps);
22
23
  const { isIn } = useHeaderVisibility({ ...headerProps, navigation });
23
- const { headerRef } = useMeasureHeader();
24
+ const { headerRef } = useLayoutDimensions();
24
25
  const { onClose, onOpen, open } = useMenu();
25
26
  const pathname = usePathname() ?? "";
26
27
  const { actions, announcements, authenticationEnabled, className, logo, searchEnabled, searchURL, slogan, socialMedia, } = headerProps;
@@ -29,7 +30,7 @@ export const Header = ({ ...headerProps }) => {
29
30
  headerProps: { ...headerProps, navigation },
30
31
  pathname,
31
32
  };
32
- return (React.createElement(AppBar, { ...APP_BAR_PROPS, ref: headerRef, className: className },
33
+ return (React.createElement(AppBar, { ...APP_BAR_PROPS, className: className, id: SELECTOR.HEADER, ref: headerRef },
33
34
  React.createElement(Announcements, { announcements: announcements }),
34
35
  React.createElement(Toolbar, { ...TOOLBAR_PROPS },
35
36
  React.createElement(Fade, { ...FADE_TRANSITION_PROPS, in: isIn.isLeftGroupIn },
@@ -25,7 +25,7 @@ const url = "/";
25
25
  export const HeaderStory = {
26
26
  args: {
27
27
  authenticationEnabled: false,
28
- logo: React.createElement(Logo, { alt: "Logo", height: 40, link: "/", src: logo }),
28
+ logo: React.createElement(Logo, { alt: "Logo", height: 40, link: "/", src: logo.src }),
29
29
  navigation: [
30
30
  undefined,
31
31
  [
@@ -1,8 +1,7 @@
1
1
  import React from "react";
2
- import { useLayoutState } from "../../../../hooks/useLayoutState";
2
+ import { useLayoutDimensions } from "../../../../providers/layoutDimensions/hook";
3
3
  import { MainWithOffset } from "./main.styles";
4
4
  export const Main = ({ children, className }) => {
5
- const { layoutState } = useLayoutState();
6
- const { headerHeight } = layoutState;
7
- return (React.createElement(MainWithOffset, { className: className, offset: headerHeight }, children));
5
+ const { dimensions } = useLayoutDimensions();
6
+ return (React.createElement(MainWithOffset, { className: className, offset: dimensions.header.height }, children));
8
7
  };
@@ -1,6 +1,2 @@
1
- import { TabProps as MTabProps } from "@mui/material";
2
- export interface ContentsTabProps extends Omit<MTabProps, "value"> {
3
- className?: string;
4
- value: string;
5
- }
1
+ import { ContentsTabProps } from "./types";
6
2
  export declare const ContentsTab: ({ className, value, ...props }: ContentsTabProps) => JSX.Element;
@@ -1,6 +1,8 @@
1
1
  import React from "react";
2
+ import { FONT_SIZE } from "../../../../../../styles/common/mui/icon";
3
+ import { TAB_PROPS } from "../../../../../../styles/common/mui/tab";
2
4
  import { Segment } from "../../../../../common/CustomIcon/components/Segment/segment";
3
- import { Tab } from "./contentsTab.styles";
4
- export const ContentsTab = ({ className, value, ...props /* Spread props to allow for Mui Tab specific prop overrides. */ }) => {
5
- return (React.createElement(Tab, { className: className, label: "Contents", icon: React.createElement(Segment, { fontSize: "small" }), iconPosition: "start", value: value, ...props }));
5
+ import { StyledTab } from "./contentsTab.styles";
6
+ export const ContentsTab = ({ className, value, ...props /* MuiTabProps. */ }) => {
7
+ return (React.createElement(StyledTab, { className: className, label: "Contents", icon: React.createElement(Segment, { fontSize: FONT_SIZE.SMALL }), iconPosition: TAB_PROPS.ICON_POSITION.START, value: value, ...props }));
6
8
  };
@@ -1,4 +1,4 @@
1
- export declare const Tab: import("@emotion/styled").StyledComponent<import("@mui/material").TabOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
1
+ export declare const StyledTab: import("@emotion/styled").StyledComponent<import("@mui/material").TabOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
2
2
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
3
3
  }, "label" | "style" | "className" | "classes" | "tabIndex" | "children" | "sx" | "disabled" | "value" | "action" | "icon" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "wrapped" | "iconPosition"> & {
4
4
  theme?: import("@emotion/react").Theme;
@@ -1,9 +1,9 @@
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
- export const Tab = styled(MTab) `
6
+ export const StyledTab = styled(Tab) `
7
7
  ${tab};
8
8
 
9
9
  && {
@@ -0,0 +1,5 @@
1
+ import { TabProps } from "@mui/material";
2
+ import { BaseComponentProps } from "../../../../../types";
3
+ export interface ContentsTabProps extends BaseComponentProps, Omit<TabProps, "value"> {
4
+ value: string;
5
+ }
@@ -0,0 +1,11 @@
1
+ import { UseHash } from "./types";
2
+ /**
3
+ * Hook to get the current URL hash without the leading '#' character.
4
+ *
5
+ * @description
6
+ * Extracts the hash from window.location.hash and removes the leading '#'.
7
+ * Returns empty string when running in SSR environment.
8
+ *
9
+ * @returns Object containing the hash without leading '#', or empty string if SSR.
10
+ */
11
+ export declare function useHash(): UseHash;
@@ -0,0 +1,16 @@
1
+ import { isSSR } from "../../../../../../utils/ssr";
2
+ /**
3
+ * Hook to get the current URL hash without the leading '#' character.
4
+ *
5
+ * @description
6
+ * Extracts the hash from window.location.hash and removes the leading '#'.
7
+ * Returns empty string when running in SSR environment.
8
+ *
9
+ * @returns Object containing the hash without leading '#', or empty string if SSR.
10
+ */
11
+ export function useHash() {
12
+ if (isSSR())
13
+ return { hash: "" };
14
+ const { hash } = window.location;
15
+ return { hash: hash.replace(/^#/, "") };
16
+ }
@@ -0,0 +1,3 @@
1
+ export interface UseHash {
2
+ hash: string;
3
+ }
@@ -0,0 +1,2 @@
1
+ import { TabProps } from "@mui/material";
2
+ export declare const DEFAULT_TAB_VALUE: TabProps["value"];
@@ -0,0 +1,3 @@
1
+ import { TabsProps } from "@mui/material";
2
+ import { OutlineItem } from "../../types";
3
+ export declare function useTabs(outline: OutlineItem[]): Pick<TabsProps, "indicatorColor" | "onChange" | "orientation" | "value">;
@@ -0,0 +1,24 @@
1
+ import Router from "next/router";
2
+ import { useCallback, useEffect, useState } from "react";
3
+ import { TABS_PROPS } from "../../../../../../styles/common/mui/tabs";
4
+ import { useHash } from "../UseHash/hook";
5
+ import { DEFAULT_TAB_VALUE } from "./constants";
6
+ import { getNextValue } from "./utils";
7
+ export function useTabs(outline) {
8
+ const [value, setValue] = useState(DEFAULT_TAB_VALUE);
9
+ const { hash } = useHash();
10
+ const onChange = useCallback((_event, hash) => {
11
+ Router.push({ hash });
12
+ }, []);
13
+ useEffect(() => {
14
+ setValue(getNextValue(hash, outline));
15
+ }, [hash, outline]);
16
+ return {
17
+ indicatorColor: value
18
+ ? TABS_PROPS.INDICATOR_COLOR.PRIMARY
19
+ : TABS_PROPS.INDICATOR_COLOR.TRANSPARENT,
20
+ onChange,
21
+ orientation: TABS_PROPS.ORIENTATION.VERTICAL,
22
+ value,
23
+ };
24
+ }
@@ -0,0 +1,9 @@
1
+ import { TabsProps } from "@mui/material";
2
+ import { OutlineItem } from "../../types";
3
+ /**
4
+ * Returns the tab value for navigation.
5
+ * @param hash - The current hash from the URL.
6
+ * @param outlineItems - Outline items.
7
+ * @returns The item's hash if found and enabled, otherwise returns the default tab value.
8
+ */
9
+ export declare function getNextValue(hash: string, outlineItems: OutlineItem[]): TabsProps["value"];
@@ -0,0 +1,13 @@
1
+ import { DEFAULT_TAB_VALUE } from "./constants";
2
+ /**
3
+ * Returns the tab value for navigation.
4
+ * @param hash - The current hash from the URL.
5
+ * @param outlineItems - Outline items.
6
+ * @returns The item's hash if found and enabled, otherwise returns the default tab value.
7
+ */
8
+ export function getNextValue(hash, outlineItems) {
9
+ const item = outlineItems.find((item) => item.hash === hash);
10
+ if (!item || item.disabled)
11
+ return DEFAULT_TAB_VALUE;
12
+ return item.hash;
13
+ }
@@ -1,13 +1,2 @@
1
- import { ElementType } from "react";
2
- import { ContentsTabProps } from "./components/ContentsTab/contentsTab";
3
- export interface OutlineItem {
4
- depth: number;
5
- hash: string;
6
- value: string;
7
- }
8
- export interface OutlineProps {
9
- className?: string;
10
- Contents: ElementType<ContentsTabProps>;
11
- outline: OutlineItem[];
12
- }
13
- export declare const Outline: ({ className, Contents, outline, ...props }: OutlineProps) => JSX.Element;
1
+ import { OutlineProps } from "./types";
2
+ export declare const Outline: ({ className, Contents, outline, ...props }: OutlineProps) => JSX.Element | null;
@@ -1,34 +1,10 @@
1
- import { useRouter } from "next/router";
2
- import React, { useEffect, useState } from "react";
3
- import { DEFAULT_TAB_VALUE } from "./common/constants";
4
- import { Tab, Tabs } from "./outline.styles";
5
- export const Outline = ({ className, Contents, outline, ...props /* Spread props to allow for Mui Tabs specific prop overrides. */ }) => {
6
- const { asPath, push } = useRouter();
7
- const [activeTab, setActiveTab] = useState("");
8
- // Callback fired when selected tab value changes.
9
- const handleChange = (_event, tabValue) => {
10
- push(`#${tabValue}`);
11
- };
12
- // Update active tab when path changes.
13
- useEffect(() => {
14
- setActiveTab(getActiveTab(outline, asPath));
15
- }, [asPath, outline]);
16
- return (React.createElement(Tabs, { className: className, indicatorColor: activeTab ? "primary" : "transparent", onChange: handleChange, orientation: "vertical", value: activeTab, ...props },
1
+ import React from "react";
2
+ import { DEFAULT_TAB_VALUE } from "./hooks/UseTabs/constants";
3
+ import { useTabs } from "./hooks/UseTabs/hook";
4
+ import { StyledTab, StyledTabs } from "./outline.styles";
5
+ export const Outline = ({ className, Contents, outline, ...props /* MuiTabsProps */ }) => {
6
+ const { indicatorColor, onChange, orientation, value } = useTabs(outline);
7
+ return (React.createElement(StyledTabs, { className: className, indicatorColor: indicatorColor, onChange: onChange, orientation: orientation, value: value, ...props },
17
8
  React.createElement(Contents, { value: DEFAULT_TAB_VALUE }),
18
- outline.map(({ depth, hash, value }) => (React.createElement(Tab, { key: hash, depth: depth, label: value, value: hash })))));
9
+ outline.map(({ depth, disabled, hash, value }) => (React.createElement(StyledTab, { depth: depth, disabled: disabled, key: hash, label: value, value: hash })))));
19
10
  };
20
- /**
21
- * Initializes active tab.
22
- * @param outline - Outline items.
23
- * @param asPath - Current path.
24
- * @returns active tab.
25
- */
26
- function getActiveTab(outline, asPath) {
27
- if (asPath.includes("#")) {
28
- const hashLink = asPath.split("#")[1];
29
- if (outline.some(({ hash }) => hash === hashLink)) {
30
- return hashLink;
31
- }
32
- }
33
- return DEFAULT_TAB_VALUE;
34
- }
@@ -3,12 +3,12 @@ interface Props extends TabProps {
3
3
  depth: number;
4
4
  }
5
5
  export declare const tab: import("@emotion/react").SerializedStyles;
6
- export declare const Tabs: import("@emotion/styled").StyledComponent<import("@mui/material").TabsOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
6
+ export declare const StyledTabs: import("@emotion/styled").StyledComponent<import("@mui/material").TabsOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
7
7
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
8
8
  }, "style" | "className" | "classes" | "aria-label" | "aria-labelledby" | "children" | "onChange" | "sx" | "variant" | "orientation" | "value" | "action" | "slotProps" | "slots" | "allowScrollButtonsMobile" | "centered" | "indicatorColor" | "ScrollButtonComponent" | "scrollButtons" | "selectionFollowsFocus" | "TabIndicatorProps" | "TabScrollButtonProps" | "textColor" | "visibleScrollbar"> & {
9
9
  theme?: import("@emotion/react").Theme;
10
10
  }, {}, {}>;
11
- export declare const Tab: import("@emotion/styled").StyledComponent<import("@mui/material").TabOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
11
+ export declare const StyledTab: import("@emotion/styled").StyledComponent<import("@mui/material").TabOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
12
12
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
13
13
  }, "label" | "style" | "className" | "classes" | "tabIndex" | "children" | "sx" | "disabled" | "value" | "action" | "icon" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "wrapped" | "iconPosition"> & {
14
14
  theme?: import("@emotion/react").Theme;
@@ -15,7 +15,7 @@ export const tab = css `
15
15
  text-decoration: none;
16
16
  }
17
17
  `;
18
- export const Tabs = styled(MTabs) `
18
+ export const StyledTabs = styled(MTabs) `
19
19
  align-self: flex-start;
20
20
  box-shadow: inset 1px 0 ${smokeMain};
21
21
  margin: 0;
@@ -36,7 +36,7 @@ export const Tabs = styled(MTabs) `
36
36
  width: 3px;
37
37
  }
38
38
  `;
39
- export const Tab = styled(MTab, {
39
+ export const StyledTab = styled(MTab, {
40
40
  shouldForwardProp: (prop) => prop !== "depth",
41
41
  }) `
42
42
  ${tab};
@@ -0,0 +1,14 @@
1
+ import { TabsProps } from "@mui/material";
2
+ import { ElementType } from "react";
3
+ import { BaseComponentProps } from "../../../types";
4
+ import { ContentsTabProps } from "./components/ContentsTab/types";
5
+ export interface OutlineItem {
6
+ depth: number;
7
+ disabled?: boolean;
8
+ hash: string;
9
+ value: string;
10
+ }
11
+ export interface OutlineProps extends BaseComponentProps, TabsProps {
12
+ Contents: ElementType<ContentsTabProps>;
13
+ outline: OutlineItem[];
14
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,13 @@
1
- import { ComponentMeta } from "@storybook/react";
2
- import { SidebarLabel } from "./sidebarLabel";
3
- declare const _default: ComponentMeta<typeof SidebarLabel>;
4
- export default _default;
5
- export declare const SidebarLabelStory: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, import("./sidebarLabel").SidebarLabelProps>;
1
+ import { StoryObj } from "@storybook/react";
2
+ declare const meta: {
3
+ argTypes: {
4
+ label: {
5
+ control: "text";
6
+ };
7
+ };
8
+ component: ({ label }: import("./sidebarLabel").SidebarLabelProps) => JSX.Element;
9
+ title: string;
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof meta>;
13
+ export declare const SidebarLabelStory: Story;
@@ -1,14 +1,14 @@
1
- import React from "react";
2
1
  import { SidebarLabel } from "./sidebarLabel";
3
- export default {
2
+ const meta = {
4
3
  argTypes: {
5
4
  label: { control: "text" },
6
5
  },
7
6
  component: SidebarLabel,
8
7
  title: "Components/Label",
9
8
  };
10
- const SidebarLabelTemplate = (args) => (React.createElement(SidebarLabel, { ...args }));
11
- export const SidebarLabelStory = SidebarLabelTemplate.bind({});
12
- SidebarLabelStory.args = {
13
- label: "Filter",
9
+ export default meta;
10
+ export const SidebarLabelStory = {
11
+ args: {
12
+ label: "Filter",
13
+ },
14
14
  };
@@ -1,8 +1,8 @@
1
1
  import React from "react";
2
- import { SIDEBAR_POSITIONER } from "../../../../../../common/selectors";
3
- import { useLayoutState } from "../../../../../../hooks/useLayoutState";
2
+ import { SELECTOR } from "../../../../../../common/selectors";
3
+ import { useLayoutDimensions } from "../../../../../../providers/layoutDimensions/hook";
4
4
  import { SidebarPositioner as Positioner } from "./sidebarPositioner.styles";
5
5
  export const SidebarPositioner = ({ children, }) => {
6
- const { layoutState: { headerHeight }, } = useLayoutState();
7
- return (React.createElement(Positioner, { headerHeight: headerHeight, id: SIDEBAR_POSITIONER }, children));
6
+ const { dimensions } = useLayoutDimensions();
7
+ return (React.createElement(Positioner, { headerHeight: dimensions.header.height, id: SELECTOR.SIDEBAR_POSITIONER }, children));
8
8
  };
@@ -1,3 +1,4 @@
1
+ import { fn } from "@storybook/test";
1
2
  import React from "react";
2
3
  import { Sidebar } from "./sidebar";
3
4
  export default {
@@ -34,5 +35,6 @@ export const TemporaryOpenSidebarStory = {
34
35
  args: {
35
36
  children: React.createElement("div", null),
36
37
  drawerOpen: true,
38
+ onDrawerClose: fn(),
37
39
  },
38
40
  };