@hitachivantara/uikit-react-core 5.36.5 → 5.36.7
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.
- package/dist/cjs/components/AppSwitcher/Action/Action.cjs +4 -2
- package/dist/cjs/components/AppSwitcher/Action/Action.cjs.map +1 -1
- package/dist/cjs/components/AppSwitcher/Action/Action.styles.cjs +6 -8
- package/dist/cjs/components/AppSwitcher/Action/Action.styles.cjs.map +1 -1
- package/dist/cjs/components/AppSwitcher/AppSwitcher.cjs +4 -2
- package/dist/cjs/components/AppSwitcher/AppSwitcher.cjs.map +1 -1
- package/dist/cjs/components/AppSwitcher/AppSwitcher.styles.cjs +4 -3
- package/dist/cjs/components/AppSwitcher/AppSwitcher.styles.cjs.map +1 -1
- package/dist/cjs/components/BreadCrumb/Page/Page.cjs +1 -1
- package/dist/cjs/components/Button/Button.cjs +0 -3
- package/dist/cjs/components/Button/Button.cjs.map +1 -1
- package/dist/cjs/components/Calendar/utils.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Dialog.cjs +2 -5
- package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/Dropdown.cjs +0 -3
- package/dist/cjs/components/Dropdown/Dropdown.cjs.map +1 -1
- package/dist/cjs/components/FileUploader/File/File.cjs +3 -3
- package/dist/cjs/components/FileUploader/File/File.cjs.map +1 -1
- package/dist/cjs/components/Header/Navigation/MenuItem/MenuItem.styles.cjs.map +1 -1
- package/dist/cjs/components/OverflowTooltip/OverflowTooltip.cjs +9 -2
- package/dist/cjs/components/OverflowTooltip/OverflowTooltip.cjs.map +1 -1
- package/dist/cjs/components/OverflowTooltip/OverflowTooltip.styles.cjs +2 -2
- package/dist/cjs/components/OverflowTooltip/OverflowTooltip.styles.cjs.map +1 -1
- package/dist/cjs/components/Snackbar/SnackbarProvider/SnackbarProvider.cjs +9 -14
- package/dist/cjs/components/Snackbar/SnackbarProvider/SnackbarProvider.cjs.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.cjs +2 -1
- package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
- package/dist/cjs/components/TreeView/internals/DescendantProvider.cjs +0 -3
- package/dist/cjs/components/TreeView/internals/DescendantProvider.cjs.map +1 -1
- package/dist/cjs/components/TreeView/internals/TreeViewProvider.cjs +0 -3
- package/dist/cjs/components/TreeView/internals/TreeViewProvider.cjs.map +1 -1
- package/dist/cjs/components/Typography/utils.cjs +3 -13
- package/dist/cjs/components/Typography/utils.cjs.map +1 -1
- package/dist/cjs/components/VerticalNavigation/TreeView/descendants.cjs +0 -3
- package/dist/cjs/components/VerticalNavigation/TreeView/descendants.cjs.map +1 -1
- package/dist/cjs/hooks/useControlled.cjs +0 -3
- package/dist/cjs/hooks/useControlled.cjs.map +1 -1
- package/dist/cjs/providers/Provider.cjs +3 -2
- package/dist/cjs/providers/Provider.cjs.map +1 -1
- package/dist/cjs/utils/classes.cjs.map +1 -1
- package/dist/cjs/utils/document.cjs +11 -0
- package/dist/cjs/utils/document.cjs.map +1 -0
- package/dist/cjs/utils/theme.cjs +5 -7
- package/dist/cjs/utils/theme.cjs.map +1 -1
- package/dist/esm/components/AppSwitcher/Action/Action.js +4 -2
- package/dist/esm/components/AppSwitcher/Action/Action.js.map +1 -1
- package/dist/esm/components/AppSwitcher/Action/Action.styles.js +6 -8
- package/dist/esm/components/AppSwitcher/Action/Action.styles.js.map +1 -1
- package/dist/esm/components/AppSwitcher/AppSwitcher.js +4 -2
- package/dist/esm/components/AppSwitcher/AppSwitcher.js.map +1 -1
- package/dist/esm/components/AppSwitcher/AppSwitcher.styles.js +4 -3
- package/dist/esm/components/AppSwitcher/AppSwitcher.styles.js.map +1 -1
- package/dist/esm/components/BreadCrumb/Page/Page.js +1 -1
- package/dist/esm/components/Button/Button.js +0 -3
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/Calendar/utils.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.js +2 -5
- package/dist/esm/components/Dialog/Dialog.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js +0 -3
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/FileUploader/File/File.js +2 -2
- package/dist/esm/components/FileUploader/File/File.js.map +1 -1
- package/dist/esm/components/Header/Navigation/MenuItem/MenuItem.styles.js.map +1 -1
- package/dist/esm/components/OverflowTooltip/OverflowTooltip.js +9 -2
- package/dist/esm/components/OverflowTooltip/OverflowTooltip.js.map +1 -1
- package/dist/esm/components/OverflowTooltip/OverflowTooltip.styles.js +2 -2
- package/dist/esm/components/OverflowTooltip/OverflowTooltip.styles.js.map +1 -1
- package/dist/esm/components/Snackbar/SnackbarProvider/SnackbarProvider.js +9 -14
- package/dist/esm/components/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js +2 -1
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/TreeView/internals/DescendantProvider.js +0 -3
- package/dist/esm/components/TreeView/internals/DescendantProvider.js.map +1 -1
- package/dist/esm/components/TreeView/internals/TreeViewProvider.js +0 -3
- package/dist/esm/components/TreeView/internals/TreeViewProvider.js.map +1 -1
- package/dist/esm/components/Typography/utils.js +3 -13
- package/dist/esm/components/Typography/utils.js.map +1 -1
- package/dist/esm/components/VerticalNavigation/TreeView/descendants.js +0 -3
- package/dist/esm/components/VerticalNavigation/TreeView/descendants.js.map +1 -1
- package/dist/esm/hooks/useControlled.js +0 -3
- package/dist/esm/hooks/useControlled.js.map +1 -1
- package/dist/esm/providers/Provider.js +4 -3
- package/dist/esm/providers/Provider.js.map +1 -1
- package/dist/esm/utils/classes.js.map +1 -1
- package/dist/esm/utils/document.js +11 -0
- package/dist/esm/utils/document.js.map +1 -0
- package/dist/esm/utils/theme.js +5 -7
- package/dist/esm/utils/theme.js.map +1 -1
- package/dist/types/index.d.ts +13 -9
- package/package.json +4 -4
- package/dist/cjs/components/AppSwitcher/TitleWithTooltip.cjs +0 -22
- package/dist/cjs/components/AppSwitcher/TitleWithTooltip.cjs.map +0 -1
- package/dist/esm/components/AppSwitcher/TitleWithTooltip.js +0 -22
- package/dist/esm/components/AppSwitcher/TitleWithTooltip.js.map +0 -1
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
4
4
|
const uikitReactIcons = require("@hitachivantara/uikit-react-icons");
|
|
5
|
-
const css = require("@emotion/css");
|
|
6
5
|
const setId = require("../../../utils/setId.cjs");
|
|
7
6
|
const utils = require("../utils.cjs");
|
|
8
7
|
const File_styles = require("./File.styles.cjs");
|
|
@@ -46,7 +45,8 @@ const HvFile = (props) => {
|
|
|
46
45
|
removeFileButtonLabel
|
|
47
46
|
} = useDefaultProps.useDefaultProps("HvFile", props);
|
|
48
47
|
const {
|
|
49
|
-
classes
|
|
48
|
+
classes,
|
|
49
|
+
cx
|
|
50
50
|
} = File_styles.useClasses(classesProp);
|
|
51
51
|
const hasError = data.status === "fail";
|
|
52
52
|
const inProgress = data.status === "progress";
|
|
@@ -56,7 +56,7 @@ const HvFile = (props) => {
|
|
|
56
56
|
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: classes.root, children: [
|
|
57
57
|
!hasError && inProgress && /* @__PURE__ */ jsxRuntime.jsx(ProgressBar.HvProgressBar, { classes: {
|
|
58
58
|
root: classes.progressbar,
|
|
59
|
-
progressBarContainer:
|
|
59
|
+
progressBarContainer: cx(classes.progressbarContainer, classes.progressbarBack)
|
|
60
60
|
}, value: currentProgress, hideLabel: true }),
|
|
61
61
|
statusIcon,
|
|
62
62
|
/* @__PURE__ */ jsxRuntime.jsx(Typography.HvTypography, { className: classes.nameText, variant: "label", children: data.name }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.cjs","sources":["../../../../../src/components/FileUploader/File/File.tsx"],"sourcesContent":["import { Close, Fail, Success } from \"@hitachivantara/uikit-react-icons\";\n\nimport {
|
|
1
|
+
{"version":3,"file":"File.cjs","sources":["../../../../../src/components/FileUploader/File/File.tsx"],"sourcesContent":["import { Close, Fail, Success } from \"@hitachivantara/uikit-react-icons\";\n\nimport { setId } from \"@core/utils/setId\";\nimport { HvButton } from \"@core/components/Button\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { HvProgressBar } from \"@core/components/ProgressBar\";\nimport { useDefaultProps } from \"@core/hooks\";\n\nimport { convertUnits } from \"../utils\";\nimport { staticClasses, useClasses } from \"./File.styles\";\n\nexport { staticClasses as fileClasses };\n\nexport type HvFileClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFileData extends Omit<File, \"name\" | \"size\"> {\n /**\n * The file id.\n */\n id?: string;\n /**\n * The file name.\n */\n name?: string;\n /**\n * The upload status.\n */\n status?: \"progress\" | \"success\" | \"fail\";\n /**\n * The file size in bytes.\n */\n size?: number;\n /**\n * Upload progress in bytes.\n */\n progress?: number;\n /**\n * Optional node representing a preview of the uploaded file.\n */\n preview?: React.ReactNode;\n /**\n * Error message when the upload failed.\n */\n errorMessage?: string;\n}\n\nexport type HvFilesAddedEvent = (files: HvFileData[]) => void;\n\nexport type HvFileRemovedEvent = (file: HvFileData) => void;\n\nexport type HvFileProps = {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * File information to be displayed.\n */\n data: HvFileData;\n /**\n * Callback fired when file is removed from list.\n */\n onFileRemoved?: HvFileRemovedEvent;\n /**\n * Value of aria-label to apply to remove file button in file list.\n * */\n removeFileButtonLabel?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvFileClasses;\n};\n\nconst getStatusIcon = (\n classes?: HvFileClasses,\n status?: HvFileData[\"status\"]\n) => {\n switch (status) {\n case \"success\":\n return <Success className={classes?.icon} color=\"positive\" />;\n case \"fail\":\n return <Fail className={classes?.icon} color=\"negative\" />;\n default:\n return <div className={classes?.icon} />;\n }\n};\n\nconst getProgressText = (data: HvFileData, classes?: HvFileClasses) => {\n const hasFailed = data.status === \"fail\";\n const inProgress = data.status === \"progress\";\n\n return (\n <>\n {data.progress || data.size || data.errorMessage ? `\\xa0|\\xa0` : null}\n\n {inProgress && data.progress != null && (\n <HvTypography variant=\"label\">\n {`${convertUnits(data.progress)}\\xa0/\\xa0`}\n </HvTypography>\n )}\n\n {!hasFailed && data.size && (\n <HvTypography>{`${convertUnits(data.size)}`}</HvTypography>\n )}\n\n {hasFailed && data.errorMessage && (\n <HvTypography className={classes?.fail}>\n {data.errorMessage}\n </HvTypography>\n )}\n </>\n );\n};\n\nconst getProgressBarWith = ({ size, progress }: HvFileData) => {\n const width =\n progress != null && size != null ? Math.round((progress * 100) / size) : 0;\n\n return width;\n};\n\nexport const HvFile = (props: HvFileProps) => {\n const {\n id,\n classes: classesProp,\n data,\n onFileRemoved,\n removeFileButtonLabel,\n } = useDefaultProps(\"HvFile\", props);\n const { classes, cx } = useClasses(classesProp);\n\n const hasError = data.status === \"fail\";\n\n const inProgress = data.status === \"progress\";\n\n const progressText = getProgressText(data, classes);\n\n const statusIcon = getStatusIcon(classes, data.status);\n\n const currentProgress = getProgressBarWith(data);\n\n return (\n <li className={classes.root}>\n {!hasError && inProgress && (\n <HvProgressBar\n classes={{\n root: classes.progressbar,\n progressBarContainer: cx(\n classes.progressbarContainer,\n classes.progressbarBack\n ),\n }}\n value={currentProgress}\n hideLabel\n />\n )}\n\n {statusIcon}\n\n <HvTypography className={classes.nameText} variant=\"label\">\n {data.name}\n </HvTypography>\n\n <span className={classes.progressTextContainer}>{progressText}</span>\n\n {data.preview && (\n <div className={classes.previewContainer}>{data.preview}</div>\n )}\n\n <HvButton\n id={setId(id, \"remove-button\")}\n aria-label={removeFileButtonLabel}\n className={classes.removeButton}\n onClick={() => onFileRemoved?.(data)}\n icon\n >\n <Close iconSize=\"XS\" />\n </HvButton>\n </li>\n );\n};\n"],"names":["getStatusIcon","classes","status","Success","icon","Fail","jsx","getProgressText","data","hasFailed","inProgress","progress","size","errorMessage","HvTypography","convertUnits","fail","getProgressBarWith","width","Math","round","HvFile","props","id","classesProp","onFileRemoved","removeFileButtonLabel","useDefaultProps","cx","useClasses","hasError","progressText","statusIcon","currentProgress","jsxs","root","HvProgressBar","progressbar","progressBarContainer","progressbarContainer","progressbarBack","nameText","name","progressTextContainer","preview","previewContainer","HvButton","setId","removeButton","Close"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.styles.cjs","sources":["../../../../../../src/components/Header/Navigation/MenuItem/MenuItem.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { CSSInterpolation } from \"@emotion/
|
|
1
|
+
{"version":3,"file":"MenuItem.styles.cjs","sources":["../../../../../../src/components/Header/Navigation/MenuItem/MenuItem.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport type { CSSInterpolation } from \"@emotion/serialize\";\n\nimport { outlineStyles } from \"@core/utils/focusUtils\";\nimport { createClasses } from \"@core/utils/classes\";\n\nconst item: CSSInterpolation = {\n border: \"none\",\n cursor: \"pointer\",\n padding: `${theme.space.xs} ${theme.space.sm}`,\n height: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n \"&:active\": {\n outline: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n },\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n \"& span\": {\n display: \"inline-flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n },\n \"& span::after\": {\n content: \"attr(data-text)\",\n height: 0,\n visibility: \"hidden\",\n overflow: \"hidden\",\n userSelect: \"none\",\n pointerEvents: \"none\",\n fontWeight: theme.fontWeights.semibold,\n\n \"@media speech\": {\n display: \"none\",\n },\n },\n};\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvHeader-MenuItem\",\n {\n root: {\n display: \"inline\",\n \"&:hover\": {\n backgroundColor: theme.colors.containerBackgroundHover,\n },\n \"&:focus-within\": {\n backgroundColor: theme.colors.containerBackgroundHover,\n },\n },\n menu: {\n marginTop: 0,\n paddingBottom: \"4px\",\n paddingTop: \"4px\",\n height: \"100%\",\n borderTop: \"none\",\n borderBottom: `4px solid ${theme.colors.atmo2}`,\n },\n menubar: {\n marginTop: \"0px\",\n paddingBottom: \"4px\",\n paddingTop: \"4px\",\n height: \"100%\",\n borderTop: `0px solid ${theme.colors.atmo1}`,\n borderBottom: `${\"4px\"} solid ${theme.colors.atmo1}`,\n },\n selected: {\n \"&$menu\": {\n marginTop: 0,\n paddingBottom: 0,\n borderTop: \"none\",\n borderBottom: `4px solid ${theme.colors.secondary}`,\n paddingTop: \"4px\",\n height: \"100%\",\n \"& > * > span\": {\n color: theme.colors.secondary,\n },\n },\n \"&$menubar\": {\n marginTop: 0,\n paddingBottom: 0,\n borderTop: \"none\",\n borderBottom: `4px solid ${theme.colors.secondary}`,\n paddingTop: \"4px\",\n height: \"100%\",\n },\n },\n link: {\n textDecoration: \"none\",\n ...item,\n },\n button: {\n color: \"inherit\",\n ...item,\n },\n }\n);\n"],"names":["item","border","cursor","padding","theme","space","xs","sm","height","display","alignItems","outline","outlineStyles","flexDirection","justifyContent","content","visibility","overflow","userSelect","pointerEvents","fontWeight","fontWeights","semibold","staticClasses","useClasses","createClasses","root","backgroundColor","colors","containerBackgroundHover","menu","marginTop","paddingBottom","paddingTop","borderTop","borderBottom","atmo2","menubar","atmo1","selected","secondary","color","link","textDecoration","button"],"mappings":";;;;;AAOA,MAAMA,OAAyB;AAAA,EAC7BC,QAAQ;AAAA,EACRC,QAAQ;AAAA,EACRC,SAAU,GAAEC,YAAMC,MAAAA,MAAMC,EAAG,IAAGF,YAAAA,MAAMC,MAAME,EAAG;AAAA,EAC7CC,QAAQ;AAAA,EACRC,SAAS;AAAA,EACTC,YAAY;AAAA,EACZ,YAAY;AAAA,IACVC,SAAS;AAAA,EACX;AAAA,EACA,WAAW;AAAA,IACTA,SAAS;AAAA,EACX;AAAA,EACA,mBAAmB;AAAA,IACjB,GAAGC,WAAAA;AAAAA,EACL;AAAA,EACA,UAAU;AAAA,IACRH,SAAS;AAAA,IACTI,eAAe;AAAA,IACfH,YAAY;AAAA,IACZI,gBAAgB;AAAA,EAClB;AAAA,EACA,iBAAiB;AAAA,IACfC,SAAS;AAAA,IACTP,QAAQ;AAAA,IACRQ,YAAY;AAAA,IACZC,UAAU;AAAA,IACVC,YAAY;AAAA,IACZC,eAAe;AAAA,IACfC,YAAYhB,YAAAA,MAAMiB,YAAYC;AAAAA,IAE9B,iBAAiB;AAAA,MACfb,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEa,MAAA;AAAA,EAAEc;AAAAA,EAAeC;AAAW,IAAIC,QAAAA,cAC3C,qBACA;AAAA,EACEC,MAAM;AAAA,IACJjB,SAAS;AAAA,IACT,WAAW;AAAA,MACTkB,iBAAiBvB,YAAAA,MAAMwB,OAAOC;AAAAA,IAChC;AAAA,IACA,kBAAkB;AAAA,MAChBF,iBAAiBvB,YAAAA,MAAMwB,OAAOC;AAAAA,IAChC;AAAA,EACF;AAAA,EACAC,MAAM;AAAA,IACJC,WAAW;AAAA,IACXC,eAAe;AAAA,IACfC,YAAY;AAAA,IACZzB,QAAQ;AAAA,IACR0B,WAAW;AAAA,IACXC,cAAe,aAAY/B,YAAMwB,MAAAA,OAAOQ,KAAM;AAAA,EAChD;AAAA,EACAC,SAAS;AAAA,IACPN,WAAW;AAAA,IACXC,eAAe;AAAA,IACfC,YAAY;AAAA,IACZzB,QAAQ;AAAA,IACR0B,WAAY,aAAY9B,YAAMwB,MAAAA,OAAOU,KAAM;AAAA,IAC3CH,cAAe,GAAE,KAAM,UAAS/B,YAAAA,MAAMwB,OAAOU,KAAM;AAAA,EACrD;AAAA,EACAC,UAAU;AAAA,IACR,UAAU;AAAA,MACRR,WAAW;AAAA,MACXC,eAAe;AAAA,MACfE,WAAW;AAAA,MACXC,cAAe,aAAY/B,YAAMwB,MAAAA,OAAOY,SAAU;AAAA,MAClDP,YAAY;AAAA,MACZzB,QAAQ;AAAA,MACR,gBAAgB;AAAA,QACdiC,OAAOrC,YAAAA,MAAMwB,OAAOY;AAAAA,MACtB;AAAA,IACF;AAAA,IACA,aAAa;AAAA,MACXT,WAAW;AAAA,MACXC,eAAe;AAAA,MACfE,WAAW;AAAA,MACXC,cAAe,aAAY/B,YAAMwB,MAAAA,OAAOY,SAAU;AAAA,MAClDP,YAAY;AAAA,MACZzB,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACAkC,MAAM;AAAA,IACJC,gBAAgB;AAAA,IAChB,GAAG3C;AAAAA,EACL;AAAA,EACA4C,QAAQ;AAAA,IACNH,OAAO;AAAA,IACP,GAAGzC;AAAAA,EACL;AACF,CACF;;;"}
|
|
@@ -24,6 +24,7 @@ const HvOverflowTooltip = (props) => {
|
|
|
24
24
|
cx
|
|
25
25
|
} = OverflowTooltip_styles.useClasses(classesProp);
|
|
26
26
|
const {
|
|
27
|
+
height = 0,
|
|
27
28
|
width = 0,
|
|
28
29
|
ref
|
|
29
30
|
} = reactResizeDetector.useResizeDetector({
|
|
@@ -33,9 +34,15 @@ const HvOverflowTooltip = (props) => {
|
|
|
33
34
|
},
|
|
34
35
|
handleHeight: false
|
|
35
36
|
});
|
|
36
|
-
const scrollWidth = ref.current?.scrollWidth || 0;
|
|
37
|
-
const isOverflowing = scrollWidth - width >= 1;
|
|
38
37
|
const isParag = React.useMemo(() => paragraphOverflow && isParagraph(data?.toString()), [data, paragraphOverflow]);
|
|
38
|
+
const isOverflowing = React.useMemo(() => {
|
|
39
|
+
if (isParag) {
|
|
40
|
+
const scrollHeight = ref.current?.scrollHeight || 0;
|
|
41
|
+
return scrollHeight - height >= 1;
|
|
42
|
+
}
|
|
43
|
+
const scrollWidth = ref.current?.scrollWidth || 0;
|
|
44
|
+
return scrollWidth - width >= 1;
|
|
45
|
+
}, [height, isParag, ref, width]);
|
|
39
46
|
const content = React.useMemo(() => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cx({
|
|
40
47
|
[classes.tooltipAnchor]: !isParag,
|
|
41
48
|
[classes.tooltipAnchorParagraph]: isParag
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverflowTooltip.cjs","sources":["../../../../src/components/OverflowTooltip/OverflowTooltip.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvTooltip, HvTooltipProps } from \"@core/components/Tooltip\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { staticClasses, useClasses } from \"./OverflowTooltip.styles\";\n\nexport { staticClasses as overflowTooltipClasses };\nexport type HvOverflowTooltipClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvOverflowTooltipProps extends HvBaseProps {\n /** The node that will be rendered inside the tooltip. */\n data: React.ReactNode;\n /** If true, the tooltip is shown. */\n open?: boolean;\n /** If `true
|
|
1
|
+
{"version":3,"file":"OverflowTooltip.cjs","sources":["../../../../src/components/OverflowTooltip/OverflowTooltip.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { useResizeDetector } from \"react-resize-detector\";\n\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvTooltip, HvTooltipProps } from \"@core/components/Tooltip\";\nimport { HvTypography } from \"@core/components/Typography\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { staticClasses, useClasses } from \"./OverflowTooltip.styles\";\n\nexport { staticClasses as overflowTooltipClasses };\nexport type HvOverflowTooltipClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvOverflowTooltipProps extends HvBaseProps {\n /** The node that will be rendered inside the tooltip. */\n data: React.ReactNode;\n /** If true, the tooltip is shown. */\n open?: boolean;\n /** If `true`, the overflow tooltip will always use the paragraph overflow style. */\n paragraphOverflow?: boolean;\n /** Tooltip placement. */\n placement?:\n | \"bottom-end\"\n | \"bottom-start\"\n | \"bottom\"\n | \"left-end\"\n | \"left-start\"\n | \"left\"\n | \"right-end\"\n | \"right-start\"\n | \"right\"\n | \"top-end\"\n | \"top-start\"\n | \"top\";\n /** Extra properties to add to the tooltip. */\n tooltipsProps?: Partial<HvTooltipProps>;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvOverflowTooltipClasses;\n}\n\nconst isParagraph = (children = \"\") => /\\s/.test(children);\n\n/**\n * This component generates a tooltip whenever the text is overflowed.\n */\nexport const HvOverflowTooltip = (props: HvOverflowTooltipProps) => {\n const {\n id,\n classes: classesProp,\n className,\n data,\n open,\n paragraphOverflow,\n placement = \"top-start\",\n tooltipsProps,\n } = useDefaultProps(\"HvOverflowTooltip\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const {\n height = 0,\n width = 0,\n ref,\n } = useResizeDetector({\n refreshMode: \"debounce\",\n refreshOptions: {\n trailing: true,\n },\n handleHeight: false,\n });\n\n const isParag = useMemo(\n () => paragraphOverflow && isParagraph(data?.toString()),\n [data, paragraphOverflow]\n );\n\n // The difference should be higher than a pixel to be considered as overflowing\n const isOverflowing = useMemo(() => {\n if (isParag) {\n const scrollHeight = ref.current?.scrollHeight || 0;\n\n return scrollHeight - height >= 1;\n }\n\n const scrollWidth = ref.current?.scrollWidth || 0;\n\n return scrollWidth - width >= 1;\n }, [height, isParag, ref, width]);\n\n const content = useMemo(\n () => (\n <div\n ref={ref}\n className={cx(\n {\n [classes.tooltipAnchor]: !isParag,\n [classes.tooltipAnchorParagraph]: isParag,\n },\n className\n )}\n >\n {data}\n </div>\n ),\n [\n className,\n classes.tooltipAnchor,\n classes.tooltipAnchorParagraph,\n cx,\n data,\n isParag,\n ref,\n ]\n );\n\n return (\n <HvTooltip\n id={id}\n disableHoverListener={!isOverflowing}\n open={open}\n placement={placement}\n title={\n <HvTypography className={classes.tooltipData} variant=\"body\">\n {data}\n </HvTypography>\n }\n // unset since `content` *is* the label\n aria-label={null as any}\n aria-labelledby={null as any}\n {...tooltipsProps}\n >\n {content}\n </HvTooltip>\n );\n};\n"],"names":["isParagraph","children","test","HvOverflowTooltip","props","id","classes","classesProp","className","data","open","paragraphOverflow","placement","tooltipsProps","useDefaultProps","cx","useClasses","height","width","ref","useResizeDetector","refreshMode","refreshOptions","trailing","handleHeight","isParag","useMemo","toString","isOverflowing","scrollHeight","current","scrollWidth","content","tooltipAnchor","tooltipAnchorParagraph","jsx","HvTooltip","HvTypography","tooltipData"],"mappings":";;;;;;;;;AAyCA,MAAMA,cAAcA,CAACC,WAAW,OAAO,KAAKC,KAAKD,QAAQ;AAK5CE,MAAAA,oBAAoBA,CAACC,UAAkC;AAC5D,QAAA;AAAA,IACJC;AAAAA,IACAC,SAASC;AAAAA,IACTC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC,YAAY;AAAA,IACZC;AAAAA,EAAAA,IACEC,gBAAgB,gBAAA,qBAAqBV,KAAK;AAExC,QAAA;AAAA,IAAEE;AAAAA,IAASS;AAAAA,EAAAA,IAAOC,uBAAAA,WAAWT,WAAW;AAExC,QAAA;AAAA,IACJU,SAAS;AAAA,IACTC,QAAQ;AAAA,IACRC;AAAAA,MACEC,sCAAkB;AAAA,IACpBC,aAAa;AAAA,IACbC,gBAAgB;AAAA,MACdC,UAAU;AAAA,IACZ;AAAA,IACAC,cAAc;AAAA,EAAA,CACf;AAED,QAAMC,UAAUC,MAAAA,QACd,MAAMf,qBAAqBX,YAAYS,MAAMkB,SAAS,CAAC,GACvD,CAAClB,MAAME,iBAAiB,CAC1B;AAGMiB,QAAAA,gBAAgBF,MAAAA,QAAQ,MAAM;AAClC,QAAID,SAAS;AACLI,YAAAA,eAAeV,IAAIW,SAASD,gBAAgB;AAElD,aAAOA,eAAeZ,UAAU;AAAA,IAClC;AAEMc,UAAAA,cAAcZ,IAAIW,SAASC,eAAe;AAEhD,WAAOA,cAAcb,SAAS;AAAA,KAC7B,CAACD,QAAQQ,SAASN,KAAKD,KAAK,CAAC;AAEhC,QAAMc,UAAUN,MACd,QAAA,qCACG,OACC,EAAA,KACA,WAAWX,GACT;AAAA,IACE,CAACT,QAAQ2B,aAAa,GAAG,CAACR;AAAAA,IAC1B,CAACnB,QAAQ4B,sBAAsB,GAAGT;AAAAA,EAAAA,GAEpCjB,SACF,GAECC,UAAAA,KAAAA,CACH,GAEF,CACED,WACAF,QAAQ2B,eACR3B,QAAQ4B,wBACRnB,IACAN,MACAgB,SACAN,GAAG,CAEP;AAGE,SAAAgB,2BAAA;AAAA,IAACC,QAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA,sBAAsB,CAACR;AAAAA,MACvB;AAAA,MACA;AAAA,MACA,sCACGS,yBAAa,EAAA,WAAW/B,QAAQgC,aAAa,SAAQ,QACnD7B,UACH,KAAA,CAAA;AAAA,MAGF,cAAY;AAAA,MACZ,mBAAiB;AAAA,MACjB,GAAII;AAAAA,MAEHmB,UAAAA;AAAAA,IAAAA;AAAAA,EAAAA;AAGP;;;"}
|
|
@@ -14,8 +14,8 @@ const {
|
|
|
14
14
|
tooltipAnchorParagraph: {
|
|
15
15
|
overflow: "hidden",
|
|
16
16
|
display: "-webkit-box",
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
WebkitLineClamp: 3,
|
|
18
|
+
WebkitBoxOrient: "vertical"
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
21
|
exports.staticClasses = staticClasses;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverflowTooltip.styles.cjs","sources":["../../../../src/components/OverflowTooltip/OverflowTooltip.styles.tsx"],"sourcesContent":["import { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvOverflowTooltip\",\n {\n tooltipData: {},\n tooltipAnchor: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n tooltipAnchorParagraph: {\n overflow: \"hidden\",\n display: \"-webkit-box\",\n
|
|
1
|
+
{"version":3,"file":"OverflowTooltip.styles.cjs","sources":["../../../../src/components/OverflowTooltip/OverflowTooltip.styles.tsx"],"sourcesContent":["import { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvOverflowTooltip\",\n {\n tooltipData: {},\n tooltipAnchor: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n tooltipAnchorParagraph: {\n overflow: \"hidden\",\n display: \"-webkit-box\",\n WebkitLineClamp: 3,\n WebkitBoxOrient: \"vertical\",\n },\n }\n);\n"],"names":["staticClasses","useClasses","createClasses","tooltipData","tooltipAnchor","whiteSpace","overflow","textOverflow","tooltipAnchorParagraph","display","WebkitLineClamp","WebkitBoxOrient"],"mappings":";;;AAEa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,QAAAA,cAC3C,qBACA;AAAA,EACEC,aAAa,CAAC;AAAA,EACdC,eAAe;AAAA,IACbC,YAAY;AAAA,IACZC,UAAU;AAAA,IACVC,cAAc;AAAA,EAChB;AAAA,EACAC,wBAAwB;AAAA,IACtBF,UAAU;AAAA,IACVG,SAAS;AAAA,IACTC,iBAAiB;AAAA,IACjBC,iBAAiB;AAAA,EACnB;AACF,CACF;;;"}
|
|
@@ -3,13 +3,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
4
4
|
const React = require("react");
|
|
5
5
|
const notistack = require("notistack");
|
|
6
|
-
const clsx = require("clsx");
|
|
7
|
-
const css = require("@emotion/css");
|
|
8
6
|
const SnackbarProvider_styles = require("./SnackbarProvider.styles.cjs");
|
|
9
7
|
const SnackbarContent = require("../SnackbarContent/SnackbarContent.cjs");
|
|
10
|
-
function _EMOTION_STRINGIFIED_CSS_ERROR__() {
|
|
11
|
-
return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
|
|
12
|
-
}
|
|
13
8
|
const HvNotistackSnackMessage = React.forwardRef((props, ref) => {
|
|
14
9
|
const {
|
|
15
10
|
id,
|
|
@@ -34,7 +29,7 @@ const useHvSnackbar = () => {
|
|
|
34
29
|
} = options;
|
|
35
30
|
return enqueueNotistackSnackbar(/* @__PURE__ */ jsxRuntime.jsx(HvNotistackSnackMessage, { id, message, variant, snackbarContentProps }), {
|
|
36
31
|
...otherOptions,
|
|
37
|
-
className
|
|
32
|
+
className
|
|
38
33
|
});
|
|
39
34
|
}, [enqueueNotistackSnackbar]);
|
|
40
35
|
return React.useMemo(() => ({
|
|
@@ -57,17 +52,17 @@ const HvSnackbarProvider = ({
|
|
|
57
52
|
}) => {
|
|
58
53
|
const {
|
|
59
54
|
classes,
|
|
55
|
+
css,
|
|
60
56
|
cx
|
|
61
57
|
} = SnackbarProvider_styles.useClasses(classesProp);
|
|
62
58
|
const notistackClasses = {
|
|
63
|
-
containerRoot:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
59
|
+
containerRoot: css({
|
|
60
|
+
pointerEvents: "all",
|
|
61
|
+
"& > div > div": {
|
|
62
|
+
// Overrides notistack extra padding
|
|
63
|
+
padding: "0 !important",
|
|
64
|
+
transition: "all 0s ease 0s !important"
|
|
65
|
+
}
|
|
71
66
|
}),
|
|
72
67
|
...notistackClassesOverride
|
|
73
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SnackbarProvider.cjs","sources":["../../../../../src/components/Snackbar/SnackbarProvider/SnackbarProvider.tsx"],"sourcesContent":["import { forwardRef, ReactNode, useCallback, useMemo } from \"react\";\n\nimport {\n CombinedClassKey,\n OptionsObject,\n SnackbarContent,\n SnackbarProvider,\n SnackbarProviderProps,\n useSnackbar,\n} from \"notistack\";\n\nimport {
|
|
1
|
+
{"version":3,"file":"SnackbarProvider.cjs","sources":["../../../../../src/components/Snackbar/SnackbarProvider/SnackbarProvider.tsx"],"sourcesContent":["import { forwardRef, ReactNode, useCallback, useMemo } from \"react\";\n\nimport {\n CombinedClassKey,\n OptionsObject,\n SnackbarContent,\n SnackbarProvider,\n SnackbarProviderProps,\n useSnackbar,\n} from \"notistack\";\n\nimport { SnackbarOrigin } from \"@mui/material/Snackbar\";\nimport { ClassNameMap } from \"@mui/material\";\n\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { HvSnackbarContent, HvSnackbarContentProps } from \"../SnackbarContent\";\nimport { staticClasses, useClasses } from \"./SnackbarProvider.styles\";\nimport { HvSnackbarVariant } from \"../types\";\n\nexport { staticClasses as snackbarProviderClasses };\n\nexport type HvSnackbarProviderClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSnackbarProviderProps {\n /** Your component tree. */\n children: React.ReactNode;\n /** Max visible snackbars. */\n maxSnack?: number;\n /** How much time the snackbar remains visible in milliseconds. */\n autoHideDuration?: number;\n /** Where is the snackbar placed. */\n anchorOrigin?: SnackbarOrigin;\n /** Class object used to override notistack classes. */\n notistackClassesOverride?: Partial<ClassNameMap<CombinedClassKey>>;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvSnackbarProviderClasses;\n className?: string;\n}\n\nexport interface HvNotistackSnackMessageProps extends OptionsObject {\n /** Id to be applied to the root node. */\n id?: string;\n /** Classname to apply on the root node */\n className?: string;\n /** Your component tree. */\n message?: ReactNode;\n /** Variant of the snackbar. */\n variant?: HvSnackbarVariant;\n /** Extra values to pass to the snackbar. */\n snackbarContentProps?: HvSnackbarContentProps;\n}\n\nconst HvNotistackSnackMessage = forwardRef<\n HTMLDivElement,\n HvNotistackSnackMessageProps\n>((props, ref) => {\n const { id, message, variant = \"success\", snackbarContentProps } = props;\n return (\n <SnackbarContent ref={ref}>\n <HvSnackbarContent\n id={id}\n variant={variant}\n showIcon\n label={message}\n role=\"none\"\n {...snackbarContentProps}\n />\n </SnackbarContent>\n );\n});\n\n// We override notistack hook to be able to customize the snackbar that should be called.\nexport const useHvSnackbar = () => {\n const { enqueueSnackbar: enqueueNotistackSnackbar, closeSnackbar } =\n useSnackbar();\n\n const enqueueSnackbar = useCallback(\n (message: ReactNode, options: HvNotistackSnackMessageProps = {}) => {\n const {\n id,\n variant = \"success\",\n snackbarContentProps,\n className,\n ...otherOptions\n } = options;\n\n return enqueueNotistackSnackbar(\n <HvNotistackSnackMessage\n id={id}\n message={message}\n variant={variant}\n snackbarContentProps={snackbarContentProps}\n />,\n { ...otherOptions, className }\n );\n },\n [enqueueNotistackSnackbar]\n );\n return useMemo(\n () => ({\n enqueueSnackbar,\n closeSnackbar,\n }),\n [enqueueSnackbar, closeSnackbar]\n );\n};\n\nexport const HvSnackbarProvider = ({\n children,\n notistackClassesOverride,\n maxSnack = 5,\n autoHideDuration = 5000,\n anchorOrigin = {\n vertical: \"top\",\n horizontal: \"right\",\n },\n classes: classesProp,\n className,\n ...others\n}: HvSnackbarProviderProps) => {\n const { classes, css, cx } = useClasses(classesProp);\n\n const notistackClasses: SnackbarProviderProps[\"classes\"] = {\n containerRoot: css({\n pointerEvents: \"all\",\n \"& > div > div\": {\n // Overrides notistack extra padding\n padding: \"0 !important\",\n transition: \"all 0s ease 0s !important\",\n },\n }),\n ...notistackClassesOverride,\n };\n\n return (\n <SnackbarProvider\n classes={notistackClasses}\n maxSnack={maxSnack}\n autoHideDuration={autoHideDuration}\n anchorOrigin={anchorOrigin as SnackbarOrigin}\n className={cx(classes.snackItemRoot, className)}\n {...others}\n >\n {children}\n </SnackbarProvider>\n );\n};\n"],"names":["HvNotistackSnackMessage","forwardRef","props","ref","id","message","variant","snackbarContentProps","jsx","SnackbarContent","HvSnackbarContent","useHvSnackbar","enqueueSnackbar","enqueueNotistackSnackbar","closeSnackbar","useSnackbar","useCallback","options","className","otherOptions","useMemo","HvSnackbarProvider","children","notistackClassesOverride","maxSnack","autoHideDuration","anchorOrigin","vertical","horizontal","classes","classesProp","others","css","cx","useClasses","notistackClasses","containerRoot","pointerEvents","padding","transition","SnackbarProvider","snackItemRoot"],"mappings":";;;;;;;AAqDA,MAAMA,0BAA0BC,MAAAA,WAG9B,CAACC,OAAOC,QAAQ;AACV,QAAA;AAAA,IAAEC;AAAAA,IAAIC;AAAAA,IAASC,UAAU;AAAA,IAAWC;AAAAA,EAAyBL,IAAAA;AACnE,SACGM,2BAAA,IAAAC,UAAA,iBAAA,EAAgB,KACf,UAAAD,+BAACE,gBAAAA,qBACC,IACA,SACA,UAAQ,MACR,OAAOL,SACP,MAAK,QACL,GAAIE,sBAAqB,EAE7B,CAAA;AAEJ,CAAC;AAGM,MAAMI,gBAAgBA,MAAM;AAC3B,QAAA;AAAA,IAAEC,iBAAiBC;AAAAA,IAA0BC;AAAAA,MACjDC,UAAY,YAAA;AAEd,QAAMH,kBAAkBI,MACtB,YAAA,CAACX,SAAoBY,UAAwC,CAAA,MAAO;AAC5D,UAAA;AAAA,MACJb;AAAAA,MACAE,UAAU;AAAA,MACVC;AAAAA,MACAW;AAAAA,MACA,GAAGC;AAAAA,IACDF,IAAAA;AAEJ,WAAOJ,yBACJL,2BAAA,IAAA,yBAAA,EACC,IACA,SACA,SACA,yBAEF;AAAA,MAAE,GAAGW;AAAAA,MAAcD;AAAAA,IAAAA,CACrB;AAAA,EAAA,GAEF,CAACL,wBAAwB,CAC3B;AACA,SAAOO,cACL,OAAO;AAAA,IACLR;AAAAA,IACAE;AAAAA,EAEF,IAAA,CAACF,iBAAiBE,aAAa,CACjC;AACF;AAEO,MAAMO,qBAAqBA,CAAC;AAAA,EACjCC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACXC,mBAAmB;AAAA,EACnBC,eAAe;AAAA,IACbC,UAAU;AAAA,IACVC,YAAY;AAAA,EACd;AAAA,EACAC,SAASC;AAAAA,EACTZ;AAAAA,EACA,GAAGa;AACoB,MAAM;AACvB,QAAA;AAAA,IAAEF;AAAAA,IAASG;AAAAA,IAAKC;AAAAA,EAAAA,IAAOC,wBAAAA,WAAWJ,WAAW;AAEnD,QAAMK,mBAAqD;AAAA,IACzDC,eAAeJ,IAAI;AAAA,MACjBK,eAAe;AAAA,MACf,iBAAiB;AAAA;AAAA,QAEfC,SAAS;AAAA,QACTC,YAAY;AAAA,MACd;AAAA,IAAA,CACD;AAAA,IACD,GAAGhB;AAAAA,EAAAA;AAGL,SACGf,2BAAAA,IAAAgC,UAAAA,kBAAA,EACC,SAASL,kBACT,UACA,kBACA,cACA,WAAWF,GAAGJ,QAAQY,eAAevB,SAAS,GAC9C,GAAIa,QAEHT,SACH,CAAA;AAEJ;;;;"}
|
|
@@ -5,6 +5,7 @@ const React = require("react");
|
|
|
5
5
|
const material = require("@mui/material");
|
|
6
6
|
const useTheme = require("../../hooks/useTheme.cjs");
|
|
7
7
|
const useDefaultProps = require("../../hooks/useDefaultProps.cjs");
|
|
8
|
+
const document = require("../../utils/document.cjs");
|
|
8
9
|
const Tooltip_styles = require("./Tooltip.styles.cjs");
|
|
9
10
|
const HvTooltip = React.forwardRef((props, ref) => {
|
|
10
11
|
const {
|
|
@@ -34,7 +35,7 @@ const HvTooltip = React.forwardRef((props, ref) => {
|
|
|
34
35
|
tooltip: useSingle ? classes.tooltip : classes.tooltipMulti,
|
|
35
36
|
popper: classes.popper
|
|
36
37
|
}, title, PopperProps: {
|
|
37
|
-
container:
|
|
38
|
+
container: document.getElementById(containerId || rootId)
|
|
38
39
|
}, ...others, children });
|
|
39
40
|
});
|
|
40
41
|
exports.tooltipClasses = Tooltip_styles.staticClasses;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.cjs","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import { forwardRef, ReactElement } from \"react\";\nimport { Fade, Tooltip, TooltipProps as MuiTooltipProps } from \"@mui/material\";\n\nimport { useTheme } from \"@core/hooks/useTheme\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { staticClasses, useClasses } from \"./Tooltip.styles\";\n\nexport { staticClasses as tooltipClasses };\n\nexport type HvTooltipClasses = ExtractNames<typeof useClasses>;\nexport type HvTooltipPlacementType = MuiTooltipProps[\"placement\"];\n\nexport interface HvTooltipProps extends Omit<MuiTooltipProps, \"classes\"> {\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes?: HvTooltipClasses;\n /**\n * If true, the tooltip is shown.\n */\n open?: boolean;\n /**\n * Tooltip placement.\n */\n placement?: HvTooltipPlacementType;\n /**\n * The number of milliseconds to wait before showing the tooltip.\n * This property won't impact the enter touch delay (enterTouchDelay).\n */\n enterDelay?: number;\n /** @inheritdoc */\n title: MuiTooltipProps[\"title\"];\n /** @inheritdoc */\n TransitionComponent?: MuiTooltipProps[\"TransitionComponent\"];\n /** @inheritdoc */\n TransitionProps?: MuiTooltipProps[\"TransitionProps\"];\n /**\n * Defines if should use a single or multiline tooltip.\n */\n useSingle?: boolean;\n /**\n * Node to apply the tooltip.\n */\n children: ReactElement;\n /**\n * Id attribute value of an HTML Element to have the tooltip appended to it.\n */\n containerId?: string;\n}\n\n/**\n * Tooltips display informative text when users hover over, focus on, or tap an element.\n * Accessibility-wise, the tooltip automatically labels the `children` content.\n */\nexport const HvTooltip = forwardRef((props: HvTooltipProps, ref) => {\n const {\n className,\n classes: classesProp,\n open,\n enterDelay = 300,\n placement = \"top\",\n useSingle = true,\n children,\n title,\n TransitionComponent = Fade,\n TransitionProps = { timeout: 400, placement },\n containerId,\n ...others\n } = useDefaultProps(\"HvTooltip\", props);\n\n const { rootId } = useTheme();\n const { classes } = useClasses(classesProp);\n\n return (\n <Tooltip\n ref={ref}\n open={open ?? undefined}\n enterDelay={enterDelay}\n placement={placement}\n TransitionComponent={TransitionComponent}\n TransitionProps={TransitionProps}\n className={className}\n classes={{\n tooltip: useSingle ? classes.tooltip : classes.tooltipMulti,\n popper: classes.popper,\n }}\n title={title}\n PopperProps={{\n container
|
|
1
|
+
{"version":3,"file":"Tooltip.cjs","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import { forwardRef, ReactElement } from \"react\";\nimport { Fade, Tooltip, TooltipProps as MuiTooltipProps } from \"@mui/material\";\n\nimport { useTheme } from \"@core/hooks/useTheme\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { getElementById } from \"@core/utils/document\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { staticClasses, useClasses } from \"./Tooltip.styles\";\n\nexport { staticClasses as tooltipClasses };\n\nexport type HvTooltipClasses = ExtractNames<typeof useClasses>;\nexport type HvTooltipPlacementType = MuiTooltipProps[\"placement\"];\n\nexport interface HvTooltipProps extends Omit<MuiTooltipProps, \"classes\"> {\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes?: HvTooltipClasses;\n /**\n * If true, the tooltip is shown.\n */\n open?: boolean;\n /**\n * Tooltip placement.\n */\n placement?: HvTooltipPlacementType;\n /**\n * The number of milliseconds to wait before showing the tooltip.\n * This property won't impact the enter touch delay (enterTouchDelay).\n */\n enterDelay?: number;\n /** @inheritdoc */\n title: MuiTooltipProps[\"title\"];\n /** @inheritdoc */\n TransitionComponent?: MuiTooltipProps[\"TransitionComponent\"];\n /** @inheritdoc */\n TransitionProps?: MuiTooltipProps[\"TransitionProps\"];\n /**\n * Defines if should use a single or multiline tooltip.\n */\n useSingle?: boolean;\n /**\n * Node to apply the tooltip.\n */\n children: ReactElement;\n /**\n * Id attribute value of an HTML Element to have the tooltip appended to it.\n */\n containerId?: string;\n}\n\n/**\n * Tooltips display informative text when users hover over, focus on, or tap an element.\n * Accessibility-wise, the tooltip automatically labels the `children` content.\n */\nexport const HvTooltip = forwardRef((props: HvTooltipProps, ref) => {\n const {\n className,\n classes: classesProp,\n open,\n enterDelay = 300,\n placement = \"top\",\n useSingle = true,\n children,\n title,\n TransitionComponent = Fade,\n TransitionProps = { timeout: 400, placement },\n containerId,\n ...others\n } = useDefaultProps(\"HvTooltip\", props);\n\n const { rootId } = useTheme();\n const { classes } = useClasses(classesProp);\n\n return (\n <Tooltip\n ref={ref}\n open={open ?? undefined}\n enterDelay={enterDelay}\n placement={placement}\n TransitionComponent={TransitionComponent}\n TransitionProps={TransitionProps}\n className={className}\n classes={{\n tooltip: useSingle ? classes.tooltip : classes.tooltipMulti,\n popper: classes.popper,\n }}\n title={title}\n PopperProps={{\n container: getElementById(containerId || rootId),\n }}\n {...others}\n >\n {children}\n </Tooltip>\n );\n});\n"],"names":["HvTooltip","forwardRef","props","ref","className","classes","classesProp","open","enterDelay","placement","useSingle","children","title","TransitionComponent","Fade","TransitionProps","timeout","containerId","others","useDefaultProps","rootId","useTheme","useClasses","jsx","Tooltip","undefined","tooltip","tooltipMulti","popper","container","getElementById"],"mappings":";;;;;;;;;AA6DO,MAAMA,YAAYC,MAAAA,WAAW,CAACC,OAAuBC,QAAQ;AAC5D,QAAA;AAAA,IACJC;AAAAA,IACAC,SAASC;AAAAA,IACTC;AAAAA,IACAC,aAAa;AAAA,IACbC,YAAY;AAAA,IACZC,YAAY;AAAA,IACZC;AAAAA,IACAC;AAAAA,IACAC,sBAAsBC,SAAAA;AAAAA,IACtBC,kBAAkB;AAAA,MAAEC,SAAS;AAAA,MAAKP;AAAAA,IAAU;AAAA,IAC5CQ;AAAAA,IACA,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,gBAAA,aAAajB,KAAK;AAEhC,QAAA;AAAA,IAAEkB;AAAAA,MAAWC,SAAS,SAAA;AACtB,QAAA;AAAA,IAAEhB;AAAAA,EAAAA,IAAYiB,eAAAA,WAAWhB,WAAW;AAGxC,SAAAiB,2BAAA,IAACC,SACC,SAAA,EAAA,KACA,MAAMjB,QAAQkB,QACd,YACA,WACA,qBACA,iBACA,WACA,SAAS;AAAA,IACPC,SAAShB,YAAYL,QAAQqB,UAAUrB,QAAQsB;AAAAA,IAC/CC,QAAQvB,QAAQuB;AAAAA,EAAAA,GAElB,OACA,aAAa;AAAA,IACXC,WAAWC,SAAAA,eAAeb,eAAeG,MAAM;AAAA,EAAA,GAE7CF,GAAAA,QAEHP,SACH,CAAA;AAEJ,CAAC;;;"}
|
|
@@ -50,9 +50,6 @@ function binaryFindElement(array, element) {
|
|
|
50
50
|
return start;
|
|
51
51
|
}
|
|
52
52
|
const DescendantContext = React__namespace.createContext({});
|
|
53
|
-
if (process.env.NODE_ENV !== "production") {
|
|
54
|
-
DescendantContext.displayName = "DescendantContext";
|
|
55
|
-
}
|
|
56
53
|
function usePrevious(value) {
|
|
57
54
|
const ref = React__namespace.useRef(null);
|
|
58
55
|
React__namespace.useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DescendantProvider.cjs","sources":["../../../../../src/components/TreeView/internals/DescendantProvider.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from \"@mui/material/utils\";\n\n/** Credit: https://github.com/reach/reach-ui/blob/86a046f54d53b6420e392b3fa56dd991d9d4e458/packages/descendants/README.md\n * Modified slightly to suit our purposes.\n */\n\n// To replace with .findIndex() once we stop IE11 support.\nfunction findIndex<T>(array: T[], comp: (item: T) => boolean) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction binaryFindElement(\n array: TreeItemDescendant[],\n element: HTMLLIElement\n) {\n let start = 0;\n let end = array.length - 1;\n\n while (start <= end) {\n const middle = Math.floor((start + end) / 2);\n\n if (array[middle].element === element) {\n return middle;\n }\n\n if (\n // eslint-disable-next-line no-bitwise\n array[middle].element.compareDocumentPosition(element) &\n Node.DOCUMENT_POSITION_PRECEDING\n ) {\n end = middle - 1;\n } else {\n start = middle + 1;\n }\n }\n\n return start;\n}\n\nexport interface TreeItemDescendant {\n element: HTMLLIElement;\n id: string;\n}\n\ninterface DescendantContextValue {\n registerDescendant?: (params: TreeItemDescendant & { index: number }) => void;\n unregisterDescendant?: (params: HTMLLIElement) => void;\n descendants?: TreeItemDescendant[];\n parentId?: string | null;\n}\n\nconst DescendantContext = React.createContext<DescendantContextValue>({});\n\nif (process.env.NODE_ENV !== \"production\") {\n DescendantContext.displayName = \"DescendantContext\";\n}\n\nfunction usePrevious<T>(value: T) {\n const ref = React.useRef<T | null>(null);\n React.useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nconst noop = () => {};\n\n/**\n * This hook registers our descendant by passing it into an array. We can then\n * search that array by to find its index when registering it in the component.\n * We use this for focus management, keyboard navigation, and typeahead\n * functionality for some components.\n *\n * The hook accepts the element node\n *\n * Our main goals with this are:\n * 1) maximum composability,\n * 2) minimal API friction\n * 3) SSR compatibility*\n * 4) concurrent safe\n * 5) index always up-to-date with the tree despite changes\n * 6) works with memoization of any component in the tree (hopefully)\n *\n * * As for SSR, the good news is that we don't actually need the index on the\n * server for most use-cases, as we are only using it to determine the order of\n * composed descendants for keyboard navigation.\n */\nexport function useDescendant(descendant: TreeItemDescendant) {\n const [, forceUpdate] = React.useState<{}>();\n const {\n registerDescendant = noop,\n unregisterDescendant = noop,\n descendants = [],\n parentId = null,\n } = React.useContext(DescendantContext);\n\n // This will initially return -1 because we haven't registered the descendant\n // on the first render. After we register, this will then return the correct\n // index on the following render, and we will re-register descendants\n // so that everything is up-to-date before the user interacts with a\n // collection.\n const index = findIndex(\n descendants,\n (item) => item.element === descendant.element\n );\n\n const previousDescendants = usePrevious(descendants);\n\n // We also need to re-register descendants any time ANY of the other\n // descendants have changed. My brain was melting when I wrote this and it\n // feels a little off, but checking in render and using the result in the\n // effect's dependency array works well enough.\n const someDescendantsHaveChanged = descendants.some(\n (newDescendant, position) => {\n return (\n previousDescendants &&\n previousDescendants[position] &&\n previousDescendants[position].element !== newDescendant.element\n );\n }\n );\n\n // Prevent any flashing\n useEnhancedEffect(() => {\n if (descendant.element) {\n registerDescendant({\n ...descendant,\n index,\n });\n return () => {\n unregisterDescendant(descendant.element!);\n };\n }\n forceUpdate({});\n\n return undefined;\n }, [\n registerDescendant,\n unregisterDescendant,\n index,\n someDescendantsHaveChanged,\n descendant,\n ]);\n\n return { parentId, index };\n}\n\ninterface DescendantProviderProps {\n id?: string;\n children: React.ReactNode;\n}\n\nexport const DescendantProvider = (props: DescendantProviderProps) => {\n const { children, id } = props;\n\n const [items, set] = React.useState<\n (TreeItemDescendant & { index: number })[]\n >([]);\n\n const registerDescendant = React.useCallback(\n ({ element, ...other }: TreeItemDescendant) => {\n set((oldItems) => {\n if (oldItems.length === 0) {\n // If there are no items, register at index 0 and bail.\n return [\n {\n ...other,\n element,\n index: 0,\n },\n ];\n }\n\n const index = binaryFindElement(oldItems, element);\n let newItems: typeof oldItems;\n\n if (oldItems[index] && oldItems[index].element === element) {\n // If the element is already registered, just use the same array\n newItems = oldItems;\n } else {\n // When registering a descendant, we need to make sure we insert in\n // into the array in the same order that it appears in the DOM. So as\n // new descendants are added or maybe some are removed, we always know\n // that the array is up-to-date and correct.\n //\n // So here we look at our registered descendants and see if the new\n // element we are adding appears earlier than an existing descendant's\n // DOM node via `node.compareDocumentPosition`. If it does, we insert\n // the new element at this index. Because `registerDescendant` will be\n // called in an effect every time the descendants state value changes,\n // we should be sure that this index is accurate when descendent\n // elements come or go from our component.\n\n const newItem = {\n ...other,\n element,\n index,\n };\n\n // If an index is not found we will push the element to the end.\n newItems = oldItems.slice();\n newItems.splice(index, 0, newItem);\n }\n newItems.forEach((item, position) => {\n item.index = position;\n });\n return newItems;\n });\n },\n []\n );\n\n const unregisterDescendant = React.useCallback((element: HTMLLIElement) => {\n set((oldItems) => oldItems.filter((item) => element !== item.element));\n }, []);\n\n const value = React.useMemo(\n () => ({\n descendants: items,\n registerDescendant,\n unregisterDescendant,\n parentId: id,\n }),\n [items, registerDescendant, unregisterDescendant, id]\n );\n\n return (\n <DescendantContext.Provider value={value}>\n {children}\n </DescendantContext.Provider>\n );\n};\n"],"names":["findIndex","array","comp","i","length","binaryFindElement","element","start","end","middle","Math","floor","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DescendantContext","React","createContext","process","env","NODE_ENV","displayName","usePrevious","value","ref","useRef","useEffect","current","noop","useDescendant","descendant","forceUpdate","useState","registerDescendant","unregisterDescendant","descendants","parentId","useContext","index","item","previousDescendants","someDescendantsHaveChanged","some","newDescendant","position","useEnhancedEffect","undefined","DescendantProvider","props","children","id","items","set","useCallback","other","oldItems","newItems","newItem","slice","splice","forEach","filter","useMemo","jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DescendantProvider.cjs","sources":["../../../../../src/components/TreeView/internals/DescendantProvider.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from \"@mui/material/utils\";\n\n/** Credit: https://github.com/reach/reach-ui/blob/86a046f54d53b6420e392b3fa56dd991d9d4e458/packages/descendants/README.md\n * Modified slightly to suit our purposes.\n */\n\n// To replace with .findIndex() once we stop IE11 support.\nfunction findIndex<T>(array: T[], comp: (item: T) => boolean) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction binaryFindElement(\n array: TreeItemDescendant[],\n element: HTMLLIElement\n) {\n let start = 0;\n let end = array.length - 1;\n\n while (start <= end) {\n const middle = Math.floor((start + end) / 2);\n\n if (array[middle].element === element) {\n return middle;\n }\n\n if (\n // eslint-disable-next-line no-bitwise\n array[middle].element.compareDocumentPosition(element) &\n Node.DOCUMENT_POSITION_PRECEDING\n ) {\n end = middle - 1;\n } else {\n start = middle + 1;\n }\n }\n\n return start;\n}\n\nexport interface TreeItemDescendant {\n element: HTMLLIElement;\n id: string;\n}\n\ninterface DescendantContextValue {\n registerDescendant?: (params: TreeItemDescendant & { index: number }) => void;\n unregisterDescendant?: (params: HTMLLIElement) => void;\n descendants?: TreeItemDescendant[];\n parentId?: string | null;\n}\n\nconst DescendantContext = React.createContext<DescendantContextValue>({});\n\nfunction usePrevious<T>(value: T) {\n const ref = React.useRef<T | null>(null);\n React.useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nconst noop = () => {};\n\n/**\n * This hook registers our descendant by passing it into an array. We can then\n * search that array by to find its index when registering it in the component.\n * We use this for focus management, keyboard navigation, and typeahead\n * functionality for some components.\n *\n * The hook accepts the element node\n *\n * Our main goals with this are:\n * 1) maximum composability,\n * 2) minimal API friction\n * 3) SSR compatibility*\n * 4) concurrent safe\n * 5) index always up-to-date with the tree despite changes\n * 6) works with memoization of any component in the tree (hopefully)\n *\n * * As for SSR, the good news is that we don't actually need the index on the\n * server for most use-cases, as we are only using it to determine the order of\n * composed descendants for keyboard navigation.\n */\nexport function useDescendant(descendant: TreeItemDescendant) {\n const [, forceUpdate] = React.useState<{}>();\n const {\n registerDescendant = noop,\n unregisterDescendant = noop,\n descendants = [],\n parentId = null,\n } = React.useContext(DescendantContext);\n\n // This will initially return -1 because we haven't registered the descendant\n // on the first render. After we register, this will then return the correct\n // index on the following render, and we will re-register descendants\n // so that everything is up-to-date before the user interacts with a\n // collection.\n const index = findIndex(\n descendants,\n (item) => item.element === descendant.element\n );\n\n const previousDescendants = usePrevious(descendants);\n\n // We also need to re-register descendants any time ANY of the other\n // descendants have changed. My brain was melting when I wrote this and it\n // feels a little off, but checking in render and using the result in the\n // effect's dependency array works well enough.\n const someDescendantsHaveChanged = descendants.some(\n (newDescendant, position) => {\n return (\n previousDescendants &&\n previousDescendants[position] &&\n previousDescendants[position].element !== newDescendant.element\n );\n }\n );\n\n // Prevent any flashing\n useEnhancedEffect(() => {\n if (descendant.element) {\n registerDescendant({\n ...descendant,\n index,\n });\n return () => {\n unregisterDescendant(descendant.element!);\n };\n }\n forceUpdate({});\n\n return undefined;\n }, [\n registerDescendant,\n unregisterDescendant,\n index,\n someDescendantsHaveChanged,\n descendant,\n ]);\n\n return { parentId, index };\n}\n\ninterface DescendantProviderProps {\n id?: string;\n children: React.ReactNode;\n}\n\nexport const DescendantProvider = (props: DescendantProviderProps) => {\n const { children, id } = props;\n\n const [items, set] = React.useState<\n (TreeItemDescendant & { index: number })[]\n >([]);\n\n const registerDescendant = React.useCallback(\n ({ element, ...other }: TreeItemDescendant) => {\n set((oldItems) => {\n if (oldItems.length === 0) {\n // If there are no items, register at index 0 and bail.\n return [\n {\n ...other,\n element,\n index: 0,\n },\n ];\n }\n\n const index = binaryFindElement(oldItems, element);\n let newItems: typeof oldItems;\n\n if (oldItems[index] && oldItems[index].element === element) {\n // If the element is already registered, just use the same array\n newItems = oldItems;\n } else {\n // When registering a descendant, we need to make sure we insert in\n // into the array in the same order that it appears in the DOM. So as\n // new descendants are added or maybe some are removed, we always know\n // that the array is up-to-date and correct.\n //\n // So here we look at our registered descendants and see if the new\n // element we are adding appears earlier than an existing descendant's\n // DOM node via `node.compareDocumentPosition`. If it does, we insert\n // the new element at this index. Because `registerDescendant` will be\n // called in an effect every time the descendants state value changes,\n // we should be sure that this index is accurate when descendent\n // elements come or go from our component.\n\n const newItem = {\n ...other,\n element,\n index,\n };\n\n // If an index is not found we will push the element to the end.\n newItems = oldItems.slice();\n newItems.splice(index, 0, newItem);\n }\n newItems.forEach((item, position) => {\n item.index = position;\n });\n return newItems;\n });\n },\n []\n );\n\n const unregisterDescendant = React.useCallback((element: HTMLLIElement) => {\n set((oldItems) => oldItems.filter((item) => element !== item.element));\n }, []);\n\n const value = React.useMemo(\n () => ({\n descendants: items,\n registerDescendant,\n unregisterDescendant,\n parentId: id,\n }),\n [items, registerDescendant, unregisterDescendant, id]\n );\n\n return (\n <DescendantContext.Provider value={value}>\n {children}\n </DescendantContext.Provider>\n );\n};\n"],"names":["findIndex","array","comp","i","length","binaryFindElement","element","start","end","middle","Math","floor","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DescendantContext","React","createContext","usePrevious","value","ref","useRef","useEffect","current","noop","useDescendant","descendant","forceUpdate","useState","registerDescendant","unregisterDescendant","descendants","parentId","useContext","index","item","previousDescendants","someDescendantsHaveChanged","some","newDescendant","position","useEnhancedEffect","undefined","DescendantProvider","props","children","id","items","set","useCallback","other","oldItems","newItems","newItem","slice","splice","forEach","filter","useMemo","jsx"],"mappings":"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"}
|
|
@@ -16,9 +16,6 @@ const DEFAULT_TREE_VIEW_CONTEXT_VALUE = {
|
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
18
|
const TreeViewContext = React.createContext(DEFAULT_TREE_VIEW_CONTEXT_VALUE);
|
|
19
|
-
if (process.env.NODE_ENV !== "production") {
|
|
20
|
-
TreeViewContext.displayName = "TreeViewContext";
|
|
21
|
-
}
|
|
22
19
|
const TreeViewProvider = (props) => {
|
|
23
20
|
const {
|
|
24
21
|
value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeViewProvider.cjs","sources":["../../../../../src/components/TreeView/internals/TreeViewProvider.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nimport { TreeViewAnyPluginSignature, TreeViewInstance } from \"./types\";\nimport { DescendantProvider } from \"./DescendantProvider\";\n\nexport interface TreeViewContextValue<\n TPlugins extends readonly TreeViewAnyPluginSignature[]\n> {\n treeId: string | undefined;\n instance: TreeViewInstance<TPlugins> | null;\n multiSelect: boolean;\n disabledItemsFocusable: boolean;\n icons: {\n defaultCollapseIcon: React.ReactNode;\n defaultExpandIcon: React.ReactNode;\n defaultParentIcon: React.ReactNode;\n defaultEndIcon: React.ReactNode;\n };\n}\n\nexport const DEFAULT_TREE_VIEW_CONTEXT_VALUE: TreeViewContextValue<any> = {\n instance: null,\n multiSelect: false,\n disabledItemsFocusable: false,\n treeId: undefined,\n icons: {\n defaultCollapseIcon: null,\n defaultExpandIcon: null,\n defaultParentIcon: null,\n defaultEndIcon: null,\n },\n};\n\n/**\n * @ignore - internal component.\n */\nexport const TreeViewContext = createContext<TreeViewContextValue<any>>(\n DEFAULT_TREE_VIEW_CONTEXT_VALUE\n);\n\
|
|
1
|
+
{"version":3,"file":"TreeViewProvider.cjs","sources":["../../../../../src/components/TreeView/internals/TreeViewProvider.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nimport { TreeViewAnyPluginSignature, TreeViewInstance } from \"./types\";\nimport { DescendantProvider } from \"./DescendantProvider\";\n\nexport interface TreeViewContextValue<\n TPlugins extends readonly TreeViewAnyPluginSignature[]\n> {\n treeId: string | undefined;\n instance: TreeViewInstance<TPlugins> | null;\n multiSelect: boolean;\n disabledItemsFocusable: boolean;\n icons: {\n defaultCollapseIcon: React.ReactNode;\n defaultExpandIcon: React.ReactNode;\n defaultParentIcon: React.ReactNode;\n defaultEndIcon: React.ReactNode;\n };\n}\n\nexport const DEFAULT_TREE_VIEW_CONTEXT_VALUE: TreeViewContextValue<any> = {\n instance: null,\n multiSelect: false,\n disabledItemsFocusable: false,\n treeId: undefined,\n icons: {\n defaultCollapseIcon: null,\n defaultExpandIcon: null,\n defaultParentIcon: null,\n defaultEndIcon: null,\n },\n};\n\n/**\n * @ignore - internal component.\n */\nexport const TreeViewContext = createContext<TreeViewContextValue<any>>(\n DEFAULT_TREE_VIEW_CONTEXT_VALUE\n);\n\nexport interface TreeViewProviderProps<\n TPlugins extends readonly TreeViewAnyPluginSignature[]\n> {\n value: TreeViewContextValue<TPlugins>;\n children: React.ReactNode;\n}\n\n/**\n * Sets up the contexts for the underlying TreeItem components.\n *\n * @ignore - do not document.\n */\nexport const TreeViewProvider = <\n TPlugins extends readonly TreeViewAnyPluginSignature[]\n>(\n props: TreeViewProviderProps<TPlugins>\n) => {\n const { value, children } = props;\n\n return (\n <TreeViewContext.Provider value={value}>\n <DescendantProvider>{children}</DescendantProvider>\n </TreeViewContext.Provider>\n );\n};\n\nexport const useTreeViewContext = <\n TPlugins extends readonly TreeViewAnyPluginSignature[]\n>() => useContext(TreeViewContext) as TreeViewContextValue<TPlugins>;\n"],"names":["DEFAULT_TREE_VIEW_CONTEXT_VALUE","instance","multiSelect","disabledItemsFocusable","treeId","undefined","icons","defaultCollapseIcon","defaultExpandIcon","defaultParentIcon","defaultEndIcon","TreeViewContext","createContext","TreeViewProvider","props","value","children","jsx","DescendantProvider","useTreeViewContext","useContext"],"mappings":";;;;;AAoBO,MAAMA,kCAA6D;AAAA,EACxEC,UAAU;AAAA,EACVC,aAAa;AAAA,EACbC,wBAAwB;AAAA,EACxBC,QAAQC;AAAAA,EACRC,OAAO;AAAA,IACLC,qBAAqB;AAAA,IACrBC,mBAAmB;AAAA,IACnBC,mBAAmB;AAAA,IACnBC,gBAAgB;AAAA,EAClB;AACF;AAKaC,MAAAA,kBAAkBC,oBAC7BZ,+BACF;AAcaa,MAAAA,mBAAmB,CAG9BC,UACG;AACG,QAAA;AAAA,IAAEC;AAAAA,IAAOC;AAAAA,EAAaF,IAAAA;AAG1B,SAAAG,+BAAC,gBAAgB,UAAhB,EAAyB,OACxB,UAACA,2BAAA,IAAAC,uCAAA,EAAoBF,SAAS,CAAA,EAChC,CAAA;AAEJ;AAEaG,MAAAA,qBAAqB,MAE3BC,MAAAA,WAAWT,eAAe;;;;;"}
|
|
@@ -2,21 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const typographyVariants = ["display", "title1", "title2", "title3", "title4", "body", "label", "caption1", "caption2"];
|
|
4
4
|
const mappableVariants = /* @__PURE__ */ new Map([["3xlTitle", "display"], ["xlTitle", "title1"], ["mTitle", "title2"], ["xsTitle", "title3"], ["highlightText", "label"], ["normalText", "body"], ["vizText", "caption1"]]);
|
|
5
|
-
const isLegacyVariant = (variant) => {
|
|
6
|
-
return ["5xlTitle", "4xlTitle", "3xlTitle", "xxlTitle", "xlTitle", "lTitle", "mTitle", "sTitle", "xsTitle", "xxsTitle", "sectionTitle", "highlightText", "normalText", "placeholderText", "link", "disabledText", "selectedNavText", "vizText", "vizTextDisabled", "xsInlineLink"].includes(variant);
|
|
7
|
-
};
|
|
8
5
|
const mapVariant = (variant, theme) => {
|
|
6
|
+
if (theme === "ds3")
|
|
7
|
+
return variant;
|
|
9
8
|
const mappedVariant = mappableVariants.get(variant);
|
|
10
|
-
|
|
11
|
-
if (mappedVariant) {
|
|
12
|
-
console.warn(`The typography variant ${variant} is deprecated. You should use ${mappedVariant} instead.`);
|
|
13
|
-
return mappedVariant;
|
|
14
|
-
}
|
|
15
|
-
if (isLegacyVariant(variant)) {
|
|
16
|
-
console.warn(`The typography variant ${variant} is deprecated.`);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return variant;
|
|
9
|
+
return mappedVariant || variant;
|
|
20
10
|
};
|
|
21
11
|
exports.mapVariant = mapVariant;
|
|
22
12
|
exports.typographyVariants = typographyVariants;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","sources":["../../../../src/components/Typography/utils.ts"],"sourcesContent":["export const typographyVariants = [\n \"display\",\n \"title1\",\n \"title2\",\n \"title3\",\n \"title4\",\n \"body\",\n \"label\",\n \"caption1\",\n \"caption2\",\n] as const;\n\nexport type HvTypographyVariants = (typeof typographyVariants)[number];\n\n/** @deprecated */\nexport type HvTypographyLegacyVariants =\n | \"5xlTitle\"\n | \"4xlTitle\"\n | \"3xlTitle\"\n | \"xxlTitle\"\n | \"xlTitle\"\n | \"lTitle\"\n | \"mTitle\"\n | \"sTitle\"\n | \"xsTitle\"\n | \"xxsTitle\"\n | \"sectionTitle\"\n | \"highlightText\"\n | \"normalText\"\n | \"placeholderText\"\n | \"link\"\n | \"disabledText\"\n | \"selectedNavText\"\n | \"vizText\"\n | \"vizTextDisabled\"\n | \"xsInlineLink\";\n\ntype Variant = HvTypographyVariants | HvTypographyLegacyVariants;\n\nconst mappableVariants = new Map<Variant, HvTypographyVariants>([\n [\"3xlTitle\", \"display\"],\n [\"xlTitle\", \"title1\"],\n [\"mTitle\", \"title2\"],\n [\"xsTitle\", \"title3\"],\n [\"highlightText\", \"label\"],\n [\"normalText\", \"body\"],\n [\"vizText\", \"caption1\"],\n]);\n\nconst isLegacyVariant = (variant: string) => {\n return [\n \"5xlTitle\",\n \"4xlTitle\",\n \"3xlTitle\",\n \"xxlTitle\",\n \"xlTitle\",\n \"lTitle\",\n \"mTitle\",\n \"sTitle\",\n \"xsTitle\",\n \"xxsTitle\",\n \"sectionTitle\",\n \"highlightText\",\n \"normalText\",\n \"placeholderText\",\n \"link\",\n \"disabledText\",\n \"selectedNavText\",\n \"vizText\",\n \"vizTextDisabled\",\n \"xsInlineLink\",\n ].includes(variant);\n};\n\nexport const mapVariant = (variant: Variant, theme?: string) => {\n const mappedVariant = mappableVariants.get(variant);\n\n if (
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../../../../src/components/Typography/utils.ts"],"sourcesContent":["export const typographyVariants = [\n \"display\",\n \"title1\",\n \"title2\",\n \"title3\",\n \"title4\",\n \"body\",\n \"label\",\n \"caption1\",\n \"caption2\",\n] as const;\n\nexport type HvTypographyVariants = (typeof typographyVariants)[number];\n\n/** @deprecated */\nexport type HvTypographyLegacyVariants =\n | \"5xlTitle\"\n | \"4xlTitle\"\n | \"3xlTitle\"\n | \"xxlTitle\"\n | \"xlTitle\"\n | \"lTitle\"\n | \"mTitle\"\n | \"sTitle\"\n | \"xsTitle\"\n | \"xxsTitle\"\n | \"sectionTitle\"\n | \"highlightText\"\n | \"normalText\"\n | \"placeholderText\"\n | \"link\"\n | \"disabledText\"\n | \"selectedNavText\"\n | \"vizText\"\n | \"vizTextDisabled\"\n | \"xsInlineLink\";\n\ntype Variant = HvTypographyVariants | HvTypographyLegacyVariants;\n\nconst mappableVariants = new Map<Variant, HvTypographyVariants>([\n [\"3xlTitle\", \"display\"],\n [\"xlTitle\", \"title1\"],\n [\"mTitle\", \"title2\"],\n [\"xsTitle\", \"title3\"],\n [\"highlightText\", \"label\"],\n [\"normalText\", \"body\"],\n [\"vizText\", \"caption1\"],\n]);\n\nconst isLegacyVariant = (variant: string) => {\n return [\n \"5xlTitle\",\n \"4xlTitle\",\n \"3xlTitle\",\n \"xxlTitle\",\n \"xlTitle\",\n \"lTitle\",\n \"mTitle\",\n \"sTitle\",\n \"xsTitle\",\n \"xxsTitle\",\n \"sectionTitle\",\n \"highlightText\",\n \"normalText\",\n \"placeholderText\",\n \"link\",\n \"disabledText\",\n \"selectedNavText\",\n \"vizText\",\n \"vizTextDisabled\",\n \"xsInlineLink\",\n ].includes(variant);\n};\n\nexport const mapVariant = (variant: Variant, theme?: string) => {\n if (theme === \"ds3\") return variant;\n const mappedVariant = mappableVariants.get(variant);\n\n if (import.meta.env.DEV) {\n /* eslint-disable no-console */\n const msg = `The typography variant ${variant} is deprecated.`;\n if (mappedVariant) {\n console.warn(`${msg} Use ${mappedVariant} instead.`);\n }\n if (isLegacyVariant(variant)) {\n console.warn(msg);\n }\n }\n\n return mappedVariant || variant;\n};\n"],"names":["typographyVariants","mappableVariants","Map","mapVariant","variant","theme","mappedVariant","get"],"mappings":";;AAAaA,MAAAA,qBAAqB,CAChC,WACA,UACA,UACA,UACA,UACA,QACA,SACA,YACA,UAAU;AA8BZ,MAAMC,mBAAmB,oBAAIC,IAAmC,CAC9D,CAAC,YAAY,SAAS,GACtB,CAAC,WAAW,QAAQ,GACpB,CAAC,UAAU,QAAQ,GACnB,CAAC,WAAW,QAAQ,GACpB,CAAC,iBAAiB,OAAO,GACzB,CAAC,cAAc,MAAM,GACrB,CAAC,WAAW,UAAU,CAAC,CACxB;AA2BYC,MAAAA,aAAaA,CAACC,SAAkBC,UAAmB;AAC9D,MAAIA,UAAU;AAAcD,WAAAA;AACtBE,QAAAA,gBAAgBL,iBAAiBM,IAAIH,OAAO;AAalD,SAAOE,iBAAiBF;AAC1B;;;"}
|
|
@@ -23,9 +23,6 @@ const DescendantContext = React.createContext({
|
|
|
23
23
|
level: 0,
|
|
24
24
|
descendants: []
|
|
25
25
|
});
|
|
26
|
-
if (process.env.NODE_ENV !== "production") {
|
|
27
|
-
DescendantContext.displayName = "DescendantContext";
|
|
28
|
-
}
|
|
29
26
|
function usePrevious(value) {
|
|
30
27
|
const ref = React.useRef(null);
|
|
31
28
|
React.useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descendants.cjs","sources":["../../../../../src/components/VerticalNavigation/TreeView/descendants.tsx"],"sourcesContent":["/**\n * Copied from https://github.com/mui-org/material-ui/blob/8763de1633d80295e7b83d8c21040dad333e6699/packages/material-ui-lab/src/TreeView/descendants.js\n * Credit: https://github.com/reach/reach-ui/blob/86a046f54d53b6420e392b3fa56dd991d9d4e458/packages/descendants/README.md\n *\n * - Added level (depth) property.\n * - Use local copy of useEnhancedEffect.\n */\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { useEnhancedEffect } from \"@core/hooks\";\n\ntype Item = {\n element?;\n index?;\n [key: string]: unknown;\n};\n\nfunction binaryFindElement(array, element) {\n let start = 0;\n let end = array.length - 1;\n\n while (start <= end) {\n const middle = Math.floor((start + end) / 2);\n\n if (array[middle].element === element) {\n return middle;\n }\n\n if (\n array[middle].element.compareDocumentPosition(element) &&\n Node.DOCUMENT_POSITION_PRECEDING\n ) {\n end = middle - 1;\n } else {\n start = middle + 1;\n }\n }\n\n return start;\n}\n\nconst DescendantContext = createContext<DescendantContextValue>({\n level: 0,\n descendants: [],\n});\n\ninterface DescendantContextValue {\n level?: number;\n registerDescendant?;\n unregisterDescendant?;\n descendants: Item[];\n parentId?;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n DescendantContext.displayName = \"DescendantContext\";\n}\n\nfunction usePrevious(value) {\n const ref = useRef(null);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nconst noop = () => {};\n\n/**\n * This hook registers our descendant by passing it into an array. We can then\n * search that array by to find its index when registering it in the component.\n * We use this for focus management, keyboard navigation, and typeahead\n * functionality for some components.\n *\n * The hook accepts the element node\n *\n * Our main goals with this are:\n * 1) maximum composability,\n * 2) minimal API friction\n * 3) SSR compatibility*\n * 4) concurrent safe\n * 5) index always up-to-date with the tree despite changes\n * 6) works with memoization of any component in the tree (hopefully)\n *\n * * As for SSR, the good news is that we don't actually need the index on the\n * server for most use-cases, as we are only using it to determine the order of\n * composed descendants for keyboard navigation.\n */\nexport function useDescendant(descendant) {\n const [, forceUpdate] = useState<{} | null>();\n const {\n registerDescendant = noop,\n unregisterDescendant = noop,\n descendants = [],\n parentId = null,\n level = 0,\n } = useContext(DescendantContext);\n\n // This will initially return -1 because we haven't registered the descendant\n // on the first render. After we register, this will then return the correct\n // index on the following render and we will re-register descendants\n // so that everything is up-to-date before the user interacts with a\n // collection.\n const index = descendants.findIndex(\n (item) => item.element === descendant.element\n );\n\n const previousDescendants: Item[] | null = usePrevious(descendants);\n\n // We also need to re-register descendants any time ANY of the other\n // descendants have changed. My brain was melting when I wrote this and it\n // feels a little off, but checking in render and using the result in the\n // effect's dependency array works well enough.\n const someDescendantsHaveChanged = descendants.some(\n (newDescendant, position) => {\n return (\n previousDescendants && previousDescendants[position]\n // previousDescendants[position].element !== newDescendant.element\n // was not able to type check this, did not any difference\n );\n }\n );\n\n // Prevent any flashing\n useEnhancedEffect(() => {\n if (descendant.element) {\n registerDescendant({\n ...descendant,\n index,\n });\n return () => {\n unregisterDescendant(descendant.element);\n };\n }\n forceUpdate({});\n\n return undefined;\n }, [\n registerDescendant,\n unregisterDescendant,\n index,\n someDescendantsHaveChanged,\n descendant,\n ]);\n\n return { parentId, index, level };\n}\n\nexport const DescendantProvider = (props: DescendantProviderProps) => {\n const { children, id, level } = props;\n\n const [items, set] = useState<Item[]>([]);\n\n const registerDescendant = useCallback(({ element, ...other }) => {\n set((oldItems) => {\n let newItems;\n if (oldItems.length === 0) {\n // If there are no items, register at index 0 and bail.\n return [\n {\n ...other,\n element,\n index: 0,\n },\n ];\n }\n\n const index = binaryFindElement(oldItems, element);\n\n if (oldItems[index] && oldItems[index].element === element) {\n // If the element is already registered, just use the same array\n newItems = oldItems;\n } else {\n // When registering a descendant, we need to make sure we insert in\n // into the array in the same order that it appears in the DOM. So as\n // new descendants are added or maybe some are removed, we always know\n // that the array is up-to-date and correct.\n //\n // So here we look at our registered descendants and see if the new\n // element we are adding appears earlier than an existing descendant's\n // DOM node via `node.compareDocumentPosition`. If it does, we insert\n // the new element at this index. Because `registerDescendant` will be\n // called in an effect every time the descendants state value changes,\n // we should be sure that this index is accurate when descendent\n // elements come or go from our component.\n\n const newItem = {\n ...other,\n element,\n index,\n };\n\n // If an index is not found we will push the element to the end.\n newItems = oldItems.slice();\n newItems.splice(index, 0, newItem);\n }\n newItems.forEach((item, position) => {\n item.index = position;\n });\n return newItems;\n });\n }, []);\n\n const unregisterDescendant = useCallback((element: Item) => {\n set((oldItems) =>\n oldItems.filter((item: Item) => element !== item.element)\n );\n }, []);\n\n const value = useMemo(\n () => ({\n descendants: items,\n registerDescendant,\n unregisterDescendant,\n parentId: id,\n level,\n }),\n [items, registerDescendant, unregisterDescendant, id, level]\n );\n\n return (\n <DescendantContext.Provider value={value}>\n {children}\n </DescendantContext.Provider>\n );\n};\n\nexport type DescendantProviderProps = {\n children?: React.ReactNode;\n id?: string;\n level?: number;\n};\n"],"names":["binaryFindElement","array","element","start","end","length","middle","Math","floor","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DescendantContext","createContext","level","descendants","process","env","NODE_ENV","displayName","usePrevious","value","ref","useRef","useEffect","current","noop","useDescendant","descendant","forceUpdate","useState","registerDescendant","unregisterDescendant","parentId","useContext","index","findIndex","item","previousDescendants","someDescendantsHaveChanged","some","newDescendant","position","useEnhancedEffect","undefined","DescendantProvider","props","children","id","items","set","useCallback","other","oldItems","newItems","newItem","slice","splice","forEach","filter","useMemo","jsx"],"mappings":";;;;;AA0BA,SAASA,kBAAkBC,OAAOC,SAAS;AACzC,MAAIC,QAAQ;AACRC,MAAAA,MAAMH,MAAMI,SAAS;AAEzB,SAAOF,SAASC,KAAK;AACnB,UAAME,SAASC,KAAKC,OAAOL,QAAQC,OAAO,CAAC;AAE3C,QAAIH,MAAMK,MAAM,EAAEJ,YAAYA,SAAS;AAC9BI,aAAAA;AAAAA,IACT;AAGEL,QAAAA,MAAMK,MAAM,EAAEJ,QAAQO,wBAAwBP,OAAO,KACrDQ,KAAKC,6BACL;AACAP,YAAME,SAAS;AAAA,IAAA,OACV;AACLH,cAAQG,SAAS;AAAA,IACnB;AAAA,EACF;AAEOH,SAAAA;AACT;AAEA,MAAMS,oBAAoBC,MAAAA,cAAsC;AAAA,EAC9DC,OAAO;AAAA,EACPC,aAAa,CAAA;AACf,CAAC;AAUD,IAAIC,QAAQC,IAAIC,aAAa,cAAc;AACzCN,oBAAkBO,cAAc;AAClC;AAEA,SAASC,YAAYC,OAAO;AACpBC,QAAAA,MAAMC,aAAO,IAAI;AACvBC,QAAAA,UAAU,MAAM;AACdF,QAAIG,UAAUJ;AAAAA,EAAAA,GACb,CAACA,KAAK,CAAC;AACV,SAAOC,IAAIG;AACb;AAEA,MAAMC,OAAOA,MAAM;AAAC;AAsBb,SAASC,cAAcC,YAAY;AACxC,QAAM,CAAGC,EAAAA,WAAW,IAAIC,MAAAA;AAClB,QAAA;AAAA,IACJC,qBAAqBL;AAAAA,IACrBM,uBAAuBN;AAAAA,IACvBX,cAAc,CAAE;AAAA,IAChBkB,WAAW;AAAA,IACXnB,QAAQ;AAAA,EAAA,IACNoB,MAAAA,WAAWtB,iBAAiB;AAOhC,QAAMuB,QAAQpB,YAAYqB,UACvBC,UAASA,KAAKnC,YAAY0B,WAAW1B,OACxC;AAEMoC,QAAAA,sBAAqClB,YAAYL,WAAW;AAMlE,QAAMwB,6BAA6BxB,YAAYyB,KAC7C,CAACC,eAAeC,aAAa;AAEzBJ,WAAAA,uBAAuBA,oBAAoBI,QAAQ;AAAA,EAAA,CAKzD;AAGAC,oBAAAA,kBAAkB,MAAM;AACtB,QAAIf,WAAW1B,SAAS;AACH,yBAAA;AAAA,QACjB,GAAG0B;AAAAA,QACHO;AAAAA,MAAAA,CACD;AACD,aAAO,MAAM;AACXH,6BAAqBJ,WAAW1B,OAAO;AAAA,MAAA;AAAA,IAE3C;AACA2B,gBAAY,CAAE,CAAA;AAEPe,WAAAA;AAAAA,EAAAA,GACN,CACDb,oBACAC,sBACAG,OACAI,4BACAX,UAAU,CACX;AAEM,SAAA;AAAA,IAAEK;AAAAA,IAAUE;AAAAA,IAAOrB;AAAAA,EAAAA;AAC5B;AAEa+B,MAAAA,qBAAqBA,CAACC,UAAmC;AAC9D,QAAA;AAAA,IAAEC;AAAAA,IAAUC;AAAAA,IAAIlC;AAAAA,EAAUgC,IAAAA;AAEhC,QAAM,CAACG,OAAOC,GAAG,IAAIpB,MAAAA,SAAiB,CAAE,CAAA;AAElCC,QAAAA,qBAAqBoB,MAAAA,YAAY,CAAC;AAAA,IAAEjD;AAAAA,IAAS,GAAGkD;AAAAA,EAAAA,MAAY;AAChEF,QAAKG,CAAa,aAAA;AACZC,UAAAA;AACAD,UAAAA,SAAShD,WAAW,GAAG;AAEzB,eAAO,CACL;AAAA,UACE,GAAG+C;AAAAA,UACHlD;AAAAA,UACAiC,OAAO;AAAA,QAAA,CACR;AAAA,MAEL;AAEMA,YAAAA,QAAQnC,kBAAkBqD,UAAUnD,OAAO;AAEjD,UAAImD,SAASlB,KAAK,KAAKkB,SAASlB,KAAK,EAAEjC,YAAYA,SAAS;AAE/CmD,mBAAAA;AAAAA,MAAAA,OACN;AAcL,cAAME,UAAU;AAAA,UACd,GAAGH;AAAAA,UACHlD;AAAAA,UACAiC;AAAAA,QAAAA;AAIFmB,mBAAWD,SAASG;AACXC,iBAAAA,OAAOtB,OAAO,GAAGoB,OAAO;AAAA,MACnC;AACSG,eAAAA,QAAQ,CAACrB,MAAMK,aAAa;AACnCL,aAAKF,QAAQO;AAAAA,MAAAA,CACd;AACMY,aAAAA;AAAAA,IAAAA,CACR;AAAA,EACH,GAAG,CAAE,CAAA;AAECtB,QAAAA,uBAAuBmB,kBAAY,CAACjD,YAAkB;AACrDmD,QAAAA,CAAAA,aACHA,SAASM,OAAO,CAACtB,SAAenC,YAAYmC,KAAKnC,OAAO,CAC1D;AAAA,EACF,GAAG,CAAE,CAAA;AAECmB,QAAAA,QAAQuC,MAAAA,QACZ,OAAO;AAAA,IACL7C,aAAakC;AAAAA,IACblB;AAAAA,IACAC;AAAAA,IACAC,UAAUe;AAAAA,IACVlC;AAAAA,EAAAA,IAEF,CAACmC,OAAOlB,oBAAoBC,sBAAsBgB,IAAIlC,KAAK,CAC7D;AAEA,SACG+C,2BAAAA,IAAA,kBAAkB,UAAlB,EAA2B,OACzBd,SACH,CAAA;AAEJ;;;"}
|
|
1
|
+
{"version":3,"file":"descendants.cjs","sources":["../../../../../src/components/VerticalNavigation/TreeView/descendants.tsx"],"sourcesContent":["/**\n * Copied from https://github.com/mui-org/material-ui/blob/8763de1633d80295e7b83d8c21040dad333e6699/packages/material-ui-lab/src/TreeView/descendants.js\n * Credit: https://github.com/reach/reach-ui/blob/86a046f54d53b6420e392b3fa56dd991d9d4e458/packages/descendants/README.md\n *\n * - Added level (depth) property.\n * - Use local copy of useEnhancedEffect.\n */\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { useEnhancedEffect } from \"@core/hooks\";\n\ntype Item = {\n element?;\n index?;\n [key: string]: unknown;\n};\n\nfunction binaryFindElement(array, element) {\n let start = 0;\n let end = array.length - 1;\n\n while (start <= end) {\n const middle = Math.floor((start + end) / 2);\n\n if (array[middle].element === element) {\n return middle;\n }\n\n if (\n array[middle].element.compareDocumentPosition(element) &&\n Node.DOCUMENT_POSITION_PRECEDING\n ) {\n end = middle - 1;\n } else {\n start = middle + 1;\n }\n }\n\n return start;\n}\n\nconst DescendantContext = createContext<DescendantContextValue>({\n level: 0,\n descendants: [],\n});\n\ninterface DescendantContextValue {\n level?: number;\n registerDescendant?;\n unregisterDescendant?;\n descendants: Item[];\n parentId?;\n}\n\nfunction usePrevious(value) {\n const ref = useRef(null);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nconst noop = () => {};\n\n/**\n * This hook registers our descendant by passing it into an array. We can then\n * search that array by to find its index when registering it in the component.\n * We use this for focus management, keyboard navigation, and typeahead\n * functionality for some components.\n *\n * The hook accepts the element node\n *\n * Our main goals with this are:\n * 1) maximum composability,\n * 2) minimal API friction\n * 3) SSR compatibility*\n * 4) concurrent safe\n * 5) index always up-to-date with the tree despite changes\n * 6) works with memoization of any component in the tree (hopefully)\n *\n * * As for SSR, the good news is that we don't actually need the index on the\n * server for most use-cases, as we are only using it to determine the order of\n * composed descendants for keyboard navigation.\n */\nexport function useDescendant(descendant) {\n const [, forceUpdate] = useState<{} | null>();\n const {\n registerDescendant = noop,\n unregisterDescendant = noop,\n descendants = [],\n parentId = null,\n level = 0,\n } = useContext(DescendantContext);\n\n // This will initially return -1 because we haven't registered the descendant\n // on the first render. After we register, this will then return the correct\n // index on the following render and we will re-register descendants\n // so that everything is up-to-date before the user interacts with a\n // collection.\n const index = descendants.findIndex(\n (item) => item.element === descendant.element\n );\n\n const previousDescendants: Item[] | null = usePrevious(descendants);\n\n // We also need to re-register descendants any time ANY of the other\n // descendants have changed. My brain was melting when I wrote this and it\n // feels a little off, but checking in render and using the result in the\n // effect's dependency array works well enough.\n const someDescendantsHaveChanged = descendants.some(\n (newDescendant, position) => {\n return (\n previousDescendants && previousDescendants[position]\n // previousDescendants[position].element !== newDescendant.element\n // was not able to type check this, did not any difference\n );\n }\n );\n\n // Prevent any flashing\n useEnhancedEffect(() => {\n if (descendant.element) {\n registerDescendant({\n ...descendant,\n index,\n });\n return () => {\n unregisterDescendant(descendant.element);\n };\n }\n forceUpdate({});\n\n return undefined;\n }, [\n registerDescendant,\n unregisterDescendant,\n index,\n someDescendantsHaveChanged,\n descendant,\n ]);\n\n return { parentId, index, level };\n}\n\nexport const DescendantProvider = (props: DescendantProviderProps) => {\n const { children, id, level } = props;\n\n const [items, set] = useState<Item[]>([]);\n\n const registerDescendant = useCallback(({ element, ...other }) => {\n set((oldItems) => {\n let newItems;\n if (oldItems.length === 0) {\n // If there are no items, register at index 0 and bail.\n return [\n {\n ...other,\n element,\n index: 0,\n },\n ];\n }\n\n const index = binaryFindElement(oldItems, element);\n\n if (oldItems[index] && oldItems[index].element === element) {\n // If the element is already registered, just use the same array\n newItems = oldItems;\n } else {\n // When registering a descendant, we need to make sure we insert in\n // into the array in the same order that it appears in the DOM. So as\n // new descendants are added or maybe some are removed, we always know\n // that the array is up-to-date and correct.\n //\n // So here we look at our registered descendants and see if the new\n // element we are adding appears earlier than an existing descendant's\n // DOM node via `node.compareDocumentPosition`. If it does, we insert\n // the new element at this index. Because `registerDescendant` will be\n // called in an effect every time the descendants state value changes,\n // we should be sure that this index is accurate when descendent\n // elements come or go from our component.\n\n const newItem = {\n ...other,\n element,\n index,\n };\n\n // If an index is not found we will push the element to the end.\n newItems = oldItems.slice();\n newItems.splice(index, 0, newItem);\n }\n newItems.forEach((item, position) => {\n item.index = position;\n });\n return newItems;\n });\n }, []);\n\n const unregisterDescendant = useCallback((element: Item) => {\n set((oldItems) =>\n oldItems.filter((item: Item) => element !== item.element)\n );\n }, []);\n\n const value = useMemo(\n () => ({\n descendants: items,\n registerDescendant,\n unregisterDescendant,\n parentId: id,\n level,\n }),\n [items, registerDescendant, unregisterDescendant, id, level]\n );\n\n return (\n <DescendantContext.Provider value={value}>\n {children}\n </DescendantContext.Provider>\n );\n};\n\nexport type DescendantProviderProps = {\n children?: React.ReactNode;\n id?: string;\n level?: number;\n};\n"],"names":["binaryFindElement","array","element","start","end","length","middle","Math","floor","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DescendantContext","createContext","level","descendants","usePrevious","value","ref","useRef","useEffect","current","noop","useDescendant","descendant","forceUpdate","useState","registerDescendant","unregisterDescendant","parentId","useContext","index","findIndex","item","previousDescendants","someDescendantsHaveChanged","some","newDescendant","position","useEnhancedEffect","undefined","DescendantProvider","props","children","id","items","set","useCallback","other","oldItems","newItems","newItem","slice","splice","forEach","filter","useMemo","jsx"],"mappings":";;;;;AA0BA,SAASA,kBAAkBC,OAAOC,SAAS;AACzC,MAAIC,QAAQ;AACRC,MAAAA,MAAMH,MAAMI,SAAS;AAEzB,SAAOF,SAASC,KAAK;AACnB,UAAME,SAASC,KAAKC,OAAOL,QAAQC,OAAO,CAAC;AAE3C,QAAIH,MAAMK,MAAM,EAAEJ,YAAYA,SAAS;AAC9BI,aAAAA;AAAAA,IACT;AAGEL,QAAAA,MAAMK,MAAM,EAAEJ,QAAQO,wBAAwBP,OAAO,KACrDQ,KAAKC,6BACL;AACAP,YAAME,SAAS;AAAA,IAAA,OACV;AACLH,cAAQG,SAAS;AAAA,IACnB;AAAA,EACF;AAEOH,SAAAA;AACT;AAEA,MAAMS,oBAAoBC,MAAAA,cAAsC;AAAA,EAC9DC,OAAO;AAAA,EACPC,aAAa,CAAA;AACf,CAAC;AAUD,SAASC,YAAYC,OAAO;AACpBC,QAAAA,MAAMC,aAAO,IAAI;AACvBC,QAAAA,UAAU,MAAM;AACdF,QAAIG,UAAUJ;AAAAA,EAAAA,GACb,CAACA,KAAK,CAAC;AACV,SAAOC,IAAIG;AACb;AAEA,MAAMC,OAAOA,MAAM;AAAC;AAsBb,SAASC,cAAcC,YAAY;AACxC,QAAM,CAAGC,EAAAA,WAAW,IAAIC,MAAAA;AAClB,QAAA;AAAA,IACJC,qBAAqBL;AAAAA,IACrBM,uBAAuBN;AAAAA,IACvBP,cAAc,CAAE;AAAA,IAChBc,WAAW;AAAA,IACXf,QAAQ;AAAA,EAAA,IACNgB,MAAAA,WAAWlB,iBAAiB;AAOhC,QAAMmB,QAAQhB,YAAYiB,UACvBC,UAASA,KAAK/B,YAAYsB,WAAWtB,OACxC;AAEMgC,QAAAA,sBAAqClB,YAAYD,WAAW;AAMlE,QAAMoB,6BAA6BpB,YAAYqB,KAC7C,CAACC,eAAeC,aAAa;AAEzBJ,WAAAA,uBAAuBA,oBAAoBI,QAAQ;AAAA,EAAA,CAKzD;AAGAC,oBAAAA,kBAAkB,MAAM;AACtB,QAAIf,WAAWtB,SAAS;AACH,yBAAA;AAAA,QACjB,GAAGsB;AAAAA,QACHO;AAAAA,MAAAA,CACD;AACD,aAAO,MAAM;AACXH,6BAAqBJ,WAAWtB,OAAO;AAAA,MAAA;AAAA,IAE3C;AACAuB,gBAAY,CAAE,CAAA;AAEPe,WAAAA;AAAAA,EAAAA,GACN,CACDb,oBACAC,sBACAG,OACAI,4BACAX,UAAU,CACX;AAEM,SAAA;AAAA,IAAEK;AAAAA,IAAUE;AAAAA,IAAOjB;AAAAA,EAAAA;AAC5B;AAEa2B,MAAAA,qBAAqBA,CAACC,UAAmC;AAC9D,QAAA;AAAA,IAAEC;AAAAA,IAAUC;AAAAA,IAAI9B;AAAAA,EAAU4B,IAAAA;AAEhC,QAAM,CAACG,OAAOC,GAAG,IAAIpB,MAAAA,SAAiB,CAAE,CAAA;AAElCC,QAAAA,qBAAqBoB,MAAAA,YAAY,CAAC;AAAA,IAAE7C;AAAAA,IAAS,GAAG8C;AAAAA,EAAAA,MAAY;AAChEF,QAAKG,CAAa,aAAA;AACZC,UAAAA;AACAD,UAAAA,SAAS5C,WAAW,GAAG;AAEzB,eAAO,CACL;AAAA,UACE,GAAG2C;AAAAA,UACH9C;AAAAA,UACA6B,OAAO;AAAA,QAAA,CACR;AAAA,MAEL;AAEMA,YAAAA,QAAQ/B,kBAAkBiD,UAAU/C,OAAO;AAEjD,UAAI+C,SAASlB,KAAK,KAAKkB,SAASlB,KAAK,EAAE7B,YAAYA,SAAS;AAE/C+C,mBAAAA;AAAAA,MAAAA,OACN;AAcL,cAAME,UAAU;AAAA,UACd,GAAGH;AAAAA,UACH9C;AAAAA,UACA6B;AAAAA,QAAAA;AAIFmB,mBAAWD,SAASG;AACXC,iBAAAA,OAAOtB,OAAO,GAAGoB,OAAO;AAAA,MACnC;AACSG,eAAAA,QAAQ,CAACrB,MAAMK,aAAa;AACnCL,aAAKF,QAAQO;AAAAA,MAAAA,CACd;AACMY,aAAAA;AAAAA,IAAAA,CACR;AAAA,EACH,GAAG,CAAE,CAAA;AAECtB,QAAAA,uBAAuBmB,kBAAY,CAAC7C,YAAkB;AACrD+C,QAAAA,CAAAA,aACHA,SAASM,OAAO,CAACtB,SAAe/B,YAAY+B,KAAK/B,OAAO,CAC1D;AAAA,EACF,GAAG,CAAE,CAAA;AAECe,QAAAA,QAAQuC,MAAAA,QACZ,OAAO;AAAA,IACLzC,aAAa8B;AAAAA,IACblB;AAAAA,IACAC;AAAAA,IACAC,UAAUe;AAAAA,IACV9B;AAAAA,EAAAA,IAEF,CAAC+B,OAAOlB,oBAAoBC,sBAAsBgB,IAAI9B,KAAK,CAC7D;AAEA,SACG2C,2BAAAA,IAAA,kBAAkB,UAAlB,EAA2B,OACzBd,SACH,CAAA;AAEJ;;;"}
|
|
@@ -7,9 +7,6 @@ const useControlled = (controlledProp, initialState) => {
|
|
|
7
7
|
} = React.useRef(controlledProp !== void 0);
|
|
8
8
|
const [valueState, setValue] = React.useState(initialState);
|
|
9
9
|
const value = isControlled ? controlledProp : valueState;
|
|
10
|
-
if (process.env.NODE_ENV !== "production" && isControlled !== (controlledProp !== void 0)) {
|
|
11
|
-
console.error([`A component is changing the ${isControlled ? "" : "un"}controlled state to be ${isControlled ? "un" : ""}controlled.`, "Elements should not switch from uncontrolled to controlled (or vice versa).", "Decide between using a controlled or uncontrolled element for the lifetime of the component.", "The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`."].join("\n"));
|
|
12
|
-
}
|
|
13
10
|
const setValueIfUncontrolled = React.useCallback((newValue) => {
|
|
14
11
|
if (!isControlled) {
|
|
15
12
|
setValue(newValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useControlled.cjs","sources":["../../../src/hooks/useControlled.ts"],"sourcesContent":["// based in https://raw.githubusercontent.com/mui-org/material-ui/next/packages/material-ui/src/utils/useControlled.js\n// modifications:\n// 1. renamed default to initialState, to convey the same meaning of the useState hook.\n// 2. removed the console error when initialState changes; that is acceptable and just ignored, like in useState.\n// 3. the console error regarding switching from controlled to uncontrolled (or vice-versa) is sent synchronously\n// so the stacktrace shows the caller\n// 4. given that, the hook signature was simplified, no need for metadata\n\nimport { useRef, useState, useCallback } from \"react\";\n\nexport const useControlled = (controlledProp, initialState) => {\n const { current: isControlled } = useRef(controlledProp !== undefined);\n const [valueState, setValue] = useState(initialState);\n const value = isControlled ? controlledProp : valueState;\n\n if (
|
|
1
|
+
{"version":3,"file":"useControlled.cjs","sources":["../../../src/hooks/useControlled.ts"],"sourcesContent":["// based in https://raw.githubusercontent.com/mui-org/material-ui/next/packages/material-ui/src/utils/useControlled.js\n// modifications:\n// 1. renamed default to initialState, to convey the same meaning of the useState hook.\n// 2. removed the console error when initialState changes; that is acceptable and just ignored, like in useState.\n// 3. the console error regarding switching from controlled to uncontrolled (or vice-versa) is sent synchronously\n// so the stacktrace shows the caller\n// 4. given that, the hook signature was simplified, no need for metadata\n\nimport { useRef, useState, useCallback } from \"react\";\n\nexport const useControlled = (controlledProp, initialState) => {\n const { current: isControlled } = useRef(controlledProp !== undefined);\n const [valueState, setValue] = useState(initialState);\n const value = isControlled ? controlledProp : valueState;\n\n if (import.meta.env.DEV && isControlled !== (controlledProp !== undefined)) {\n // eslint-disable-next-line no-console\n console.error(\n [\n `A component is changing the ${\n isControlled ? \"\" : \"un\"\n }controlled state to be ${isControlled ? \"un\" : \"\"}controlled.`,\n \"Elements should not switch from uncontrolled to controlled (or vice versa).\",\n \"Decide between using a controlled or uncontrolled element for the lifetime of the component.\",\n \"The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.\",\n ].join(\"\\n\")\n );\n }\n\n const setValueIfUncontrolled = useCallback(\n (newValue) => {\n if (!isControlled) {\n setValue(newValue);\n }\n },\n [isControlled]\n );\n\n return [value, setValueIfUncontrolled];\n};\n"],"names":["useControlled","controlledProp","initialState","current","isControlled","useRef","undefined","valueState","setValue","useState","value","setValueIfUncontrolled","useCallback","newValue"],"mappings":";;;AAUaA,MAAAA,gBAAgBA,CAACC,gBAAgBC,iBAAiB;AACvD,QAAA;AAAA,IAAEC,SAASC;AAAAA,EAAa,IAAIC,aAAOJ,mBAAmBK,MAAS;AACrE,QAAM,CAACC,YAAYC,QAAQ,IAAIC,eAASP,YAAY;AAC9CQ,QAAAA,QAAQN,eAAeH,iBAAiBM;AAgBxCI,QAAAA,yBAAyBC,kBAC5BC,CAAa,aAAA;AACZ,QAAI,CAACT,cAAc;AACjBI,eAASK,QAAQ;AAAA,IACnB;AAAA,EAAA,GAEF,CAACT,YAAY,CACf;AAEO,SAAA,CAACM,OAAOC,sBAAsB;AACvC;;"}
|