@databiosphere/findable-ui 24.0.0 → 25.1.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 (291) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +51 -0
  3. package/lib/common/entities.d.ts +1 -0
  4. package/lib/components/DataDictionary/components/Entities/constants.d.ts +2 -2
  5. package/lib/components/DataDictionary/components/Entities/constants.js +1 -1
  6. package/lib/components/DataDictionary/components/Entities/entities.js +3 -3
  7. package/lib/components/DataDictionary/components/Entity/constants.d.ts +2 -2
  8. package/lib/components/DataDictionary/components/Entity/constants.js +1 -1
  9. package/lib/components/DataDictionary/components/Entity/entity.js +4 -4
  10. package/lib/components/Export/components/ExportForm/exportForm.styles.d.ts +2 -2
  11. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.js +1 -1
  12. package/lib/components/Filter/components/ClearAllFilters/clearAllFilters.js +2 -1
  13. package/lib/components/Filter/components/Filter/filter.js +2 -1
  14. package/lib/components/Filter/components/FilterLabel/filterLabel.js +2 -2
  15. package/lib/components/Filter/components/FilterLabel/filterLabel.styles.d.ts +1 -1
  16. package/lib/components/Filter/components/Filters/filters.js +2 -1
  17. package/lib/components/Filter/components/HighlightedLabel/highlightedLabel.d.ts +3 -2
  18. package/lib/components/Filter/components/HighlightedLabel/highlightedLabel.js +2 -2
  19. package/lib/components/Filter/components/SearchAllFilters/components/VariableSizeListItem/variableSizeListItem.js +3 -2
  20. package/lib/components/Filter/components/SearchAllFilters/searchAllFilters.js +2 -1
  21. package/lib/components/Filter/components/SearchAllFiltersSearch/components/SearchCloseButton/searchCloseButton.js +2 -2
  22. package/lib/components/Filter/components/VariableSizeListItem/variableSizeListItem.js +3 -2
  23. package/lib/components/Index/components/EntitiesView/components/ChartView/chartView.d.ts +2 -0
  24. package/lib/components/Index/components/EntitiesView/components/ChartView/chartView.js +17 -0
  25. package/lib/components/Index/components/EntitiesView/components/ChartView/chartView.styles.d.ts +13 -0
  26. package/lib/components/Index/components/EntitiesView/components/ChartView/chartView.styles.js +12 -0
  27. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/barX/constants.d.ts +9 -0
  28. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/barX/constants.js +9 -0
  29. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/barX/plot.d.ts +3 -0
  30. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/barX/plot.js +86 -0
  31. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/barX/utils.d.ts +105 -0
  32. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/barX/utils.js +196 -0
  33. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/chart.d.ts +2 -0
  34. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/chart.js +7 -0
  35. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/chart.styles.d.ts +3 -0
  36. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/chart.styles.js +29 -0
  37. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/constants.d.ts +1 -0
  38. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/constants.js +1 -0
  39. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/stories/args.d.ts +4 -0
  40. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/stories/args.js +70 -0
  41. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/stories/chart.stories.d.ts +7 -0
  42. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/stories/chart.stories.js +19 -0
  43. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/types.d.ts +6 -0
  44. package/lib/components/Index/components/EntitiesView/components/ChartView/components/Chart/types.js +1 -0
  45. package/lib/components/Index/components/EntitiesView/components/ChartView/constants.d.ts +1 -0
  46. package/lib/components/Index/components/EntitiesView/components/ChartView/constants.js +1 -0
  47. package/lib/components/Index/components/EntitiesView/components/ChartView/hooks/UseChartView/types.d.ts +7 -0
  48. package/lib/components/Index/components/EntitiesView/components/ChartView/hooks/UseChartView/types.js +1 -0
  49. package/lib/components/Index/components/EntitiesView/components/ChartView/hooks/UseChartView/useChartView.d.ts +3 -0
  50. package/lib/components/Index/components/EntitiesView/components/ChartView/hooks/UseChartView/useChartView.js +11 -0
  51. package/lib/components/Index/components/EntitiesView/components/ChartView/stories/args.d.ts +3 -0
  52. package/lib/components/Index/components/EntitiesView/components/ChartView/stories/args.js +96 -0
  53. package/lib/components/Index/components/EntitiesView/components/ChartView/stories/chartView.stories.d.ts +6 -0
  54. package/lib/components/Index/components/EntitiesView/components/ChartView/stories/chartView.stories.js +16 -0
  55. package/lib/components/Index/components/EntitiesView/components/ChartView/types.d.ts +6 -0
  56. package/lib/components/Index/components/EntitiesView/components/ChartView/types.js +1 -0
  57. package/lib/components/Index/components/EntitiesView/components/ChartView/utils.d.ts +14 -0
  58. package/lib/components/Index/components/EntitiesView/components/ChartView/utils.js +21 -0
  59. package/lib/components/Index/components/EntitiesView/components/EntityList/entityList.d.ts +2 -0
  60. package/lib/components/Index/components/EntitiesView/components/EntityList/entityList.js +16 -0
  61. package/lib/components/Index/components/EntitiesView/components/EntityList/types.d.ts +3 -0
  62. package/lib/components/Index/components/EntitiesView/components/EntityList/types.js +1 -0
  63. package/lib/components/Index/components/EntitiesView/entitiesView.d.ts +2 -0
  64. package/lib/components/Index/components/EntitiesView/entitiesView.js +15 -0
  65. package/lib/components/Index/components/EntitiesView/entitiesView.styles.d.ts +3 -0
  66. package/lib/components/Index/components/EntitiesView/entitiesView.styles.js +20 -0
  67. package/lib/components/Index/components/EntitiesView/hooks/UseEntitiesView/hook.d.ts +2 -0
  68. package/lib/components/Index/components/EntitiesView/hooks/UseEntitiesView/hook.js +14 -0
  69. package/lib/components/Index/components/EntitiesView/hooks/UseEntitiesView/types.d.ts +13 -0
  70. package/lib/components/Index/components/EntitiesView/hooks/UseEntitiesView/types.js +5 -0
  71. package/lib/components/Index/components/EntitiesView/stories/entitiesView.stories.d.ts +8 -0
  72. package/lib/components/Index/components/EntitiesView/stories/entitiesView.stories.js +50 -0
  73. package/lib/components/Index/components/EntitiesView/types.d.ts +8 -0
  74. package/lib/components/Index/components/EntitiesView/types.js +1 -0
  75. package/lib/components/Index/components/Hero/components/ExportButton/exportButton.js +2 -1
  76. package/lib/components/Index/index.d.ts +2 -13
  77. package/lib/components/Index/index.js +6 -2
  78. package/lib/components/Index/index.stories.js +3 -2
  79. package/lib/components/Index/types.d.ts +12 -0
  80. package/lib/components/Index/types.js +1 -0
  81. package/lib/components/Layout/components/BackPage/components/BackPageHero/backPageHero.d.ts +1 -1
  82. package/lib/components/Layout/components/BackPage/components/BackPageHero/backPageHero.js +5 -4
  83. package/lib/components/Layout/components/BackPage/components/BackPageHero/stories/backPageHero.stories.d.ts +6 -0
  84. package/lib/components/Layout/components/BackPage/components/BackPageHero/stories/backPageHero.stories.js +18 -0
  85. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.js +3 -3
  86. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
  87. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.d.ts +1 -1
  88. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Menu/components/Toolbar/toolbar.js +2 -2
  89. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Menu/menu.js +2 -2
  90. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Search/components/Button/button.styles.d.ts +1 -1
  91. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Search/components/SearchBar/searchBar.js +5 -3
  92. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Search/components/SearchBar/searchBar.styles.d.ts +5 -1
  93. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Search/components/SearchBar/searchBar.styles.js +4 -3
  94. package/lib/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationDrawer/navigationDrawer.js +2 -2
  95. package/lib/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationMenu/navigationMenu.js +2 -2
  96. package/lib/components/Layout/components/Sidebar/components/SidebarButton/sidebarButton.js +2 -2
  97. package/lib/components/Layout/components/Sidebar/components/SidebarDrawer/sidebarDrawer.js +2 -1
  98. package/lib/components/Layout/components/Sidebar/sidebar.js +4 -1
  99. package/lib/components/Loading/loading.d.ts +2 -1
  100. package/lib/components/Loading/loading.js +2 -2
  101. package/lib/components/Login/components/Button/button.styles.d.ts +1 -1
  102. package/lib/components/Login/components/Section/components/Consent/consent.js +3 -3
  103. package/lib/components/Login/components/Section/components/Consent/consent.styles.d.ts +1 -1
  104. package/lib/components/Login/components/Section/components/Consent/consent.styles.js +2 -2
  105. package/lib/components/Login/components/Section/components/Consent/types.d.ts +2 -2
  106. package/lib/components/NoResults/noResults.d.ts +1 -8
  107. package/lib/components/NoResults/noResults.js +9 -8
  108. package/lib/components/NoResults/noResults.styles.d.ts +2 -2
  109. package/lib/components/NoResults/noResults.styles.js +4 -2
  110. package/lib/components/NoResults/types.d.ts +8 -0
  111. package/lib/components/NoResults/types.js +1 -0
  112. package/lib/components/Plot/components/BarX/barX.d.ts +2 -0
  113. package/lib/components/Plot/components/BarX/barX.js +13 -0
  114. package/lib/components/Plot/components/BarX/types.d.ts +5 -0
  115. package/lib/components/Plot/components/BarX/types.js +1 -0
  116. package/lib/components/Stepper/components/Step/components/StepContent/stepContent.js +2 -2
  117. package/lib/components/Stepper/components/Step/components/StepContent/stepContent.styles.js +1 -1
  118. package/lib/components/Stepper/components/Step/step.styles.d.ts +1 -1
  119. package/lib/components/Support/components/SupportRequest/components/Dialog/dialog.js +2 -2
  120. package/lib/components/Table/components/Pagination/pagination.js +6 -6
  121. package/lib/components/Table/components/PaginationSummary/paginationSummary.js +2 -1
  122. package/lib/components/Table/components/TableHead/tableHead.js +2 -2
  123. package/lib/components/Table/components/TableRows/tableRows.js +7 -3
  124. package/lib/components/Table/table.js +11 -11
  125. package/lib/components/TableCreator/tableCreator.js +1 -6
  126. package/lib/components/common/AnchorLink/anchorLink.js +2 -2
  127. package/lib/components/common/Breadcrumbs/breadcrumbs.js +2 -2
  128. package/lib/components/common/Breadcrumbs/typeGuard.d.ts +13 -0
  129. package/lib/components/common/Breadcrumbs/typeGuard.js +23 -0
  130. package/lib/components/common/Button/components/DropdownButton/dropdownButton.js +2 -2
  131. package/lib/components/common/Button/components/NavigationButton/navigationButton.js +2 -2
  132. package/lib/components/common/CopyToClipboard/copyToClipboard.js +2 -2
  133. package/lib/components/common/Dialog/components/DialogTitle/dialogTitle.js +2 -2
  134. package/lib/components/common/Drawer/components/DrawerTitle/drawerTitle.js +2 -2
  135. package/lib/components/common/Form/components/Input/input.styles.d.ts +1 -1
  136. package/lib/components/common/Form/components/Select/components/DropDownIcon/dropDownIcon.d.ts +2 -3
  137. package/lib/components/common/Form/components/Select/components/DropDownIcon/dropDownIcon.js +3 -3
  138. package/lib/components/common/Form/components/Select/select.js +1 -2
  139. package/lib/components/common/Form/components/Select/select.styles.d.ts +1 -1
  140. package/lib/components/common/Form/components/UploadFile/uploadFile.js +2 -2
  141. package/lib/components/common/IconButton/iconButton.styles.d.ts +1 -1
  142. package/lib/components/common/Input/input.styles.d.ts +1 -1
  143. package/lib/components/common/LoginDialog/loginDialog.styles.js +1 -1
  144. package/lib/components/common/Paper/paper.d.ts +2 -1
  145. package/lib/components/common/Paper/paper.js +2 -2
  146. package/lib/components/common/Section/components/CollapsableSection/collapsableSection.js +2 -3
  147. package/lib/components/common/ToggleButtonGroup/hooks/UseToggleButtonGroup/hook.d.ts +2 -0
  148. package/lib/components/common/ToggleButtonGroup/hooks/UseToggleButtonGroup/hook.js +10 -0
  149. package/lib/components/types.d.ts +3 -0
  150. package/lib/config/entities.d.ts +2 -0
  151. package/lib/hooks/useCategoryFilter.js +1 -0
  152. package/lib/hooks/useResizeObserver.d.ts +2 -1
  153. package/lib/hooks/useResizeObserver.js +5 -2
  154. package/lib/styles/common/mui/palette.d.ts +47 -0
  155. package/lib/styles/common/mui/palette.js +47 -0
  156. package/lib/tests/testIds.d.ts +18 -0
  157. package/lib/tests/testIds.js +18 -0
  158. package/lib/theme/common/components.js +4 -0
  159. package/lib/theme/common/typography.d.ts +1 -1
  160. package/lib/theme/theme.js +5 -3
  161. package/lib/views/ExploreView/exploreView.js +6 -25
  162. package/package.json +6 -4
  163. package/src/common/entities.ts +1 -0
  164. package/src/components/DataDictionary/components/Entities/constants.ts +2 -2
  165. package/src/components/DataDictionary/components/Entities/entities.tsx +4 -4
  166. package/src/components/DataDictionary/components/Entity/constants.ts +2 -2
  167. package/src/components/DataDictionary/components/Entity/entity.tsx +6 -6
  168. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.tsx +1 -1
  169. package/src/components/Filter/components/ClearAllFilters/clearAllFilters.tsx +7 -1
  170. package/src/components/Filter/components/Filter/filter.tsx +2 -0
  171. package/src/components/Filter/components/FilterLabel/filterLabel.tsx +2 -2
  172. package/src/components/Filter/components/Filters/filters.tsx +7 -1
  173. package/src/components/Filter/components/HighlightedLabel/highlightedLabel.tsx +4 -2
  174. package/src/components/Filter/components/SearchAllFilters/components/VariableSizeListItem/variableSizeListItem.tsx +14 -2
  175. package/src/components/Filter/components/SearchAllFilters/searchAllFilters.tsx +2 -0
  176. package/src/components/Filter/components/SearchAllFiltersSearch/components/SearchCloseButton/searchCloseButton.tsx +2 -2
  177. package/src/components/Filter/components/VariableSizeListItem/variableSizeListItem.tsx +14 -2
  178. package/src/components/Index/components/EntitiesView/components/ChartView/chartView.styles.ts +14 -0
  179. package/src/components/Index/components/EntitiesView/components/ChartView/chartView.tsx +38 -0
  180. package/src/components/Index/components/EntitiesView/components/ChartView/components/Chart/barX/constants.ts +13 -0
  181. package/src/components/Index/components/EntitiesView/components/ChartView/components/Chart/barX/plot.ts +104 -0
  182. package/src/components/Index/components/EntitiesView/components/ChartView/components/Chart/barX/utils.ts +229 -0
  183. package/src/components/Index/components/EntitiesView/components/ChartView/components/Chart/chart.styles.ts +30 -0
  184. package/src/components/Index/components/EntitiesView/components/ChartView/components/Chart/chart.tsx +16 -0
  185. package/src/components/Index/components/EntitiesView/components/ChartView/components/Chart/constants.ts +1 -0
  186. package/src/components/Index/components/EntitiesView/components/ChartView/components/Chart/stories/args.ts +74 -0
  187. package/src/components/Index/components/EntitiesView/components/ChartView/components/Chart/stories/chart.stories.tsx +29 -0
  188. package/src/components/Index/components/EntitiesView/components/ChartView/components/Chart/types.ts +9 -0
  189. package/src/components/Index/components/EntitiesView/components/ChartView/constants.ts +1 -0
  190. package/src/components/Index/components/EntitiesView/components/ChartView/hooks/UseChartView/types.ts +8 -0
  191. package/src/components/Index/components/EntitiesView/components/ChartView/hooks/UseChartView/useChartView.ts +29 -0
  192. package/src/components/Index/components/EntitiesView/components/ChartView/stories/args.ts +99 -0
  193. package/src/components/Index/components/EntitiesView/components/ChartView/stories/chartView.stories.tsx +25 -0
  194. package/src/components/Index/components/EntitiesView/components/ChartView/types.ts +7 -0
  195. package/src/components/Index/components/EntitiesView/components/ChartView/utils.ts +26 -0
  196. package/src/components/Index/components/EntitiesView/components/EntityList/entityList.tsx +29 -0
  197. package/src/components/Index/components/EntitiesView/components/EntityList/types.ts +3 -0
  198. package/src/components/Index/components/EntitiesView/entitiesView.styles.ts +21 -0
  199. package/src/components/Index/components/EntitiesView/entitiesView.tsx +30 -0
  200. package/src/components/Index/components/EntitiesView/hooks/UseEntitiesView/hook.ts +15 -0
  201. package/src/components/Index/components/EntitiesView/hooks/UseEntitiesView/types.ts +16 -0
  202. package/src/components/Index/components/EntitiesView/stories/entitiesView.stories.tsx +76 -0
  203. package/src/components/Index/components/EntitiesView/types.ts +9 -0
  204. package/src/components/Index/components/Hero/components/ExportButton/exportButton.tsx +2 -0
  205. package/src/components/Index/index.stories.tsx +3 -2
  206. package/src/components/Index/index.tsx +15 -15
  207. package/src/components/Index/types.ts +13 -0
  208. package/src/components/Layout/components/BackPage/components/BackPageHero/backPageHero.tsx +19 -14
  209. package/src/components/Layout/components/BackPage/components/BackPageHero/stories/backPageHero.stories.tsx +24 -0
  210. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.tsx +3 -3
  211. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Menu/components/Toolbar/toolbar.tsx +2 -2
  212. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Menu/menu.tsx +2 -2
  213. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Search/components/SearchBar/searchBar.styles.ts +8 -3
  214. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Search/components/SearchBar/searchBar.tsx +5 -2
  215. package/src/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationDrawer/navigationDrawer.tsx +2 -2
  216. package/src/components/Layout/components/Header/components/Content/components/Navigation/components/NavigationMenu/navigationMenu.tsx +2 -2
  217. package/src/components/Layout/components/Sidebar/components/SidebarButton/sidebarButton.tsx +2 -2
  218. package/src/components/Layout/components/Sidebar/components/SidebarDrawer/sidebarDrawer.tsx +2 -0
  219. package/src/components/Layout/components/Sidebar/sidebar.tsx +4 -1
  220. package/src/components/Loading/loading.tsx +11 -3
  221. package/src/components/Login/components/Section/components/Consent/consent.styles.ts +2 -2
  222. package/src/components/Login/components/Section/components/Consent/consent.tsx +4 -4
  223. package/src/components/Login/components/Section/components/Consent/types.ts +2 -2
  224. package/src/components/NoResults/noResults.styles.ts +4 -2
  225. package/src/components/NoResults/noResults.tsx +16 -22
  226. package/src/components/NoResults/types.ts +13 -0
  227. package/src/components/Plot/components/BarX/barX.tsx +20 -0
  228. package/src/components/Plot/components/BarX/types.ts +6 -0
  229. package/src/components/Stepper/components/Step/components/StepContent/stepContent.styles.ts +1 -1
  230. package/src/components/Stepper/components/Step/components/StepContent/stepContent.tsx +2 -2
  231. package/src/components/Support/components/SupportRequest/components/Dialog/dialog.tsx +2 -2
  232. package/src/components/Table/components/Pagination/pagination.tsx +6 -6
  233. package/src/components/Table/components/PaginationSummary/paginationSummary.tsx +2 -1
  234. package/src/components/Table/components/TableHead/tableHead.tsx +2 -2
  235. package/src/components/Table/components/TableRows/tableRows.tsx +10 -3
  236. package/src/components/Table/table.tsx +42 -38
  237. package/src/components/TableCreator/tableCreator.tsx +8 -18
  238. package/src/components/common/AnchorLink/anchorLink.tsx +2 -2
  239. package/src/components/common/Breadcrumbs/breadcrumbs.tsx +2 -2
  240. package/src/components/common/Breadcrumbs/typeGuard.ts +24 -0
  241. package/src/components/common/Button/components/DropdownButton/dropdownButton.tsx +2 -2
  242. package/src/components/common/Button/components/NavigationButton/navigationButton.tsx +2 -2
  243. package/src/components/common/CopyToClipboard/copyToClipboard.tsx +2 -2
  244. package/src/components/common/Dialog/components/DialogTitle/dialogTitle.tsx +2 -2
  245. package/src/components/common/Drawer/components/DrawerTitle/drawerTitle.tsx +2 -2
  246. package/src/components/common/Form/components/Select/components/DropDownIcon/dropDownIcon.tsx +5 -6
  247. package/src/components/common/Form/components/Select/select.tsx +1 -8
  248. package/src/components/common/Form/components/UploadFile/uploadFile.tsx +2 -2
  249. package/src/components/common/LoginDialog/loginDialog.styles.ts +1 -1
  250. package/src/components/common/Paper/paper.tsx +9 -3
  251. package/src/components/common/Section/components/CollapsableSection/collapsableSection.tsx +2 -3
  252. package/src/components/common/ToggleButtonGroup/hooks/UseToggleButtonGroup/hook.ts +17 -0
  253. package/src/components/types.ts +4 -0
  254. package/src/config/entities.ts +2 -0
  255. package/src/hooks/useCategoryFilter.ts +1 -0
  256. package/src/hooks/useResizeObserver.ts +5 -2
  257. package/src/styles/common/mui/palette.ts +47 -0
  258. package/src/tests/testIds.ts +18 -0
  259. package/src/theme/common/components.ts +4 -0
  260. package/src/theme/common/typography.ts +1 -1
  261. package/src/theme/theme.ts +46 -42
  262. package/src/views/ExploreView/exploreView.tsx +10 -43
  263. package/tests/chart.test.tsx +170 -0
  264. package/tests/chartView.test.tsx +36 -0
  265. package/tests/entitiesView.test.tsx +32 -0
  266. package/tests/setup.ts +13 -0
  267. package/types/data-explorer-ui.d.ts +36 -80
  268. package/lib/components/Index/components/Cell/cell.d.ts +0 -7
  269. package/lib/components/Index/components/Cell/cell.js +0 -10
  270. package/lib/components/Index/components/NTag/components/Tooltip/tooltip.d.ts +0 -8
  271. package/lib/components/Index/components/NTag/components/Tooltip/tooltip.js +0 -57
  272. package/lib/components/Index/components/NTag/components/Tooltip/tooltip.styles.d.ts +0 -4
  273. package/lib/components/Index/components/NTag/components/Tooltip/tooltip.styles.js +0 -10
  274. package/lib/components/Index/components/NTag/nTag.d.ts +0 -10
  275. package/lib/components/Index/components/NTag/nTag.js +0 -8
  276. package/lib/components/Index/components/NTagCell/nTagCell.d.ts +0 -11
  277. package/lib/components/Index/components/NTagCell/nTagCell.js +0 -29
  278. package/lib/components/Index/components/NTagCell/nTagCell.stories.d.ts +0 -16
  279. package/lib/components/Index/components/NTagCell/nTagCell.stories.js +0 -16
  280. package/lib/components/Layout/components/BackPage/components/BackPageHero/backPageHero.stories.d.ts +0 -6
  281. package/lib/components/Layout/components/BackPage/components/BackPageHero/backPageHero.stories.js +0 -10
  282. package/lib/components/TableCreator/tableCreator.styles.d.ts +0 -4
  283. package/lib/components/TableCreator/tableCreator.styles.js +0 -4
  284. package/src/components/Index/components/Cell/cell.tsx +0 -22
  285. package/src/components/Index/components/NTag/components/Tooltip/tooltip.styles.ts +0 -11
  286. package/src/components/Index/components/NTag/components/Tooltip/tooltip.tsx +0 -90
  287. package/src/components/Index/components/NTag/nTag.tsx +0 -25
  288. package/src/components/Index/components/NTagCell/nTagCell.stories.tsx +0 -22
  289. package/src/components/Index/components/NTagCell/nTagCell.tsx +0 -74
  290. package/src/components/Layout/components/BackPage/components/BackPageHero/backPageHero.stories.tsx +0 -16
  291. package/src/components/TableCreator/tableCreator.styles.ts +0 -5
@@ -3,7 +3,7 @@ interface Props {
3
3
  }
4
4
  export declare const Button: import("@emotion/styled").StyledComponent<import("@mui/material").IconButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
5
5
  ref?: ((instance: HTMLButtonElement | 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<HTMLButtonElement> | null | undefined;
6
- }, "style" | "className" | "classes" | "tabIndex" | "color" | "children" | "sx" | "disabled" | "action" | "size" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge"> & {
6
+ }, "style" | "className" | "classes" | "tabIndex" | "color" | "children" | "sx" | "disabled" | "action" | "loading" | "size" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "loadingIndicator" | "edge"> & {
7
7
  theme?: import("@emotion/react").Theme;
8
8
  } & Props, {}, {}>;
9
9
  export {};
@@ -3,7 +3,7 @@ interface Props {
3
3
  }
4
4
  export declare const InputFormControl: import("@emotion/styled").StyledComponent<import("@mui/material").FormControlOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
5
5
  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;
6
- }, "style" | "className" | "classes" | "color" | "children" | "margin" | "sx" | "variant" | "error" | "disabled" | "required" | "size" | "focused" | "fullWidth" | "hiddenLabel"> & {
6
+ }, "style" | "className" | "classes" | "color" | "children" | "margin" | "sx" | "variant" | "error" | "disabled" | "required" | "size" | "fullWidth" | "hiddenLabel" | "focused"> & {
7
7
  theme?: import("@emotion/react").Theme;
8
8
  }, {}, {}>;
9
9
  export declare const InputField: import("@emotion/styled").StyledComponent<import("@mui/material").OutlinedInputProps & {
@@ -35,7 +35,7 @@ export const StyledDialog = styled(Dialog) `
35
35
  margin: 8px 0;
36
36
  }
37
37
 
38
- .MuiGrid2-root {
38
+ .MuiGrid-root {
39
39
  margin: 24px 0;
40
40
  }
41
41
  }
@@ -1,5 +1,6 @@
1
1
  import { PaperProps as MPaperProps } from "@mui/material";
2
2
  import React, { ReactNode } from "react";
3
+ import { TestIdProps } from "../../types";
3
4
  /**
4
5
  * An extension of the basic Mui Paper component with custom variants e.g. "panel".
5
6
  */
@@ -16,7 +17,7 @@ export declare enum PAPER_PANEL_STYLE {
16
17
  NONE = "NONE",
17
18
  ROUNDED = "ROUNDED"
18
19
  }
19
- export interface PaperProps {
20
+ export interface PaperProps extends TestIdProps {
20
21
  children: ReactNode | ReactNode[];
21
22
  className?: string;
22
23
  variant?: MPaperProps["variant"];
@@ -10,6 +10,6 @@ export var PAPER_PANEL_STYLE;
10
10
  PAPER_PANEL_STYLE["NONE"] = "NONE";
11
11
  PAPER_PANEL_STYLE["ROUNDED"] = "ROUNDED";
12
12
  })(PAPER_PANEL_STYLE || (PAPER_PANEL_STYLE = {}));
13
- export const Paper = forwardRef(function Paper({ children, className, variant = "panel" }, ref) {
14
- return (React.createElement(MPaper, { className: className, ref: ref, variant: variant }, children));
13
+ export const Paper = forwardRef(function Paper({ children, className, testId, variant = "panel" }, ref) {
14
+ return (React.createElement(MPaper, { className: className, "data-testid": testId, ref: ref, variant: variant }, children));
15
15
  });
@@ -1,5 +1,4 @@
1
- import AddRoundedIcon from "@mui/icons-material/AddRounded";
2
- import RemoveRoundedIcon from "@mui/icons-material/RemoveRounded";
1
+ import { AddRounded, RemoveRounded } from "@mui/icons-material";
3
2
  import { Collapse } from "@mui/material";
4
3
  import React, { useEffect, useState } from "react";
5
4
  import { BREAKPOINT_FN_NAME, useBreakpointHelper, } from "../../../../../hooks/useBreakpointHelper";
@@ -11,7 +10,7 @@ export const CollapsableSection = ({ children, collapsable = false, title, }) =>
11
10
  const [expanded, setExpanded] = useState(false);
12
11
  const [transitionDuration, setTransitionDuration] = useState(0);
13
12
  const disabled = !mobile || !collapsable;
14
- const ExpandIcon = expanded ? RemoveRoundedIcon : AddRoundedIcon;
13
+ const ExpandIcon = expanded ? RemoveRounded : AddRounded;
15
14
  const SectionContent = (React.createElement(SectionText, { component: "div", variant: "text-body-400-2lines" }, children));
16
15
  const onToggleExpanded = () => {
17
16
  setExpanded((expanded) => !expanded);
@@ -0,0 +1,2 @@
1
+ import { ToggleButtonGroupProps } from "@mui/material";
2
+ export declare const useToggleButtonGroup: <TValue extends unknown>(initialValue?: TValue | null) => ToggleButtonGroupProps;
@@ -0,0 +1,10 @@
1
+ import { useCallback, useState } from "react";
2
+ export const useToggleButtonGroup = (initialValue = null) => {
3
+ const [value, setValue] = useState(initialValue);
4
+ const onChange = useCallback((_, value) => {
5
+ if (!value)
6
+ return;
7
+ setValue(value);
8
+ }, []);
9
+ return { onChange, value };
10
+ };
@@ -2,6 +2,9 @@ import { ReactNode } from "react";
2
2
  export interface BaseComponentProps {
3
3
  className?: string;
4
4
  }
5
+ export interface ChildrenProps {
6
+ children?: ReactNode;
7
+ }
5
8
  export interface ContentProps {
6
9
  content?: ReactNode;
7
10
  }
@@ -71,6 +71,7 @@ export interface CategoryGroup {
71
71
  */
72
72
  export interface CategoryConfig {
73
73
  annotation?: DataDictionaryAnnotation;
74
+ enableChartView?: boolean;
74
75
  key: string;
75
76
  label: string;
76
77
  mapSelectCategoryValue?: (selectCategoryValue: SelectCategoryValueView) => SelectCategoryValueView;
@@ -300,6 +301,7 @@ export interface SiteConfig {
300
301
  contentThemeOptionsFn?: ThemeOptionsFn;
301
302
  dataDictionary?: DataDictionary;
302
303
  dataSource: DataSourceConfig;
304
+ enableEntitiesView?: boolean;
303
305
  entities: EntityConfig[];
304
306
  explorerTitle: HeroTitle;
305
307
  export?: ExportConfig;
@@ -28,6 +28,7 @@ function buildCategoryView(category, categoryValueViews, categoryConfigs) {
28
28
  const mapSelectCategoryValue = categoryConfig?.mapSelectCategoryValue || getSelectCategoryValue;
29
29
  return {
30
30
  annotation: categoryConfig?.annotation,
31
+ enableChartView: categoryConfig?.enableChartView,
31
32
  isDisabled: false,
32
33
  key: category.key,
33
34
  label: getCategoryLabel(category.key, categoryConfig),
@@ -13,9 +13,10 @@ export type ElementRect = {
13
13
  * Element resizing and repositioning observer.
14
14
  * @param ref - element to be observed for changes to its size or position.
15
15
  * @param onResizeFn - action to be performed when the observed element is resized or repositioned.
16
+ * @param shouldObserve - boolean flag to determine if the observer should be active.
16
17
  * @returns Element size and position properties for the given element.
17
18
  */
18
- export declare function useResizeObserver(ref: RefObject<HTMLElement>, onResizeFn: (entries: ResizeObserverEntry[]) => Partial<ElementRect>): Partial<ElementRect> | undefined;
19
+ export declare function useResizeObserver(ref: RefObject<HTMLElement>, onResizeFn: (entries: ResizeObserverEntry[]) => Partial<ElementRect>, shouldObserve?: boolean): Partial<ElementRect> | undefined;
19
20
  /**
20
21
  * Return's the observed element's border box size.
21
22
  * @param entries - Resize observer entries.
@@ -3,9 +3,10 @@ import { useCallback, useEffect, useRef, useState } from "react";
3
3
  * Element resizing and repositioning observer.
4
4
  * @param ref - element to be observed for changes to its size or position.
5
5
  * @param onResizeFn - action to be performed when the observed element is resized or repositioned.
6
+ * @param shouldObserve - boolean flag to determine if the observer should be active.
6
7
  * @returns Element size and position properties for the given element.
7
8
  */
8
- export function useResizeObserver(ref, onResizeFn) {
9
+ export function useResizeObserver(ref, onResizeFn, shouldObserve = true) {
9
10
  const [elementRect, setElementRect] = useState();
10
11
  const observerRef = useRef();
11
12
  // Observed element is resized or repositioned - set state elementRect with the element's new dimensions or position.
@@ -19,6 +20,8 @@ export function useResizeObserver(ref, onResizeFn) {
19
20
  useEffect(() => {
20
21
  if (!ref.current)
21
22
  return;
23
+ if (!shouldObserve)
24
+ return;
22
25
  observerRef.current = new ResizeObserver(onResize);
23
26
  const observer = observerRef.current;
24
27
  const observedEl = ref.current;
@@ -26,7 +29,7 @@ export function useResizeObserver(ref, onResizeFn) {
26
29
  return () => {
27
30
  observer.unobserve(observedEl);
28
31
  };
29
- }, [onResize, ref]);
32
+ }, [onResize, ref, shouldObserve]);
30
33
  return elementRect;
31
34
  }
32
35
  /**
@@ -0,0 +1,47 @@
1
+ export declare const PALETTE: {
2
+ readonly ALERT_LIGHT: "var(--mui-palette-alert-light)";
3
+ readonly ALERT_LIGHTEST: "var(--mui-palette-alert-lightest)";
4
+ readonly ALERT_MAIN: "var(--mui-palette-alert-main)";
5
+ readonly BACKGROUND_DEFAULT: "var(--mui-palette-background-default)";
6
+ readonly BACKGROUND_PAPER: "var(--mui-palette-background-paper)";
7
+ readonly COMMON_BACKGROUND: "var(--mui-palette-common-background)";
8
+ readonly COMMON_BLACK: "var(--mui-palette-common-black)";
9
+ readonly COMMON_WHITE: "var(--mui-palette-common-white)";
10
+ readonly ERROR_CONTRAST_TEXT: "var(--mui-palette-error-contrastText)";
11
+ readonly ERROR_DARK: "var(--mui-palette-error-dark)";
12
+ readonly ERROR_LIGHT: "var(--mui-palette-error-light)";
13
+ readonly ERROR_MAIN: "var(--mui-palette-error-main)";
14
+ readonly INFO_CONTRAST_TEXT: "var(--mui-palette-info-contrastText)";
15
+ readonly INFO_DARK: "var(--mui-palette-info-dark)";
16
+ readonly INFO_LIGHT: "var(--mui-palette-info-light)";
17
+ readonly INFO_LIGHTEST: "var(--mui-palette-info-lightest)";
18
+ readonly INFO_MAIN: "var(--mui-palette-info-main)";
19
+ readonly INK_LIGHT: "var(--mui-palette-ink-light)";
20
+ readonly INK_MAIN: "var(--mui-palette-ink-main)";
21
+ readonly PRIMARY_CONTRAST_TEXT: "var(--mui-palette-primary-contrastText)";
22
+ readonly PRIMARY_DARK: "var(--mui-palette-primary-dark)";
23
+ readonly PRIMARY_LIGHT: "var(--mui-palette-primary-light)";
24
+ readonly PRIMARY_LIGHTEST: "var(--mui-palette-primary-lightest)";
25
+ readonly PRIMARY_MAIN: "var(--mui-palette-primary-main)";
26
+ readonly SECONDARY_CONTRAST_TEXT: "var(--mui-palette-secondary-contrastText)";
27
+ readonly SECONDARY_DARK: "var(--mui-palette-secondary-dark)";
28
+ readonly SECONDARY_LIGHT: "var(--mui-palette-secondary-light)";
29
+ readonly SECONDARY_MAIN: "var(--mui-palette-secondary-main)";
30
+ readonly SMOKE_DARK: "var(--mui-palette-smoke-dark)";
31
+ readonly SMOKE_LIGHT: "var(--mui-palette-smoke-light)";
32
+ readonly SMOKE_LIGHTEST: "var(--mui-palette-smoke-lightest)";
33
+ readonly SMOKE_MAIN: "var(--mui-palette-smoke-main)";
34
+ readonly SUCCESS_CONTRAST_TEXT: "var(--mui-palette-success-contrastText)";
35
+ readonly SUCCESS_DARK: "var(--mui-palette-success-dark)";
36
+ readonly SUCCESS_LIGHT: "var(--mui-palette-success-light)";
37
+ readonly SUCCESS_LIGHTEST: "var(--mui-palette-success-lightest)";
38
+ readonly SUCCESS_MAIN: "var(--mui-palette-success-main)";
39
+ readonly TEXT_DISABLED: "var(--mui-palette-text-disabled)";
40
+ readonly TEXT_PRIMARY: "var(--mui-palette-text-primary)";
41
+ readonly TEXT_SECONDARY: "var(--mui-palette-text-secondary)";
42
+ readonly WARNING_CONTRAST_TEXT: "var(--mui-palette-warning-contrastText)";
43
+ readonly WARNING_DARK: "var(--mui-palette-warning-dark)";
44
+ readonly WARNING_LIGHT: "var(--mui-palette-warning-light)";
45
+ readonly WARNING_LIGHTEST: "var(--mui-palette-warning-lightest)";
46
+ readonly WARNING_MAIN: "var(--mui-palette-warning-main)";
47
+ };
@@ -0,0 +1,47 @@
1
+ export const PALETTE = {
2
+ ALERT_LIGHT: `var(--mui-palette-alert-light)`,
3
+ ALERT_LIGHTEST: `var(--mui-palette-alert-lightest)`,
4
+ ALERT_MAIN: `var(--mui-palette-alert-main)`,
5
+ BACKGROUND_DEFAULT: `var(--mui-palette-background-default)`,
6
+ BACKGROUND_PAPER: `var(--mui-palette-background-paper)`,
7
+ COMMON_BACKGROUND: `var(--mui-palette-common-background)`,
8
+ COMMON_BLACK: `var(--mui-palette-common-black)`,
9
+ COMMON_WHITE: `var(--mui-palette-common-white)`,
10
+ ERROR_CONTRAST_TEXT: `var(--mui-palette-error-contrastText)`,
11
+ ERROR_DARK: `var(--mui-palette-error-dark)`,
12
+ ERROR_LIGHT: `var(--mui-palette-error-light)`,
13
+ ERROR_MAIN: `var(--mui-palette-error-main)`,
14
+ INFO_CONTRAST_TEXT: `var(--mui-palette-info-contrastText)`,
15
+ INFO_DARK: `var(--mui-palette-info-dark)`,
16
+ INFO_LIGHT: `var(--mui-palette-info-light)`,
17
+ INFO_LIGHTEST: `var(--mui-palette-info-lightest)`,
18
+ INFO_MAIN: `var(--mui-palette-info-main)`,
19
+ INK_LIGHT: `var(--mui-palette-ink-light)`,
20
+ INK_MAIN: `var(--mui-palette-ink-main)`,
21
+ PRIMARY_CONTRAST_TEXT: `var(--mui-palette-primary-contrastText)`,
22
+ PRIMARY_DARK: `var(--mui-palette-primary-dark)`,
23
+ PRIMARY_LIGHT: `var(--mui-palette-primary-light)`,
24
+ PRIMARY_LIGHTEST: `var(--mui-palette-primary-lightest)`,
25
+ PRIMARY_MAIN: `var(--mui-palette-primary-main)`,
26
+ SECONDARY_CONTRAST_TEXT: `var(--mui-palette-secondary-contrastText)`,
27
+ SECONDARY_DARK: `var(--mui-palette-secondary-dark)`,
28
+ SECONDARY_LIGHT: `var(--mui-palette-secondary-light)`,
29
+ SECONDARY_MAIN: `var(--mui-palette-secondary-main)`,
30
+ SMOKE_DARK: `var(--mui-palette-smoke-dark)`,
31
+ SMOKE_LIGHT: `var(--mui-palette-smoke-light)`,
32
+ SMOKE_LIGHTEST: `var(--mui-palette-smoke-lightest)`,
33
+ SMOKE_MAIN: `var(--mui-palette-smoke-main)`,
34
+ SUCCESS_CONTRAST_TEXT: `var(--mui-palette-success-contrastText)`,
35
+ SUCCESS_DARK: `var(--mui-palette-success-dark)`,
36
+ SUCCESS_LIGHT: `var(--mui-palette-success-light)`,
37
+ SUCCESS_LIGHTEST: `var(--mui-palette-success-lightest)`,
38
+ SUCCESS_MAIN: `var(--mui-palette-success-main)`,
39
+ TEXT_DISABLED: `var(--mui-palette-text-disabled)`,
40
+ TEXT_PRIMARY: `var(--mui-palette-text-primary)`,
41
+ TEXT_SECONDARY: `var(--mui-palette-text-secondary)`,
42
+ WARNING_CONTRAST_TEXT: `var(--mui-palette-warning-contrastText)`,
43
+ WARNING_DARK: `var(--mui-palette-warning-dark)`,
44
+ WARNING_LIGHT: `var(--mui-palette-warning-light)`,
45
+ WARNING_LIGHTEST: `var(--mui-palette-warning-lightest)`,
46
+ WARNING_MAIN: `var(--mui-palette-warning-main)`,
47
+ };
@@ -0,0 +1,18 @@
1
+ export declare const TEST_IDS: {
2
+ CLEAR_ALL_FILTERS: string;
3
+ ENTITIES_VIEW: string;
4
+ EXPORT_BUTTON: string;
5
+ FILTERS: string;
6
+ FILTER_CONTROLS: string;
7
+ FILTER_COUNT: string;
8
+ FILTER_ITEM: string;
9
+ FILTER_POPOVER: string;
10
+ FILTER_TERM: string;
11
+ SEARCH_ALL_FILTERS: string;
12
+ SIDEBAR: string;
13
+ SIDEBAR_DRAWER: string;
14
+ TABLE_FIRST_CELL: string;
15
+ TABLE_PAGINATION: string;
16
+ TABLE_PAGINATION_PAGE: string;
17
+ TABLE_PAGINATION_RESULTS: string;
18
+ };
@@ -0,0 +1,18 @@
1
+ export const TEST_IDS = {
2
+ CLEAR_ALL_FILTERS: "clear-all-filters",
3
+ ENTITIES_VIEW: "entities-view",
4
+ EXPORT_BUTTON: "export-button",
5
+ FILTERS: "filters",
6
+ FILTER_CONTROLS: "filter-controls",
7
+ FILTER_COUNT: "filter-count",
8
+ FILTER_ITEM: "filter-item",
9
+ FILTER_POPOVER: "filter-popover",
10
+ FILTER_TERM: "filter-term",
11
+ SEARCH_ALL_FILTERS: "search-all-filters",
12
+ SIDEBAR: "sidebar",
13
+ SIDEBAR_DRAWER: "sidebar-drawer",
14
+ TABLE_FIRST_CELL: "table-first-cell",
15
+ TABLE_PAGINATION: "table-pagination",
16
+ TABLE_PAGINATION_PAGE: "table-pagination-page",
17
+ TABLE_PAGINATION_RESULTS: "table-pagination-results",
18
+ };
@@ -1,3 +1,4 @@
1
+ import { DropDownIcon } from "../../components/common/Form/components/Select/components/DropDownIcon/dropDownIcon";
1
2
  import { CHIP_PROPS } from "../../styles/common/mui/chip";
2
3
  import { desktopUp, mobileUp, tabletUp } from "./breakpoints";
3
4
  import { alpha32, alpha60, alpha64, alpha80, black04, black08, white, } from "./palette";
@@ -1113,6 +1114,9 @@ export const MuiRadio = (theme) => {
1113
1114
  * MuiSelect Component
1114
1115
  */
1115
1116
  export const MuiSelect = {
1117
+ defaultProps: {
1118
+ IconComponent: DropDownIcon,
1119
+ },
1116
1120
  styleOverrides: {
1117
1121
  select: {
1118
1122
  minHeight: "unset",
@@ -1,4 +1,4 @@
1
- import { CSSProperties } from "@mui/material/styles/createTypography";
1
+ import { CSSProperties } from "@mui/material";
2
2
  /**
3
3
  * Typography constants.
4
4
  */
@@ -1,4 +1,5 @@
1
1
  import { createTheme } from "@mui/material";
2
+ import { deepmerge } from "@mui/utils";
2
3
  import * as B from "./common/breakpoints";
3
4
  import * as C from "./common/components";
4
5
  import * as P from "./common/palette";
@@ -10,9 +11,9 @@ import * as M from "./components";
10
11
  * @param customOptions - Custom theme option overrides.
11
12
  * @returns theme with custom theme overrides.
12
13
  */
13
- export function createAppTheme(customOptions) {
14
+ export function createAppTheme(customOptions = {}) {
14
15
  // Generate default theme with custom overrides.
15
- const theme = createTheme({
16
+ const theme = createTheme(deepmerge({
16
17
  breakpoints: {
17
18
  values: {
18
19
  lg: B.desktop,
@@ -21,6 +22,7 @@ export function createAppTheme(customOptions) {
21
22
  xs: B.mobile,
22
23
  },
23
24
  },
25
+ cssVariables: true,
24
26
  palette: {
25
27
  alert: P.alert,
26
28
  background: P.background,
@@ -53,7 +55,7 @@ export function createAppTheme(customOptions) {
53
55
  [T.TEXT_UPPERCASE_500]: T.textUppercase500,
54
56
  fontFamily: T.fontFamily,
55
57
  },
56
- }, { ...customOptions });
58
+ }, customOptions));
57
59
  // Default shadow overrides.
58
60
  theme.shadows = [...theme.shadows].map((shadow, s) => shadows[s] || shadow);
59
61
  // Theme components.
@@ -5,13 +5,14 @@ import { ComponentCreator } from "../../components/ComponentCreator/ComponentCre
5
5
  import { ClearAllFilters } from "../../components/Filter/components/ClearAllFilters/clearAllFilters";
6
6
  import { Filters, } from "../../components/Filter/components/Filters/filters";
7
7
  import { SearchAllFilters } from "../../components/Filter/components/SearchAllFilters/searchAllFilters";
8
+ import { ChartView } from "../../components/Index/components/EntitiesView/components/ChartView/chartView";
9
+ import { EntityList } from "../../components/Index/components/EntitiesView/components/EntityList/entityList";
8
10
  import { Tabs } from "../../components/Index/components/Tabs/tabs";
9
11
  import { Index as IndexView } from "../../components/Index/index";
10
12
  import { SidebarButton } from "../../components/Layout/components/Sidebar/components/SidebarButton/sidebarButton";
11
13
  import { SidebarLabel } from "../../components/Layout/components/Sidebar/components/SidebarLabel/sidebarLabel";
12
14
  import { SidebarTools } from "../../components/Layout/components/Sidebar/components/SidebarTools/sidebarTools.styles";
13
15
  import { Sidebar } from "../../components/Layout/components/Sidebar/sidebar";
14
- import { TableCreator } from "../../components/TableCreator/tableCreator";
15
16
  import { BREAKPOINT_FN_NAME, useBreakpointHelper, } from "../../hooks/useBreakpointHelper";
16
17
  import { useConfig } from "../../hooks/useConfig";
17
18
  import { useEntityList } from "../../hooks/useEntityList";
@@ -19,6 +20,7 @@ import { useExploreState } from "../../hooks/useExploreState";
19
20
  import { useSummary } from "../../hooks/useSummary";
20
21
  import { ExploreActionKind } from "../../providers/exploreState";
21
22
  import { SELECT_CATEGORY_KEY } from "../../providers/exploreState/constants";
23
+ import { TEST_IDS } from "../../tests/testIds";
22
24
  import { DESKTOP_SM } from "../../theme/common/breakpoints";
23
25
  export const ExploreView = (props) => {
24
26
  const [isDrawerOpen, setIsDrawerOpen] = useState(false);
@@ -28,7 +30,7 @@ export const ExploreView = (props) => {
28
30
  const { explorerTitle, summaryConfig, trackingConfig } = config;
29
31
  const { listView } = entityConfig;
30
32
  const { listHero, subTitleHero } = listView || {};
31
- const { categoryGroups, categoryViews, filterCount } = exploreState;
33
+ const { categoryGroups, categoryViews, filterCount, loading } = exploreState;
32
34
  const { response: summaryResponse } = useSummary(); // Fetch summary.
33
35
  useEntityList(props); // Fetch entities.
34
36
  const { entityListType } = props;
@@ -98,12 +100,12 @@ export const ExploreView = (props) => {
98
100
  }, [entityListType, exploreDispatch]);
99
101
  return (React.createElement(React.Fragment, null,
100
102
  categoryViews && !!categoryViews.length && (React.createElement(Sidebar, { drawerOpen: isDrawerOpen, onDrawerClose: onCloseDrawer },
101
- React.createElement(SidebarTools, null,
103
+ React.createElement(SidebarTools, { "data-testid": TEST_IDS.FILTER_CONTROLS },
102
104
  React.createElement(SidebarLabel, { label: "Filters" }),
103
105
  React.createElement(ClearAllFilters, null),
104
106
  React.createElement(SearchAllFilters, { categoryViews: categoryViews, drawerOpen: isDrawerOpen, onFilter: onFilterChange.bind(null, true) })),
105
107
  React.createElement(Filters, { categoryFilters: categoryFilters, closeAncestor: onCloseDrawer, onFilter: onFilterChange.bind(null, false), trackFilterOpened: trackingConfig?.trackFilterOpened }))),
106
- React.createElement(IndexView, { className: props.className, List: renderList(exploreState, entityConfig, entityListType), ListHero: renderComponent(listHero), SideBarButton: tabletDown ? (React.createElement(SidebarButton, { count: filterCount, label: "Filter", onClick: onOpenDrawer })) : undefined, SubTitleHero: renderComponent(subTitleHero), Summaries: renderSummary(summaryConfig, summaryResponse), Tabs: React.createElement(Tabs, null), title: entityConfig.explorerTitle || explorerTitle })));
108
+ React.createElement(IndexView, { className: props.className, chart: React.createElement(ChartView, { categoryFilters: categoryFilters, loading: loading }), list: React.createElement(EntityList, { entityListType: entityListType }), ListHero: renderComponent(listHero), SideBarButton: tabletDown ? (React.createElement(SidebarButton, { count: filterCount, label: "Filter", onClick: onOpenDrawer })) : undefined, SubTitleHero: renderComponent(subTitleHero), Summaries: renderSummary(summaryConfig, summaryResponse), Tabs: React.createElement(Tabs, null), title: entityConfig.explorerTitle || explorerTitle })));
107
109
  };
108
110
  /**
109
111
  * Builds the category views into category views grouped by the given category group configuration.
@@ -142,27 +144,6 @@ function renderComponent(componentsConfig, response) {
142
144
  }
143
145
  return React.createElement(ComponentCreator, { components: componentsConfig, response: response });
144
146
  }
145
- /**
146
- * Render either a loading view, empty result set notification or the table itself.
147
- * @param exploreState - ExploreView responses from Azul, such as projects (index/projects), samples (index/samples) and files (index/files).
148
- * @param entityConfig - Entity configuration.
149
- * @param entityListType - Entity list type.
150
- * @returns rendered Table component.
151
- */
152
- function renderList(exploreState, entityConfig, entityListType) {
153
- const { listItems, loading, tabValue } = exploreState;
154
- const { getId: getRowId, list, listView } = entityConfig;
155
- const { columns: columnsConfig } = list;
156
- if (!exploreState || !tabValue) {
157
- return React.createElement(React.Fragment, null); //TODO: return the loading UI component
158
- }
159
- if (entityListType !== tabValue) {
160
- // required currently for client-side fetching as the pre-rendered page
161
- // loads with the previous tabs data on the first render after switching tabs. (or similar)
162
- return React.createElement(React.Fragment, null);
163
- }
164
- return (React.createElement(TableCreator, { columns: columnsConfig, getRowId: getRowId, items: listItems ?? [], listView: listView, loading: loading }));
165
- }
166
147
  /**
167
148
  * Renders Summaries component when all the following requirements are fulfilled:
168
149
  * - defined summary config,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@databiosphere/findable-ui",
3
- "version": "24.0.0",
3
+ "version": "25.1.0",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
@@ -24,7 +24,7 @@
24
24
  "devDependencies": {
25
25
  "@commitlint/cli": "^17.4.2",
26
26
  "@commitlint/config-conventional": "^17.4.2",
27
- "@mui/types": "^7.2.18",
27
+ "@mui/types": "^7.4.0",
28
28
  "@next/eslint-plugin-next": "^14.1.0",
29
29
  "@storybook/addon-actions": "^8.6.4",
30
30
  "@storybook/addon-essentials": "^8.6.4",
@@ -36,6 +36,7 @@
36
36
  "@storybook/test": "^8.6.4",
37
37
  "@storybook/types": "^8.6.4",
38
38
  "@testing-library/react": "^16.0.1",
39
+ "@types/d3": "^7.4.3",
39
40
  "@types/jest": "^29.4.0",
40
41
  "@types/react": "^18.3.5",
41
42
  "@types/react-dom": "^18.3.0",
@@ -67,8 +68,9 @@
67
68
  "peerDependencies": {
68
69
  "@emotion/react": "^11.13.3",
69
70
  "@emotion/styled": "^11.13.0",
70
- "@mui/icons-material": "^6.1.5",
71
- "@mui/material": "^6.1.5",
71
+ "@mui/icons-material": "^7.0.1",
72
+ "@mui/material": "^7.0.1",
73
+ "@observablehq/plot": "^0.6.17",
72
74
  "@tanstack/react-table": "^8.19.2",
73
75
  "@tanstack/react-virtual": "^3.0.0-beta.59",
74
76
  "copy-to-clipboard": "3.3.1",
@@ -109,6 +109,7 @@ export interface SelectCategoryValueView {
109
109
  */
110
110
  export interface SelectCategoryView {
111
111
  annotation?: DataDictionaryAnnotation;
112
+ enableChartView?: boolean;
112
113
  isDisabled?: boolean;
113
114
  key: CategoryKey;
114
115
  label: string;
@@ -1,8 +1,8 @@
1
- import { Grid2Props } from "@mui/material";
1
+ import { GridProps } from "@mui/material";
2
2
 
3
3
  export const ENTITIES_ROW_GAP = 8;
4
4
 
5
- export const GRID2_PROPS: Grid2Props = {
5
+ export const GRID_PROPS: GridProps = {
6
6
  container: true,
7
7
  direction: "column",
8
8
  flexWrap: "nowrap",
@@ -1,15 +1,15 @@
1
- import { Grid2 } from "@mui/material";
1
+ import { Grid } from "@mui/material";
2
2
  import React from "react";
3
3
  import { Entity } from "../Entity/entity";
4
- import { GRID2_PROPS } from "./constants";
4
+ import { GRID_PROPS } from "./constants";
5
5
  import { ClassesProps } from "./types";
6
6
 
7
7
  export const Entities = ({ classes, spacing }: ClassesProps): JSX.Element => {
8
8
  return (
9
- <Grid2 {...GRID2_PROPS}>
9
+ <Grid {...GRID_PROPS}>
10
10
  {classes.map((classData) => (
11
11
  <Entity key={classData.key} class={classData} spacing={spacing} />
12
12
  ))}
13
- </Grid2>
13
+ </Grid>
14
14
  );
15
15
  };
@@ -1,6 +1,6 @@
1
- import { Grid2Props } from "@mui/material";
1
+ import { GridProps } from "@mui/material";
2
2
 
3
- export const GRID2_PROPS: Grid2Props = {
3
+ export const GRID_PROPS: GridProps = {
4
4
  container: true,
5
5
  direction: "column",
6
6
  flexWrap: "nowrap",
@@ -1,10 +1,10 @@
1
- import { Grid2, Typography } from "@mui/material";
1
+ import { Grid, Typography } from "@mui/material";
2
2
  import React from "react";
3
3
  import { TYPOGRAPHY_PROPS } from "../../../../styles/common/mui/typography";
4
4
  import { AnchorLink } from "../../../common/AnchorLink/anchorLink";
5
5
  import { useTable } from "../Table/hook";
6
6
  import { Table } from "../Table/table";
7
- import { GRID2_PROPS } from "./constants";
7
+ import { GRID_PROPS } from "./constants";
8
8
  import { StyledTypography } from "./entity.styles";
9
9
  import { EntityProps } from "./types";
10
10
 
@@ -14,8 +14,8 @@ export const Entity = ({
14
14
  }: EntityProps): JSX.Element => {
15
15
  const table = useTable(classData.attributes);
16
16
  return (
17
- <Grid2 {...GRID2_PROPS} rowGap={4}>
18
- <Grid2 {...GRID2_PROPS} rowGap={1}>
17
+ <Grid {...GRID_PROPS} rowGap={4}>
18
+ <Grid {...GRID_PROPS} rowGap={1}>
19
19
  <StyledTypography
20
20
  component="h3"
21
21
  id={classData.key}
@@ -31,8 +31,8 @@ export const Entity = ({
31
31
  >
32
32
  {classData.description}
33
33
  </Typography>
34
- </Grid2>
34
+ </Grid>
35
35
  <Table table={table} />
36
- </Grid2>
36
+ </Grid>
37
37
  );
38
38
  };
@@ -23,7 +23,7 @@ export const NIHAccountExpiryWarning = (): JSX.Element | null => {
23
23
  Please{" "}
24
24
  <Link
25
25
  label="renew your account"
26
- url="https://support.terra.bio/hc/en-us/articles/360038086332-Linking-authorization-accessing-controlled-data-on-external-servers#heading-4"
26
+ url="https://support.terra.bio/hc/en-us/articles/19124069598235"
27
27
  />{" "}
28
28
  link.
29
29
  </span>
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  import { useExploreState } from "../../../../hooks/useExploreState";
3
3
  import { ExploreActionKind } from "../../../../providers/exploreState";
4
+ import { TEST_IDS } from "../../../../tests/testIds";
4
5
  import { ButtonTextPrimary } from "../../../common/Button/components/ButtonTextPrimary/buttonTextPrimary";
5
6
 
6
7
  export const ClearAllFilters = (): JSX.Element => {
@@ -14,6 +15,11 @@ export const ClearAllFilters = (): JSX.Element => {
14
15
  };
15
16
 
16
17
  return (
17
- <ButtonTextPrimary onClick={onClearFilters}>Clear All</ButtonTextPrimary>
18
+ <ButtonTextPrimary
19
+ data-testid={TEST_IDS.CLEAR_ALL_FILTERS}
20
+ onClick={onClearFilters}
21
+ >
22
+ Clear All
23
+ </ButtonTextPrimary>
18
24
  );
19
25
  };
@@ -4,6 +4,7 @@ import React, { MouseEvent, ReactNode, useState } from "react";
4
4
  import { SelectCategoryView } from "../../../../common/entities";
5
5
  import { TrackFilterOpenedFunction } from "../../../../config/entities";
6
6
  import { OnFilterFn } from "../../../../hooks/useCategoryFilter";
7
+ import { TEST_IDS } from "../../../../tests/testIds";
7
8
  import { FilterLabel } from "../FilterLabel/filterLabel";
8
9
  import { FilterMenu } from "../FilterMenu/filterMenu";
9
10
  import { DrawerTransition } from "./components/DrawerTransition/drawerTransition";
@@ -87,6 +88,7 @@ export const Filter = ({
87
88
  <FilterPopover
88
89
  anchorPosition={anchorPosition}
89
90
  anchorReference="anchorPosition"
91
+ data-testid={TEST_IDS.FILTER_POPOVER}
90
92
  marginThreshold={0}
91
93
  onClose={onCloseFilters}
92
94
  open={isOpen}
@@ -1,4 +1,4 @@
1
- import ArrowDropDownRoundedIcon from "@mui/icons-material/ArrowDropDownRounded";
1
+ import { ArrowDropDownRounded } from "@mui/icons-material";
2
2
  import React, { MouseEvent } from "react";
3
3
  import { DataDictionaryAnnotation } from "../../../../common/entities";
4
4
  import { Tooltip } from "../../../DataDictionary/components/Tooltip/tooltip";
@@ -27,7 +27,7 @@ export const FilterLabel = ({
27
27
  <Label
28
28
  color="inherit"
29
29
  disabled={disabled}
30
- endIcon={<ArrowDropDownRoundedIcon fontSize="small" />}
30
+ endIcon={<ArrowDropDownRounded fontSize="small" />}
31
31
  fullWidth
32
32
  isOpen={isOpen}
33
33
  onClick={onClick}