@mui/x-tree-view 8.0.0-beta.1 → 8.0.0-beta.2
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/CHANGELOG.md +94 -0
- package/RichTreeView/RichTreeView.js +17 -5
- package/RichTreeView/richTreeViewClasses.d.ts +2 -4
- package/RichTreeView/richTreeViewClasses.js +1 -1
- package/SimpleTreeView/SimpleTreeView.js +17 -5
- package/SimpleTreeView/simpleTreeViewClasses.d.ts +2 -4
- package/SimpleTreeView/simpleTreeViewClasses.js +1 -1
- package/TreeItem/TreeItem.d.ts +1 -1
- package/TreeItem/TreeItem.js +45 -49
- package/TreeItem/index.d.ts +2 -1
- package/TreeItem/index.js +13 -21
- package/TreeItem/treeItemClasses.d.ts +40 -18
- package/TreeItem/treeItemClasses.js +3 -1
- package/TreeItemLabelInput/TreeItemLabelInput.js +2 -2
- package/esm/RichTreeView/RichTreeView.js +17 -5
- package/esm/RichTreeView/richTreeViewClasses.d.ts +2 -4
- package/esm/RichTreeView/richTreeViewClasses.js +1 -1
- package/esm/SimpleTreeView/SimpleTreeView.js +17 -5
- package/esm/SimpleTreeView/simpleTreeViewClasses.d.ts +2 -4
- package/esm/SimpleTreeView/simpleTreeViewClasses.js +1 -1
- package/esm/TreeItem/TreeItem.d.ts +1 -1
- package/esm/TreeItem/TreeItem.js +45 -49
- package/esm/TreeItem/index.d.ts +2 -1
- package/esm/TreeItem/index.js +1 -1
- package/esm/TreeItem/treeItemClasses.d.ts +40 -18
- package/esm/TreeItem/treeItemClasses.js +3 -1
- package/esm/TreeItemLabelInput/TreeItemLabelInput.js +2 -2
- package/esm/index.js +1 -1
- package/esm/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +1 -1
- package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +3 -1
- package/esm/internals/TreeViewProvider/TreeViewContext.js +8 -1
- package/esm/internals/TreeViewProvider/TreeViewProvider.d.ts +1 -1
- package/esm/internals/TreeViewProvider/TreeViewProvider.js +17 -5
- package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +3 -1
- package/esm/internals/TreeViewProvider/TreeViewStyleContext.d.ts +33 -0
- package/esm/internals/TreeViewProvider/TreeViewStyleContext.js +13 -0
- package/esm/internals/TreeViewProvider/index.d.ts +1 -1
- package/esm/internals/TreeViewProvider/index.js +1 -1
- package/esm/internals/index.d.ts +2 -1
- package/esm/internals/plugins/useTreeViewItemCustomization/index.d.ts +2 -0
- package/esm/internals/plugins/useTreeViewItemCustomization/index.js +1 -0
- package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +3 -0
- package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +24 -0
- package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +42 -0
- package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +1 -0
- package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +2 -3
- package/esm/useTreeItem/useTreeItem.js +5 -0
- package/esm/useTreeItem/useTreeItem.types.d.ts +9 -0
- package/index.js +1 -1
- package/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +2 -2
- package/internals/TreeViewProvider/TreeViewContext.d.ts +3 -1
- package/internals/TreeViewProvider/TreeViewContext.js +10 -2
- package/internals/TreeViewProvider/TreeViewProvider.d.ts +1 -1
- package/internals/TreeViewProvider/TreeViewProvider.js +17 -5
- package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +3 -1
- package/internals/TreeViewProvider/TreeViewStyleContext.d.ts +33 -0
- package/internals/TreeViewProvider/TreeViewStyleContext.js +21 -0
- package/internals/TreeViewProvider/index.d.ts +1 -1
- package/internals/TreeViewProvider/index.js +2 -2
- package/internals/index.d.ts +2 -1
- package/internals/plugins/useTreeViewItemCustomization/index.d.ts +2 -0
- package/internals/plugins/useTreeViewItemCustomization/index.js +12 -0
- package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +3 -0
- package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +32 -0
- package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +42 -0
- package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +5 -0
- package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +2 -3
- package/modern/RichTreeView/RichTreeView.js +17 -5
- package/modern/RichTreeView/richTreeViewClasses.d.ts +2 -4
- package/modern/RichTreeView/richTreeViewClasses.js +1 -1
- package/modern/SimpleTreeView/SimpleTreeView.js +17 -5
- package/modern/SimpleTreeView/simpleTreeViewClasses.d.ts +2 -4
- package/modern/SimpleTreeView/simpleTreeViewClasses.js +1 -1
- package/modern/TreeItem/TreeItem.d.ts +1 -1
- package/modern/TreeItem/TreeItem.js +45 -49
- package/modern/TreeItem/index.d.ts +2 -1
- package/modern/TreeItem/index.js +1 -1
- package/modern/TreeItem/treeItemClasses.d.ts +40 -18
- package/modern/TreeItem/treeItemClasses.js +3 -1
- package/modern/TreeItemLabelInput/TreeItemLabelInput.js +2 -2
- package/modern/index.js +1 -1
- package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +1 -1
- package/modern/internals/TreeViewProvider/TreeViewContext.d.ts +3 -1
- package/modern/internals/TreeViewProvider/TreeViewContext.js +8 -1
- package/modern/internals/TreeViewProvider/TreeViewProvider.d.ts +1 -1
- package/modern/internals/TreeViewProvider/TreeViewProvider.js +17 -5
- package/modern/internals/TreeViewProvider/TreeViewProvider.types.d.ts +3 -1
- package/modern/internals/TreeViewProvider/TreeViewStyleContext.d.ts +33 -0
- package/modern/internals/TreeViewProvider/TreeViewStyleContext.js +13 -0
- package/modern/internals/TreeViewProvider/index.d.ts +1 -1
- package/modern/internals/TreeViewProvider/index.js +1 -1
- package/modern/internals/index.d.ts +2 -1
- package/modern/internals/plugins/useTreeViewItemCustomization/index.d.ts +2 -0
- package/modern/internals/plugins/useTreeViewItemCustomization/index.js +1 -0
- package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +3 -0
- package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +24 -0
- package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +42 -0
- package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +1 -0
- package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +2 -3
- package/modern/useTreeItem/useTreeItem.js +5 -0
- package/modern/useTreeItem/useTreeItem.types.d.ts +9 -0
- package/package.json +2 -2
- package/tsconfig.build.tsbuildinfo +1 -1
- package/useTreeItem/useTreeItem.js +5 -0
- package/useTreeItem/useTreeItem.types.d.ts +9 -0
- package/esm/internals/TreeViewProvider/useTreeViewContext.d.ts +0 -3
- package/esm/internals/TreeViewProvider/useTreeViewContext.js +0 -9
- package/internals/TreeViewProvider/useTreeViewContext.d.ts +0 -3
- package/internals/TreeViewProvider/useTreeViewContext.js +0 -17
- package/modern/internals/TreeViewProvider/useTreeViewContext.d.ts +0 -3
- package/modern/internals/TreeViewProvider/useTreeViewContext.js +0 -9
|
@@ -17,10 +17,21 @@ const useUtilityClasses = ownerState => {
|
|
|
17
17
|
const {
|
|
18
18
|
classes
|
|
19
19
|
} = ownerState;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
return React.useMemo(() => {
|
|
21
|
+
const slots = {
|
|
22
|
+
root: ['root'],
|
|
23
|
+
item: ['item'],
|
|
24
|
+
itemContent: ['itemContent'],
|
|
25
|
+
itemGroupTransition: ['itemGroupTransition'],
|
|
26
|
+
itemIconContainer: ['itemIconContainer'],
|
|
27
|
+
itemLabel: ['itemLabel'],
|
|
28
|
+
// itemLabelInput: ['itemLabelInput'], => feature not available on this component
|
|
29
|
+
itemCheckbox: ['itemCheckbox']
|
|
30
|
+
// itemDragAndDropOverlay: ['itemDragAndDropOverlay'], => feature not available on this component
|
|
31
|
+
// itemErrorIcon: ['itemErrorIcon'], => feature not available on this component
|
|
32
|
+
};
|
|
33
|
+
return composeClasses(slots, getSimpleTreeViewUtilityClass, classes);
|
|
34
|
+
}, [classes]);
|
|
24
35
|
};
|
|
25
36
|
export const SimpleTreeViewRoot = styled('ul', {
|
|
26
37
|
name: 'MuiSimpleTreeView',
|
|
@@ -80,7 +91,8 @@ const SimpleTreeView = /*#__PURE__*/React.forwardRef(function SimpleTreeView(inP
|
|
|
80
91
|
ownerState
|
|
81
92
|
});
|
|
82
93
|
return /*#__PURE__*/_jsx(TreeViewProvider, {
|
|
83
|
-
|
|
94
|
+
contextValue: contextValue,
|
|
95
|
+
classes: classes,
|
|
84
96
|
children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps))
|
|
85
97
|
});
|
|
86
98
|
});
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
root: string;
|
|
4
|
-
}
|
|
1
|
+
import { TreeViewClasses } from "../internals/TreeViewProvider/TreeViewStyleContext.js";
|
|
2
|
+
export interface SimpleTreeViewClasses extends Omit<TreeViewClasses, 'itemDragAndDropOverlay' | 'itemLabelInput' | 'itemErrorIcon' | 'itemLoadingIcon'> {}
|
|
5
3
|
export type SimpleTreeViewClassKey = keyof SimpleTreeViewClasses;
|
|
6
4
|
export declare function getSimpleTreeViewUtilityClass(slot: string): string;
|
|
7
5
|
export declare const simpleTreeViewClasses: SimpleTreeViewClasses;
|
|
@@ -3,4 +3,4 @@ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
|
|
|
3
3
|
export function getSimpleTreeViewUtilityClass(slot) {
|
|
4
4
|
return generateUtilityClass('MuiSimpleTreeView', slot);
|
|
5
5
|
}
|
|
6
|
-
export const simpleTreeViewClasses = generateUtilityClasses('MuiSimpleTreeView', ['root']);
|
|
6
|
+
export const simpleTreeViewClasses = generateUtilityClasses('MuiSimpleTreeView', ['root', 'item', 'itemContent', 'itemGroupTransition', 'itemIconContainer', 'itemLabel', 'itemCheckbox']);
|
|
@@ -15,7 +15,7 @@ export declare const TreeItemErrorContainer: import("@emotion/styled").StyledCom
|
|
|
15
15
|
export declare const TreeItemLoadingContainer: import("@emotion/styled").StyledComponent<Pick<import("@mui/material").CircularProgressProps, keyof import("@mui/material").CircularProgressProps> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
16
16
|
export declare const TreeItemCheckbox: import("@emotion/styled").StyledComponent<Pick<Omit<CheckboxProps & {
|
|
17
17
|
visible?: boolean;
|
|
18
|
-
}, "ref"> & React.RefAttributes<HTMLButtonElement>, "hidden" | "visible" | "color" | "content" | "size" | "style" | "icon" | "translate" | "disabled" | "form" | "slot" | "title" | "action" | "checked" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "readOnly" | "required" | "value" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "sx" | "classes" | "component" | "slots" | "slotProps" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "checkedIcon" | "inputProps" | "inputRef" | "indeterminate" | "indeterminateIcon" | keyof React.RefAttributes<HTMLButtonElement>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
18
|
+
}, "ref"> & React.RefAttributes<HTMLButtonElement>, "hidden" | "visible" | "color" | "content" | "size" | "style" | "icon" | "translate" | "disabled" | "form" | "slot" | "title" | "action" | "checked" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "readOnly" | "required" | "value" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "part" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "sx" | "classes" | "component" | "slots" | "slotProps" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "checkedIcon" | "inputProps" | "inputRef" | "indeterminate" | "indeterminateIcon" | keyof React.RefAttributes<HTMLButtonElement>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
|
|
19
19
|
type TreeItemComponent = ((props: TreeItemProps & React.RefAttributes<HTMLLIElement>) => React.JSX.Element) & {
|
|
20
20
|
propTypes?: any;
|
|
21
21
|
};
|
package/esm/TreeItem/TreeItem.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
4
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
5
5
|
const _excluded = ["visible"],
|
|
6
|
-
_excluded2 = ["id", "itemId", "label", "disabled", "children", "slots", "slotProps"];
|
|
6
|
+
_excluded2 = ["id", "itemId", "label", "disabled", "children", "slots", "slotProps", "classes"];
|
|
7
7
|
import * as React from 'react';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
import clsx from 'clsx';
|
|
@@ -22,6 +22,7 @@ import { TreeItemIcon } from "../TreeItemIcon/index.js";
|
|
|
22
22
|
import { TreeItemDragAndDropOverlay } from "../TreeItemDragAndDropOverlay/index.js";
|
|
23
23
|
import { TreeItemProvider } from "../TreeItemProvider/index.js";
|
|
24
24
|
import { TreeItemLabelInput } from "../TreeItemLabelInput/index.js";
|
|
25
|
+
import { useTreeViewStyleContext } from "../internals/TreeViewProvider/TreeViewStyleContext.js";
|
|
25
26
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
26
27
|
const useThemeProps = createUseThemeProps('MuiTreeItem');
|
|
27
28
|
export const TreeItemRoot = styled('li', {
|
|
@@ -61,43 +62,26 @@ export const TreeItemContent = styled('div', {
|
|
|
61
62
|
backgroundColor: 'transparent'
|
|
62
63
|
}
|
|
63
64
|
},
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
}, {
|
|
80
|
-
props: ({
|
|
81
|
-
status
|
|
82
|
-
}) => status.selected,
|
|
83
|
-
style: {
|
|
84
|
-
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
|
|
85
|
-
'&:hover': {
|
|
86
|
-
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
|
|
87
|
-
// Reset on touch devices, it doesn't add specificity
|
|
88
|
-
'@media (hover: none)': {
|
|
89
|
-
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)
|
|
90
|
-
}
|
|
65
|
+
'&[data-disabled]': {
|
|
66
|
+
opacity: (theme.vars || theme).palette.action.disabledOpacity,
|
|
67
|
+
backgroundColor: 'transparent'
|
|
68
|
+
},
|
|
69
|
+
'&[data-focused]': {
|
|
70
|
+
backgroundColor: (theme.vars || theme).palette.action.focus
|
|
71
|
+
},
|
|
72
|
+
'&[data-selected]': {
|
|
73
|
+
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),
|
|
74
|
+
'&:hover': {
|
|
75
|
+
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
|
|
76
|
+
// Reset on touch devices, it doesn't add specificity
|
|
77
|
+
'@media (hover: none)': {
|
|
78
|
+
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)
|
|
91
79
|
}
|
|
92
80
|
}
|
|
93
|
-
},
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
style: {
|
|
98
|
-
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
|
|
99
|
-
}
|
|
100
|
-
}]
|
|
81
|
+
},
|
|
82
|
+
'&[data-selected][data-focused]': {
|
|
83
|
+
backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
|
|
84
|
+
}
|
|
101
85
|
}));
|
|
102
86
|
export const TreeItemLabel = styled('div', {
|
|
103
87
|
name: 'MuiTreeItem',
|
|
@@ -183,19 +167,25 @@ export const TreeItemCheckbox = styled(/*#__PURE__*/React.forwardRef((props, ref
|
|
|
183
167
|
})({
|
|
184
168
|
padding: 0
|
|
185
169
|
});
|
|
186
|
-
const useUtilityClasses =
|
|
170
|
+
const useUtilityClasses = classesProp => {
|
|
187
171
|
const {
|
|
188
|
-
classes
|
|
189
|
-
} =
|
|
172
|
+
classes: classesFromTreeView
|
|
173
|
+
} = useTreeViewStyleContext();
|
|
174
|
+
const classes = _extends({}, classesProp, {
|
|
175
|
+
root: clsx(classesProp?.root, classesFromTreeView.root),
|
|
176
|
+
content: clsx(classesProp?.content, classesFromTreeView.itemContent),
|
|
177
|
+
iconContainer: clsx(classesProp?.iconContainer, classesFromTreeView.itemIconContainer),
|
|
178
|
+
checkbox: clsx(classesProp?.checkbox, classesFromTreeView.itemCheckbox),
|
|
179
|
+
label: clsx(classesProp?.label, classesFromTreeView.itemLabel),
|
|
180
|
+
groupTransition: clsx(classesProp?.groupTransition, classesFromTreeView.itemGroupTransition),
|
|
181
|
+
labelInput: clsx(classesProp?.labelInput, classesFromTreeView.itemLabelInput),
|
|
182
|
+
dragAndDropOverlay: clsx(classesProp?.dragAndDropOverlay, classesFromTreeView.itemDragAndDropOverlay),
|
|
183
|
+
errorIcon: clsx(classesProp?.errorIcon, classesFromTreeView.itemErrorIcon),
|
|
184
|
+
loadingIcon: clsx(classesProp?.loadingIcon, classesFromTreeView.itemLoadingIcon)
|
|
185
|
+
});
|
|
190
186
|
const slots = {
|
|
191
187
|
root: ['root'],
|
|
192
188
|
content: ['content'],
|
|
193
|
-
expanded: ['expanded'],
|
|
194
|
-
editing: ['editing'],
|
|
195
|
-
editable: ['editable'],
|
|
196
|
-
selected: ['selected'],
|
|
197
|
-
focused: ['focused'],
|
|
198
|
-
disabled: ['disabled'],
|
|
199
189
|
iconContainer: ['iconContainer'],
|
|
200
190
|
checkbox: ['checkbox'],
|
|
201
191
|
label: ['label'],
|
|
@@ -203,7 +193,13 @@ const useUtilityClasses = ownerState => {
|
|
|
203
193
|
labelInput: ['labelInput'],
|
|
204
194
|
dragAndDropOverlay: ['dragAndDropOverlay'],
|
|
205
195
|
errorIcon: ['errorIcon'],
|
|
206
|
-
loadingIcon: ['loadingIcon']
|
|
196
|
+
loadingIcon: ['loadingIcon'],
|
|
197
|
+
expanded: ['expanded'],
|
|
198
|
+
editing: ['editing'],
|
|
199
|
+
editable: ['editable'],
|
|
200
|
+
selected: ['selected'],
|
|
201
|
+
focused: ['focused'],
|
|
202
|
+
disabled: ['disabled']
|
|
207
203
|
};
|
|
208
204
|
return composeClasses(slots, getTreeItemUtilityClass, classes);
|
|
209
205
|
};
|
|
@@ -229,7 +225,8 @@ export const TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps,
|
|
|
229
225
|
disabled,
|
|
230
226
|
children,
|
|
231
227
|
slots = {},
|
|
232
|
-
slotProps = {}
|
|
228
|
+
slotProps = {},
|
|
229
|
+
classes: classesProp
|
|
233
230
|
} = props,
|
|
234
231
|
other = _objectWithoutPropertiesLoose(props, _excluded2);
|
|
235
232
|
const {
|
|
@@ -252,8 +249,7 @@ export const TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps,
|
|
|
252
249
|
label,
|
|
253
250
|
disabled
|
|
254
251
|
});
|
|
255
|
-
const
|
|
256
|
-
const classes = useUtilityClasses(ownerState);
|
|
252
|
+
const classes = useUtilityClasses(classesProp);
|
|
257
253
|
const Root = slots.root ?? TreeItemRoot;
|
|
258
254
|
const rootProps = useSlotProps({
|
|
259
255
|
elementType: Root,
|
package/esm/TreeItem/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { TreeItem, TreeItemRoot, TreeItemContent, TreeItemIconContainer, TreeItemGroupTransition, TreeItemCheckbox, TreeItemLabel } from "./TreeItem.js";
|
|
2
2
|
export type { TreeItemProps, TreeItemSlots, TreeItemSlotProps } from './TreeItem.types';
|
|
3
|
-
export
|
|
3
|
+
export { getTreeItemUtilityClass, treeItemClasses } from "./treeItemClasses.js";
|
|
4
|
+
export type { TreeItemClassKey, TreeItemClasses } from './treeItemClasses';
|
package/esm/TreeItem/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { TreeItem, TreeItemRoot, TreeItemContent, TreeItemIconContainer, TreeItemGroupTransition, TreeItemCheckbox, TreeItemLabel } from "./TreeItem.js";
|
|
2
|
-
export
|
|
2
|
+
export { getTreeItemUtilityClass, treeItemClasses } from "./treeItemClasses.js";
|
|
@@ -1,32 +1,54 @@
|
|
|
1
1
|
export interface TreeItemClasses {
|
|
2
2
|
/** Styles applied to the root element. */
|
|
3
3
|
root: string;
|
|
4
|
-
/** Styles applied to the transition component. */
|
|
5
|
-
groupTransition: string;
|
|
6
4
|
/** Styles applied to the content element. */
|
|
7
5
|
content: string;
|
|
8
|
-
/**
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
selected: string;
|
|
12
|
-
/** State class applied to the content element when focused. */
|
|
13
|
-
focused: string;
|
|
14
|
-
/** State class applied to the element when disabled. */
|
|
15
|
-
disabled: string;
|
|
16
|
-
/** Styles applied to the Tree Item icon. */
|
|
6
|
+
/** Styles applied to the transition element. */
|
|
7
|
+
groupTransition: string;
|
|
8
|
+
/** Styles applied to the icon container element. */
|
|
17
9
|
iconContainer: string;
|
|
18
10
|
/** Styles applied to the label element. */
|
|
19
11
|
label: string;
|
|
12
|
+
/** Styles applied to the label input element (visible only when editing is enabled). */
|
|
13
|
+
labelInput: string;
|
|
20
14
|
/** Styles applied to the checkbox element. */
|
|
21
15
|
checkbox: string;
|
|
22
|
-
/** Styles applied to the
|
|
23
|
-
labelInput: string;
|
|
24
|
-
/** Styles applied to the content element when editing is enabled. */
|
|
25
|
-
editing: string;
|
|
26
|
-
/** Styles applied to the content of the items that are editable. */
|
|
27
|
-
editable: string;
|
|
28
|
-
/** Styles applied to the drag and drop overlay. */
|
|
16
|
+
/** Styles applied to the drag and drop overlay element. */
|
|
29
17
|
dragAndDropOverlay: string;
|
|
18
|
+
/** Styles applied to the error icon element */
|
|
19
|
+
errorIcon: string;
|
|
20
|
+
/** Styles applied to the loading icon element */
|
|
21
|
+
loadingIcon: string;
|
|
22
|
+
/**
|
|
23
|
+
* State class applied to the content element when the item is expanded.
|
|
24
|
+
* @deprecated Use the `data-expanded` attribute instead.
|
|
25
|
+
*/
|
|
26
|
+
expanded: string;
|
|
27
|
+
/**
|
|
28
|
+
* State class applied to the content element when the item is selected.
|
|
29
|
+
* @deprecated Use the `data-selected` attribute instead.
|
|
30
|
+
*/
|
|
31
|
+
selected: string;
|
|
32
|
+
/**
|
|
33
|
+
* State class applied to the content element when the item is focused.
|
|
34
|
+
* @deprecated Use the `data-focused` attribute instead.
|
|
35
|
+
*/
|
|
36
|
+
focused: string;
|
|
37
|
+
/**
|
|
38
|
+
* State class applied to the content element when the item is disabled.
|
|
39
|
+
* @deprecated Use the `data-disabled` attribute instead.
|
|
40
|
+
*/
|
|
41
|
+
disabled: string;
|
|
42
|
+
/**
|
|
43
|
+
* State class applied to the content element when the item is editable.
|
|
44
|
+
* @deprecated Use the `data-editable` attribute instead.
|
|
45
|
+
*/
|
|
46
|
+
editable: string;
|
|
47
|
+
/**
|
|
48
|
+
* State class applied to the content element when the item is being edited.
|
|
49
|
+
* @deprecated Use the `data-editing` attribute instead.
|
|
50
|
+
*/
|
|
51
|
+
editing: string;
|
|
30
52
|
}
|
|
31
53
|
export type TreeItemClassKey = keyof TreeItemClasses;
|
|
32
54
|
export declare function getTreeItemUtilityClass(slot: string): string;
|
|
@@ -3,4 +3,6 @@ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
|
|
|
3
3
|
export function getTreeItemUtilityClass(slot) {
|
|
4
4
|
return generateUtilityClass('MuiTreeItem', slot);
|
|
5
5
|
}
|
|
6
|
-
export const treeItemClasses = generateUtilityClasses('MuiTreeItem', ['root', '
|
|
6
|
+
export const treeItemClasses = generateUtilityClasses('MuiTreeItem', ['root', 'content', 'groupTransition', 'iconContainer', 'label', 'checkbox', 'labelInput', 'dragAndDropOverlay', 'errorIcon', 'loadingIcon',
|
|
7
|
+
// State classes, will be replaced by data-attrs in the next major
|
|
8
|
+
'expanded', 'selected', 'focused', 'disabled', 'editable', 'editing']);
|
|
@@ -12,13 +12,13 @@ const TreeItemLabelInput = styled('input', {
|
|
|
12
12
|
theme
|
|
13
13
|
}) => _extends({}, theme.typography.body1, {
|
|
14
14
|
width: '100%',
|
|
15
|
-
backgroundColor: theme.palette.background.paper,
|
|
15
|
+
backgroundColor: (theme.vars || theme).palette.background.paper,
|
|
16
16
|
borderRadius: theme.shape.borderRadius,
|
|
17
17
|
border: 'none',
|
|
18
18
|
padding: '0 2px',
|
|
19
19
|
boxSizing: 'border-box',
|
|
20
20
|
'&:focus': {
|
|
21
|
-
outline: `1px solid ${theme.palette.primary.main}`
|
|
21
|
+
outline: `1px solid ${(theme.vars || theme).palette.primary.main}`
|
|
22
22
|
}
|
|
23
23
|
}));
|
|
24
24
|
export { TreeItemLabelInput };
|
package/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { useTreeViewContext } from "./
|
|
3
|
+
import { useTreeViewContext } from "./TreeViewContext.js";
|
|
4
4
|
import { escapeOperandAttributeSelector } from "../utils/utils.js";
|
|
5
5
|
import { selectorItemOrderedChildrenIds } from "../plugins/useTreeViewItems/useTreeViewItems.selectors.js";
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { TreeViewAnyPluginSignature } from "../models/index.js";
|
|
2
3
|
import { TreeViewContextValue } from "./TreeViewProvider.types.js";
|
|
3
4
|
/**
|
|
4
5
|
* @ignore - internal component.
|
|
5
6
|
*/
|
|
6
|
-
export declare const TreeViewContext: React.Context<TreeViewContextValue<any> | null>;
|
|
7
|
+
export declare const TreeViewContext: React.Context<TreeViewContextValue<any> | null>;
|
|
8
|
+
export declare const useTreeViewContext: <TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []>() => TreeViewContextValue<TSignatures, TOptionalSignatures>;
|
|
@@ -5,4 +5,11 @@ import * as React from 'react';
|
|
|
5
5
|
export const TreeViewContext = /*#__PURE__*/React.createContext(null);
|
|
6
6
|
if (process.env.NODE_ENV !== 'production') {
|
|
7
7
|
TreeViewContext.displayName = 'TreeViewContext';
|
|
8
|
-
}
|
|
8
|
+
}
|
|
9
|
+
export const useTreeViewContext = () => {
|
|
10
|
+
const context = React.useContext(TreeViewContext);
|
|
11
|
+
if (context == null) {
|
|
12
|
+
throw new Error(['MUI X: Could not find the Tree View context.', 'It looks like you rendered your component outside of a SimpleTreeView or RichTreeView parent component.', 'This can also happen if you are bundling multiple versions of the Tree View.'].join('\n'));
|
|
13
|
+
}
|
|
14
|
+
return context;
|
|
15
|
+
};
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { TreeViewProviderProps } from "./TreeViewProvider.types.js";
|
|
3
3
|
import { TreeViewAnyPluginSignature } from "../models/index.js";
|
|
4
4
|
/**
|
|
5
|
-
* Sets up the contexts for the underlying
|
|
5
|
+
* Sets up the contexts for the underlying Tree Item components.
|
|
6
6
|
*
|
|
7
7
|
* @ignore - do not document.
|
|
8
8
|
*/
|
|
@@ -1,20 +1,32 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { TreeViewContext } from "./TreeViewContext.js";
|
|
3
|
+
import { TreeViewStyleContext } from "./TreeViewStyleContext.js";
|
|
3
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
const EMPTY_OBJECT = {};
|
|
6
|
+
|
|
4
7
|
/**
|
|
5
|
-
* Sets up the contexts for the underlying
|
|
8
|
+
* Sets up the contexts for the underlying Tree Item components.
|
|
6
9
|
*
|
|
7
10
|
* @ignore - do not document.
|
|
8
11
|
*/
|
|
9
12
|
export function TreeViewProvider(props) {
|
|
10
13
|
const {
|
|
11
|
-
|
|
14
|
+
contextValue,
|
|
15
|
+
classes = EMPTY_OBJECT,
|
|
12
16
|
children
|
|
13
17
|
} = props;
|
|
18
|
+
|
|
19
|
+
// TODO: Add the icons to this context and drop useTreeViewIcons
|
|
20
|
+
const styleContextValue = React.useMemo(() => ({
|
|
21
|
+
classes
|
|
22
|
+
}), [classes]);
|
|
14
23
|
return /*#__PURE__*/_jsx(TreeViewContext.Provider, {
|
|
15
|
-
value:
|
|
16
|
-
children:
|
|
17
|
-
|
|
24
|
+
value: contextValue,
|
|
25
|
+
children: /*#__PURE__*/_jsx(TreeViewStyleContext.Provider, {
|
|
26
|
+
value: styleContextValue,
|
|
27
|
+
children: contextValue.wrapRoot({
|
|
28
|
+
children
|
|
29
|
+
})
|
|
18
30
|
})
|
|
19
31
|
});
|
|
20
32
|
}
|
|
@@ -3,6 +3,7 @@ import { MergeSignaturesProperty, TreeItemWrapper, TreeRootWrapper, TreeViewAnyP
|
|
|
3
3
|
import { TreeViewStore } from "../utils/TreeViewStore.js";
|
|
4
4
|
import { TreeViewCorePluginSignatures } from "../corePlugins/index.js";
|
|
5
5
|
import type { TreeItemProps } from '../../TreeItem/TreeItem.types';
|
|
6
|
+
import { TreeViewClasses } from "./TreeViewStyleContext.js";
|
|
6
7
|
export type TreeViewItemPluginsRunner = (props: TreeItemProps) => Required<TreeViewItemPluginResponse>;
|
|
7
8
|
export type TreeViewContextValue<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> = MergeSignaturesProperty<[...TreeViewCorePluginSignatures, ...TSignatures], 'contextValue'> & Partial<MergeSignaturesProperty<TOptionalSignatures, 'contextValue'>> & {
|
|
8
9
|
instance: TreeViewInstance<TSignatures, TOptionalSignatures>;
|
|
@@ -14,6 +15,7 @@ export type TreeViewContextValue<TSignatures extends readonly TreeViewAnyPluginS
|
|
|
14
15
|
runItemPlugins: TreeViewItemPluginsRunner;
|
|
15
16
|
};
|
|
16
17
|
export interface TreeViewProviderProps<TSignatures extends readonly TreeViewAnyPluginSignature[]> {
|
|
17
|
-
|
|
18
|
+
contextValue: TreeViewContextValue<TSignatures>;
|
|
18
19
|
children: React.ReactNode;
|
|
20
|
+
classes: Partial<TreeViewClasses> | undefined;
|
|
19
21
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface TreeViewClasses {
|
|
3
|
+
/** Styles applied to the root element. */
|
|
4
|
+
root: string;
|
|
5
|
+
/** Styles applied to the item's root element. */
|
|
6
|
+
item: string;
|
|
7
|
+
/** Styles applied to the item's content element. */
|
|
8
|
+
itemContent: string;
|
|
9
|
+
/** Styles applied to the item's transition element. */
|
|
10
|
+
itemGroupTransition: string;
|
|
11
|
+
/** Styles applied to the item's icon container element icon. */
|
|
12
|
+
itemIconContainer: string;
|
|
13
|
+
/** Styles applied to the item's label element. */
|
|
14
|
+
itemLabel: string;
|
|
15
|
+
/** Styles applied to the item's label input element (visible only when editing is enabled). */
|
|
16
|
+
itemLabelInput: string;
|
|
17
|
+
/** Styles applied to the item's checkbox element. */
|
|
18
|
+
itemCheckbox: string;
|
|
19
|
+
/** Styles applied to the item's drag and drop overlay element. */
|
|
20
|
+
itemDragAndDropOverlay: string;
|
|
21
|
+
/** Styles applied to the item's error icon element */
|
|
22
|
+
itemErrorIcon: string;
|
|
23
|
+
/** Styles applied to the item's loading icon element */
|
|
24
|
+
itemLoadingIcon: string;
|
|
25
|
+
}
|
|
26
|
+
export interface TreeViewStyleContextValue {
|
|
27
|
+
classes: Partial<TreeViewClasses>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @ignore - internal component.
|
|
31
|
+
*/
|
|
32
|
+
export declare const TreeViewStyleContext: React.Context<TreeViewStyleContextValue>;
|
|
33
|
+
export declare const useTreeViewStyleContext: () => TreeViewStyleContextValue;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @ignore - internal component.
|
|
4
|
+
*/
|
|
5
|
+
export const TreeViewStyleContext = /*#__PURE__*/React.createContext({
|
|
6
|
+
classes: {}
|
|
7
|
+
});
|
|
8
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
9
|
+
TreeViewStyleContext.displayName = 'TreeViewStyleContext';
|
|
10
|
+
}
|
|
11
|
+
export const useTreeViewStyleContext = () => {
|
|
12
|
+
return React.useContext(TreeViewStyleContext);
|
|
13
|
+
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { TreeViewProvider } from "./TreeViewProvider.js";
|
|
2
|
-
export { useTreeViewContext } from "./
|
|
2
|
+
export { useTreeViewContext } from "./TreeViewContext.js";
|
|
3
3
|
export type { TreeViewProviderProps, TreeViewContextValue, TreeViewItemPluginsRunner } from './TreeViewProvider.types';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { TreeViewProvider } from "./TreeViewProvider.js";
|
|
2
|
-
export { useTreeViewContext } from "./
|
|
2
|
+
export { useTreeViewContext } from "./TreeViewContext.js";
|
package/esm/internals/index.d.ts
CHANGED
|
@@ -30,4 +30,5 @@ export { useTreeViewJSXItems } from "./plugins/useTreeViewJSXItems/index.js";
|
|
|
30
30
|
export type { UseTreeViewJSXItemsSignature, UseTreeViewJSXItemsParameters } from './plugins/useTreeViewJSXItems';
|
|
31
31
|
export { createSelector } from "./utils/selectors.js";
|
|
32
32
|
export { isTargetInDescendants } from "./utils/tree.js";
|
|
33
|
-
export { TreeViewStore } from "./utils/TreeViewStore.js";
|
|
33
|
+
export { TreeViewStore } from "./utils/TreeViewStore.js";
|
|
34
|
+
export type { TreeViewClasses } from './TreeViewProvider/TreeViewStyleContext';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useTreeViewItemCustomization } from "./useTreeViewItemCustomization.js";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export const useTreeViewItemCustomization = ({
|
|
3
|
+
slots,
|
|
4
|
+
slotProps
|
|
5
|
+
}) => {
|
|
6
|
+
const pluginContextValue = React.useMemo(() => ({
|
|
7
|
+
icons: {
|
|
8
|
+
slots: {
|
|
9
|
+
collapseIcon: slots.collapseIcon,
|
|
10
|
+
expandIcon: slots.expandIcon,
|
|
11
|
+
endIcon: slots.endIcon
|
|
12
|
+
},
|
|
13
|
+
slotProps: {
|
|
14
|
+
collapseIcon: slotProps.collapseIcon,
|
|
15
|
+
expandIcon: slotProps.expandIcon,
|
|
16
|
+
endIcon: slotProps.endIcon
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}), [slots.collapseIcon, slots.expandIcon, slots.endIcon, slotProps.collapseIcon, slotProps.expandIcon, slotProps.endIcon]);
|
|
20
|
+
return {
|
|
21
|
+
contextValue: pluginContextValue
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
useTreeViewItemCustomization.params = {};
|
package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { SlotComponentProps } from '@mui/utils/types';
|
|
3
|
+
import { TreeViewPluginSignature } from "../../models/index.js";
|
|
4
|
+
import { UseTreeViewItemsSignature } from "../useTreeViewItems/index.js";
|
|
5
|
+
import { UseTreeViewSelectionSignature } from "../useTreeViewSelection/index.js";
|
|
6
|
+
export interface UseTreeViewItemCustomizationParameters {}
|
|
7
|
+
export type UseTreeViewItemCustomizationDefaultizedParameters = UseTreeViewItemCustomizationParameters;
|
|
8
|
+
interface UseTreeViewItemCustomizationSlots {
|
|
9
|
+
/**
|
|
10
|
+
* The default icon used to collapse the item.
|
|
11
|
+
*/
|
|
12
|
+
collapseIcon?: React.ElementType;
|
|
13
|
+
/**
|
|
14
|
+
* The default icon used to expand the item.
|
|
15
|
+
*/
|
|
16
|
+
expandIcon?: React.ElementType;
|
|
17
|
+
/**
|
|
18
|
+
* The default icon displayed next to an end item.
|
|
19
|
+
* This is applied to all Tree Items and can be overridden by the TreeItem `icon` slot prop.
|
|
20
|
+
*/
|
|
21
|
+
endIcon?: React.ElementType;
|
|
22
|
+
}
|
|
23
|
+
interface UseTreeViewItemCustomizationSlotProps {
|
|
24
|
+
collapseIcon?: SlotComponentProps<'svg', {}, {}>;
|
|
25
|
+
expandIcon?: SlotComponentProps<'svg', {}, {}>;
|
|
26
|
+
endIcon?: SlotComponentProps<'svg', {}, {}>;
|
|
27
|
+
}
|
|
28
|
+
interface UseTreeViewItemCustomizationContextValue {
|
|
29
|
+
icons: {
|
|
30
|
+
slots: UseTreeViewItemCustomizationSlots;
|
|
31
|
+
slotProps: UseTreeViewItemCustomizationSlotProps;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export type UseTreeViewItemCustomizationSignature = TreeViewPluginSignature<{
|
|
35
|
+
params: UseTreeViewItemCustomizationParameters;
|
|
36
|
+
defaultizedParams: UseTreeViewItemCustomizationDefaultizedParameters;
|
|
37
|
+
contextValue: UseTreeViewItemCustomizationContextValue;
|
|
38
|
+
slots: UseTreeViewItemCustomizationSlots;
|
|
39
|
+
slotProps: UseTreeViewItemCustomizationSlotProps;
|
|
40
|
+
dependencies: [UseTreeViewItemsSignature, UseTreeViewSelectionSignature];
|
|
41
|
+
}>;
|
|
42
|
+
export {};
|
package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|