UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

67 lines (66 loc) 2.11 kB
import { jsx } from "react/jsx-runtime"; import { useSlotProps } from "@mui/base/utils"; import { useDefaultProps } from "@hitachivantara/uikit-react-utils"; import { HvIcon } from "../icons.js"; import { fixedForwardRef } from "../types/generic.js"; import { useTreeView } from "./internals/hooks/useTreeView.js"; import { TreeViewProvider } from "./internals/TreeViewProvider.js"; import { useClasses } from "./TreeView.styles.js"; import { staticClasses } from "./TreeView.styles.js"; import { DEFAULT_TREE_VIEW_PLUGINS } from "./internals/hooks/plugins/defaultPlugins.js"; const HvTreeView = fixedForwardRef(function HvTreeView2(props, ref) { const { id, children, classes: classesProp, className, disabledItemsFocusable, multiSelect, expanded, defaultExpanded, selected, defaultSelected, disableSelection, defaultCollapseIcon = /* @__PURE__ */ jsx(HvIcon, { name: "CaretDown", size: "xs" }), defaultExpandIcon = /* @__PURE__ */ jsx(HvIcon, { name: "CaretRight", size: "xs" }), defaultEndIcon, defaultParentIcon, onNodeSelect, onNodeToggle, onNodeFocus, ...others } = useDefaultProps("HvTreeView", props); const { classes, cx } = useClasses(classesProp); const { getRootProps, contextValue } = useTreeView({ disabledItemsFocusable, expanded, defaultExpanded, onNodeToggle, onNodeFocus, disableSelection, defaultSelected, selected, multiSelect, onNodeSelect, id, defaultCollapseIcon, defaultEndIcon, defaultExpandIcon, defaultParentIcon, plugins: DEFAULT_TREE_VIEW_PLUGINS, rootRef: ref }); const rootProps = useSlotProps({ elementType: "ul", externalSlotProps: {}, externalForwardedProps: others, className: classes.root, getSlotProps: getRootProps, ownerState: props }); return /* @__PURE__ */ jsx(TreeViewProvider, { value: contextValue, children: /* @__PURE__ */ jsx("ul", { className: cx(classes.root, className), ...rootProps, ...others, children }) }); }); export { HvTreeView, staticClasses as treeView2Classes };