@mui/x-tree-view 7.12.1 → 7.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/RichTreeView/RichTreeView.js +20 -2
  3. package/RichTreeView/RichTreeView.plugins.d.ts +3 -2
  4. package/RichTreeView/RichTreeView.plugins.js +2 -1
  5. package/TreeItem/TreeItem.js +24 -0
  6. package/TreeItem/TreeItemContent.d.ts +8 -0
  7. package/TreeItem/TreeItemContent.js +48 -8
  8. package/TreeItem/treeItemClasses.d.ts +6 -0
  9. package/TreeItem/treeItemClasses.js +1 -1
  10. package/TreeItem/useTreeItemState.d.ts +6 -0
  11. package/TreeItem/useTreeItemState.js +46 -1
  12. package/TreeItem2/TreeItem2.d.ts +3 -1
  13. package/TreeItem2/TreeItem2.js +29 -5
  14. package/TreeItem2/TreeItem2.types.d.ts +6 -0
  15. package/TreeItem2Icon/TreeItem2Icon.js +2 -0
  16. package/TreeItem2LabelInput/TreeItem2LabelInput.d.ts +2 -0
  17. package/TreeItem2LabelInput/TreeItem2LabelInput.js +20 -0
  18. package/TreeItem2LabelInput/TreeItem2LabelInput.types.d.ts +8 -0
  19. package/TreeItem2LabelInput/TreeItem2LabelInput.types.js +1 -0
  20. package/TreeItem2LabelInput/index.d.ts +2 -0
  21. package/TreeItem2LabelInput/index.js +1 -0
  22. package/TreeItem2LabelInput/package.json +6 -0
  23. package/hooks/useTreeItem2Utils/useTreeItem2Utils.d.ts +5 -1
  24. package/hooks/useTreeItem2Utils/useTreeItem2Utils.js +45 -2
  25. package/hooks/useTreeViewApiRef.d.ts +1 -1
  26. package/index.js +1 -1
  27. package/internals/index.d.ts +2 -0
  28. package/internals/index.js +1 -0
  29. package/internals/models/itemPlugin.d.ts +2 -1
  30. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +4 -1
  31. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +2 -0
  32. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +5 -1
  33. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +2 -0
  34. package/internals/plugins/useTreeViewLabel/index.d.ts +2 -0
  35. package/internals/plugins/useTreeViewLabel/index.js +1 -0
  36. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +3 -0
  37. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.d.ts +3 -0
  38. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +44 -0
  39. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +81 -0
  40. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +75 -0
  41. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +1 -0
  42. package/modern/RichTreeView/RichTreeView.js +20 -2
  43. package/modern/RichTreeView/RichTreeView.plugins.js +2 -1
  44. package/modern/TreeItem/TreeItem.js +24 -0
  45. package/modern/TreeItem/TreeItemContent.js +48 -8
  46. package/modern/TreeItem/treeItemClasses.js +1 -1
  47. package/modern/TreeItem/useTreeItemState.js +46 -1
  48. package/modern/TreeItem2/TreeItem2.js +29 -5
  49. package/modern/TreeItem2Icon/TreeItem2Icon.js +2 -0
  50. package/modern/TreeItem2LabelInput/TreeItem2LabelInput.js +20 -0
  51. package/modern/TreeItem2LabelInput/TreeItem2LabelInput.types.js +1 -0
  52. package/modern/TreeItem2LabelInput/index.js +1 -0
  53. package/modern/hooks/useTreeItem2Utils/useTreeItem2Utils.js +45 -2
  54. package/modern/index.js +1 -1
  55. package/modern/internals/index.js +1 -0
  56. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +4 -1
  57. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +5 -1
  58. package/modern/internals/plugins/useTreeViewLabel/index.js +1 -0
  59. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +44 -0
  60. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +81 -0
  61. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +1 -0
  62. package/modern/useTreeItem2/useTreeItem2.js +65 -4
  63. package/node/RichTreeView/RichTreeView.js +20 -2
  64. package/node/RichTreeView/RichTreeView.plugins.js +2 -1
  65. package/node/TreeItem/TreeItem.js +24 -0
  66. package/node/TreeItem/TreeItemContent.js +48 -8
  67. package/node/TreeItem/treeItemClasses.js +1 -1
  68. package/node/TreeItem/useTreeItemState.js +46 -1
  69. package/node/TreeItem2/TreeItem2.js +29 -5
  70. package/node/TreeItem2Icon/TreeItem2Icon.js +2 -0
  71. package/node/TreeItem2LabelInput/TreeItem2LabelInput.js +26 -0
  72. package/node/TreeItem2LabelInput/TreeItem2LabelInput.types.js +5 -0
  73. package/node/TreeItem2LabelInput/index.js +12 -0
  74. package/node/hooks/useTreeItem2Utils/useTreeItem2Utils.js +45 -2
  75. package/node/index.js +1 -1
  76. package/node/internals/index.js +7 -0
  77. package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +4 -1
  78. package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +5 -1
  79. package/node/internals/plugins/useTreeViewLabel/index.js +12 -0
  80. package/node/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +54 -0
  81. package/node/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +91 -0
  82. package/node/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +5 -0
  83. package/node/useTreeItem2/useTreeItem2.js +65 -4
  84. package/package.json +2 -2
  85. package/useTreeItem2/index.d.ts +1 -1
  86. package/useTreeItem2/useTreeItem2.js +65 -4
  87. package/useTreeItem2/useTreeItem2.types.d.ts +35 -15
@@ -5,6 +5,7 @@ import { UseTreeViewSelectionSignature } from '../internals/plugins/useTreeViewS
5
5
  import { UseTreeViewItemsSignature } from '../internals/plugins/useTreeViewItems';
6
6
  import { UseTreeViewFocusSignature } from '../internals/plugins/useTreeViewFocus';
7
7
  import { UseTreeViewKeyboardNavigationSignature } from '../internals/plugins/useTreeViewKeyboardNavigation';
8
+ import { UseTreeViewLabelSignature } from '../internals/plugins/useTreeViewLabel';
8
9
  import { UseTreeViewExpansionSignature } from '../internals/plugins/useTreeViewExpansion';
9
10
  export interface UseTreeItem2Parameters {
10
11
  /**
@@ -69,8 +70,18 @@ export interface UseTreeItem2IconContainerSlotOwnProps {
69
70
  export type UseTreeItemIconContainerSlotProps<ExternalProps = {}> = ExternalProps & UseTreeItem2IconContainerSlotOwnProps;
70
71
  export interface UseTreeItem2LabelSlotOwnProps {
71
72
  children: React.ReactNode;
73
+ onDoubleClick: MuiCancellableEventHandler<React.MouseEvent>;
74
+ /**
75
+ * Only defined when the `isItemEditable` experimental feature is enabled.
76
+ */
77
+ editable?: boolean;
72
78
  }
73
79
  export type UseTreeItem2LabelSlotProps<ExternalProps = {}> = ExternalProps & UseTreeItem2LabelSlotOwnProps;
80
+ export type UseTreeItem2LabelInputSlotOwnProps = {
81
+ onBlur: MuiCancellableEventHandler<React.FocusEvent<HTMLInputElement>>;
82
+ onKeyDown: MuiCancellableEventHandler<React.KeyboardEvent<HTMLInputElement>>;
83
+ };
84
+ export type UseTreeItem2LabelInputSlotProps<ExternalProps = {}> = ExternalProps & UseTreeItem2LabelInputSlotOwnProps;
74
85
  export interface UseTreeItem2CheckboxSlotOwnProps {
75
86
  visible: boolean;
76
87
  checked: boolean;
@@ -101,49 +112,57 @@ export interface UseTreeItem2Status {
101
112
  focused: boolean;
102
113
  selected: boolean;
103
114
  disabled: boolean;
115
+ editing: boolean;
116
+ editable: boolean;
104
117
  }
105
118
  export interface UseTreeItem2ReturnValue<TSignatures extends UseTreeItem2MinimalPlugins, TOptionalSignatures extends UseTreeItem2OptionalPlugins> {
106
119
  /**
107
120
  * Resolver for the root slot's props.
108
- * @param {ExternalProps} externalProps Additional props for the root slot
109
- * @returns {UseTreeItem2RootSlotProps<ExternalProps>} Props that should be spread on the root slot
121
+ * @param {ExternalProps} externalProps Additional props for the root slot.
122
+ * @returns {UseTreeItem2RootSlotProps<ExternalProps>} Props that should be spread on the root slot.
110
123
  */
111
124
  getRootProps: <ExternalProps extends Record<string, any> = {}>(externalProps?: ExternalProps) => UseTreeItem2RootSlotProps<ExternalProps>;
112
125
  /**
113
126
  * Resolver for the content slot's props.
114
- * @param {ExternalProps} externalProps Additional props for the content slot
115
- * @returns {UseTreeItem2ContentSlotProps<ExternalProps>} Props that should be spread on the content slot
127
+ * @param {ExternalProps} externalProps Additional props for the content slot.
128
+ * @returns {UseTreeItem2ContentSlotProps<ExternalProps>} Props that should be spread on the content slot.
116
129
  */
117
130
  getContentProps: <ExternalProps extends Record<string, any> = {}>(externalProps?: ExternalProps) => UseTreeItem2ContentSlotProps<ExternalProps>;
118
131
  /**
119
132
  * Resolver for the label slot's props.
120
- * @param {ExternalProps} externalProps Additional props for the label slot
121
- * @returns {UseTreeItem2LabelSlotProps<ExternalProps>} Props that should be spread on the label slot
133
+ * @param {ExternalProps} externalProps Additional props for the label slot.
134
+ * @returns {UseTreeItem2LabelSlotProps<ExternalProps>} Props that should be spread on the label slot.
122
135
  */
123
136
  getLabelProps: <ExternalProps extends Record<string, any> = {}>(externalProps?: ExternalProps) => UseTreeItem2LabelSlotProps<ExternalProps>;
137
+ /**
138
+ * Resolver for the labelInput slot's props.
139
+ * @param {ExternalProps} externalProps Additional props for the labelInput slot.
140
+ * @returns {UseTreeItem2LabelInputSlotProps<ExternalProps>} Props that should be spread on the labelInput slot.
141
+ */
142
+ getLabelInputProps: <ExternalProps extends Record<string, any> = {}>(externalProps?: ExternalProps) => UseTreeItem2LabelInputSlotProps<ExternalProps>;
124
143
  /**
125
144
  * Resolver for the checkbox slot's props.
126
- * @param {ExternalProps} externalProps Additional props for the checkbox slot
127
- * @returns {UseTreeItem2CheckboxSlotProps<ExternalProps>} Props that should be spread on the checkbox slot
145
+ * @param {ExternalProps} externalProps Additional props for the checkbox slot.
146
+ * @returns {UseTreeItem2CheckboxSlotProps<ExternalProps>} Props that should be spread on the checkbox slot.
128
147
  */
129
148
  getCheckboxProps: <ExternalProps extends Record<string, any> = {}>(externalProps?: ExternalProps) => UseTreeItem2CheckboxSlotProps<ExternalProps>;
130
149
  /**
131
150
  * Resolver for the iconContainer slot's props.
132
- * @param {ExternalProps} externalProps Additional props for the iconContainer slot
133
- * @returns {UseTreeItemIconContainerSlotProps<ExternalProps>} Props that should be spread on the iconContainer slot
151
+ * @param {ExternalProps} externalProps Additional props for the iconContainer slot.
152
+ * @returns {UseTreeItemIconContainerSlotProps<ExternalProps>} Props that should be spread on the iconContainer slot.
134
153
  */
135
154
  getIconContainerProps: <ExternalProps extends Record<string, any> = {}>(externalProps?: ExternalProps) => UseTreeItemIconContainerSlotProps<ExternalProps>;
136
155
  /**
137
156
  * Resolver for the GroupTransition slot's props.
138
- * @param {ExternalProps} externalProps Additional props for the GroupTransition slot
139
- * @returns {UseTreeItem2GroupTransitionSlotProps<ExternalProps>} Props that should be spread on the GroupTransition slot
157
+ * @param {ExternalProps} externalProps Additional props for the GroupTransition slot.
158
+ * @returns {UseTreeItem2GroupTransitionSlotProps<ExternalProps>} Props that should be spread on the GroupTransition slot.
140
159
  */
141
160
  getGroupTransitionProps: <ExternalProps extends Record<string, any> = {}>(externalProps?: ExternalProps) => UseTreeItem2GroupTransitionSlotProps<ExternalProps>;
142
161
  /**
143
162
  * Resolver for the DragAndDropOverlay slot's props.
144
163
  * Warning: This slot is only useful when using the `RichTreeViewPro` component.
145
- * @param {ExternalProps} externalProps Additional props for the DragAndDropOverlay slot
146
- * @returns {UseTreeItem2DragAndDropOverlaySlotProps<ExternalProps>} Props that should be spread on the DragAndDropOverlay slot
164
+ * @param {ExternalProps} externalProps Additional props for the DragAndDropOverlay slot.
165
+ * @returns {UseTreeItem2DragAndDropOverlaySlotProps<ExternalProps>} Props that should be spread on the DragAndDropOverlay slot.
147
166
  */
148
167
  getDragAndDropOverlayProps: <ExternalProps extends Record<string, any> = {}>(externalProps?: ExternalProps) => UseTreeItem2DragAndDropOverlaySlotProps<ExternalProps>;
149
168
  /**
@@ -167,7 +186,8 @@ export type UseTreeItem2MinimalPlugins = readonly [
167
186
  UseTreeViewExpansionSignature,
168
187
  UseTreeViewItemsSignature,
169
188
  UseTreeViewFocusSignature,
170
- UseTreeViewKeyboardNavigationSignature
189
+ UseTreeViewKeyboardNavigationSignature,
190
+ UseTreeViewLabelSignature
171
191
  ];
172
192
  /**
173
193
  * Plugins that `useTreeItem2` can use if they are present, but are not required.