@databiosphere/findable-ui 31.0.0 → 32.0.1

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 (59) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +20 -0
  3. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.d.ts +1 -1
  4. package/lib/components/DataDictionary/components/Layout/components/OutlineLayout/outlineLayout.styles.d.ts +2 -2
  5. package/lib/components/DataDictionary/components/Layout/components/TitleLayout/titleLayout.styles.d.ts +1 -1
  6. package/lib/components/DataDictionary/components/Table/components/BasicCell/basicCell.d.ts +2 -2
  7. package/lib/components/DataDictionary/dataDictionary.styles.d.ts +1 -1
  8. package/lib/components/Error/error.styles.d.ts +1 -1
  9. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/formStep.styles.d.ts +1 -1
  10. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.styles.d.ts +4 -4
  11. package/lib/components/Export/components/ManifestDownload/components/ManifestDownloadEntity/manifestDownloadEntity.styles.d.ts +1 -1
  12. package/lib/components/Filter/components/FilterRange/filterRange.styles.d.ts +1 -1
  13. package/lib/components/Filter/components/Filters/filters.styles.d.ts +2 -2
  14. package/lib/components/Filter/components/VariableSizeList/VariableSizeList.d.ts +1 -1
  15. package/lib/components/Filter/components/VariableSizeList/VariableSizeList.js +1 -1
  16. package/lib/components/Index/components/EntitiesView/components/ChartView/chartView.styles.d.ts +1 -1
  17. package/lib/components/Index/index.js +1 -1
  18. package/lib/components/Index/index.styles.d.ts +1 -1
  19. package/lib/components/Index/table/hook.d.ts +2 -2
  20. package/lib/components/Index/table/hook.js +5 -2
  21. package/lib/components/Index/table/types.d.ts +3 -0
  22. package/lib/components/Layout/components/ContentLayout/contentLayout.styles.d.ts +1 -1
  23. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
  24. package/lib/components/Layout/components/Header/components/Content/components/Navigation/navigation.styles.d.ts +1 -1
  25. package/lib/components/Layout/components/Main/main.styles.d.ts +2 -2
  26. package/lib/components/Layout/components/Sidebar/components/SidebarPositioner/sidebarPositioner.styles.d.ts +1 -1
  27. package/lib/components/Login/components/Section/components/Consent/consent.styles.d.ts +1 -1
  28. package/lib/components/MarkdownRenderer/components/Table/table.styles.d.ts +1 -1
  29. package/lib/components/MarkdownRenderer/constants.d.ts +2 -2
  30. package/lib/components/MarkdownRenderer/markdownRenderer.d.ts +13 -1
  31. package/lib/components/MarkdownRenderer/markdownRenderer.js +21 -10
  32. package/lib/components/MarkdownRenderer/markdownRenderer.styles.d.ts +1 -1
  33. package/lib/components/MarkdownRenderer/types.d.ts +3 -2
  34. package/lib/components/Stepper/components/Step/components/StepIcon/components/CompletedIcon/completedIcon.styles.d.ts +1 -1
  35. package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/label.styles.d.ts +1 -1
  36. package/lib/components/Support/components/ViewSupport/viewSupport.styles.d.ts +1 -1
  37. package/lib/components/common/AnchorLink/anchorLink.styles.d.ts +7 -7
  38. package/lib/components/common/Card/components/CardSecondaryTitle/cardSecondaryTitle.styles.d.ts +1 -1
  39. package/lib/components/common/Code/code.styles.d.ts +1 -1
  40. package/lib/components/common/Dot/dot.styles.d.ts +1 -1
  41. package/lib/components/common/EllipsisContent/ellipsisContent.styles.d.ts +1 -1
  42. package/lib/components/common/Progress/components/CircularProgress/circularProgress.d.ts +1 -1
  43. package/lib/components/common/Progress/components/CircularProgress/circularProgress.js +1 -1
  44. package/lib/components/common/Stack/stack.d.ts +1 -1
  45. package/lib/components/common/Stack/stack.js +1 -1
  46. package/lib/components/common/ToggleButtonGroup/hooks/UseToggleButtonGroup/hook.d.ts +1 -1
  47. package/lib/providers/exploreState.js +7 -0
  48. package/package.json +8 -6
  49. package/src/components/Filter/components/VariableSizeList/VariableSizeList.tsx +1 -1
  50. package/src/components/Index/index.tsx +1 -1
  51. package/src/components/Index/table/hook.ts +8 -3
  52. package/src/components/Index/table/types.ts +4 -0
  53. package/src/components/MarkdownRenderer/constants.ts +2 -2
  54. package/src/components/MarkdownRenderer/markdownRenderer.tsx +24 -12
  55. package/src/components/MarkdownRenderer/types.ts +5 -2
  56. package/src/components/common/Progress/components/CircularProgress/circularProgress.tsx +1 -1
  57. package/src/components/common/Stack/stack.tsx +2 -2
  58. package/src/providers/exploreState.tsx +7 -0
  59. package/tests/useRequestManifest.test.ts +1 -1
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "31.0.0"
2
+ ".": "32.0.1"
3
3
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## [32.0.1](https://github.com/DataBiosphere/findable-ui/compare/v32.0.0...v32.0.1) (2025-05-20)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * prevent table column def and data mismatch for client side filtering ([#484](https://github.com/DataBiosphere/findable-ui/issues/484)) ([#485](https://github.com/DataBiosphere/findable-ui/issues/485)) ([04f0ec8](https://github.com/DataBiosphere/findable-ui/commit/04f0ec8d1ac13e91c8f97d5becb58a0662f54939))
9
+ * update explorestate provider updateentityfilters action ([#486](https://github.com/DataBiosphere/findable-ui/issues/486)) ([ae16e1c](https://github.com/DataBiosphere/findable-ui/commit/ae16e1c810d629e533f287e229d783315fa37e29))
10
+ * update explorestate provider updateentityfilters action: update filters when tabvalue matches entitylisttype ([#486](https://github.com/DataBiosphere/findable-ui/issues/486)) ([#487](https://github.com/DataBiosphere/findable-ui/issues/487)) ([ae16e1c](https://github.com/DataBiosphere/findable-ui/commit/ae16e1c810d629e533f287e229d783315fa37e29))
11
+
12
+ ## [32.0.0](https://github.com/DataBiosphere/findable-ui/compare/v31.0.0...v32.0.0) (2025-05-19)
13
+
14
+
15
+ ### ⚠ BREAKING CHANGES
16
+
17
+ * ove rehype-raw, rehype-react, rehype-sanitize, remark-gfm, remark-rehype from dev-dependency to peer ([#481](https://github.com/DataBiosphere/findable-ui/issues/481)) (#482)
18
+
19
+ ### Bug Fixes
20
+
21
+ * ove rehype-raw, rehype-react, rehype-sanitize, remark-gfm, remark-rehype from dev-dependency to peer ([#481](https://github.com/DataBiosphere/findable-ui/issues/481)) ([#482](https://github.com/DataBiosphere/findable-ui/issues/482)) ([a6dfd0f](https://github.com/DataBiosphere/findable-ui/commit/a6dfd0fa5ac9fe5e8da2bf8e83ae06868f962f95))
22
+
3
23
  ## [31.0.0](https://github.com/DataBiosphere/findable-ui/compare/v30.0.0...v31.0.0) (2025-05-15)
4
24
 
5
25
 
@@ -1,5 +1,5 @@
1
1
  import { LayoutSpacing } from "../../../../hooks/UseLayoutSpacing/types";
2
2
  export declare const Layout: import("@emotion/styled").StyledComponent<{
3
3
  theme?: import("@emotion/react").Theme;
4
- as?: import("react").ElementType;
4
+ as?: React.ElementType;
5
5
  } & LayoutSpacing, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1,9 +1,9 @@
1
1
  import { LayoutSpacing } from "../../../../hooks/UseLayoutSpacing/types";
2
2
  export declare const Layout: import("@emotion/styled").StyledComponent<{
3
3
  theme?: import("@emotion/react").Theme;
4
- as?: import("react").ElementType;
4
+ as?: React.ElementType;
5
5
  } & LayoutSpacing, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
6
6
  export declare const LayoutScroller: import("@emotion/styled").StyledComponent<{
7
7
  theme?: import("@emotion/react").Theme;
8
- as?: import("react").ElementType;
8
+ as?: React.ElementType;
9
9
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1,5 +1,5 @@
1
1
  import { LayoutSpacing } from "../../../../hooks/UseLayoutSpacing/types";
2
2
  export declare const Layout: import("@emotion/styled").StyledComponent<{
3
3
  theme?: import("@emotion/react").Theme;
4
- as?: import("react").ElementType;
4
+ as?: React.ElementType;
5
5
  } & LayoutSpacing, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1,3 +1,3 @@
1
1
  import { CellContext, RowData } from "@tanstack/react-table";
2
- import React, { ReactNode } from "react";
3
- export declare const BasicCell: <T extends RowData, TValue extends ReactNode = React.ReactNode>({ getValue, }: CellContext<T, TValue>) => JSX.Element | null;
2
+ import { ReactNode } from "react";
3
+ export declare const BasicCell: <T extends RowData, TValue extends ReactNode = ReactNode>({ getValue, }: CellContext<T, TValue>) => JSX.Element | null;
@@ -1,5 +1,5 @@
1
1
  export declare const grid: import("@emotion/react").SerializedStyles;
2
2
  export declare const View: import("@emotion/styled").StyledComponent<{
3
3
  theme?: import("@emotion/react").Theme;
4
- as?: import("react").ElementType;
4
+ as?: React.ElementType;
5
5
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -3,7 +3,7 @@ interface Props {
3
3
  }
4
4
  export declare const ErrorLayout: import("@emotion/styled").StyledComponent<{
5
5
  theme?: import("@emotion/react").Theme;
6
- as?: import("react").ElementType;
6
+ as?: React.ElementType;
7
7
  } & Props, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
8
8
  export declare const Error: import("@emotion/styled").StyledComponent<{
9
9
  theme?: import("@emotion/react").Theme;
@@ -1,6 +1,6 @@
1
1
  export declare const SectionContent: import("@emotion/styled").StyledComponent<{
2
2
  theme?: import("@emotion/react").Theme;
3
- as?: import("react").ElementType;
3
+ as?: React.ElementType;
4
4
  } & import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & {
5
5
  theme?: import("@emotion/react").Theme;
6
6
  }, {}, {}>;
@@ -1,16 +1,16 @@
1
1
  export declare const Section: import("@emotion/styled").StyledComponent<{
2
2
  theme?: import("@emotion/react").Theme;
3
- as?: import("react").ElementType;
3
+ as?: React.ElementType;
4
4
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
5
5
  export declare const SectionContent: import("@emotion/styled").StyledComponent<{
6
6
  theme?: import("@emotion/react").Theme;
7
- as?: import("react").ElementType;
7
+ as?: React.ElementType;
8
8
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
9
9
  export declare const SectionStatus: import("@emotion/styled").StyledComponent<{
10
10
  theme?: import("@emotion/react").Theme;
11
- as?: import("react").ElementType;
11
+ as?: React.ElementType;
12
12
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
13
13
  export declare const SectionActions: import("@emotion/styled").StyledComponent<{
14
14
  theme?: import("@emotion/react").Theme;
15
- as?: import("react").ElementType;
15
+ as?: React.ElementType;
16
16
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1,6 +1,6 @@
1
1
  export declare const SectionTitle: import("@emotion/styled").StyledComponent<{
2
2
  theme?: import("@emotion/react").Theme;
3
- as?: import("react").ElementType;
3
+ as?: React.ElementType;
4
4
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, {}>;
5
5
  export declare const TableContainer: import("@emotion/styled").StyledComponent<import("@mui/material").TableContainerOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
6
6
  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;
@@ -1,4 +1,4 @@
1
1
  export declare const StyledForm: import("@emotion/styled").StyledComponent<{
2
2
  theme?: import("@emotion/react").Theme;
3
- as?: import("react").ElementType;
3
+ as?: React.ElementType;
4
4
  }, import("react").DetailedHTMLProps<import("react").FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, {}>;
@@ -4,10 +4,10 @@ interface Props {
4
4
  }
5
5
  export declare const Filters: import("@emotion/styled").StyledComponent<{
6
6
  theme?: import("@emotion/react").Theme;
7
- as?: import("react").ElementType;
7
+ as?: React.ElementType;
8
8
  } & Props, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
9
9
  export declare const CategoryViewsLabel: import("@emotion/styled").StyledComponent<{
10
10
  theme?: import("@emotion/react").Theme;
11
- as?: import("react").ElementType;
11
+ as?: React.ElementType;
12
12
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
13
13
  export {};
@@ -14,4 +14,4 @@ export interface VariableSizeListProps {
14
14
  overscanCount?: ListProps["overscanCount"];
15
15
  width?: ListProps["width"];
16
16
  }
17
- export declare const VariableSizeList: ({ categoryKey, categorySection, height: initHeight, isFilterDrawer, itemSize, onFilter, overscanCount, matchedItems, width, }: VariableSizeListProps) => JSX.Element;
17
+ export declare const VariableSizeList: ({ categoryKey, categorySection, height: initHeight, isFilterDrawer, itemSize, matchedItems, onFilter, overscanCount, width, }: VariableSizeListProps) => JSX.Element;
@@ -14,7 +14,7 @@ function renderListItem(props) {
14
14
  const { categoryKey, categorySection, matchedItems, onFilter, onUpdateItemSizeByItemKey, } = data;
15
15
  return (React.createElement(VariableSizeListItem, { categorySection: categorySection, categoryKey: categoryKey, matchedItem: matchedItems[index], onFilter: onFilter, onUpdateItemSizeByItemKey: onUpdateItemSizeByItemKey, style: style }));
16
16
  }
17
- export const VariableSizeList = ({ categoryKey, categorySection, height: initHeight = MAX_LIST_HEIGHT_PX, isFilterDrawer, itemSize = LIST_ITEM_HEIGHT, onFilter, overscanCount = MAX_DISPLAYABLE_LIST_ITEMS * 2, matchedItems, width = "100%", }) => {
17
+ export const VariableSizeList = ({ categoryKey, categorySection, height: initHeight = MAX_LIST_HEIGHT_PX, isFilterDrawer, itemSize = LIST_ITEM_HEIGHT, matchedItems, onFilter, overscanCount = MAX_DISPLAYABLE_LIST_ITEMS * 2, width = "100%", }) => {
18
18
  const { height: windowHeight } = useWindowResize();
19
19
  const [height, setHeight] = useState(initHeight);
20
20
  const itemSizeByItemKeyRef = useRef(new Map());
@@ -2,7 +2,7 @@ export declare const StyledGrid: import("@emotion/styled").StyledComponent<impor
2
2
  sx?: import("@mui/material").SxProps<import("@mui/material").Theme>;
3
3
  } & import("@mui/system").SystemProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
4
4
  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;
5
- }, ("fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textTransform" | "p" | "color" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontStyle" | "textAlign") | "sx" | keyof import("@mui/material").GridBaseProps> & {
5
+ }, ("p" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textTransform" | "color" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontStyle" | "textAlign") | "sx" | keyof import("@mui/material").GridBaseProps> & {
6
6
  theme?: import("@emotion/react").Theme;
7
7
  }, {}, {}>;
8
8
  export declare const StyledGridPaperSection: import("@emotion/styled").StyledComponent<{
@@ -11,7 +11,7 @@ import { useTable } from "./table/hook";
11
11
  export const Index = ({ categoryFilters, className, entityListType, entityName, ListHero, loading, SideBarButton, SubTitleHero, Summaries, Tabs, title, }) => {
12
12
  const { onChange, viewMode, viewStatus } = useEntitiesView();
13
13
  const { dimensions } = useLayoutDimensions();
14
- const { table } = useTable();
14
+ const { table } = useTable({ entityListType });
15
15
  return (React.createElement(IndexLayout, { className: className, marginTop: dimensions.header.height },
16
16
  React.createElement(Hero, { SideBarButton: SideBarButton, Summaries: Summaries, title: title }),
17
17
  SubTitleHero,
@@ -3,6 +3,6 @@ interface Props {
3
3
  }
4
4
  export declare const Index: import("@emotion/styled").StyledComponent<{
5
5
  theme?: import("@emotion/react").Theme;
6
- as?: import("react").ElementType;
6
+ as?: React.ElementType;
7
7
  } & Props, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
8
8
  export {};
@@ -1,3 +1,3 @@
1
1
  import { RowData } from "@tanstack/react-table";
2
- import { UseTable } from "./types";
3
- export declare const useTable: <T extends RowData>() => UseTable<T>;
2
+ import { UseTable, UseTableProps } from "./types";
3
+ export declare const useTable: <T extends RowData>({ entityListType, }: UseTableProps) => UseTable<T>;
@@ -16,8 +16,7 @@ import { ROW_PREVIEW } from "../../Table/features/RowPreview/constants";
16
16
  import { buildBaseColumnDef } from "../../TableCreator/common/utils";
17
17
  import { useTableOptions } from "../../TableCreator/options/hook";
18
18
  import { createCell } from "./coreOptions/columns/cellFactory";
19
- // eslint-disable-next-line sonarjs/cognitive-complexity -- TODO fix component length / complexity
20
- export const useTable = () => {
19
+ export const useTable = ({ entityListType, }) => {
21
20
  const { entityConfig } = useConfig();
22
21
  const exploreMode = useExploreMode();
23
22
  const { exploreDispatch, exploreState } = useExploreState();
@@ -141,6 +140,8 @@ export const useTable = () => {
141
140
  }, [clientFiltering, filterState, table]);
142
141
  // Process explore response - client-side filtering only.
143
142
  useEffect(() => {
143
+ if (entityListType !== tabValue)
144
+ return;
144
145
  if (!listItems || listItems.length === 0)
145
146
  return;
146
147
  if (clientFiltering) {
@@ -162,9 +163,11 @@ export const useTable = () => {
162
163
  allColumns,
163
164
  clientFiltering,
164
165
  columnFilters,
166
+ entityListType,
165
167
  exploreDispatch,
166
168
  listItems,
167
169
  rows,
170
+ tabValue,
168
171
  ]);
169
172
  return { table };
170
173
  };
@@ -2,3 +2,6 @@ import { RowData, Table } from "@tanstack/react-table";
2
2
  export interface UseTable<T extends RowData> {
3
3
  table: Table<T>;
4
4
  }
5
+ export interface UseTableProps {
6
+ entityListType: string;
7
+ }
@@ -21,7 +21,7 @@ export declare const ContentGrid: import("@emotion/styled").StyledComponent<{
21
21
  } & GridProps, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
22
22
  export declare const OutlineGrid: import("@emotion/styled").StyledComponent<{
23
23
  theme?: import("@emotion/react").Theme;
24
- as?: import("react").ElementType;
24
+ as?: React.ElementType;
25
25
  } & GridProps, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
26
26
  export declare const Positioner: import("@emotion/styled").StyledComponent<{
27
27
  theme?: import("@emotion/react").Theme;
@@ -13,7 +13,7 @@ export declare const UserSummary: import("@emotion/styled").StyledComponent<impo
13
13
  }, {}, {}>;
14
14
  export declare const UserNames: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
15
15
  ref?: ((instance: HTMLSpanElement | 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<HTMLSpanElement> | null | undefined;
16
- }, "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textTransform" | "p" | "style" | "className" | "classes" | "color" | "children" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontStyle" | "textAlign" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "sx" | "variant" | "variantMapping"> & {
16
+ }, "p" | "style" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textTransform" | "className" | "classes" | "color" | "children" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontStyle" | "textAlign" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "sx" | "variant" | "variantMapping"> & {
17
17
  theme?: import("@emotion/react").Theme;
18
18
  }, {}, {}>;
19
19
  export declare const StyledAvatar: import("@emotion/styled").StyledComponent<import("@mui/material").AvatarOwnProps & import("@mui/material").AvatarSlotsAndSlotProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
@@ -3,6 +3,6 @@ interface Props {
3
3
  }
4
4
  export declare const Navigation: import("@emotion/styled").StyledComponent<{
5
5
  theme?: import("@emotion/react").Theme;
6
- as?: import("react").ElementType;
6
+ as?: React.ElementType;
7
7
  } & Props, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
8
8
  export {};
@@ -3,11 +3,11 @@ interface Props {
3
3
  }
4
4
  export declare const Main: import("@emotion/styled").StyledComponent<{
5
5
  theme?: import("@emotion/react").Theme;
6
- as?: import("react").ElementType;
6
+ as?: React.ElementType;
7
7
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {}>;
8
8
  export declare const MainWithOffset: import("@emotion/styled").StyledComponent<{
9
9
  theme?: import("@emotion/react").Theme;
10
- as?: import("react").ElementType;
10
+ as?: React.ElementType;
11
11
  } & import("react").ClassAttributes<HTMLElement> & import("react").HTMLAttributes<HTMLElement> & {
12
12
  theme?: import("@emotion/react").Theme;
13
13
  } & Props, {}, {}>;
@@ -3,6 +3,6 @@ interface Props {
3
3
  }
4
4
  export declare const SidebarPositioner: import("@emotion/styled").StyledComponent<{
5
5
  theme?: import("@emotion/react").Theme;
6
- as?: import("react").ElementType;
6
+ as?: React.ElementType;
7
7
  } & Props, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
8
8
  export {};
@@ -2,6 +2,6 @@ export declare const StyledGrid: import("@emotion/styled").StyledComponent<impor
2
2
  sx?: import("@mui/material").SxProps<import("@mui/material").Theme>;
3
3
  } & import("@mui/system").SystemProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
4
4
  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;
5
- }, ("fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textTransform" | "p" | "color" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontStyle" | "textAlign") | "sx" | keyof import("@mui/material").GridBaseProps> & {
5
+ }, ("p" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textTransform" | "color" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontStyle" | "textAlign") | "sx" | keyof import("@mui/material").GridBaseProps> & {
6
6
  theme?: import("@emotion/react").Theme;
7
7
  }, {}, {}>;
@@ -1,4 +1,4 @@
1
1
  export declare const StyledTable: import("@emotion/styled").StyledComponent<{
2
2
  theme?: import("@emotion/react").Theme;
3
- as?: import("react").ElementType;
3
+ as?: React.ElementType;
4
4
  }, import("react").DetailedHTMLProps<import("react").TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>, {}>;
@@ -1,2 +1,2 @@
1
- import { Components } from "rehype-react";
2
- export declare const COMPONENTS: Partial<Components>;
1
+ import { MarkdownRendererComponents } from "./types";
2
+ export declare const COMPONENTS: MarkdownRendererComponents;
@@ -1,2 +1,14 @@
1
1
  import { MarkdownRendererProps } from "./types";
2
- export declare const MarkdownRenderer: ({ className, components, value, }: MarkdownRendererProps) => JSX.Element;
2
+ /**
3
+ * Markdown Rendering - Pipeline Version Constraints
4
+ *
5
+ * next-mdx-remote and @next/mdx currently embed MDX v3. MDX v3 is compiled
6
+ * for the "Unified 10" tool-chain and therefore only functions with unified
7
+ * 10.x, remark-parse 10.x, remark-rehype 10.x and, critically, remark-gfm 3.x.
8
+ *
9
+ * Because remark-gfm 3.x is required, migrating to Unified 11 is not yet possible.
10
+ *
11
+ * rehype plug-ins are chosen from versions that still target Unified 10:
12
+ * rehype-raw 7.x, rehype-sanitize 5.x and rehype-react 7.x.
13
+ */
14
+ export declare const MarkdownRenderer: ({ className, components: componentOptions, value, }: MarkdownRendererProps) => JSX.Element;
@@ -1,9 +1,8 @@
1
1
  import { Typography } from "@mui/material";
2
- import React, { useEffect, useState } from "react";
3
- import * as production from "react/jsx-runtime";
2
+ import React, { Fragment, createElement, useEffect, useState } from "react";
4
3
  import rehypeRaw from "rehype-raw";
5
4
  import rehypeReact from "rehype-react";
6
- import rehypeSanitize, { defaultSchema } from "rehype-sanitize";
5
+ import rehypeSanitize from "rehype-sanitize";
7
6
  import remarkGfm from "remark-gfm";
8
7
  import remarkParse from "remark-parse";
9
8
  import remarkRehype from "remark-rehype";
@@ -11,10 +10,22 @@ import { unified } from "unified";
11
10
  import { TYPOGRAPHY_PROPS } from "../../styles/common/mui/typography";
12
11
  import { COMPONENTS } from "./constants";
13
12
  import { StyledContainer } from "./markdownRenderer.styles";
14
- export const MarkdownRenderer = ({ className, components = COMPONENTS, value, }) => {
13
+ /**
14
+ * Markdown Rendering - Pipeline Version Constraints
15
+ *
16
+ * next-mdx-remote and @next/mdx currently embed MDX v3. MDX v3 is compiled
17
+ * for the "Unified 10" tool-chain and therefore only functions with unified
18
+ * 10.x, remark-parse 10.x, remark-rehype 10.x and, critically, remark-gfm 3.x.
19
+ *
20
+ * Because remark-gfm 3.x is required, migrating to Unified 11 is not yet possible.
21
+ *
22
+ * rehype plug-ins are chosen from versions that still target Unified 10:
23
+ * rehype-raw 7.x, rehype-sanitize 5.x and rehype-react 7.x.
24
+ */
25
+ export const MarkdownRenderer = ({ className, components: componentOptions = COMPONENTS, value, }) => {
15
26
  const [element, setElement] = useState(null);
16
27
  const [error, setError] = useState(null);
17
- const [componentOptions] = useState(components);
28
+ const [components] = useState(componentOptions);
18
29
  useEffect(() => {
19
30
  let cancelled = false;
20
31
  setError(null);
@@ -23,13 +34,13 @@ export const MarkdownRenderer = ({ className, components = COMPONENTS, value, })
23
34
  .use(remarkGfm)
24
35
  .use(remarkRehype, { allowDangerousHtml: true })
25
36
  .use(rehypeRaw)
26
- .use(rehypeSanitize, defaultSchema)
27
- .use(rehypeReact, { ...production, components: componentOptions });
37
+ .use(rehypeSanitize)
38
+ .use(rehypeReact, { Fragment, components, createElement });
28
39
  processor
29
40
  .process(value)
30
- .then((file) => {
41
+ .then(({ result }) => {
31
42
  if (!cancelled)
32
- setElement(file?.result);
43
+ setElement(result);
33
44
  })
34
45
  .catch((err) => {
35
46
  if (!cancelled)
@@ -38,7 +49,7 @@ export const MarkdownRenderer = ({ className, components = COMPONENTS, value, })
38
49
  return () => {
39
50
  cancelled = true;
40
51
  };
41
- }, [componentOptions, value]);
52
+ }, [components, value]);
42
53
  if (error)
43
54
  return (React.createElement(Typography, { color: TYPOGRAPHY_PROPS.COLOR.ERROR, variant: TYPOGRAPHY_PROPS.VARIANT.TEXT_BODY_SMALL_400 }, error));
44
55
  return React.createElement(StyledContainer, { className: className }, element);
@@ -1,4 +1,4 @@
1
1
  export declare const StyledContainer: import("@emotion/styled").StyledComponent<{
2
2
  theme?: import("@emotion/react").Theme;
3
- as?: import("react").ElementType;
3
+ as?: React.ElementType;
4
4
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1,6 +1,7 @@
1
- import { Components } from "rehype-react";
1
+ import { ComponentType } from "react";
2
2
  import { BaseComponentProps } from "../types";
3
+ export type MarkdownRendererComponents = Record<string, ComponentType<any>>;
3
4
  export interface MarkdownRendererProps extends BaseComponentProps {
4
- components?: Partial<Components>;
5
+ components?: MarkdownRendererComponents;
5
6
  value: string;
6
7
  }
@@ -1,5 +1,5 @@
1
1
  export declare const StyledSvgIcon: import("@emotion/styled").StyledComponent<import("@mui/material").SvgIconOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").SVGProps<SVGSVGElement>, "ref"> & {
2
2
  ref?: ((instance: SVGSVGElement | 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<SVGSVGElement> | null | undefined;
3
- }, "fontSize" | "style" | "className" | "classes" | "color" | "children" | "shapeRendering" | "sx" | "viewBox" | "htmlColor" | "inheritViewBox" | "titleAccess"> & {
3
+ }, "style" | "fontSize" | "className" | "classes" | "color" | "children" | "shapeRendering" | "sx" | "viewBox" | "htmlColor" | "inheritViewBox" | "titleAccess"> & {
4
4
  theme?: import("@emotion/react").Theme;
5
5
  }, {}, {}>;
@@ -1,5 +1,5 @@
1
1
  export declare const StyledTypography: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
2
2
  ref?: ((instance: HTMLSpanElement | 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<HTMLSpanElement> | null | undefined;
3
- }, "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textTransform" | "p" | "style" | "className" | "classes" | "color" | "children" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontStyle" | "textAlign" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "sx" | "variant" | "variantMapping"> & {
3
+ }, "p" | "style" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textTransform" | "className" | "classes" | "color" | "children" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontStyle" | "textAlign" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "sx" | "variant" | "variantMapping"> & {
4
4
  theme?: import("@emotion/react").Theme;
5
5
  }, {}, {}>;
@@ -1,4 +1,4 @@
1
1
  export declare const Fab: import("@emotion/styled").StyledComponent<{
2
2
  theme?: import("@emotion/react").Theme;
3
- as?: import("react").ElementType;
3
+ as?: React.ElementType;
4
4
  }, import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, {}>;
@@ -8,9 +8,9 @@ export declare const AnchorLink: import("@emotion/styled").StyledComponent<Omit<
8
8
  prefetch?: boolean | null;
9
9
  locale?: string | false;
10
10
  legacyBehavior?: boolean;
11
- onMouseEnter?: import("react").MouseEventHandler<HTMLAnchorElement>;
12
- onTouchStart?: import("react").TouchEventHandler<HTMLAnchorElement>;
13
- onClick?: import("react").MouseEventHandler<HTMLAnchorElement>;
11
+ onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement>;
12
+ onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>;
13
+ onClick?: React.MouseEventHandler<HTMLAnchorElement>;
14
14
  }> & {
15
15
  href: string | import("url").UrlObject;
16
16
  as?: string | import("url").UrlObject;
@@ -21,11 +21,11 @@ export declare const AnchorLink: import("@emotion/styled").StyledComponent<Omit<
21
21
  prefetch?: boolean | null;
22
22
  locale?: string | false;
23
23
  legacyBehavior?: boolean;
24
- onMouseEnter?: import("react").MouseEventHandler<HTMLAnchorElement>;
25
- onTouchStart?: import("react").TouchEventHandler<HTMLAnchorElement>;
26
- onClick?: import("react").MouseEventHandler<HTMLAnchorElement>;
24
+ onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement>;
25
+ onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>;
26
+ onClick?: React.MouseEventHandler<HTMLAnchorElement>;
27
27
  } & {
28
- children?: import("react").ReactNode;
28
+ children?: React.ReactNode;
29
29
  } & import("react").RefAttributes<HTMLAnchorElement> & {
30
30
  theme?: import("@emotion/react").Theme;
31
31
  }, {}, {}>;
@@ -1,5 +1,5 @@
1
1
  export declare const CardSecondaryTitle: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
2
2
  ref?: ((instance: HTMLSpanElement | 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<HTMLSpanElement> | null | undefined;
3
- }, "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textTransform" | "p" | "style" | "className" | "classes" | "color" | "children" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontStyle" | "textAlign" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "sx" | "variant" | "variantMapping"> & {
3
+ }, "p" | "style" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textTransform" | "className" | "classes" | "color" | "children" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontStyle" | "textAlign" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "sx" | "variant" | "variantMapping"> & {
4
4
  theme?: import("@emotion/react").Theme;
5
5
  }, {}, {}>;
@@ -3,6 +3,6 @@ interface Props {
3
3
  }
4
4
  export declare const CodeBlock: import("@emotion/styled").StyledComponent<{
5
5
  theme?: import("@emotion/react").Theme;
6
- as?: import("react").ElementType;
6
+ as?: React.ElementType;
7
7
  } & Props, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLPreElement>, HTMLPreElement>, {}>;
8
8
  export {};
@@ -1,4 +1,4 @@
1
1
  export declare const DotSeparator: import("@emotion/styled").StyledComponent<{
2
2
  theme?: import("@emotion/react").Theme;
3
- as?: import("react").ElementType;
3
+ as?: React.ElementType;
4
4
  }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
@@ -4,7 +4,7 @@ interface Props {
4
4
  }
5
5
  export declare const Content: import("@emotion/styled").StyledComponent<{
6
6
  theme?: import("@emotion/react").Theme;
7
- as?: import("react").ElementType;
7
+ as?: React.ElementType;
8
8
  } & Props, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
9
9
  export declare const Button: import("@emotion/styled").StyledComponent<{
10
10
  [x: string]: any;
@@ -4,4 +4,4 @@ export interface CircularProgressProps extends MCircularProgressProps {
4
4
  className?: string;
5
5
  Track?: ElementType<CircularProgressProps>;
6
6
  }
7
- export declare const CircularProgress: ({ className, value, Track, ...props }: CircularProgressProps) => JSX.Element;
7
+ export declare const CircularProgress: ({ className, Track, value, ...props }: CircularProgressProps) => JSX.Element;
@@ -2,7 +2,7 @@ import { CircularProgress as MCircularProgress, } from "@mui/material";
2
2
  import React from "react";
3
3
  import { ProgressPositioner } from "./circularProgress.styles";
4
4
  import { CircularProgressTrack } from "./components/CircularProgressTrack/circularProgressTrack";
5
- export const CircularProgress = ({ className, value, Track = CircularProgressTrack, ...props /* Spread props to allow for CircularProgress specific props e.g. "disableShrink". */ }) => {
5
+ export const CircularProgress = ({ className, Track = CircularProgressTrack, value, ...props /* Spread props to allow for CircularProgress specific props e.g. "disableShrink". */ }) => {
6
6
  return (React.createElement(ProgressPositioner, { className: className },
7
7
  React.createElement(Track, { ...props }),
8
8
  React.createElement(MCircularProgress, { value: value, ...props })));
@@ -15,4 +15,4 @@ export interface StackProps {
15
15
  justifyContent?: MStackProps["justifyContent"];
16
16
  spacing?: number;
17
17
  }
18
- export declare const Stack: ({ children, className, direction, divider, justifyContent, alignItems, gap, spacing, }: StackProps) => JSX.Element;
18
+ export declare const Stack: ({ alignItems, children, className, direction, divider, gap, justifyContent, spacing, }: StackProps) => JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { Stack as MStack } from "@mui/material";
2
2
  import React from "react";
3
- export const Stack = ({ children, className, direction = "column", divider = undefined, justifyContent, alignItems, gap = 0, spacing = 0, }) => {
3
+ export const Stack = ({ alignItems, children, className, direction = "column", divider = undefined, gap = 0, justifyContent, spacing = 0, }) => {
4
4
  return (React.createElement(MStack, { className: className, direction: direction, divider: divider, justifyContent: justifyContent, alignItems: alignItems, gap: gap, spacing: spacing }, children));
5
5
  };
@@ -1,2 +1,2 @@
1
1
  import { ToggleButtonGroupProps } from "@mui/material";
2
- export declare const useToggleButtonGroup: <TValue extends unknown>(initialValue?: TValue | null) => ToggleButtonGroupProps;
2
+ export declare const useToggleButtonGroup: <TValue extends ToggleButtonGroupProps["value"]>(initialValue?: TValue | null) => ToggleButtonGroupProps;
@@ -262,6 +262,13 @@ function exploreReducer(state, action, exploreContext) {
262
262
  ...state,
263
263
  entityPageState: updateEntityPageStateWithCommonCategoryGroupConfigKey(state, { grouping, rowPreview, rowSelection, sorting }, categoryGroupConfigKey),
264
264
  rowPreview: closeRowPreview(state.rowPreview),
265
+ ...(payload.entityListType === state.tabValue
266
+ ? {
267
+ filterCount: getFilterCount(filterState),
268
+ filterState,
269
+ paginationState: { ...resetPage(state.paginationState), rows: 0 },
270
+ }
271
+ : {}),
265
272
  };
266
273
  }
267
274
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@databiosphere/findable-ui",
3
- "version": "31.0.0",
3
+ "version": "32.0.1",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
@@ -62,11 +62,6 @@
62
62
  "jest-fetch-mock": "^3.0.3",
63
63
  "prettier": "^2.8.3",
64
64
  "prettier-plugin-organize-imports": "^3.2.2",
65
- "rehype-raw": "^7.0.0",
66
- "rehype-react": "^8.0.0",
67
- "rehype-sanitize": "^6.0.0",
68
- "remark-gfm": "^4.0.1",
69
- "remark-rehype": "^11.1.2",
70
65
  "storybook": "^8.6.4",
71
66
  "ts-jest": "^29.2.5",
72
67
  "typescript": "^5.5.4"
@@ -90,6 +85,13 @@
90
85
  "react-gtm-module": "2.0.11",
91
86
  "react-idle-timer": "^5.7.2",
92
87
  "react-window": "1.8.9",
88
+ "rehype-raw": "^7.0.0",
89
+ "rehype-react": "^7.2.0",
90
+ "rehype-sanitize": "^5.0.1",
91
+ "remark-gfm": "^3.0.1",
92
+ "remark-parse": "^10.0.2",
93
+ "remark-rehype": "^10.1.0",
94
+ "unified": "^10.1.2",
93
95
  "uuid": "8.3.2",
94
96
  "yup": "^1.6.1"
95
97
  },
@@ -63,9 +63,9 @@ export const VariableSizeList = ({
63
63
  height: initHeight = MAX_LIST_HEIGHT_PX,
64
64
  isFilterDrawer,
65
65
  itemSize = LIST_ITEM_HEIGHT,
66
+ matchedItems,
66
67
  onFilter,
67
68
  overscanCount = MAX_DISPLAYABLE_LIST_ITEMS * 2,
68
- matchedItems,
69
69
  width = "100%",
70
70
  }: VariableSizeListProps): JSX.Element => {
71
71
  const { height: windowHeight } = useWindowResize();
@@ -25,7 +25,7 @@ export const Index = ({
25
25
  }: IndexProps): JSX.Element => {
26
26
  const { onChange, viewMode, viewStatus } = useEntitiesView();
27
27
  const { dimensions } = useLayoutDimensions();
28
- const { table } = useTable();
28
+ const { table } = useTable({ entityListType });
29
29
  return (
30
30
  <IndexLayout className={className} marginTop={dimensions.header.height}>
31
31
  <Hero SideBarButton={SideBarButton} Summaries={Summaries} title={title} />
@@ -40,10 +40,12 @@ import { RowPreviewState } from "../../Table/features/RowPreview/entities";
40
40
  import { buildBaseColumnDef } from "../../TableCreator/common/utils";
41
41
  import { useTableOptions } from "../../TableCreator/options/hook";
42
42
  import { createCell } from "./coreOptions/columns/cellFactory";
43
- import { UseTable } from "./types";
43
+ import { UseTable, UseTableProps } from "./types";
44
44
 
45
- // eslint-disable-next-line sonarjs/cognitive-complexity -- TODO fix component length / complexity
46
- export const useTable = <T extends RowData>(): UseTable<T> => {
45
+ export const useTable = <T extends RowData>({
46
+ entityListType,
47
+ }: // eslint-disable-next-line sonarjs/cognitive-complexity -- TODO fix complexity
48
+ UseTableProps): UseTable<T> => {
47
49
  const { entityConfig } = useConfig();
48
50
  const exploreMode = useExploreMode();
49
51
  const { exploreDispatch, exploreState } = useExploreState();
@@ -209,6 +211,7 @@ export const useTable = <T extends RowData>(): UseTable<T> => {
209
211
 
210
212
  // Process explore response - client-side filtering only.
211
213
  useEffect(() => {
214
+ if (entityListType !== tabValue) return;
212
215
  if (!listItems || listItems.length === 0) return;
213
216
  if (clientFiltering) {
214
217
  exploreDispatch({
@@ -229,9 +232,11 @@ export const useTable = <T extends RowData>(): UseTable<T> => {
229
232
  allColumns,
230
233
  clientFiltering,
231
234
  columnFilters,
235
+ entityListType,
232
236
  exploreDispatch,
233
237
  listItems,
234
238
  rows,
239
+ tabValue,
235
240
  ]);
236
241
 
237
242
  return { table };
@@ -3,3 +3,7 @@ import { RowData, Table } from "@tanstack/react-table";
3
3
  export interface UseTable<T extends RowData> {
4
4
  table: Table<T>;
5
5
  }
6
+
7
+ export interface UseTableProps {
8
+ entityListType: string;
9
+ }
@@ -1,8 +1,8 @@
1
- import { Components } from "rehype-react";
2
1
  import { Anchor } from "./components/Anchor/anchor";
3
2
  import { Table } from "./components/Table/table";
3
+ import { MarkdownRendererComponents } from "./types";
4
4
 
5
- export const COMPONENTS: Partial<Components> = {
5
+ export const COMPONENTS: MarkdownRendererComponents = {
6
6
  a: Anchor,
7
7
  table: Table,
8
8
  };
@@ -1,9 +1,8 @@
1
1
  import { Typography } from "@mui/material";
2
- import React, { useEffect, useState } from "react";
3
- import * as production from "react/jsx-runtime";
2
+ import React, { Fragment, createElement, useEffect, useState } from "react";
4
3
  import rehypeRaw from "rehype-raw";
5
- import rehypeReact, { Components } from "rehype-react";
6
- import rehypeSanitize, { defaultSchema } from "rehype-sanitize";
4
+ import rehypeReact from "rehype-react";
5
+ import rehypeSanitize from "rehype-sanitize";
7
6
  import remarkGfm from "remark-gfm";
8
7
  import remarkParse from "remark-parse";
9
8
  import remarkRehype from "remark-rehype";
@@ -11,16 +10,29 @@ import { unified } from "unified";
11
10
  import { TYPOGRAPHY_PROPS } from "../../styles/common/mui/typography";
12
11
  import { COMPONENTS } from "./constants";
13
12
  import { StyledContainer } from "./markdownRenderer.styles";
14
- import { MarkdownRendererProps } from "./types";
13
+ import { MarkdownRendererComponents, MarkdownRendererProps } from "./types";
14
+
15
+ /**
16
+ * Markdown Rendering - Pipeline Version Constraints
17
+ *
18
+ * next-mdx-remote and @next/mdx currently embed MDX v3. MDX v3 is compiled
19
+ * for the "Unified 10" tool-chain and therefore only functions with unified
20
+ * 10.x, remark-parse 10.x, remark-rehype 10.x and, critically, remark-gfm 3.x.
21
+ *
22
+ * Because remark-gfm 3.x is required, migrating to Unified 11 is not yet possible.
23
+ *
24
+ * rehype plug-ins are chosen from versions that still target Unified 10:
25
+ * rehype-raw 7.x, rehype-sanitize 5.x and rehype-react 7.x.
26
+ */
15
27
 
16
28
  export const MarkdownRenderer = ({
17
29
  className,
18
- components = COMPONENTS,
30
+ components: componentOptions = COMPONENTS,
19
31
  value,
20
32
  }: MarkdownRendererProps): JSX.Element => {
21
33
  const [element, setElement] = useState<JSX.Element | null>(null);
22
34
  const [error, setError] = useState<string | null>(null);
23
- const [componentOptions] = useState<Partial<Components>>(components);
35
+ const [components] = useState<MarkdownRendererComponents>(componentOptions);
24
36
 
25
37
  useEffect(() => {
26
38
  let cancelled = false;
@@ -31,13 +43,13 @@ export const MarkdownRenderer = ({
31
43
  .use(remarkGfm)
32
44
  .use(remarkRehype, { allowDangerousHtml: true })
33
45
  .use(rehypeRaw)
34
- .use(rehypeSanitize, defaultSchema)
35
- .use(rehypeReact, { ...production, components: componentOptions });
46
+ .use(rehypeSanitize)
47
+ .use(rehypeReact, { Fragment, components, createElement });
36
48
 
37
49
  processor
38
50
  .process(value)
39
- .then((file) => {
40
- if (!cancelled) setElement(file?.result);
51
+ .then(({ result }) => {
52
+ if (!cancelled) setElement(result);
41
53
  })
42
54
  .catch((err) => {
43
55
  if (!cancelled) setError(err.message);
@@ -46,7 +58,7 @@ export const MarkdownRenderer = ({
46
58
  return (): void => {
47
59
  cancelled = true;
48
60
  };
49
- }, [componentOptions, value]);
61
+ }, [components, value]);
50
62
 
51
63
  if (error)
52
64
  return (
@@ -1,7 +1,10 @@
1
- import { Components } from "rehype-react";
1
+ import { ComponentType } from "react";
2
2
  import { BaseComponentProps } from "../types";
3
3
 
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- rehype-react passes arbitrary HTML attributes to components when rendering markdown elements
5
+ export type MarkdownRendererComponents = Record<string, ComponentType<any>>;
6
+
4
7
  export interface MarkdownRendererProps extends BaseComponentProps {
5
- components?: Partial<Components>;
8
+ components?: MarkdownRendererComponents;
6
9
  value: string;
7
10
  }
@@ -13,8 +13,8 @@ export interface CircularProgressProps extends MCircularProgressProps {
13
13
 
14
14
  export const CircularProgress = ({
15
15
  className,
16
- value,
17
16
  Track = CircularProgressTrack,
17
+ value,
18
18
  ...props /* Spread props to allow for CircularProgress specific props e.g. "disableShrink". */
19
19
  }: CircularProgressProps): JSX.Element => {
20
20
  return (
@@ -19,13 +19,13 @@ export interface StackProps {
19
19
  }
20
20
 
21
21
  export const Stack = ({
22
+ alignItems,
22
23
  children,
23
24
  className,
24
25
  direction = "column",
25
26
  divider = undefined,
26
- justifyContent,
27
- alignItems,
28
27
  gap = 0,
28
+ justifyContent,
29
29
  spacing = 0,
30
30
  }: StackProps): JSX.Element => {
31
31
  return (
@@ -620,6 +620,13 @@ function exploreReducer(
620
620
  categoryGroupConfigKey
621
621
  ),
622
622
  rowPreview: closeRowPreview(state.rowPreview),
623
+ ...(payload.entityListType === state.tabValue
624
+ ? {
625
+ filterCount: getFilterCount(filterState),
626
+ filterState,
627
+ paginationState: { ...resetPage(state.paginationState), rows: 0 },
628
+ }
629
+ : {}),
623
630
  };
624
631
  }
625
632
  /**
@@ -172,9 +172,9 @@ describe("useRequestManifest", () => {
172
172
  * @param testObject.formFacet - Form facet.
173
173
  */
174
174
  function testRequestManifest({
175
+ expectedMethod = METHOD.PUT,
175
176
  expectedParams = undefined,
176
177
  expectedUrl = undefined,
177
- expectedMethod = METHOD.PUT,
178
178
  fileManifestFormat,
179
179
  formFacet = FORM_FACET.COMPLETE_SET,
180
180
  }: {