@databiosphere/findable-ui 31.0.0 → 32.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +11 -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.styles.d.ts +1 -1
  18. package/lib/components/Layout/components/ContentLayout/contentLayout.styles.d.ts +1 -1
  19. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
  20. package/lib/components/Layout/components/Header/components/Content/components/Navigation/navigation.styles.d.ts +1 -1
  21. package/lib/components/Layout/components/Main/main.styles.d.ts +2 -2
  22. package/lib/components/Layout/components/Sidebar/components/SidebarPositioner/sidebarPositioner.styles.d.ts +1 -1
  23. package/lib/components/Login/components/Section/components/Consent/consent.styles.d.ts +1 -1
  24. package/lib/components/MarkdownRenderer/components/Table/table.styles.d.ts +1 -1
  25. package/lib/components/MarkdownRenderer/constants.d.ts +2 -2
  26. package/lib/components/MarkdownRenderer/markdownRenderer.d.ts +13 -1
  27. package/lib/components/MarkdownRenderer/markdownRenderer.js +21 -10
  28. package/lib/components/MarkdownRenderer/markdownRenderer.styles.d.ts +1 -1
  29. package/lib/components/MarkdownRenderer/types.d.ts +3 -2
  30. package/lib/components/Stepper/components/Step/components/StepIcon/components/CompletedIcon/completedIcon.styles.d.ts +1 -1
  31. package/lib/components/Stepper/components/Step/components/StepLabel/components/Label/label.styles.d.ts +1 -1
  32. package/lib/components/Support/components/ViewSupport/viewSupport.styles.d.ts +1 -1
  33. package/lib/components/common/AnchorLink/anchorLink.styles.d.ts +7 -7
  34. package/lib/components/common/Card/components/CardSecondaryTitle/cardSecondaryTitle.styles.d.ts +1 -1
  35. package/lib/components/common/Code/code.styles.d.ts +1 -1
  36. package/lib/components/common/Dot/dot.styles.d.ts +1 -1
  37. package/lib/components/common/EllipsisContent/ellipsisContent.styles.d.ts +1 -1
  38. package/lib/components/common/Progress/components/CircularProgress/circularProgress.d.ts +1 -1
  39. package/lib/components/common/Progress/components/CircularProgress/circularProgress.js +1 -1
  40. package/lib/components/common/Stack/stack.d.ts +1 -1
  41. package/lib/components/common/Stack/stack.js +1 -1
  42. package/lib/components/common/ToggleButtonGroup/hooks/UseToggleButtonGroup/hook.d.ts +1 -1
  43. package/package.json +8 -6
  44. package/src/components/Filter/components/VariableSizeList/VariableSizeList.tsx +1 -1
  45. package/src/components/MarkdownRenderer/constants.ts +2 -2
  46. package/src/components/MarkdownRenderer/markdownRenderer.tsx +24 -12
  47. package/src/components/MarkdownRenderer/types.ts +5 -2
  48. package/src/components/common/Progress/components/CircularProgress/circularProgress.tsx +1 -1
  49. package/src/components/common/Stack/stack.tsx +2 -2
  50. package/tests/useRequestManifest.test.ts +1 -1
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "31.0.0"
2
+ ".": "32.0.0"
3
3
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## [32.0.0](https://github.com/DataBiosphere/findable-ui/compare/v31.0.0...v32.0.0) (2025-05-19)
4
+
5
+
6
+ ### ⚠ BREAKING CHANGES
7
+
8
+ * 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)
9
+
10
+ ### Bug Fixes
11
+
12
+ * 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))
13
+
3
14
  ## [31.0.0](https://github.com/DataBiosphere/findable-ui/compare/v30.0.0...v31.0.0) (2025-05-15)
4
15
 
5
16
 
@@ -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<{
@@ -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 {};
@@ -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;
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.0",
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();
@@ -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 (
@@ -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
  }: {