{"version":3,"file":"static/js/vendors-0bc0478e.df108aa2.js","mappings":"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","sources":["../node_modules/@mui/x-tree-view/internals/zero-styled/index.js","../node_modules/@mui/x-tree-view/TreeView/treeViewClasses.js","../node_modules/@mui/x-tree-view/SimpleTreeView/simpleTreeViewClasses.js","../node_modules/@mui/x-tree-view/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js","../node_modules/@mui/x-tree-view/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js","../node_modules/@mui/x-tree-view/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js","../node_modules/@mui/x-tree-view/internals/corePlugins/useTreeViewId/useTreeViewId.js","../node_modules/@mui/x-tree-view/internals/useTreeView/useTreeView.js","../node_modules/@mui/x-tree-view/internals/TreeViewProvider/TreeViewContext.js","../node_modules/@mui/x-tree-view/internals/TreeViewProvider/useTreeViewContext.js","../node_modules/@mui/x-tree-view/internals/utils/publishTreeViewEvent.js","../node_modules/@mui/x-tree-view/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js","../node_modules/@mui/x-tree-view/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.js","../node_modules/@mui/x-tree-view/internals/plugins/useTreeViewItems/useTreeViewItems.js","../node_modules/@mui/x-tree-view/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js","../node_modules/@mui/x-tree-view/internals/utils/tree.js","../node_modules/@mui/x-tree-view/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js","../node_modules/@mui/x-tree-view/internals/plugins/useTreeViewSelection/useTreeViewSelection.js","../node_modules/@mui/x-tree-view/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js","../node_modules/@mui/x-tree-view/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js","../node_modules/@mui/x-tree-view/internals/hooks/useInstanceEventHandler.js","../node_modules/@mui/x-tree-view/internals/utils/utils.js","../node_modules/@mui/x-tree-view/internals/plugins/useTreeViewFocus/useTreeViewFocus.js","../node_modules/@mui/x-tree-view/internals/utils/plugins.js","../node_modules/@mui/x-tree-view/internals/plugins/useTreeViewLabel/useTreeViewLabel.js","../node_modules/@mui/x-tree-view/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js","../node_modules/@mui/x-tree-view/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js","../node_modules/@mui/x-tree-view/internals/plugins/useTreeViewIcons/useTreeViewIcons.js","../node_modules/@mui/x-tree-view/internals/TreeViewProvider/TreeViewChildrenItemProvider.js","../node_modules/@mui/x-tree-view/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js","../node_modules/@mui/x-tree-view/SimpleTreeView/SimpleTreeView.js","../node_modules/@mui/x-tree-view/SimpleTreeView/SimpleTreeView.plugins.js","../node_modules/@mui/x-tree-view/TreeView/TreeView.js","../node_modules/@mui/x-tree-view/RichTreeView/richTreeViewClasses.js","../node_modules/@mui/x-tree-view/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js","../node_modules/@mui/x-tree-view/TreeItem2LabelInput/TreeItem2LabelInput.js","../node_modules/@mui/x-tree-view/TreeItem/TreeItemContent.js","../node_modules/@mui/x-tree-view/TreeItem/useTreeItemState.js","../node_modules/@mui/x-tree-view/TreeItem/treeItemClasses.js","../node_modules/@mui/x-tree-view/icons/icons.js","../node_modules/@mui/x-tree-view/TreeItem2Provider/TreeItem2Provider.js","../node_modules/@mui/x-tree-view/TreeItem/TreeItem.js","../node_modules/@mui/x-tree-view/RichTreeView/RichTreeView.js","../node_modules/@mui/x-tree-view/TreeItem2/TreeItem2.js","../node_modules/object-assign/index.js","../node_modules/orderedmap/dist/index.js"],"sourcesContent":["import { useThemeProps } from '@mui/material/styles';\nexport { styled } from '@mui/material/styles';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function createUseThemeProps(name) {\n return useThemeProps;\n}","import generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nexport function getTreeViewUtilityClass(slot) {\n return generateUtilityClass('MuiTreeView', slot);\n}\nexport const treeViewClasses = generateUtilityClasses('MuiTreeView', ['root']);","import generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nexport function getSimpleTreeViewUtilityClass(slot) {\n return generateUtilityClass('MuiSimpleTreeView', slot);\n}\nexport const simpleTreeViewClasses = generateUtilityClasses('MuiSimpleTreeView', ['root']);","import * as React from 'react';\nimport { EventManager } from '@mui/x-internals/EventManager';\nconst isSyntheticEvent = event => {\n return event.isPropagationStopped !== undefined;\n};\nexport const useTreeViewInstanceEvents = () => {\n const [eventManager] = React.useState(() => new EventManager());\n const publishEvent = React.useCallback((...args) => {\n const [name, params, event = {}] = args;\n event.defaultMuiPrevented = false;\n if (isSyntheticEvent(event) && event.isPropagationStopped()) {\n return;\n }\n eventManager.emit(name, params, event);\n }, [eventManager]);\n const subscribeEvent = React.useCallback((event, handler) => {\n eventManager.on(event, handler);\n return () => {\n eventManager.removeListener(event, handler);\n };\n }, [eventManager]);\n return {\n instance: {\n $$publishEvent: publishEvent,\n $$subscribeEvent: subscribeEvent\n }\n };\n};\nuseTreeViewInstanceEvents.params = {};","export const useTreeViewOptionalPlugins = ({\n plugins\n}) => {\n const pluginSet = new Set(plugins);\n const getAvailablePlugins = () => pluginSet;\n return {\n instance: {\n getAvailablePlugins\n }\n };\n};\nuseTreeViewOptionalPlugins.params = {};","let globalTreeViewDefaultId = 0;\nexport const createTreeViewDefaultId = () => {\n globalTreeViewDefaultId += 1;\n return `mui-tree-view-${globalTreeViewDefaultId}`;\n};\n\n/**\n * Generate the id attribute (i.e.: the `id` attribute passed to the DOM element) of a Tree Item.\n * If the user explicitly defined an id attribute, it will be returned.\n * Otherwise, the method creates a unique id for the item based on the Tree View id attribute and the item `itemId`\n * @param {object} params The parameters to determine the id attribute of the item.\n * @param {TreeViewItemId} params.itemId The id of the item to get the id attribute of.\n * @param {string | undefined} params.idAttribute The id attribute of the item if explicitly defined by the user.\n * @param {string} params.treeId The id attribute of the Tree View.\n * @returns {string} The id attribute of the item.\n */\nexport const generateTreeItemIdAttribute = ({\n id,\n treeId = '',\n itemId\n}) => {\n if (id != null) {\n return id;\n }\n return `${treeId}-${itemId}`;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { createTreeViewDefaultId } from \"./useTreeViewId.utils.js\";\nexport const useTreeViewId = ({\n params,\n state,\n setState\n}) => {\n React.useEffect(() => {\n setState(prevState => {\n if (prevState.id.treeId === params.id && prevState.id.treeId !== undefined) {\n return prevState;\n }\n return _extends({}, prevState, {\n id: _extends({}, prevState.id, {\n treeId: params.id ?? createTreeViewDefaultId()\n })\n });\n });\n }, [setState, params.id]);\n const treeId = params.id ?? state.id.treeId;\n return {\n getRootProps: () => ({\n id: treeId\n }),\n contextValue: {\n treeId\n }\n };\n};\nuseTreeViewId.params = {\n id: true\n};\nuseTreeViewId.getInitialState = ({\n id\n}) => ({\n id: {\n treeId: id ?? undefined\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useForkRef from '@mui/utils/useForkRef';\nimport { useTreeViewModels } from \"./useTreeViewModels.js\";\nimport { TREE_VIEW_CORE_PLUGINS } from \"../corePlugins/index.js\";\nimport { extractPluginParamsFromProps } from \"./extractPluginParamsFromProps.js\";\nimport { useTreeViewBuildContext } from \"./useTreeViewBuildContext.js\";\nexport function useTreeViewApiInitialization(inputApiRef) {\n const fallbackPublicApiRef = React.useRef({});\n if (inputApiRef) {\n if (inputApiRef.current == null) {\n inputApiRef.current = {};\n }\n return inputApiRef.current;\n }\n return fallbackPublicApiRef.current;\n}\nexport const useTreeView = ({\n plugins: inPlugins,\n rootRef,\n props\n}) => {\n const plugins = [...TREE_VIEW_CORE_PLUGINS, ...inPlugins];\n const {\n pluginParams,\n forwardedProps,\n apiRef,\n experimentalFeatures,\n slots,\n slotProps\n } = extractPluginParamsFromProps({\n plugins,\n props\n });\n const models = useTreeViewModels(plugins, pluginParams);\n const instanceRef = React.useRef({});\n const instance = instanceRef.current;\n const publicAPI = useTreeViewApiInitialization(apiRef);\n const innerRootRef = React.useRef(null);\n const handleRootRef = useForkRef(innerRootRef, rootRef);\n const contextValue = useTreeViewBuildContext({\n plugins,\n instance,\n publicAPI,\n rootRef: innerRootRef\n });\n const [state, setState] = React.useState(() => {\n const temp = {};\n plugins.forEach(plugin => {\n if (plugin.getInitialState) {\n Object.assign(temp, plugin.getInitialState(pluginParams));\n }\n });\n return temp;\n });\n const rootPropsGetters = [];\n const runPlugin = plugin => {\n const pluginResponse = plugin({\n instance,\n params: pluginParams,\n slots,\n slotProps,\n experimentalFeatures,\n state,\n setState,\n rootRef: innerRootRef,\n models,\n plugins\n });\n if (pluginResponse.getRootProps) {\n rootPropsGetters.push(pluginResponse.getRootProps);\n }\n if (pluginResponse.publicAPI) {\n Object.assign(publicAPI, pluginResponse.publicAPI);\n }\n if (pluginResponse.instance) {\n Object.assign(instance, pluginResponse.instance);\n }\n if (pluginResponse.contextValue) {\n Object.assign(contextValue, pluginResponse.contextValue);\n }\n };\n plugins.forEach(runPlugin);\n const getRootProps = (otherHandlers = {}) => {\n const rootProps = _extends({\n role: 'tree'\n }, forwardedProps, otherHandlers, {\n ref: handleRootRef\n });\n rootPropsGetters.forEach(rootPropsGetter => {\n Object.assign(rootProps, rootPropsGetter(otherHandlers));\n });\n return rootProps;\n };\n return {\n getRootProps,\n rootRef: handleRootRef,\n contextValue,\n instance\n };\n};","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nexport const TreeViewContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n TreeViewContext.displayName = 'TreeViewContext';\n}","import * as React from 'react';\nimport { TreeViewContext } from \"./TreeViewContext.js\";\nexport const useTreeViewContext = () => {\n const context = React.useContext(TreeViewContext);\n if (context == null) {\n 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'));\n }\n return context;\n};","export const publishTreeViewEvent = (instance, eventName, params) => {\n instance.$$publishEvent(eventName, params);\n};","export const TREE_VIEW_ROOT_PARENT_ID = '__TREE_VIEW_ROOT_PARENT_ID__';\nexport const buildSiblingIndexes = siblings => {\n const siblingsIndexLookup = {};\n siblings.forEach((childId, index) => {\n siblingsIndexLookup[childId] = index;\n });\n return siblingsIndexLookup;\n};","import * as React from 'react';\nexport const TreeViewItemDepthContext = /*#__PURE__*/React.createContext(() => -1);\nif (process.env.NODE_ENV !== 'production') {\n TreeViewItemDepthContext.displayName = 'TreeViewItemDepthContext';\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport { publishTreeViewEvent } from \"../../utils/publishTreeViewEvent.js\";\nimport { buildSiblingIndexes, TREE_VIEW_ROOT_PARENT_ID } from \"./useTreeViewItems.utils.js\";\nimport { TreeViewItemDepthContext } from \"../../TreeViewItemDepthContext/index.js\";\nimport { generateTreeItemIdAttribute } from \"../../corePlugins/useTreeViewId/useTreeViewId.utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst updateItemsState = ({\n items,\n isItemDisabled,\n getItemLabel,\n getItemId\n}) => {\n const itemMetaMap = {};\n const itemMap = {};\n const itemOrderedChildrenIds = {\n [TREE_VIEW_ROOT_PARENT_ID]: []\n };\n const processItem = (item, depth, parentId) => {\n const id = getItemId ? getItemId(item) : item.id;\n if (id == null) {\n throw new Error(['MUI X: The Tree View component requires all items to have a unique `id` property.', 'Alternatively, you can use the `getItemId` prop to specify a custom id for each item.', 'An item was provided without id in the `items` prop:', JSON.stringify(item)].join('\\n'));\n }\n if (itemMetaMap[id] != null) {\n throw new Error(['MUI X: The Tree View component requires all items to have a unique `id` property.', 'Alternatively, you can use the `getItemId` prop to specify a custom id for each item.', `Two items were provided with the same id in the \\`items\\` prop: \"${id}\"`].join('\\n'));\n }\n const label = getItemLabel ? getItemLabel(item) : item.label;\n if (label == null) {\n throw new Error(['MUI X: The Tree View component requires all items to have a `label` property.', 'Alternatively, you can use the `getItemLabel` prop to specify a custom label for each item.', 'An item was provided without label in the `items` prop:', JSON.stringify(item)].join('\\n'));\n }\n itemMetaMap[id] = {\n id,\n label,\n parentId,\n idAttribute: undefined,\n expandable: !!item.children?.length,\n disabled: isItemDisabled ? isItemDisabled(item) : false,\n depth\n };\n itemMap[id] = item;\n const parentIdWithDefault = parentId ?? TREE_VIEW_ROOT_PARENT_ID;\n if (!itemOrderedChildrenIds[parentIdWithDefault]) {\n itemOrderedChildrenIds[parentIdWithDefault] = [];\n }\n itemOrderedChildrenIds[parentIdWithDefault].push(id);\n item.children?.forEach(child => processItem(child, depth + 1, id));\n };\n items.forEach(item => processItem(item, 0, null));\n const itemChildrenIndexes = {};\n Object.keys(itemOrderedChildrenIds).forEach(parentId => {\n itemChildrenIndexes[parentId] = buildSiblingIndexes(itemOrderedChildrenIds[parentId]);\n });\n return {\n itemMetaMap,\n itemMap,\n itemOrderedChildrenIds,\n itemChildrenIndexes\n };\n};\nexport const useTreeViewItems = ({\n instance,\n params,\n state,\n setState,\n experimentalFeatures\n}) => {\n const getItemMeta = React.useCallback(itemId => state.items.itemMetaMap[itemId], [state.items.itemMetaMap]);\n const getItem = React.useCallback(itemId => state.items.itemMap[itemId], [state.items.itemMap]);\n const getItemTree = React.useCallback(() => {\n const getItemFromItemId = id => {\n const _state$items$itemMap$ = state.items.itemMap[id],\n item = _objectWithoutPropertiesLoose(_state$items$itemMap$, _excluded);\n const newChildren = state.items.itemOrderedChildrenIds[id];\n if (newChildren) {\n item.children = newChildren.map(getItemFromItemId);\n }\n return item;\n };\n return state.items.itemOrderedChildrenIds[TREE_VIEW_ROOT_PARENT_ID].map(getItemFromItemId);\n }, [state.items.itemMap, state.items.itemOrderedChildrenIds]);\n const isItemDisabled = React.useCallback(itemId => {\n if (itemId == null) {\n return false;\n }\n let itemMeta = instance.getItemMeta(itemId);\n\n // This can be called before the item has been added to the item map.\n if (!itemMeta) {\n return false;\n }\n if (itemMeta.disabled) {\n return true;\n }\n while (itemMeta.parentId != null) {\n itemMeta = instance.getItemMeta(itemMeta.parentId);\n if (itemMeta.disabled) {\n return true;\n }\n }\n return false;\n }, [instance]);\n const getItemIndex = React.useCallback(itemId => {\n const parentId = instance.getItemMeta(itemId).parentId ?? TREE_VIEW_ROOT_PARENT_ID;\n return state.items.itemChildrenIndexes[parentId][itemId];\n }, [instance, state.items.itemChildrenIndexes]);\n const getItemOrderedChildrenIds = React.useCallback(itemId => state.items.itemOrderedChildrenIds[itemId ?? TREE_VIEW_ROOT_PARENT_ID] ?? [], [state.items.itemOrderedChildrenIds]);\n const getItemDOMElement = itemId => {\n const itemMeta = instance.getItemMeta(itemId);\n if (itemMeta == null) {\n return null;\n }\n return document.getElementById(generateTreeItemIdAttribute({\n treeId: state.id.treeId,\n itemId,\n id: itemMeta.idAttribute\n }));\n };\n const isItemNavigable = itemId => {\n if (params.disabledItemsFocusable) {\n return true;\n }\n return !instance.isItemDisabled(itemId);\n };\n const areItemUpdatesPreventedRef = React.useRef(false);\n const preventItemUpdates = React.useCallback(() => {\n areItemUpdatesPreventedRef.current = true;\n }, []);\n const areItemUpdatesPrevented = React.useCallback(() => areItemUpdatesPreventedRef.current, []);\n React.useEffect(() => {\n if (instance.areItemUpdatesPrevented()) {\n return;\n }\n setState(prevState => {\n const newState = updateItemsState({\n items: params.items,\n isItemDisabled: params.isItemDisabled,\n getItemId: params.getItemId,\n getItemLabel: params.getItemLabel\n });\n Object.values(prevState.items.itemMetaMap).forEach(item => {\n if (!newState.itemMetaMap[item.id]) {\n publishTreeViewEvent(instance, 'removeItem', {\n id: item.id\n });\n }\n });\n return _extends({}, prevState, {\n items: newState\n });\n });\n }, [instance, setState, params.items, params.isItemDisabled, params.getItemId, params.getItemLabel]);\n const getItemsToRender = () => {\n const getPropsFromItemId = id => {\n const item = state.items.itemMetaMap[id];\n return {\n label: item.label,\n itemId: item.id,\n id: item.idAttribute,\n children: state.items.itemOrderedChildrenIds[id]?.map(getPropsFromItemId)\n };\n };\n return state.items.itemOrderedChildrenIds[TREE_VIEW_ROOT_PARENT_ID].map(getPropsFromItemId);\n };\n return {\n getRootProps: () => ({\n style: {\n '--TreeView-itemChildrenIndentation': typeof params.itemChildrenIndentation === 'number' ? `${params.itemChildrenIndentation}px` : params.itemChildrenIndentation\n }\n }),\n publicAPI: {\n getItem,\n getItemDOMElement,\n getItemTree,\n getItemOrderedChildrenIds\n },\n instance: {\n getItemMeta,\n getItem,\n getItemTree,\n getItemsToRender,\n getItemIndex,\n getItemDOMElement,\n getItemOrderedChildrenIds,\n isItemDisabled,\n isItemNavigable,\n preventItemUpdates,\n areItemUpdatesPrevented\n },\n contextValue: {\n items: {\n onItemClick: params.onItemClick,\n disabledItemsFocusable: params.disabledItemsFocusable,\n indentationAtItemLevel: experimentalFeatures.indentationAtItemLevel ?? false\n }\n }\n };\n};\nuseTreeViewItems.getInitialState = params => ({\n items: updateItemsState({\n items: params.items,\n isItemDisabled: params.isItemDisabled,\n getItemId: params.getItemId,\n getItemLabel: params.getItemLabel\n })\n});\nuseTreeViewItems.getDefaultizedParams = ({\n params\n}) => _extends({}, params, {\n disabledItemsFocusable: params.disabledItemsFocusable ?? false,\n itemChildrenIndentation: params.itemChildrenIndentation ?? '12px'\n});\nuseTreeViewItems.wrapRoot = ({\n children,\n instance\n}) => {\n return /*#__PURE__*/_jsx(TreeViewItemDepthContext.Provider, {\n value: itemId => instance.getItemMeta(itemId)?.depth ?? 0,\n children: children\n });\n};\nuseTreeViewItems.params = {\n disabledItemsFocusable: true,\n items: true,\n isItemDisabled: true,\n getItemLabel: true,\n getItemId: true,\n onItemClick: true,\n itemChildrenIndentation: true\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nexport const useTreeViewExpansion = ({\n instance,\n params,\n models\n}) => {\n const expandedItemsMap = React.useMemo(() => {\n const temp = new Map();\n models.expandedItems.value.forEach(id => {\n temp.set(id, true);\n });\n return temp;\n }, [models.expandedItems.value]);\n const setExpandedItems = (event, value) => {\n params.onExpandedItemsChange?.(event, value);\n models.expandedItems.setControlledValue(value);\n };\n const isItemExpanded = React.useCallback(itemId => expandedItemsMap.has(itemId), [expandedItemsMap]);\n const isItemExpandable = React.useCallback(itemId => !!instance.getItemMeta(itemId)?.expandable, [instance]);\n const toggleItemExpansion = useEventCallback((event, itemId) => {\n const isExpandedBefore = instance.isItemExpanded(itemId);\n instance.setItemExpansion(event, itemId, !isExpandedBefore);\n });\n const setItemExpansion = useEventCallback((event, itemId, isExpanded) => {\n const isExpandedBefore = instance.isItemExpanded(itemId);\n if (isExpandedBefore === isExpanded) {\n return;\n }\n let newExpanded;\n if (isExpanded) {\n newExpanded = [itemId].concat(models.expandedItems.value);\n } else {\n newExpanded = models.expandedItems.value.filter(id => id !== itemId);\n }\n if (params.onItemExpansionToggle) {\n params.onItemExpansionToggle(event, itemId, isExpanded);\n }\n setExpandedItems(event, newExpanded);\n });\n const expandAllSiblings = (event, itemId) => {\n const itemMeta = instance.getItemMeta(itemId);\n const siblings = instance.getItemOrderedChildrenIds(itemMeta.parentId);\n const diff = siblings.filter(child => instance.isItemExpandable(child) && !instance.isItemExpanded(child));\n const newExpanded = models.expandedItems.value.concat(diff);\n if (diff.length > 0) {\n if (params.onItemExpansionToggle) {\n diff.forEach(newlyExpandedItemId => {\n params.onItemExpansionToggle(event, newlyExpandedItemId, true);\n });\n }\n setExpandedItems(event, newExpanded);\n }\n };\n const expansionTrigger = React.useMemo(() => {\n if (params.expansionTrigger) {\n return params.expansionTrigger;\n }\n if (instance.isTreeViewEditable) {\n return 'iconContainer';\n }\n return 'content';\n }, [params.expansionTrigger, instance.isTreeViewEditable]);\n return {\n publicAPI: {\n setItemExpansion\n },\n instance: {\n isItemExpanded,\n isItemExpandable,\n setItemExpansion,\n toggleItemExpansion,\n expandAllSiblings\n },\n contextValue: {\n expansion: {\n expansionTrigger\n }\n }\n };\n};\nuseTreeViewExpansion.models = {\n expandedItems: {\n getDefaultValue: params => params.defaultExpandedItems\n }\n};\nconst DEFAULT_EXPANDED_ITEMS = [];\nuseTreeViewExpansion.getDefaultizedParams = ({\n params\n}) => _extends({}, params, {\n defaultExpandedItems: params.defaultExpandedItems ?? DEFAULT_EXPANDED_ITEMS\n});\nuseTreeViewExpansion.params = {\n expandedItems: true,\n defaultExpandedItems: true,\n onExpandedItemsChange: true,\n onItemExpansionToggle: true,\n expansionTrigger: true\n};","const getLastNavigableItemInArray = (instance, items) => {\n // Equivalent to Array.prototype.findLastIndex\n let itemIndex = items.length - 1;\n while (itemIndex >= 0 && !instance.isItemNavigable(items[itemIndex])) {\n itemIndex -= 1;\n }\n if (itemIndex === -1) {\n return undefined;\n }\n return items[itemIndex];\n};\nexport const getPreviousNavigableItem = (instance, itemId) => {\n const itemMeta = instance.getItemMeta(itemId);\n const siblings = instance.getItemOrderedChildrenIds(itemMeta.parentId);\n const itemIndex = instance.getItemIndex(itemId);\n\n // TODO: What should we do if the parent is not navigable?\n if (itemIndex === 0) {\n return itemMeta.parentId;\n }\n\n // Finds the previous navigable sibling.\n let previousNavigableSiblingIndex = itemIndex - 1;\n while (!instance.isItemNavigable(siblings[previousNavigableSiblingIndex]) && previousNavigableSiblingIndex >= 0) {\n previousNavigableSiblingIndex -= 1;\n }\n if (previousNavigableSiblingIndex === -1) {\n // If we are at depth 0, then it means all the items above the current item are not navigable.\n if (itemMeta.parentId == null) {\n return null;\n }\n\n // Otherwise, we can try to go up a level and find the previous navigable item.\n return getPreviousNavigableItem(instance, itemMeta.parentId);\n }\n\n // Finds the last navigable ancestor of the previous navigable sibling.\n let currentItemId = siblings[previousNavigableSiblingIndex];\n let lastNavigableChild = getLastNavigableItemInArray(instance, instance.getItemOrderedChildrenIds(currentItemId));\n while (instance.isItemExpanded(currentItemId) && lastNavigableChild != null) {\n currentItemId = lastNavigableChild;\n lastNavigableChild = instance.getItemOrderedChildrenIds(currentItemId).find(instance.isItemNavigable);\n }\n return currentItemId;\n};\nexport const getNextNavigableItem = (instance, itemId) => {\n // If the item is expanded and has some navigable children, return the first of them.\n if (instance.isItemExpanded(itemId)) {\n const firstNavigableChild = instance.getItemOrderedChildrenIds(itemId).find(instance.isItemNavigable);\n if (firstNavigableChild != null) {\n return firstNavigableChild;\n }\n }\n let itemMeta = instance.getItemMeta(itemId);\n while (itemMeta != null) {\n // Try to find the first navigable sibling after the current item.\n const siblings = instance.getItemOrderedChildrenIds(itemMeta.parentId);\n const currentItemIndex = instance.getItemIndex(itemMeta.id);\n if (currentItemIndex < siblings.length - 1) {\n let nextItemIndex = currentItemIndex + 1;\n while (!instance.isItemNavigable(siblings[nextItemIndex]) && nextItemIndex < siblings.length - 1) {\n nextItemIndex += 1;\n }\n if (instance.isItemNavigable(siblings[nextItemIndex])) {\n return siblings[nextItemIndex];\n }\n }\n\n // If the sibling does not exist, go up a level to the parent and try again.\n itemMeta = instance.getItemMeta(itemMeta.parentId);\n }\n return null;\n};\nexport const getLastNavigableItem = instance => {\n let itemId = null;\n while (itemId == null || instance.isItemExpanded(itemId)) {\n const children = instance.getItemOrderedChildrenIds(itemId);\n const lastNavigableChild = getLastNavigableItemInArray(instance, children);\n\n // The item has no navigable children.\n if (lastNavigableChild == null) {\n return itemId;\n }\n itemId = lastNavigableChild;\n }\n return itemId;\n};\nexport const getFirstNavigableItem = instance => instance.getItemOrderedChildrenIds(null).find(instance.isItemNavigable);\n\n/**\n * This is used to determine the start and end of a selection range so\n * we can get the items between the two border items.\n *\n * It finds the items' common ancestor using\n * a naive implementation of a lowest common ancestor algorithm\n * (https://en.wikipedia.org/wiki/Lowest_common_ancestor).\n * Then compares the ancestor's 2 children that are ancestors of itemA and ItemB\n * so we can compare their indexes to work out which item comes first in a depth first search.\n * (https://en.wikipedia.org/wiki/Depth-first_search)\n *\n * Another way to put it is which item is shallower in a trémaux tree\n * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree\n */\nexport const findOrderInTremauxTree = (instance, itemAId, itemBId) => {\n if (itemAId === itemBId) {\n return [itemAId, itemBId];\n }\n const itemMetaA = instance.getItemMeta(itemAId);\n const itemMetaB = instance.getItemMeta(itemBId);\n if (itemMetaA.parentId === itemMetaB.id || itemMetaB.parentId === itemMetaA.id) {\n return itemMetaB.parentId === itemMetaA.id ? [itemMetaA.id, itemMetaB.id] : [itemMetaB.id, itemMetaA.id];\n }\n const aFamily = [itemMetaA.id];\n const bFamily = [itemMetaB.id];\n let aAncestor = itemMetaA.parentId;\n let bAncestor = itemMetaB.parentId;\n let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n let continueA = true;\n let continueB = true;\n while (!bAncestorIsCommon && !aAncestorIsCommon) {\n if (continueA) {\n aFamily.push(aAncestor);\n aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n continueA = aAncestor !== null;\n if (!aAncestorIsCommon && continueA) {\n aAncestor = instance.getItemMeta(aAncestor).parentId;\n }\n }\n if (continueB && !aAncestorIsCommon) {\n bFamily.push(bAncestor);\n bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n continueB = bAncestor !== null;\n if (!bAncestorIsCommon && continueB) {\n bAncestor = instance.getItemMeta(bAncestor).parentId;\n }\n }\n }\n const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;\n const ancestorFamily = instance.getItemOrderedChildrenIds(commonAncestor);\n const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];\n const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];\n return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide) ? [itemAId, itemBId] : [itemBId, itemAId];\n};\nexport const getNonDisabledItemsInRange = (instance, itemAId, itemBId) => {\n const getNextItem = itemId => {\n // If the item is expanded and has some children, return the first of them.\n if (instance.isItemExpandable(itemId) && instance.isItemExpanded(itemId)) {\n return instance.getItemOrderedChildrenIds(itemId)[0];\n }\n let itemMeta = instance.getItemMeta(itemId);\n while (itemMeta != null) {\n // Try to find the first navigable sibling after the current item.\n const siblings = instance.getItemOrderedChildrenIds(itemMeta.parentId);\n const currentItemIndex = instance.getItemIndex(itemMeta.id);\n if (currentItemIndex < siblings.length - 1) {\n return siblings[currentItemIndex + 1];\n }\n\n // If the item is the last of its siblings, go up a level to the parent and try again.\n itemMeta = instance.getItemMeta(itemMeta.parentId);\n }\n throw new Error('Invalid range');\n };\n const [first, last] = findOrderInTremauxTree(instance, itemAId, itemBId);\n const items = [first];\n let current = first;\n while (current !== last) {\n current = getNextItem(current);\n if (!instance.isItemDisabled(current)) {\n items.push(current);\n }\n }\n return items;\n};\nexport const getAllNavigableItems = instance => {\n let item = getFirstNavigableItem(instance);\n const navigableItems = [];\n while (item != null) {\n navigableItems.push(item);\n item = getNextNavigableItem(instance, item);\n }\n return navigableItems;\n};\n\n/**\n * Checks if the target is in a descendant of this item.\n * This can prevent from firing some logic on the ancestors on the interacted item when the event handler is on the root.\n * @param {HTMLElement} target The target to check\n * @param {HTMLElement | null} itemRoot The root of the item to check if the event target is in its descendants\n * @returns {boolean} Whether the target is in a descendant of this item\n */\nexport const isTargetInDescendants = (target, itemRoot) => {\n return itemRoot !== target.closest('*[role=\"treeitem\"]');\n};","/**\n * Transform the `selectedItems` model to be an array if it was a string or null.\n * @param {string[] | string | null} model The raw model.\n * @returns {string[]} The converted model.\n */\nexport const convertSelectedItemsToArray = model => {\n if (Array.isArray(model)) {\n return model;\n }\n if (model != null) {\n return [model];\n }\n return [];\n};\nexport const getLookupFromArray = array => {\n const lookup = {};\n array.forEach(itemId => {\n lookup[itemId] = true;\n });\n return lookup;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { findOrderInTremauxTree, getAllNavigableItems, getFirstNavigableItem, getLastNavigableItem, getNonDisabledItemsInRange } from \"../../utils/tree.js\";\nimport { convertSelectedItemsToArray, getLookupFromArray } from \"./useTreeViewSelection.utils.js\";\nexport const useTreeViewSelection = ({\n instance,\n params,\n models\n}) => {\n const lastSelectedItem = React.useRef(null);\n const lastSelectedRange = React.useRef({});\n const selectedItemsMap = React.useMemo(() => {\n const temp = new Map();\n if (Array.isArray(models.selectedItems.value)) {\n models.selectedItems.value.forEach(id => {\n temp.set(id, true);\n });\n } else if (models.selectedItems.value != null) {\n temp.set(models.selectedItems.value, true);\n }\n return temp;\n }, [models.selectedItems.value]);\n const setSelectedItems = (event, newSelectedItems) => {\n if (params.onItemSelectionToggle) {\n if (params.multiSelect) {\n const addedItems = newSelectedItems.filter(itemId => !instance.isItemSelected(itemId));\n const removedItems = models.selectedItems.value.filter(itemId => !newSelectedItems.includes(itemId));\n addedItems.forEach(itemId => {\n params.onItemSelectionToggle(event, itemId, true);\n });\n removedItems.forEach(itemId => {\n params.onItemSelectionToggle(event, itemId, false);\n });\n } else if (newSelectedItems !== models.selectedItems.value) {\n if (models.selectedItems.value != null) {\n params.onItemSelectionToggle(event, models.selectedItems.value, false);\n }\n if (newSelectedItems != null) {\n params.onItemSelectionToggle(event, newSelectedItems, true);\n }\n }\n }\n if (params.onSelectedItemsChange) {\n params.onSelectedItemsChange(event, newSelectedItems);\n }\n models.selectedItems.setControlledValue(newSelectedItems);\n };\n const isItemSelected = itemId => selectedItemsMap.has(itemId);\n const selectItem = ({\n event,\n itemId,\n keepExistingSelection = false,\n shouldBeSelected\n }) => {\n if (params.disableSelection) {\n return;\n }\n let newSelected;\n if (keepExistingSelection) {\n const cleanSelectedItems = convertSelectedItemsToArray(models.selectedItems.value);\n const isSelectedBefore = instance.isItemSelected(itemId);\n if (isSelectedBefore && (shouldBeSelected === false || shouldBeSelected == null)) {\n newSelected = cleanSelectedItems.filter(id => id !== itemId);\n } else if (!isSelectedBefore && (shouldBeSelected === true || shouldBeSelected == null)) {\n newSelected = [itemId].concat(cleanSelectedItems);\n } else {\n newSelected = cleanSelectedItems;\n }\n } else {\n // eslint-disable-next-line no-lonely-if\n if (shouldBeSelected === false || shouldBeSelected == null && instance.isItemSelected(itemId)) {\n newSelected = params.multiSelect ? [] : null;\n } else {\n newSelected = params.multiSelect ? [itemId] : itemId;\n }\n }\n setSelectedItems(event, newSelected);\n lastSelectedItem.current = itemId;\n lastSelectedRange.current = {};\n };\n const selectRange = (event, [start, end]) => {\n if (params.disableSelection || !params.multiSelect) {\n return;\n }\n let newSelectedItems = convertSelectedItemsToArray(models.selectedItems.value).slice();\n\n // If the last selection was a range selection,\n // remove the items that were part of the last range from the model\n if (Object.keys(lastSelectedRange.current).length > 0) {\n newSelectedItems = newSelectedItems.filter(id => !lastSelectedRange.current[id]);\n }\n\n // Add to the model the items that are part of the new range and not already part of the model.\n const selectedItemsLookup = getLookupFromArray(newSelectedItems);\n const range = getNonDisabledItemsInRange(instance, start, end);\n const itemsToAddToModel = range.filter(id => !selectedItemsLookup[id]);\n newSelectedItems = newSelectedItems.concat(itemsToAddToModel);\n setSelectedItems(event, newSelectedItems);\n lastSelectedRange.current = getLookupFromArray(range);\n };\n const expandSelectionRange = (event, itemId) => {\n if (lastSelectedItem.current != null) {\n const [start, end] = findOrderInTremauxTree(instance, itemId, lastSelectedItem.current);\n selectRange(event, [start, end]);\n }\n };\n const selectRangeFromStartToItem = (event, itemId) => {\n selectRange(event, [getFirstNavigableItem(instance), itemId]);\n };\n const selectRangeFromItemToEnd = (event, itemId) => {\n selectRange(event, [itemId, getLastNavigableItem(instance)]);\n };\n const selectAllNavigableItems = event => {\n if (params.disableSelection || !params.multiSelect) {\n return;\n }\n const navigableItems = getAllNavigableItems(instance);\n setSelectedItems(event, navigableItems);\n lastSelectedRange.current = getLookupFromArray(navigableItems);\n };\n const selectItemFromArrowNavigation = (event, currentItem, nextItem) => {\n if (params.disableSelection || !params.multiSelect) {\n return;\n }\n let newSelectedItems = convertSelectedItemsToArray(models.selectedItems.value).slice();\n if (Object.keys(lastSelectedRange.current).length === 0) {\n newSelectedItems.push(nextItem);\n lastSelectedRange.current = {\n [currentItem]: true,\n [nextItem]: true\n };\n } else {\n if (!lastSelectedRange.current[currentItem]) {\n lastSelectedRange.current = {};\n }\n if (lastSelectedRange.current[nextItem]) {\n newSelectedItems = newSelectedItems.filter(id => id !== currentItem);\n delete lastSelectedRange.current[currentItem];\n } else {\n newSelectedItems.push(nextItem);\n lastSelectedRange.current[nextItem] = true;\n }\n }\n setSelectedItems(event, newSelectedItems);\n };\n return {\n getRootProps: () => ({\n 'aria-multiselectable': params.multiSelect\n }),\n publicAPI: {\n selectItem\n },\n instance: {\n isItemSelected,\n selectItem,\n selectAllNavigableItems,\n expandSelectionRange,\n selectRangeFromStartToItem,\n selectRangeFromItemToEnd,\n selectItemFromArrowNavigation\n },\n contextValue: {\n selection: {\n multiSelect: params.multiSelect,\n checkboxSelection: params.checkboxSelection,\n disableSelection: params.disableSelection\n }\n }\n };\n};\nuseTreeViewSelection.models = {\n selectedItems: {\n getDefaultValue: params => params.defaultSelectedItems\n }\n};\nconst DEFAULT_SELECTED_ITEMS = [];\nuseTreeViewSelection.getDefaultizedParams = ({\n params\n}) => _extends({}, params, {\n disableSelection: params.disableSelection ?? false,\n multiSelect: params.multiSelect ?? false,\n checkboxSelection: params.checkboxSelection ?? false,\n defaultSelectedItems: params.defaultSelectedItems ?? (params.multiSelect ? DEFAULT_SELECTED_ITEMS : null)\n});\nuseTreeViewSelection.params = {\n disableSelection: true,\n multiSelect: true,\n checkboxSelection: true,\n defaultSelectedItems: true,\n selectedItems: true,\n onSelectedItemsChange: true,\n onItemSelectionToggle: true\n};","// If no effect ran after this amount of time, we assume that the render was not committed by React\nconst CLEANUP_TIMER_LOOP_MILLIS = 1000;\nexport class TimerBasedCleanupTracking {\n constructor(timeout = CLEANUP_TIMER_LOOP_MILLIS) {\n this.timeouts = new Map();\n this.cleanupTimeout = CLEANUP_TIMER_LOOP_MILLIS;\n this.cleanupTimeout = timeout;\n }\n register(object, unsubscribe, unregisterToken) {\n if (!this.timeouts) {\n this.timeouts = new Map();\n }\n const timeout = setTimeout(() => {\n if (typeof unsubscribe === 'function') {\n unsubscribe();\n }\n this.timeouts.delete(unregisterToken.cleanupToken);\n }, this.cleanupTimeout);\n this.timeouts.set(unregisterToken.cleanupToken, timeout);\n }\n unregister(unregisterToken) {\n const timeout = this.timeouts.get(unregisterToken.cleanupToken);\n if (timeout) {\n this.timeouts.delete(unregisterToken.cleanupToken);\n clearTimeout(timeout);\n }\n }\n reset() {\n if (this.timeouts) {\n this.timeouts.forEach((value, key) => {\n this.unregister({\n cleanupToken: key\n });\n });\n this.timeouts = undefined;\n }\n }\n}","export class FinalizationRegistryBasedCleanupTracking {\n constructor() {\n this.registry = new FinalizationRegistry(unsubscribe => {\n if (typeof unsubscribe === 'function') {\n unsubscribe();\n }\n });\n }\n register(object, unsubscribe, unregisterToken) {\n this.registry.register(object, unsubscribe, unregisterToken);\n }\n unregister(unregisterToken) {\n this.registry.unregister(unregisterToken);\n }\n\n // eslint-disable-next-line class-methods-use-this\n reset() {}\n}","import * as React from 'react';\nimport { TimerBasedCleanupTracking } from \"../utils/cleanupTracking/TimerBasedCleanupTracking.js\";\nimport { FinalizationRegistryBasedCleanupTracking } from \"../utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js\";\n// We use class to make it easier to detect in heap snapshots by name\nclass ObjectToBeRetainedByReact {}\n\n// Based on https://github.com/Bnaya/use-dispose-uncommitted/blob/main/src/finalization-registry-based-impl.ts\n// Check https://github.com/facebook/react/issues/15317 to get more information\nexport function createUseInstanceEventHandler(registryContainer) {\n let cleanupTokensCounter = 0;\n return function useInstanceEventHandler(instance, eventName, handler) {\n if (registryContainer.registry === null) {\n registryContainer.registry = typeof FinalizationRegistry !== 'undefined' ? new FinalizationRegistryBasedCleanupTracking() : new TimerBasedCleanupTracking();\n }\n const [objectRetainedByReact] = React.useState(new ObjectToBeRetainedByReact());\n const subscription = React.useRef(null);\n const handlerRef = React.useRef(undefined);\n handlerRef.current = handler;\n const cleanupTokenRef = React.useRef(null);\n if (!subscription.current && handlerRef.current) {\n const enhancedHandler = (params, event) => {\n if (!event.defaultMuiPrevented) {\n handlerRef.current?.(params, event);\n }\n };\n subscription.current = instance.$$subscribeEvent(eventName, enhancedHandler);\n cleanupTokensCounter += 1;\n cleanupTokenRef.current = {\n cleanupToken: cleanupTokensCounter\n };\n registryContainer.registry.register(objectRetainedByReact,\n // The callback below will be called once this reference stops being retained\n () => {\n subscription.current?.();\n subscription.current = null;\n cleanupTokenRef.current = null;\n }, cleanupTokenRef.current);\n } else if (!handlerRef.current && subscription.current) {\n subscription.current();\n subscription.current = null;\n if (cleanupTokenRef.current) {\n registryContainer.registry.unregister(cleanupTokenRef.current);\n cleanupTokenRef.current = null;\n }\n }\n React.useEffect(() => {\n if (!subscription.current && handlerRef.current) {\n const enhancedHandler = (params, event) => {\n if (!event.defaultMuiPrevented) {\n handlerRef.current?.(params, event);\n }\n };\n subscription.current = instance.$$subscribeEvent(eventName, enhancedHandler);\n }\n if (cleanupTokenRef.current && registryContainer.registry) {\n // If the effect was called, it means that this render was committed\n // so we can trust the cleanup function to remove the listener.\n registryContainer.registry.unregister(cleanupTokenRef.current);\n cleanupTokenRef.current = null;\n }\n return () => {\n subscription.current?.();\n subscription.current = null;\n };\n }, [instance, eventName]);\n };\n}\nconst registryContainer = {\n registry: null\n};\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_resetCleanupTracking = () => {\n registryContainer.registry?.reset();\n registryContainer.registry = null;\n};\nexport const useInstanceEventHandler = createUseInstanceEventHandler(registryContainer);","// https://www.abeautifulsite.net/posts/finding-the-active-element-in-a-shadow-root/\nexport const getActiveElement = (root = document) => {\n const activeEl = root.activeElement;\n if (!activeEl) {\n return null;\n }\n if (activeEl.shadowRoot) {\n return getActiveElement(activeEl.shadowRoot);\n }\n return activeEl;\n};\n\n// TODO, eventually replaces this function with CSS.escape, once available in jsdom, either added manually or built in\n// https://github.com/jsdom/jsdom/issues/1550#issuecomment-236734471\nexport function escapeOperandAttributeSelector(operand) {\n return operand.replace(/[\"\\\\]/g, '\\\\$&');\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport ownerDocument from '@mui/utils/ownerDocument';\nimport { useInstanceEventHandler } from \"../../hooks/useInstanceEventHandler.js\";\nimport { getActiveElement } from \"../../utils/utils.js\";\nimport { getFirstNavigableItem } from \"../../utils/tree.js\";\nimport { convertSelectedItemsToArray } from \"../useTreeViewSelection/useTreeViewSelection.utils.js\";\nconst useDefaultFocusableItemId = (instance, selectedItems) => {\n let tabbableItemId = convertSelectedItemsToArray(selectedItems).find(itemId => {\n if (!instance.isItemNavigable(itemId)) {\n return false;\n }\n const itemMeta = instance.getItemMeta(itemId);\n return itemMeta && (itemMeta.parentId == null || instance.isItemExpanded(itemMeta.parentId));\n });\n if (tabbableItemId == null) {\n tabbableItemId = getFirstNavigableItem(instance);\n }\n return tabbableItemId;\n};\nexport const useTreeViewFocus = ({\n instance,\n params,\n state,\n setState,\n models,\n rootRef\n}) => {\n const defaultFocusableItemId = useDefaultFocusableItemId(instance, models.selectedItems.value);\n const setFocusedItemId = useEventCallback(itemId => {\n const cleanItemId = typeof itemId === 'function' ? itemId(state.focusedItemId) : itemId;\n if (state.focusedItemId !== cleanItemId) {\n setState(prevState => _extends({}, prevState, {\n focusedItemId: cleanItemId\n }));\n }\n });\n const isTreeViewFocused = React.useCallback(() => !!rootRef.current && rootRef.current.contains(getActiveElement(ownerDocument(rootRef.current))), [rootRef]);\n const isItemFocused = React.useCallback(itemId => state.focusedItemId === itemId && isTreeViewFocused(), [state.focusedItemId, isTreeViewFocused]);\n const isItemVisible = itemId => {\n const itemMeta = instance.getItemMeta(itemId);\n return itemMeta && (itemMeta.parentId == null || instance.isItemExpanded(itemMeta.parentId));\n };\n const innerFocusItem = (event, itemId) => {\n const itemElement = instance.getItemDOMElement(itemId);\n if (itemElement) {\n itemElement.focus();\n }\n setFocusedItemId(itemId);\n if (params.onItemFocus) {\n params.onItemFocus(event, itemId);\n }\n };\n const focusItem = useEventCallback((event, itemId) => {\n // If we receive an itemId, and it is visible, the focus will be set to it\n if (isItemVisible(itemId)) {\n innerFocusItem(event, itemId);\n }\n });\n const removeFocusedItem = useEventCallback(() => {\n if (state.focusedItemId == null) {\n return;\n }\n const itemMeta = instance.getItemMeta(state.focusedItemId);\n if (itemMeta) {\n const itemElement = instance.getItemDOMElement(state.focusedItemId);\n if (itemElement) {\n itemElement.blur();\n }\n }\n setFocusedItemId(null);\n });\n const canItemBeTabbed = itemId => itemId === defaultFocusableItemId;\n useInstanceEventHandler(instance, 'removeItem', ({\n id\n }) => {\n if (state.focusedItemId === id) {\n innerFocusItem(null, defaultFocusableItemId);\n }\n });\n const createRootHandleFocus = otherHandlers => event => {\n otherHandlers.onFocus?.(event);\n if (event.defaultMuiPrevented) {\n return;\n }\n\n // if the event bubbled (which is React specific) we don't want to steal focus\n if (event.target === event.currentTarget) {\n innerFocusItem(event, defaultFocusableItemId);\n }\n };\n return {\n getRootProps: otherHandlers => ({\n onFocus: createRootHandleFocus(otherHandlers)\n }),\n publicAPI: {\n focusItem\n },\n instance: {\n isItemFocused,\n canItemBeTabbed,\n focusItem,\n removeFocusedItem\n }\n };\n};\nuseTreeViewFocus.getInitialState = () => ({\n focusedItemId: null\n});\nuseTreeViewFocus.params = {\n onItemFocus: true\n};","export const hasPlugin = (instance, plugin) => {\n const plugins = instance.getAvailablePlugins();\n return plugins.has(plugin);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { warnOnce } from '@mui/x-internals/warning';\nimport { useTreeViewLabelItemPlugin } from \"./useTreeViewLabel.itemPlugin.js\";\nexport const useTreeViewLabel = ({\n instance,\n state,\n setState,\n params\n}) => {\n const editedItemRef = React.useRef(state.editedItemId);\n const isItemBeingEditedRef = itemId => editedItemRef.current === itemId;\n const setEditedItemId = editedItemId => {\n setState(prevState => _extends({}, prevState, {\n editedItemId\n }));\n editedItemRef.current = editedItemId;\n };\n const isItemBeingEdited = itemId => itemId === state.editedItemId;\n const isTreeViewEditable = Boolean(params.isItemEditable);\n const isItemEditable = itemId => {\n if (itemId == null || !isTreeViewEditable) {\n return false;\n }\n const item = instance.getItem(itemId);\n if (!item) {\n return false;\n }\n return typeof params.isItemEditable === 'function' ? params.isItemEditable(item) : Boolean(params.isItemEditable);\n };\n const updateItemLabel = (itemId, label) => {\n if (!label) {\n throw new Error(['MUI X: The Tree View component requires all items to have a `label` property.', 'The label of an item cannot be empty.', itemId].join('\\n'));\n }\n setState(prevState => {\n const item = prevState.items.itemMetaMap[itemId];\n if (item.label !== label) {\n return _extends({}, prevState, {\n items: _extends({}, prevState.items, {\n itemMetaMap: _extends({}, prevState.items.itemMetaMap, {\n [itemId]: _extends({}, item, {\n label\n })\n })\n })\n });\n }\n return prevState;\n });\n if (params.onItemLabelChange) {\n params.onItemLabelChange(itemId, label);\n }\n };\n return {\n instance: {\n setEditedItemId,\n isItemBeingEdited,\n updateItemLabel,\n isItemEditable,\n isTreeViewEditable,\n isItemBeingEditedRef\n },\n publicAPI: {\n updateItemLabel\n }\n };\n};\nuseTreeViewLabel.itemPlugin = useTreeViewLabelItemPlugin;\nuseTreeViewLabel.getDefaultizedParams = ({\n params,\n experimentalFeatures\n}) => {\n const canUseFeature = experimentalFeatures?.labelEditing;\n if (process.env.NODE_ENV !== 'production') {\n if (params.isItemEditable && !canUseFeature) {\n warnOnce(['MUI X: The label editing feature requires the `labelEditing` experimental feature to be enabled.', 'You can do it by passing `experimentalFeatures={{ labelEditing: true}}` to the Rich Tree View Pro component.', 'Check the documentation for more details: https://mui.com/x/react-tree-view/rich-tree-view/editing/']);\n }\n }\n return _extends({}, params, {\n isItemEditable: canUseFeature ? params.isItemEditable ?? false : false\n });\n};\nuseTreeViewLabel.getInitialState = () => ({\n editedItemId: null\n});\nuseTreeViewLabel.params = {\n onItemLabelChange: true,\n isItemEditable: true\n};","import * as React from 'react';\nimport { useTreeViewContext } from \"../../TreeViewProvider/index.js\";\nexport const useTreeViewLabelItemPlugin = ({\n props\n}) => {\n const {\n instance\n } = useTreeViewContext();\n const {\n label,\n itemId\n } = props;\n const [labelInputValue, setLabelInputValue] = React.useState(label);\n const isItemBeingEdited = instance.isItemBeingEdited(itemId);\n React.useEffect(() => {\n if (!isItemBeingEdited) {\n setLabelInputValue(label);\n }\n }, [isItemBeingEdited, label]);\n return {\n propsEnhancers: {\n labelInput: ({\n externalEventHandlers,\n interactions\n }) => {\n const editable = instance.isItemEditable(itemId);\n if (!editable) {\n return {};\n }\n const handleKeydown = event => {\n externalEventHandlers.onKeyDown?.(event);\n if (event.defaultMuiPrevented) {\n return;\n }\n const target = event.target;\n if (event.key === 'Enter' && target.value) {\n interactions.handleSaveItemLabel(event, target.value);\n } else if (event.key === 'Escape') {\n interactions.handleCancelItemLabelEditing(event);\n }\n };\n const handleBlur = event => {\n externalEventHandlers.onBlur?.(event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.target.value) {\n interactions.handleSaveItemLabel(event, event.target.value);\n }\n };\n const handleInputChange = event => {\n externalEventHandlers.onChange?.(event);\n setLabelInputValue(event.target.value);\n };\n return {\n value: labelInputValue ?? '',\n 'data-element': 'labelInput',\n onChange: handleInputChange,\n onKeyDown: handleKeydown,\n onBlur: handleBlur,\n autoFocus: true,\n type: 'text'\n };\n }\n }\n };\n};","import * as React from 'react';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport { getFirstNavigableItem, getLastNavigableItem, getNextNavigableItem, getPreviousNavigableItem, isTargetInDescendants } from \"../../utils/tree.js\";\nimport { hasPlugin } from \"../../utils/plugins.js\";\nimport { useTreeViewLabel } from \"../useTreeViewLabel/index.js\";\nfunction isPrintableKey(string) {\n return !!string && string.length === 1 && !!string.match(/\\S/);\n}\nexport const useTreeViewKeyboardNavigation = ({\n instance,\n params,\n state\n}) => {\n const isRtl = useRtl();\n const firstCharMap = React.useRef({});\n const updateFirstCharMap = useEventCallback(callback => {\n firstCharMap.current = callback(firstCharMap.current);\n });\n React.useEffect(() => {\n if (instance.areItemUpdatesPrevented()) {\n return;\n }\n const newFirstCharMap = {};\n const processItem = item => {\n newFirstCharMap[item.id] = item.label.substring(0, 1).toLowerCase();\n };\n Object.values(state.items.itemMetaMap).forEach(processItem);\n firstCharMap.current = newFirstCharMap;\n }, [state.items.itemMetaMap, params.getItemId, instance]);\n const getFirstMatchingItem = (itemId, query) => {\n const cleanQuery = query.toLowerCase();\n const getNextItem = itemIdToCheck => {\n const nextItemId = getNextNavigableItem(instance, itemIdToCheck);\n // We reached the end of the tree, check from the beginning\n if (nextItemId === null) {\n return getFirstNavigableItem(instance);\n }\n return nextItemId;\n };\n let matchingItemId = null;\n let currentItemId = getNextItem(itemId);\n const checkedItems = {};\n // The \"!checkedItems[currentItemId]\" condition avoids an infinite loop when there is no matching item.\n while (matchingItemId == null && !checkedItems[currentItemId]) {\n if (firstCharMap.current[currentItemId] === cleanQuery) {\n matchingItemId = currentItemId;\n } else {\n checkedItems[currentItemId] = true;\n currentItemId = getNextItem(currentItemId);\n }\n }\n return matchingItemId;\n };\n const canToggleItemSelection = itemId => !params.disableSelection && !instance.isItemDisabled(itemId);\n const canToggleItemExpansion = itemId => {\n return !instance.isItemDisabled(itemId) && instance.isItemExpandable(itemId);\n };\n\n // ARIA specification: https://www.w3.org/WAI/ARIA/apg/patterns/treeview/#keyboardinteraction\n const handleItemKeyDown = (event, itemId) => {\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.altKey || isTargetInDescendants(event.target, event.currentTarget)) {\n return;\n }\n const ctrlPressed = event.ctrlKey || event.metaKey;\n const key = event.key;\n\n // eslint-disable-next-line default-case\n switch (true) {\n // Select the item when pressing \"Space\"\n case key === ' ' && canToggleItemSelection(itemId):\n {\n event.preventDefault();\n if (params.multiSelect && event.shiftKey) {\n instance.expandSelectionRange(event, itemId);\n } else {\n instance.selectItem({\n event,\n itemId,\n keepExistingSelection: params.multiSelect,\n shouldBeSelected: params.multiSelect ? undefined : true\n });\n }\n break;\n }\n\n // If the focused item has children, we expand it.\n // If the focused item has no children, we select it.\n case key === 'Enter':\n {\n if (hasPlugin(instance, useTreeViewLabel) && instance.isItemEditable(itemId) && !instance.isItemBeingEdited(itemId)) {\n instance.setEditedItemId(itemId);\n } else if (canToggleItemExpansion(itemId)) {\n instance.toggleItemExpansion(event, itemId);\n event.preventDefault();\n } else if (canToggleItemSelection(itemId)) {\n if (params.multiSelect) {\n event.preventDefault();\n instance.selectItem({\n event,\n itemId,\n keepExistingSelection: true\n });\n } else if (!instance.isItemSelected(itemId)) {\n instance.selectItem({\n event,\n itemId\n });\n event.preventDefault();\n }\n }\n break;\n }\n\n // Focus the next focusable item\n case key === 'ArrowDown':\n {\n const nextItem = getNextNavigableItem(instance, itemId);\n if (nextItem) {\n event.preventDefault();\n instance.focusItem(event, nextItem);\n\n // Multi select behavior when pressing Shift + ArrowDown\n // Toggles the selection state of the next item\n if (params.multiSelect && event.shiftKey && canToggleItemSelection(nextItem)) {\n instance.selectItemFromArrowNavigation(event, itemId, nextItem);\n }\n }\n break;\n }\n\n // Focuses the previous focusable item\n case key === 'ArrowUp':\n {\n const previousItem = getPreviousNavigableItem(instance, itemId);\n if (previousItem) {\n event.preventDefault();\n instance.focusItem(event, previousItem);\n\n // Multi select behavior when pressing Shift + ArrowUp\n // Toggles the selection state of the previous item\n if (params.multiSelect && event.shiftKey && canToggleItemSelection(previousItem)) {\n instance.selectItemFromArrowNavigation(event, itemId, previousItem);\n }\n }\n break;\n }\n\n // If the focused item is expanded, we move the focus to its first child\n // If the focused item is collapsed and has children, we expand it\n case key === 'ArrowRight' && !isRtl || key === 'ArrowLeft' && isRtl:\n {\n if (ctrlPressed) {\n return;\n }\n if (instance.isItemExpanded(itemId)) {\n const nextItemId = getNextNavigableItem(instance, itemId);\n if (nextItemId) {\n instance.focusItem(event, nextItemId);\n event.preventDefault();\n }\n } else if (canToggleItemExpansion(itemId)) {\n instance.toggleItemExpansion(event, itemId);\n event.preventDefault();\n }\n break;\n }\n\n // If the focused item is expanded, we collapse it\n // If the focused item is collapsed and has a parent, we move the focus to this parent\n case key === 'ArrowLeft' && !isRtl || key === 'ArrowRight' && isRtl:\n {\n if (ctrlPressed) {\n return;\n }\n if (canToggleItemExpansion(itemId) && instance.isItemExpanded(itemId)) {\n instance.toggleItemExpansion(event, itemId);\n event.preventDefault();\n } else {\n const parent = instance.getItemMeta(itemId).parentId;\n if (parent) {\n instance.focusItem(event, parent);\n event.preventDefault();\n }\n }\n break;\n }\n\n // Focuses the first item in the tree\n case key === 'Home':\n {\n // Multi select behavior when pressing Ctrl + Shift + Home\n // Selects the focused item and all items up to the first item.\n if (canToggleItemSelection(itemId) && params.multiSelect && ctrlPressed && event.shiftKey) {\n instance.selectRangeFromStartToItem(event, itemId);\n } else {\n instance.focusItem(event, getFirstNavigableItem(instance));\n }\n event.preventDefault();\n break;\n }\n\n // Focuses the last item in the tree\n case key === 'End':\n {\n // Multi select behavior when pressing Ctrl + Shirt + End\n // Selects the focused item and all the items down to the last item.\n if (canToggleItemSelection(itemId) && params.multiSelect && ctrlPressed && event.shiftKey) {\n instance.selectRangeFromItemToEnd(event, itemId);\n } else {\n instance.focusItem(event, getLastNavigableItem(instance));\n }\n event.preventDefault();\n break;\n }\n\n // Expand all siblings that are at the same level as the focused item\n case key === '*':\n {\n instance.expandAllSiblings(event, itemId);\n event.preventDefault();\n break;\n }\n\n // Multi select behavior when pressing Ctrl + a\n // Selects all the items\n case String.fromCharCode(event.keyCode) === 'A' && ctrlPressed && params.multiSelect && !params.disableSelection:\n {\n instance.selectAllNavigableItems(event);\n event.preventDefault();\n break;\n }\n\n // Type-ahead\n // TODO: Support typing multiple characters\n case !ctrlPressed && !event.shiftKey && isPrintableKey(key):\n {\n const matchingItem = getFirstMatchingItem(itemId, key);\n if (matchingItem != null) {\n instance.focusItem(event, matchingItem);\n event.preventDefault();\n }\n break;\n }\n }\n };\n return {\n instance: {\n updateFirstCharMap,\n handleItemKeyDown\n }\n };\n};\nuseTreeViewKeyboardNavigation.params = {};","export const useTreeViewIcons = ({\n slots,\n slotProps\n}) => {\n return {\n contextValue: {\n icons: {\n slots: {\n collapseIcon: slots.collapseIcon,\n expandIcon: slots.expandIcon,\n endIcon: slots.endIcon\n },\n slotProps: {\n collapseIcon: slotProps.collapseIcon,\n expandIcon: slotProps.expandIcon,\n endIcon: slotProps.endIcon\n }\n }\n }\n };\n};\nuseTreeViewIcons.params = {};","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTreeViewContext } from \"./useTreeViewContext.js\";\nimport { escapeOperandAttributeSelector } from \"../utils/utils.js\";\nimport { generateTreeItemIdAttribute } from \"../corePlugins/useTreeViewId/useTreeViewId.utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const TreeViewChildrenItemContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n TreeViewChildrenItemContext.displayName = 'TreeViewChildrenItemContext';\n}\nexport function TreeViewChildrenItemProvider(props) {\n const {\n children,\n itemId = null\n } = props;\n const {\n instance,\n treeId,\n rootRef\n } = useTreeViewContext();\n const childrenIdAttrToIdRef = React.useRef(new Map());\n React.useEffect(() => {\n if (!rootRef.current) {\n return;\n }\n let idAttr = null;\n if (itemId == null) {\n idAttr = rootRef.current.id;\n } else {\n // Undefined during 1st render\n const itemMeta = instance.getItemMeta(itemId);\n if (itemMeta !== undefined) {\n idAttr = generateTreeItemIdAttribute({\n itemId,\n treeId,\n id: itemMeta.idAttribute\n });\n }\n }\n if (idAttr == null) {\n return;\n }\n const previousChildrenIds = instance.getItemOrderedChildrenIds(itemId ?? null) ?? [];\n const escapedIdAttr = escapeOperandAttributeSelector(idAttr);\n const childrenElements = rootRef.current.querySelectorAll(`${itemId == null ? '' : `*[id=\"${escapedIdAttr}\"] `}[role=\"treeitem\"]:not(*[id=\"${escapedIdAttr}\"] [role=\"treeitem\"] [role=\"treeitem\"])`);\n const childrenIds = Array.from(childrenElements).map(child => childrenIdAttrToIdRef.current.get(child.id));\n const hasChanged = childrenIds.length !== previousChildrenIds.length || childrenIds.some((childId, index) => childId !== previousChildrenIds[index]);\n if (hasChanged) {\n instance.setJSXItemsOrderedChildrenIds(itemId ?? null, childrenIds);\n }\n });\n const value = React.useMemo(() => ({\n registerChild: (childIdAttribute, childItemId) => childrenIdAttrToIdRef.current.set(childIdAttribute, childItemId),\n unregisterChild: childIdAttribute => childrenIdAttrToIdRef.current.delete(childIdAttribute),\n parentId: itemId\n }), [itemId]);\n return /*#__PURE__*/_jsx(TreeViewChildrenItemContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TreeViewChildrenItemProvider.propTypes = {\n children: PropTypes.node,\n id: PropTypes.string\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport useForkRef from '@mui/utils/useForkRef';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport { publishTreeViewEvent } from \"../../utils/publishTreeViewEvent.js\";\nimport { useTreeViewContext } from \"../../TreeViewProvider/index.js\";\nimport { TreeViewChildrenItemContext, TreeViewChildrenItemProvider } from \"../../TreeViewProvider/TreeViewChildrenItemProvider.js\";\nimport { buildSiblingIndexes, TREE_VIEW_ROOT_PARENT_ID } from \"../useTreeViewItems/useTreeViewItems.utils.js\";\nimport { TreeViewItemDepthContext } from \"../../TreeViewItemDepthContext/index.js\";\nimport { generateTreeItemIdAttribute } from \"../../corePlugins/useTreeViewId/useTreeViewId.utils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const useTreeViewJSXItems = ({\n instance,\n setState\n}) => {\n instance.preventItemUpdates();\n const insertJSXItem = useEventCallback(item => {\n setState(prevState => {\n if (prevState.items.itemMetaMap[item.id] != null) {\n throw new Error(['MUI X: The Tree View component requires all items to have a unique `id` property.', 'Alternatively, you can use the `getItemId` prop to specify a custom id for each item.', `Two items were provided with the same id in the \\`items\\` prop: \"${item.id}\"`].join('\\n'));\n }\n return _extends({}, prevState, {\n items: _extends({}, prevState.items, {\n itemMetaMap: _extends({}, prevState.items.itemMetaMap, {\n [item.id]: item\n }),\n // For Simple Tree View, we don't have a proper `item` object, so we create a very basic one.\n itemMap: _extends({}, prevState.items.itemMap, {\n [item.id]: {\n id: item.id,\n label: item.label\n }\n })\n })\n });\n });\n return () => {\n setState(prevState => {\n const newItemMetaMap = _extends({}, prevState.items.itemMetaMap);\n const newItemMap = _extends({}, prevState.items.itemMap);\n delete newItemMetaMap[item.id];\n delete newItemMap[item.id];\n return _extends({}, prevState, {\n items: _extends({}, prevState.items, {\n itemMetaMap: newItemMetaMap,\n itemMap: newItemMap\n })\n });\n });\n publishTreeViewEvent(instance, 'removeItem', {\n id: item.id\n });\n };\n });\n const setJSXItemsOrderedChildrenIds = (parentId, orderedChildrenIds) => {\n const parentIdWithDefault = parentId ?? TREE_VIEW_ROOT_PARENT_ID;\n setState(prevState => _extends({}, prevState, {\n items: _extends({}, prevState.items, {\n itemOrderedChildrenIds: _extends({}, prevState.items.itemOrderedChildrenIds, {\n [parentIdWithDefault]: orderedChildrenIds\n }),\n itemChildrenIndexes: _extends({}, prevState.items.itemChildrenIndexes, {\n [parentIdWithDefault]: buildSiblingIndexes(orderedChildrenIds)\n })\n })\n }));\n };\n const mapFirstCharFromJSX = useEventCallback((itemId, firstChar) => {\n instance.updateFirstCharMap(firstCharMap => {\n firstCharMap[itemId] = firstChar;\n return firstCharMap;\n });\n return () => {\n instance.updateFirstCharMap(firstCharMap => {\n const newMap = _extends({}, firstCharMap);\n delete newMap[itemId];\n return newMap;\n });\n };\n });\n return {\n instance: {\n insertJSXItem,\n setJSXItemsOrderedChildrenIds,\n mapFirstCharFromJSX\n }\n };\n};\nconst isItemExpandable = reactChildren => {\n if (Array.isArray(reactChildren)) {\n return reactChildren.length > 0 && reactChildren.some(isItemExpandable);\n }\n return Boolean(reactChildren);\n};\nconst useTreeViewJSXItemsItemPlugin = ({\n props,\n rootRef,\n contentRef\n}) => {\n const {\n instance,\n treeId\n } = useTreeViewContext();\n const {\n children,\n disabled = false,\n label,\n itemId,\n id\n } = props;\n const parentContext = React.useContext(TreeViewChildrenItemContext);\n if (parentContext == null) {\n throw new Error(['MUI X: Could not find the Tree View Children Item context.', 'It looks like you rendered your component outside of a SimpleTreeView parent component.', 'This can also happen if you are bundling multiple versions of the Tree View.'].join('\\n'));\n }\n const {\n registerChild,\n unregisterChild,\n parentId\n } = parentContext;\n const expandable = isItemExpandable(children);\n const pluginContentRef = React.useRef(null);\n const handleContentRef = useForkRef(pluginContentRef, contentRef);\n\n // Prevent any flashing\n useEnhancedEffect(() => {\n const idAttribute = generateTreeItemIdAttribute({\n itemId,\n treeId,\n id\n });\n registerChild(idAttribute, itemId);\n return () => {\n unregisterChild(idAttribute);\n };\n }, [registerChild, unregisterChild, itemId, id, treeId]);\n React.useEffect(() => {\n return instance.insertJSXItem({\n id: itemId,\n idAttribute: id,\n parentId,\n expandable,\n disabled\n });\n }, [instance, parentId, itemId, expandable, disabled, id]);\n React.useEffect(() => {\n if (label) {\n return instance.mapFirstCharFromJSX(itemId, (pluginContentRef.current?.textContent ?? '').substring(0, 1).toLowerCase());\n }\n return undefined;\n }, [instance, itemId, label]);\n return {\n contentRef: handleContentRef,\n rootRef\n };\n};\nuseTreeViewJSXItems.itemPlugin = useTreeViewJSXItemsItemPlugin;\nuseTreeViewJSXItems.wrapItem = ({\n children,\n itemId\n}) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const depthContext = React.useContext(TreeViewItemDepthContext);\n return /*#__PURE__*/_jsx(TreeViewChildrenItemProvider, {\n itemId: itemId,\n children: /*#__PURE__*/_jsx(TreeViewItemDepthContext.Provider, {\n value: depthContext + 1,\n children: children\n })\n });\n};\nuseTreeViewJSXItems.wrapRoot = ({\n children\n}) => /*#__PURE__*/_jsx(TreeViewChildrenItemProvider, {\n children: /*#__PURE__*/_jsx(TreeViewItemDepthContext.Provider, {\n value: 0,\n children: children\n })\n});\nuseTreeViewJSXItems.params = {};","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { warnOnce } from '@mui/x-internals/warning';\nimport { styled, createUseThemeProps } from \"../internals/zero-styled/index.js\";\nimport { getSimpleTreeViewUtilityClass } from \"./simpleTreeViewClasses.js\";\nimport { useTreeView } from \"../internals/useTreeView/index.js\";\nimport { TreeViewProvider } from \"../internals/TreeViewProvider/index.js\";\nimport { SIMPLE_TREE_VIEW_PLUGINS } from \"./SimpleTreeView.plugins.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useThemeProps = createUseThemeProps('MuiSimpleTreeView');\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getSimpleTreeViewUtilityClass, classes);\n};\nexport const SimpleTreeViewRoot = styled('ul', {\n name: 'MuiSimpleTreeView',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n padding: 0,\n margin: 0,\n listStyle: 'none',\n outline: 0,\n position: 'relative'\n});\nconst EMPTY_ITEMS = [];\n\n/**\n *\n * Demos:\n *\n * - [Tree View](https://mui.com/x/react-tree-view/)\n *\n * API:\n *\n * - [SimpleTreeView API](https://mui.com/x/api/tree-view/simple-tree-view/)\n */\nconst SimpleTreeView = /*#__PURE__*/React.forwardRef(function SimpleTreeView(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSimpleTreeView'\n });\n const ownerState = props;\n if (process.env.NODE_ENV !== 'production') {\n if (props.items != null) {\n warnOnce(['MUI X: The Simple Tree View component does not support the `items` prop.', 'If you want to add items, you need to pass them as JSX children.', 'Check the documentation for more details: https://mui.com/x/react-tree-view/simple-tree-view/items/.']);\n }\n }\n const {\n getRootProps,\n contextValue\n } = useTreeView({\n plugins: SIMPLE_TREE_VIEW_PLUGINS,\n rootRef: ref,\n props: _extends({}, props, {\n items: EMPTY_ITEMS\n })\n });\n const {\n slots,\n slotProps\n } = props;\n const classes = useUtilityClasses(props);\n const Root = slots?.root ?? SimpleTreeViewRoot;\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps?.root,\n className: classes.root,\n getSlotProps: getRootProps,\n ownerState\n });\n return /*#__PURE__*/_jsx(TreeViewProvider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? SimpleTreeView.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The ref object that allows Tree View manipulation. Can be instantiated with `useTreeViewApiRef()`.\n */\n apiRef: PropTypes.shape({\n current: PropTypes.shape({\n focusItem: PropTypes.func.isRequired,\n getItem: PropTypes.func.isRequired,\n getItemDOMElement: PropTypes.func.isRequired,\n getItemOrderedChildrenIds: PropTypes.func.isRequired,\n getItemTree: PropTypes.func.isRequired,\n selectItem: PropTypes.func.isRequired,\n setItemExpansion: PropTypes.func.isRequired\n })\n }),\n /**\n * If `true`, the Tree View renders a checkbox at the left of its label that allows selecting it.\n * @default false\n */\n checkboxSelection: PropTypes.bool,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * Expanded item ids.\n * Used when the item's expansion is not controlled.\n * @default []\n */\n defaultExpandedItems: PropTypes.arrayOf(PropTypes.string),\n /**\n * Selected item ids. (Uncontrolled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelectedItems: PropTypes.any,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true` selection is disabled.\n * @default false\n */\n disableSelection: PropTypes.bool,\n /**\n * Expanded item ids.\n * Used when the item's expansion is controlled.\n */\n expandedItems: PropTypes.arrayOf(PropTypes.string),\n /**\n * The slot that triggers the item's expansion when clicked.\n * @default 'content'\n */\n expansionTrigger: PropTypes.oneOf(['content', 'iconContainer']),\n /**\n * Unstable features, breaking changes might be introduced.\n * For each feature, if the flag is not explicitly set to `true`,\n * the feature will be fully disabled and any property / method call will not have any effect.\n */\n experimentalFeatures: PropTypes.shape({\n indentationAtItemLevel: PropTypes.bool\n }),\n /**\n * This prop is used to help implement the accessibility logic.\n * If you don't provide this prop. It falls back to a randomly generated id.\n */\n id: PropTypes.string,\n /**\n * Horizontal indentation between an item and its children.\n * Examples: 24, \"24px\", \"2rem\", \"2em\".\n * @default 12px\n */\n itemChildrenIndentation: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, `ctrl` and `shift` will trigger multiselect.\n * @default false\n */\n multiSelect: PropTypes.bool,\n /**\n * Callback fired when Tree Items are expanded/collapsed.\n * @param {React.SyntheticEvent} event The DOM event that triggered the change.\n * @param {array} itemIds The ids of the expanded items.\n */\n onExpandedItemsChange: PropTypes.func,\n /**\n * Callback fired when the `content` slot of a given Tree Item is clicked.\n * @param {React.MouseEvent} event The DOM event that triggered the change.\n * @param {string} itemId The id of the focused item.\n */\n onItemClick: PropTypes.func,\n /**\n * Callback fired when a Tree Item is expanded or collapsed.\n * @param {React.SyntheticEvent} event The DOM event that triggered the change.\n * @param {array} itemId The itemId of the modified item.\n * @param {array} isExpanded `true` if the item has just been expanded, `false` if it has just been collapsed.\n */\n onItemExpansionToggle: PropTypes.func,\n /**\n * Callback fired when a given Tree Item is focused.\n * @param {React.SyntheticEvent | null} event The DOM event that triggered the change. **Warning**: This is a generic event not a focus event.\n * @param {string} itemId The id of the focused item.\n */\n onItemFocus: PropTypes.func,\n /**\n * Callback fired when a Tree Item is selected or deselected.\n * @param {React.SyntheticEvent} event The DOM event that triggered the change.\n * @param {array} itemId The itemId of the modified item.\n * @param {array} isSelected `true` if the item has just been selected, `false` if it has just been deselected.\n */\n onItemSelectionToggle: PropTypes.func,\n /**\n * Callback fired when Tree Items are selected/deselected.\n * @param {React.SyntheticEvent} event The DOM event that triggered the change.\n * @param {string[] | string} itemIds The ids of the selected items.\n * When `multiSelect` is `true`, this is an array of strings; when false (default) a string.\n */\n onSelectedItemsChange: PropTypes.func,\n /**\n * Selected item ids. (Controlled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n */\n selectedItems: PropTypes.any,\n /**\n * The props used for each component slot.\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { SimpleTreeView };","import { useTreeViewItems } from \"../internals/plugins/useTreeViewItems/index.js\";\nimport { useTreeViewExpansion } from \"../internals/plugins/useTreeViewExpansion/index.js\";\nimport { useTreeViewSelection } from \"../internals/plugins/useTreeViewSelection/index.js\";\nimport { useTreeViewFocus } from \"../internals/plugins/useTreeViewFocus/index.js\";\nimport { useTreeViewKeyboardNavigation } from \"../internals/plugins/useTreeViewKeyboardNavigation/index.js\";\nimport { useTreeViewIcons } from \"../internals/plugins/useTreeViewIcons/index.js\";\nimport { useTreeViewJSXItems } from \"../internals/plugins/useTreeViewJSXItems/index.js\";\nexport const SIMPLE_TREE_VIEW_PLUGINS = [useTreeViewItems, useTreeViewExpansion, useTreeViewSelection, useTreeViewFocus, useTreeViewKeyboardNavigation, useTreeViewIcons, useTreeViewJSXItems];\n\n// We can't infer this type from the plugin, otherwise we would lose the generics.","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled, createUseThemeProps } from \"../internals/zero-styled/index.js\";\nimport { getTreeViewUtilityClass } from \"./treeViewClasses.js\";\nimport { SimpleTreeView, SimpleTreeViewRoot } from \"../SimpleTreeView/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useThemeProps = createUseThemeProps('MuiTreeView');\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTreeViewUtilityClass, classes);\n};\nconst TreeViewRoot = styled(SimpleTreeViewRoot, {\n name: 'MuiTreeView',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nlet warnedOnce = false;\nconst warn = () => {\n if (!warnedOnce) {\n console.warn(['MUI X: The TreeView component was renamed SimpleTreeView.', 'The component with the old naming will be removed in the version v8.0.0.', '', \"You should use `import { SimpleTreeView } from '@mui/x-tree-view'`\", \"or `import { SimpleTreeView } from '@mui/x-tree-view/TreeView'`\"].join('\\n'));\n warnedOnce = true;\n }\n};\n\n/**\n * This component has been deprecated in favor of the new Simple Tree View component.\n * You can have a look at how to migrate to the new component in the v7 [migration guide](https://mui.com/x/migration/migration-tree-view-v6/#use-simpletreeview-instead-of-treeview)\n *\n * Demos:\n *\n * - [Tree View](https://mui.com/x/react-tree-view/)\n *\n * API:\n *\n * - [TreeView API](https://mui.com/x/api/tree-view/tree-view/)\n *\n * @deprecated\n */\nconst TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n warn();\n }\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTreeView'\n });\n const classes = useUtilityClasses(props);\n return /*#__PURE__*/_jsx(SimpleTreeView, _extends({}, props, {\n ref: ref,\n classes: classes,\n slots: _extends({\n root: TreeViewRoot\n }, props.slots)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TreeView.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The ref object that allows Tree View manipulation. Can be instantiated with `useTreeViewApiRef()`.\n */\n apiRef: PropTypes.shape({\n current: PropTypes.shape({\n focusItem: PropTypes.func.isRequired,\n getItem: PropTypes.func.isRequired,\n getItemDOMElement: PropTypes.func.isRequired,\n getItemOrderedChildrenIds: PropTypes.func.isRequired,\n getItemTree: PropTypes.func.isRequired,\n selectItem: PropTypes.func.isRequired,\n setItemExpansion: PropTypes.func.isRequired\n })\n }),\n /**\n * If `true`, the Tree View renders a checkbox at the left of its label that allows selecting it.\n * @default false\n */\n checkboxSelection: PropTypes.bool,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * Expanded item ids.\n * Used when the item's expansion is not controlled.\n * @default []\n */\n defaultExpandedItems: PropTypes.arrayOf(PropTypes.string),\n /**\n * Selected item ids. (Uncontrolled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelectedItems: PropTypes.any,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true` selection is disabled.\n * @default false\n */\n disableSelection: PropTypes.bool,\n /**\n * Expanded item ids.\n * Used when the item's expansion is controlled.\n */\n expandedItems: PropTypes.arrayOf(PropTypes.string),\n /**\n * The slot that triggers the item's expansion when clicked.\n * @default 'content'\n */\n expansionTrigger: PropTypes.oneOf(['content', 'iconContainer']),\n /**\n * Unstable features, breaking changes might be introduced.\n * For each feature, if the flag is not explicitly set to `true`,\n * the feature will be fully disabled and any property / method call will not have any effect.\n */\n experimentalFeatures: PropTypes.shape({\n indentationAtItemLevel: PropTypes.bool\n }),\n /**\n * This prop is used to help implement the accessibility logic.\n * If you don't provide this prop. It falls back to a randomly generated id.\n */\n id: PropTypes.string,\n /**\n * Horizontal indentation between an item and its children.\n * Examples: 24, \"24px\", \"2rem\", \"2em\".\n * @default 12px\n */\n itemChildrenIndentation: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, `ctrl` and `shift` will trigger multiselect.\n * @default false\n */\n multiSelect: PropTypes.bool,\n /**\n * Callback fired when Tree Items are expanded/collapsed.\n * @param {React.SyntheticEvent} event The DOM event that triggered the change.\n * @param {array} itemIds The ids of the expanded items.\n */\n onExpandedItemsChange: PropTypes.func,\n /**\n * Callback fired when the `content` slot of a given Tree Item is clicked.\n * @param {React.MouseEvent} event The DOM event that triggered the change.\n * @param {string} itemId The id of the focused item.\n */\n onItemClick: PropTypes.func,\n /**\n * Callback fired when a Tree Item is expanded or collapsed.\n * @param {React.SyntheticEvent} event The DOM event that triggered the change.\n * @param {array} itemId The itemId of the modified item.\n * @param {array} isExpanded `true` if the item has just been expanded, `false` if it has just been collapsed.\n */\n onItemExpansionToggle: PropTypes.func,\n /**\n * Callback fired when a given Tree Item is focused.\n * @param {React.SyntheticEvent | null} event The DOM event that triggered the change. **Warning**: This is a generic event not a focus event.\n * @param {string} itemId The id of the focused item.\n */\n onItemFocus: PropTypes.func,\n /**\n * Callback fired when a Tree Item is selected or deselected.\n * @param {React.SyntheticEvent} event The DOM event that triggered the change.\n * @param {array} itemId The itemId of the modified item.\n * @param {array} isSelected `true` if the item has just been selected, `false` if it has just been deselected.\n */\n onItemSelectionToggle: PropTypes.func,\n /**\n * Callback fired when Tree Items are selected/deselected.\n * @param {React.SyntheticEvent} event The DOM event that triggered the change.\n * @param {string[] | string} itemIds The ids of the selected items.\n * When `multiSelect` is `true`, this is an array of strings; when false (default) a string.\n */\n onSelectedItemsChange: PropTypes.func,\n /**\n * Selected item ids. (Controlled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n */\n selectedItems: PropTypes.any,\n /**\n * The props used for each component slot.\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { TreeView };","import generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nexport function getRichTreeViewUtilityClass(slot) {\n return generateUtilityClass('MuiRichTreeView', slot);\n}\nexport const richTreeViewClasses = generateUtilityClasses('MuiRichTreeView', ['root']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { alpha } from '@mui/material/styles';\nimport { shouldForwardProp } from '@mui/system';\nimport { styled } from \"../internals/zero-styled/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TreeItem2DragAndDropOverlayRoot = styled('div', {\n name: 'MuiTreeItem2DragAndDropOverlay',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root,\n shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'action'\n})(({\n theme\n}) => ({\n position: 'absolute',\n left: 0,\n display: 'flex',\n top: 0,\n bottom: 0,\n right: 0,\n pointerEvents: 'none',\n variants: [{\n props: {\n action: 'make-child'\n },\n style: {\n marginLeft: 'calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))',\n borderRadius: theme.shape.borderRadius,\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.darkChannel} / ${theme.vars.palette.action.focusOpacity})` : alpha(theme.palette.primary.dark, theme.palette.action.focusOpacity)\n }\n }, {\n props: {\n action: 'reorder-above'\n },\n style: {\n marginLeft: 'calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))',\n borderTop: `1px solid ${(theme.vars || theme).palette.action.active}`\n }\n }, {\n props: {\n action: 'reorder-below'\n },\n style: {\n marginLeft: 'calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))',\n borderBottom: `1px solid ${(theme.vars || theme).palette.action.active}`\n }\n }, {\n props: {\n action: 'move-to-parent'\n },\n style: {\n marginLeft: 'calc(var(--TreeView-indentMultiplier) * calc(var(--TreeView-itemDepth) - 1))',\n borderBottom: `1px solid ${(theme.vars || theme).palette.action.active}`\n }\n }]\n}));\nfunction TreeItem2DragAndDropOverlay(props) {\n if (props.action == null) {\n return null;\n }\n return /*#__PURE__*/_jsx(TreeItem2DragAndDropOverlayRoot, _extends({}, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? TreeItem2DragAndDropOverlay.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n action: PropTypes.oneOf(['make-child', 'move-to-parent', 'reorder-above', 'reorder-below']),\n style: PropTypes.object\n} : void 0;\nexport { TreeItem2DragAndDropOverlay };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { styled } from \"../internals/zero-styled/index.js\";\n\n/**\n * @ignore - internal component.\n */\nconst TreeItem2LabelInput = styled('input', {\n name: 'MuiTreeItem2',\n slot: 'LabelInput',\n overridesResolver: (props, styles) => styles.labelInput\n})(({\n theme\n}) => _extends({}, theme.typography.body1, {\n width: '100%',\n backgroundColor: theme.palette.background.paper,\n borderRadius: theme.shape.borderRadius,\n border: 'none',\n padding: '0 2px',\n boxSizing: 'border-box',\n '&:focus': {\n outline: `1px solid ${theme.palette.primary.main}`\n }\n}));\nexport { TreeItem2LabelInput };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"classes\", \"className\", \"displayIcon\", \"expansionIcon\", \"icon\", \"label\", \"itemId\", \"onClick\", \"onMouseDown\", \"dragAndDropOverlayProps\", \"labelInputProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Checkbox from '@mui/material/Checkbox';\nimport { useTreeItemState } from \"./useTreeItemState.js\";\nimport { TreeItem2DragAndDropOverlay } from \"../TreeItem2DragAndDropOverlay/index.js\";\nimport { TreeItem2LabelInput } from \"../TreeItem2LabelInput/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * @ignore - internal component.\n */\nconst TreeItemContent = /*#__PURE__*/React.forwardRef(function TreeItemContent(props, ref) {\n const {\n classes,\n className,\n displayIcon,\n expansionIcon,\n icon: iconProp,\n label,\n itemId,\n onClick,\n onMouseDown,\n dragAndDropOverlayProps,\n labelInputProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n disabled,\n expanded,\n selected,\n focused,\n editing,\n editable,\n disableSelection,\n checkboxSelection,\n handleExpansion,\n handleSelection,\n handleCheckboxSelection,\n handleContentClick,\n preventSelection,\n expansionTrigger,\n toggleItemEditing\n } = useTreeItemState(itemId);\n const icon = iconProp || expansionIcon || displayIcon;\n const checkboxRef = React.useRef(null);\n const handleMouseDown = event => {\n preventSelection(event);\n if (onMouseDown) {\n onMouseDown(event);\n }\n };\n const handleClick = event => {\n handleContentClick?.(event, itemId);\n if (checkboxRef.current?.contains(event.target)) {\n return;\n }\n if (expansionTrigger === 'content') {\n handleExpansion(event);\n }\n if (!checkboxSelection) {\n handleSelection(event);\n }\n if (onClick) {\n onClick(event);\n }\n };\n const handleLabelDoubleClick = event => {\n if (event.defaultMuiPrevented) {\n return;\n }\n toggleItemEditing();\n };\n return /*#__PURE__*/ /* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions -- Key event is handled by the TreeView */_jsxs(\"div\", _extends({}, other, {\n className: clsx(classes.root, className, expanded && classes.expanded, selected && classes.selected, focused && classes.focused, disabled && classes.disabled, editing && classes.editing, editable && classes.editable),\n onClick: handleClick,\n onMouseDown: handleMouseDown,\n ref: ref,\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: classes.iconContainer,\n children: icon\n }), checkboxSelection && /*#__PURE__*/_jsx(Checkbox, {\n className: classes.checkbox,\n checked: selected,\n onChange: handleCheckboxSelection,\n disabled: disabled || disableSelection,\n ref: checkboxRef,\n tabIndex: -1\n }), editing ? /*#__PURE__*/_jsx(TreeItem2LabelInput, _extends({}, labelInputProps, {\n className: classes.labelInput\n })) : /*#__PURE__*/_jsx(\"div\", _extends({\n className: classes.label\n }, editable && {\n onDoubleClick: handleLabelDoubleClick\n }, {\n children: label\n })), dragAndDropOverlayProps && /*#__PURE__*/_jsx(TreeItem2DragAndDropOverlay, _extends({}, dragAndDropOverlayProps))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TreeItemContent.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n /**\n * The icon to display next to the Tree Item's label. Either a parent or end icon.\n */\n displayIcon: PropTypes.node,\n dragAndDropOverlayProps: PropTypes.shape({\n action: PropTypes.oneOf(['make-child', 'move-to-parent', 'reorder-above', 'reorder-below']),\n style: PropTypes.object\n }),\n /**\n * The icon to display next to the Tree Item's label. Either an expansion or collapse icon.\n */\n expansionIcon: PropTypes.node,\n /**\n * The icon to display next to the Tree Item's label.\n */\n icon: PropTypes.node,\n /**\n * The id of the item.\n */\n itemId: PropTypes.string.isRequired,\n /**\n * The Tree Item label.\n */\n label: PropTypes.node,\n labelInputProps: PropTypes.shape({\n autoFocus: PropTypes.oneOf([true]),\n 'data-element': PropTypes.oneOf(['labelInput']),\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onKeyDown: PropTypes.func,\n type: PropTypes.oneOf(['text']),\n value: PropTypes.string\n })\n} : void 0;\nexport { TreeItemContent };","'use client';\n\nimport { useTreeViewContext } from \"../internals/TreeViewProvider/index.js\";\nimport { useTreeViewLabel } from \"../internals/plugins/useTreeViewLabel/index.js\";\nimport { hasPlugin } from \"../internals/utils/plugins.js\";\nexport function useTreeItemState(itemId) {\n const {\n instance,\n items: {\n onItemClick\n },\n selection: {\n multiSelect,\n checkboxSelection,\n disableSelection\n },\n expansion: {\n expansionTrigger\n }\n } = useTreeViewContext();\n const expandable = instance.isItemExpandable(itemId);\n const expanded = instance.isItemExpanded(itemId);\n const focused = instance.isItemFocused(itemId);\n const selected = instance.isItemSelected(itemId);\n const disabled = instance.isItemDisabled(itemId);\n const editing = instance?.isItemBeingEdited ? instance?.isItemBeingEdited(itemId) : false;\n const editable = instance.isItemEditable ? instance.isItemEditable(itemId) : false;\n const handleExpansion = event => {\n if (!disabled) {\n if (!focused) {\n instance.focusItem(event, itemId);\n }\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n // If already expanded and trying to toggle selection don't close\n if (expandable && !(multiple && instance.isItemExpanded(itemId))) {\n instance.toggleItemExpansion(event, itemId);\n }\n }\n };\n const handleSelection = event => {\n if (!disabled) {\n if (!focused) {\n instance.focusItem(event, itemId);\n }\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n if (multiple) {\n if (event.shiftKey) {\n instance.expandSelectionRange(event, itemId);\n } else {\n instance.selectItem({\n event,\n itemId,\n keepExistingSelection: true\n });\n }\n } else {\n instance.selectItem({\n event,\n itemId,\n shouldBeSelected: true\n });\n }\n }\n };\n const handleCheckboxSelection = event => {\n if (disableSelection || disabled) {\n return;\n }\n const hasShift = event.nativeEvent.shiftKey;\n if (multiSelect && hasShift) {\n instance.expandSelectionRange(event, itemId);\n } else {\n instance.selectItem({\n event,\n itemId,\n keepExistingSelection: multiSelect,\n shouldBeSelected: event.target.checked\n });\n }\n };\n const preventSelection = event => {\n if (event.shiftKey || event.ctrlKey || event.metaKey || disabled) {\n // Prevent text selection\n event.preventDefault();\n }\n };\n const toggleItemEditing = () => {\n if (!hasPlugin(instance, useTreeViewLabel)) {\n return;\n }\n if (instance.isItemEditable(itemId)) {\n if (instance.isItemBeingEdited(itemId)) {\n instance.setEditedItemId(null);\n } else {\n instance.setEditedItemId(itemId);\n }\n }\n };\n const handleSaveItemLabel = (event, label) => {\n if (!hasPlugin(instance, useTreeViewLabel)) {\n return;\n }\n\n // As a side effect of `instance.focusItem` called here and in `handleCancelItemLabelEditing` the `labelInput` is blurred\n // The `onBlur` event is triggered, which calls `handleSaveItemLabel` again.\n // To avoid creating an unwanted behavior we need to check if the item is being edited before calling `updateItemLabel`\n // using `instance.isItemBeingEditedRef` instead of `instance.isItemBeingEdited` since the state is not yet updated in this point\n if (instance.isItemBeingEditedRef(itemId)) {\n instance.updateItemLabel(itemId, label);\n toggleItemEditing();\n instance.focusItem(event, itemId);\n }\n };\n const handleCancelItemLabelEditing = event => {\n if (!hasPlugin(instance, useTreeViewLabel)) {\n return;\n }\n if (instance.isItemBeingEditedRef(itemId)) {\n toggleItemEditing();\n instance.focusItem(event, itemId);\n }\n };\n return {\n disabled,\n expanded,\n selected,\n focused,\n editable,\n editing,\n disableSelection,\n checkboxSelection,\n handleExpansion,\n handleSelection,\n handleCheckboxSelection,\n handleContentClick: onItemClick,\n preventSelection,\n expansionTrigger,\n toggleItemEditing,\n handleSaveItemLabel,\n handleCancelItemLabelEditing\n };\n}","import generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nexport function getTreeItemUtilityClass(slot) {\n return generateUtilityClass('MuiTreeItem', slot);\n}\nexport const treeItemClasses = generateUtilityClasses('MuiTreeItem', ['root', 'groupTransition', 'content', 'expanded', 'selected', 'focused', 'disabled', 'iconContainer', 'label', 'checkbox', 'labelInput', 'editable', 'editing', 'dragAndDropOverlay']);","import { createSvgIcon } from '@mui/material/utils';\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const TreeViewExpandIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), 'TreeViewExpandIcon');\nexport const TreeViewCollapseIcon = createSvgIcon(/*#__PURE__*/_jsx(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'TreeViewCollapseIcon');","import PropTypes from 'prop-types';\nimport { useTreeViewContext } from \"../internals/TreeViewProvider/index.js\";\nfunction TreeItem2Provider(props) {\n const {\n children,\n itemId\n } = props;\n const {\n wrapItem,\n instance\n } = useTreeViewContext();\n return wrapItem({\n children,\n itemId,\n instance\n });\n}\nTreeItem2Provider.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n children: PropTypes.node,\n itemId: PropTypes.string.isRequired\n};\nexport { TreeItem2Provider };","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"slots\", \"slotProps\", \"ContentComponent\", \"ContentProps\", \"itemId\", \"id\", \"label\", \"onClick\", \"onMouseDown\", \"onFocus\", \"onBlur\", \"onKeyDown\"],\n _excluded2 = [\"ownerState\"],\n _excluded3 = [\"ownerState\"],\n _excluded4 = [\"ownerState\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Collapse from '@mui/material/Collapse';\nimport useForkRef from '@mui/utils/useForkRef';\nimport { shouldForwardProp } from '@mui/system/createStyled';\nimport { alpha } from '@mui/material/styles';\nimport composeClasses from '@mui/utils/composeClasses';\nimport extractEventHandlers from '@mui/utils/extractEventHandlers';\nimport resolveComponentProps from '@mui/utils/resolveComponentProps';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport unsupportedProp from '@mui/utils/unsupportedProp';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport { warnOnce } from '@mui/x-internals/warning';\nimport { styled, createUseThemeProps } from \"../internals/zero-styled/index.js\";\nimport { TreeItemContent } from \"./TreeItemContent.js\";\nimport { treeItemClasses, getTreeItemUtilityClass } from \"./treeItemClasses.js\";\nimport { useTreeViewContext } from \"../internals/TreeViewProvider/index.js\";\nimport { TreeViewCollapseIcon, TreeViewExpandIcon } from \"../icons/index.js\";\nimport { TreeItem2Provider } from \"../TreeItem2Provider/index.js\";\nimport { TreeViewItemDepthContext } from \"../internals/TreeViewItemDepthContext/index.js\";\nimport { useTreeItemState } from \"./useTreeItemState.js\";\nimport { isTargetInDescendants } from \"../internals/utils/tree.js\";\nimport { generateTreeItemIdAttribute } from \"../internals/corePlugins/useTreeViewId/useTreeViewId.utils.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useThemeProps = createUseThemeProps('MuiTreeItem');\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n content: ['content'],\n expanded: ['expanded'],\n selected: ['selected'],\n focused: ['focused'],\n disabled: ['disabled'],\n iconContainer: ['iconContainer'],\n checkbox: ['checkbox'],\n label: ['label'],\n labelInput: ['labelInput'],\n editing: ['editing'],\n editable: ['editable'],\n groupTransition: ['groupTransition']\n };\n return composeClasses(slots, getTreeItemUtilityClass, classes);\n};\nconst TreeItemRoot = styled('li', {\n name: 'MuiTreeItem',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n outline: 0\n});\nconst StyledTreeItemContent = styled(TreeItemContent, {\n name: 'MuiTreeItem',\n slot: 'Content',\n overridesResolver: (props, styles) => {\n return [styles.content, styles.iconContainer && {\n [`& .${treeItemClasses.iconContainer}`]: styles.iconContainer\n }, styles.label && {\n [`& .${treeItemClasses.label}`]: styles.label\n }];\n },\n shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'indentationAtItemLevel'\n})(({\n theme\n}) => ({\n padding: theme.spacing(0.5, 1),\n borderRadius: theme.shape.borderRadius,\n width: '100%',\n boxSizing: 'border-box',\n // prevent width + padding to overflow\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n cursor: 'pointer',\n WebkitTapHighlightColor: 'transparent',\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n [`&.${treeItemClasses.disabled}`]: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity,\n backgroundColor: 'transparent'\n },\n [`&.${treeItemClasses.focused}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n [`&.${treeItemClasses.selected}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n '&:hover': {\n 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),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n }\n },\n [`&.${treeItemClasses.focused}`]: {\n 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)\n }\n },\n [`& .${treeItemClasses.iconContainer}`]: {\n width: 16,\n display: 'flex',\n flexShrink: 0,\n justifyContent: 'center',\n '& svg': {\n fontSize: 18\n }\n },\n [`& .${treeItemClasses.label}`]: _extends({\n width: '100%',\n boxSizing: 'border-box',\n // prevent width + padding to overflow\n // fixes overflow - see https://github.com/mui/material-ui/issues/27372\n minWidth: 0,\n position: 'relative'\n }, theme.typography.body1),\n [`& .${treeItemClasses.checkbox}`]: {\n padding: 0\n },\n variants: [{\n props: {\n indentationAtItemLevel: true\n },\n style: {\n paddingLeft: `calc(${theme.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`\n }\n }]\n}));\nconst TreeItemGroup = styled(Collapse, {\n name: 'MuiTreeItem',\n slot: 'GroupTransition',\n overridesResolver: (props, styles) => styles.groupTransition,\n shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'indentationAtItemLevel'\n})({\n margin: 0,\n padding: 0,\n paddingLeft: 'var(--TreeView-itemChildrenIndentation)',\n variants: [{\n props: {\n indentationAtItemLevel: true\n },\n style: {\n paddingLeft: 0\n }\n }]\n});\n\n/**\n *\n * Demos:\n *\n * - [Tree View](https://mui.com/x/react-tree-view/)\n *\n * API:\n *\n * - [TreeItem API](https://mui.com/x/api/tree-view/tree-item/)\n */\nexport const TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps, inRef) {\n const {\n icons: contextIcons,\n runItemPlugins,\n items: {\n disabledItemsFocusable,\n indentationAtItemLevel\n },\n selection: {\n disableSelection\n },\n expansion: {\n expansionTrigger\n },\n treeId,\n instance\n } = useTreeViewContext();\n const depthContext = React.useContext(TreeViewItemDepthContext);\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTreeItem'\n });\n const {\n children,\n className,\n slots: inSlots,\n slotProps: inSlotProps,\n ContentComponent = TreeItemContent,\n ContentProps,\n itemId,\n id,\n label,\n onClick,\n onMouseDown,\n onBlur,\n onKeyDown\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n expanded,\n focused,\n selected,\n disabled,\n editing,\n handleExpansion,\n handleCancelItemLabelEditing,\n handleSaveItemLabel\n } = useTreeItemState(itemId);\n if (process.env.NODE_ENV !== 'production') {\n // Checking directly the `props` to avoid having the default value applied\n if (props.ContentComponent) {\n warnOnce(['MUI X: The ContentComponent prop of the TreeItem component is deprecated and will be removed in the next major release.', 'You can use the new TreeItem2 component or the new useTreeItem2 hook to customize the rendering of the content.', 'For more detail, see https://mui.com/x/react-tree-view/tree-item-customization/.']);\n }\n if (props.ContentProps) {\n warnOnce(['MUI X: The ContentProps prop of the TreeItem component is deprecated and will be removed in the next major release.', 'You can use the new TreeItem2 component or the new useTreeItem2 hook to customize the rendering of the content.', 'For more detail, see https://mui.com/x/react-tree-view/tree-item-customization/.']);\n }\n }\n const {\n contentRef,\n rootRef,\n propsEnhancers\n } = runItemPlugins(props);\n const rootRefObject = React.useRef(null);\n const contentRefObject = React.useRef(null);\n const handleRootRef = useForkRef(inRef, rootRef, rootRefObject);\n const handleContentRef = useForkRef(ContentProps?.ref, contentRef, contentRefObject);\n const slots = {\n expandIcon: inSlots?.expandIcon ?? contextIcons.slots.expandIcon ?? TreeViewExpandIcon,\n collapseIcon: inSlots?.collapseIcon ?? contextIcons.slots.collapseIcon ?? TreeViewCollapseIcon,\n endIcon: inSlots?.endIcon ?? contextIcons.slots.endIcon,\n icon: inSlots?.icon,\n groupTransition: inSlots?.groupTransition\n };\n const isExpandable = reactChildren => {\n if (Array.isArray(reactChildren)) {\n return reactChildren.length > 0 && reactChildren.some(isExpandable);\n }\n return Boolean(reactChildren);\n };\n const expandable = isExpandable(children);\n const ownerState = _extends({}, props, {\n expanded,\n focused,\n selected,\n disabled,\n indentationAtItemLevel\n });\n const classes = useUtilityClasses(ownerState);\n const GroupTransition = slots.groupTransition ?? undefined;\n const groupTransitionProps = useSlotProps({\n elementType: GroupTransition,\n ownerState: {},\n externalSlotProps: inSlotProps?.groupTransition,\n additionalProps: _extends({\n unmountOnExit: true,\n in: expanded,\n component: 'ul',\n role: 'group'\n }, indentationAtItemLevel ? {\n indentationAtItemLevel: true\n } : {}),\n className: classes.groupTransition\n });\n const handleIconContainerClick = event => {\n if (expansionTrigger === 'iconContainer') {\n handleExpansion(event);\n }\n };\n const ExpansionIcon = expanded ? slots.collapseIcon : slots.expandIcon;\n const _useSlotProps = useSlotProps({\n elementType: ExpansionIcon,\n ownerState: {},\n externalSlotProps: tempOwnerState => {\n if (expanded) {\n return _extends({}, resolveComponentProps(contextIcons.slotProps.collapseIcon, tempOwnerState), resolveComponentProps(inSlotProps?.collapseIcon, tempOwnerState));\n }\n return _extends({}, resolveComponentProps(contextIcons.slotProps.expandIcon, tempOwnerState), resolveComponentProps(inSlotProps?.expandIcon, tempOwnerState));\n },\n additionalProps: {\n onClick: handleIconContainerClick\n }\n }),\n expansionIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);\n const expansionIcon = expandable && !!ExpansionIcon ? /*#__PURE__*/_jsx(ExpansionIcon, _extends({}, expansionIconProps)) : null;\n const DisplayIcon = expandable ? undefined : slots.endIcon;\n const _useSlotProps2 = useSlotProps({\n elementType: DisplayIcon,\n ownerState: {},\n externalSlotProps: tempOwnerState => {\n if (expandable) {\n return {};\n }\n return _extends({}, resolveComponentProps(contextIcons.slotProps.endIcon, tempOwnerState), resolveComponentProps(inSlotProps?.endIcon, tempOwnerState));\n }\n }),\n displayIconProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded3);\n const displayIcon = DisplayIcon ? /*#__PURE__*/_jsx(DisplayIcon, _extends({}, displayIconProps)) : null;\n const Icon = slots.icon;\n const _useSlotProps3 = useSlotProps({\n elementType: Icon,\n ownerState: {},\n externalSlotProps: inSlotProps?.icon\n }),\n iconProps = _objectWithoutPropertiesLoose(_useSlotProps3, _excluded4);\n const icon = Icon ? /*#__PURE__*/_jsx(Icon, _extends({}, iconProps)) : null;\n\n // https://www.w3.org/WAI/ARIA/apg/patterns/treeview/\n let ariaSelected;\n if (selected) {\n // - each selected node has aria-selected set to true.\n ariaSelected = true;\n } else if (disableSelection || disabled) {\n // - if the tree contains nodes that are not selectable, aria-selected is not present on those nodes.\n ariaSelected = undefined;\n } else {\n // - all nodes that are selectable but not selected have aria-selected set to false.\n ariaSelected = false;\n }\n function handleFocus(event) {\n const canBeFocused = !disabled || disabledItemsFocusable;\n if (!focused && canBeFocused && event.currentTarget === event.target) {\n instance.focusItem(event, itemId);\n }\n }\n function handleBlur(event) {\n onBlur?.(event);\n if (editing ||\n // we can exit the editing state by clicking outside the input (within the Tree Item) or by pressing Enter or Escape -> we don't want to remove the focused item from the state in these cases\n // we can also exit the editing state by clicking on the root itself -> want to remove the focused item from the state in this case\n event.relatedTarget && isTargetInDescendants(event.relatedTarget, rootRefObject.current) && (event.target && event.target?.dataset?.element === 'labelInput' && isTargetInDescendants(event.target, rootRefObject.current) || event.relatedTarget?.dataset?.element === 'labelInput')) {\n return;\n }\n instance.removeFocusedItem();\n }\n const handleKeyDown = event => {\n onKeyDown?.(event);\n if (event.target?.dataset?.element === 'labelInput') {\n return;\n }\n instance.handleItemKeyDown(event, itemId);\n };\n const idAttribute = generateTreeItemIdAttribute({\n itemId,\n treeId,\n id\n });\n const tabIndex = instance.canItemBeTabbed(itemId) ? 0 : -1;\n const sharedPropsEnhancerParams = {\n rootRefObject,\n contentRefObject,\n interactions: {\n handleSaveItemLabel,\n handleCancelItemLabelEditing\n }\n };\n const enhancedRootProps = propsEnhancers.root?.(_extends({}, sharedPropsEnhancerParams, {\n externalEventHandlers: extractEventHandlers(other)\n })) ?? {};\n const enhancedContentProps = propsEnhancers.content?.(_extends({}, sharedPropsEnhancerParams, {\n externalEventHandlers: extractEventHandlers(ContentProps)\n })) ?? {};\n const enhancedDragAndDropOverlayProps = propsEnhancers.dragAndDropOverlay?.(_extends({}, sharedPropsEnhancerParams, {\n externalEventHandlers: {}\n })) ?? {};\n const enhancedLabelInputProps = propsEnhancers.labelInput?.(_extends({}, sharedPropsEnhancerParams, {\n externalEventHandlers: {}\n })) ?? {};\n return /*#__PURE__*/_jsx(TreeItem2Provider, {\n itemId: itemId,\n children: /*#__PURE__*/_jsxs(TreeItemRoot, _extends({\n className: clsx(classes.root, className),\n role: \"treeitem\",\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-selected\": ariaSelected,\n \"aria-disabled\": disabled || undefined,\n id: idAttribute,\n tabIndex: tabIndex\n }, other, {\n ownerState: ownerState,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n ref: handleRootRef,\n style: indentationAtItemLevel ? _extends({}, other.style, {\n '--TreeView-itemDepth': typeof depthContext === 'function' ? depthContext(itemId) : depthContext\n }) : other.style\n }, enhancedRootProps, {\n children: [/*#__PURE__*/_jsx(StyledTreeItemContent, _extends({\n as: ContentComponent,\n classes: {\n root: classes.content,\n expanded: classes.expanded,\n selected: classes.selected,\n focused: classes.focused,\n disabled: classes.disabled,\n editable: classes.editable,\n editing: classes.editing,\n iconContainer: classes.iconContainer,\n label: classes.label,\n labelInput: classes.labelInput,\n checkbox: classes.checkbox\n },\n label: label,\n itemId: itemId,\n onClick: onClick,\n onMouseDown: onMouseDown,\n icon: icon,\n expansionIcon: expansionIcon,\n displayIcon: displayIcon,\n ownerState: ownerState\n }, ContentProps, enhancedContentProps, enhancedDragAndDropOverlayProps.action == null ? {} : {\n dragAndDropOverlayProps: enhancedDragAndDropOverlayProps\n }, enhancedLabelInputProps.value == null ? {} : {\n labelInputProps: enhancedLabelInputProps\n }, {\n ref: handleContentRef\n })), children && /*#__PURE__*/_jsx(TreeItemGroup, _extends({\n as: GroupTransition\n }, groupTransitionProps, {\n children: children\n }))]\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TreeItem.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * The component used to render the content of the item.\n * @deprecated Consider using the `` component or the `useTreeItem2` hook instead. For more details, see https://mui.com/x/react-tree-view/tree-item-customization/.\n * @default TreeItemContent\n */\n ContentComponent: elementTypeAcceptingRef,\n /**\n * Props applied to ContentComponent.\n * @deprecated Consider using the `` component or the `useTreeItem2` hook instead. For more details, see https://mui.com/x/react-tree-view/tree-item-customization/.\n */\n ContentProps: PropTypes.object,\n /**\n * If `true`, the item is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * The id of the item.\n */\n itemId: PropTypes.string.isRequired,\n /**\n * The Tree Item label.\n */\n label: PropTypes.node,\n /**\n * This prop isn't supported.\n * Use the `onItemFocus` callback on the tree if you need to monitor a item's focus.\n */\n onFocus: unsupportedProp,\n /**\n * Callback fired when a key of the keyboard is pressed on the item.\n */\n onKeyDown: PropTypes.func,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { warnOnce } from '@mui/x-internals/warning';\nimport { getRichTreeViewUtilityClass } from \"./richTreeViewClasses.js\";\nimport { styled, createUseThemeProps } from \"../internals/zero-styled/index.js\";\nimport { useTreeView } from \"../internals/useTreeView/index.js\";\nimport { TreeViewProvider } from \"../internals/TreeViewProvider/index.js\";\nimport { RICH_TREE_VIEW_PLUGINS } from \"./RichTreeView.plugins.js\";\nimport { RichTreeViewItems } from \"../internals/components/RichTreeViewItems.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useThemeProps = createUseThemeProps('MuiRichTreeView');\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getRichTreeViewUtilityClass, classes);\n};\nexport const RichTreeViewRoot = styled('ul', {\n name: 'MuiRichTreeView',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n padding: 0,\n margin: 0,\n listStyle: 'none',\n outline: 0,\n position: 'relative'\n});\n/**\n *\n * Demos:\n *\n * - [Tree View](https://mui.com/x/react-tree-view/)\n *\n * API:\n *\n * - [RichTreeView API](https://mui.com/x/api/tree-view/rich-tree-view/)\n */\nconst RichTreeView = /*#__PURE__*/React.forwardRef(function RichTreeView(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiRichTreeView'\n });\n if (process.env.NODE_ENV !== 'production') {\n if (props.children != null) {\n warnOnce(['MUI X: The Rich Tree View component does not support JSX children.', 'If you want to add items, you need to use the `items` prop.', 'Check the documentation for more details: https://mui.com/x/react-tree-view/rich-tree-view/items/.']);\n }\n }\n const {\n getRootProps,\n contextValue,\n instance\n } = useTreeView({\n plugins: RICH_TREE_VIEW_PLUGINS,\n rootRef: ref,\n props\n });\n const {\n slots,\n slotProps\n } = props;\n const classes = useUtilityClasses(props);\n const Root = slots?.root ?? RichTreeViewRoot;\n const rootProps = useSlotProps({\n elementType: Root,\n externalSlotProps: slotProps?.root,\n className: classes.root,\n getSlotProps: getRootProps,\n ownerState: props\n });\n return /*#__PURE__*/_jsx(TreeViewProvider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n children: /*#__PURE__*/_jsx(RichTreeViewItems, {\n slots: slots,\n slotProps: slotProps,\n itemsToRender: instance.getItemsToRender()\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? RichTreeView.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The ref object that allows Tree View manipulation. Can be instantiated with `useTreeViewApiRef()`.\n */\n apiRef: PropTypes.shape({\n current: PropTypes.shape({\n focusItem: PropTypes.func.isRequired,\n getItem: PropTypes.func.isRequired,\n getItemDOMElement: PropTypes.func.isRequired,\n getItemOrderedChildrenIds: PropTypes.func.isRequired,\n getItemTree: PropTypes.func.isRequired,\n selectItem: PropTypes.func.isRequired,\n setItemExpansion: PropTypes.func.isRequired,\n updateItemLabel: PropTypes.func.isRequired\n })\n }),\n /**\n * If `true`, the Tree View renders a checkbox at the left of its label that allows selecting it.\n * @default false\n */\n checkboxSelection: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * Expanded item ids.\n * Used when the item's expansion is not controlled.\n * @default []\n */\n defaultExpandedItems: PropTypes.arrayOf(PropTypes.string),\n /**\n * Selected item ids. (Uncontrolled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelectedItems: PropTypes.any,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true` selection is disabled.\n * @default false\n */\n disableSelection: PropTypes.bool,\n /**\n * Expanded item ids.\n * Used when the item's expansion is controlled.\n */\n expandedItems: PropTypes.arrayOf(PropTypes.string),\n /**\n * The slot that triggers the item's expansion when clicked.\n * @default 'content'\n */\n expansionTrigger: PropTypes.oneOf(['content', 'iconContainer']),\n /**\n * Unstable features, breaking changes might be introduced.\n * For each feature, if the flag is not explicitly set to `true`,\n * the feature will be fully disabled and any property / method call will not have any effect.\n */\n experimentalFeatures: PropTypes.shape({\n indentationAtItemLevel: PropTypes.bool,\n labelEditing: PropTypes.bool\n }),\n /**\n * Used to determine the id of a given item.\n *\n * @template R\n * @param {R} item The item to check.\n * @returns {string} The id of the item.\n * @default (item) => item.id\n */\n getItemId: PropTypes.func,\n /**\n * Used to determine the string label for a given item.\n *\n * @template R\n * @param {R} item The item to check.\n * @returns {string} The label of the item.\n * @default (item) => item.label\n */\n getItemLabel: PropTypes.func,\n /**\n * This prop is used to help implement the accessibility logic.\n * If you don't provide this prop. It falls back to a randomly generated id.\n */\n id: PropTypes.string,\n /**\n * Used to determine if a given item should be disabled.\n * @template R\n * @param {R} item The item to check.\n * @returns {boolean} `true` if the item should be disabled.\n */\n isItemDisabled: PropTypes.func,\n /**\n * Determines if a given item is editable or not.\n * Make sure to also enable the `labelEditing` experimental feature:\n * ``.\n * By default, the items are not editable.\n * @template R\n * @param {R} item The item to check.\n * @returns {boolean} `true` if the item is editable.\n */\n isItemEditable: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n /**\n * Horizontal indentation between an item and its children.\n * Examples: 24, \"24px\", \"2rem\", \"2em\".\n * @default 12px\n */\n itemChildrenIndentation: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n items: PropTypes.array.isRequired,\n /**\n * If `true`, `ctrl` and `shift` will trigger multiselect.\n * @default false\n */\n multiSelect: PropTypes.bool,\n /**\n * Callback fired when Tree Items are expanded/collapsed.\n * @param {React.SyntheticEvent} event The DOM event that triggered the change.\n * @param {array} itemIds The ids of the expanded items.\n */\n onExpandedItemsChange: PropTypes.func,\n /**\n * Callback fired when the `content` slot of a given Tree Item is clicked.\n * @param {React.MouseEvent} event The DOM event that triggered the change.\n * @param {string} itemId The id of the focused item.\n */\n onItemClick: PropTypes.func,\n /**\n * Callback fired when a Tree Item is expanded or collapsed.\n * @param {React.SyntheticEvent} event The DOM event that triggered the change.\n * @param {array} itemId The itemId of the modified item.\n * @param {array} isExpanded `true` if the item has just been expanded, `false` if it has just been collapsed.\n */\n onItemExpansionToggle: PropTypes.func,\n /**\n * Callback fired when a given Tree Item is focused.\n * @param {React.SyntheticEvent | null} event The DOM event that triggered the change. **Warning**: This is a generic event not a focus event.\n * @param {string} itemId The id of the focused item.\n */\n onItemFocus: PropTypes.func,\n /**\n * Callback fired when the label of an item changes.\n * @param {TreeViewItemId} itemId The id of the item that was edited.\n * @param {string} newLabel The new label of the items.\n */\n onItemLabelChange: PropTypes.func,\n /**\n * Callback fired when a Tree Item is selected or deselected.\n * @param {React.SyntheticEvent} event The DOM event that triggered the change.\n * @param {array} itemId The itemId of the modified item.\n * @param {array} isSelected `true` if the item has just been selected, `false` if it has just been deselected.\n */\n onItemSelectionToggle: PropTypes.func,\n /**\n * Callback fired when Tree Items are selected/deselected.\n * @param {React.SyntheticEvent} event The DOM event that triggered the change.\n * @param {string[] | string} itemIds The ids of the selected items.\n * When `multiSelect` is `true`, this is an array of strings; when false (default) a string.\n */\n onSelectedItemsChange: PropTypes.func,\n /**\n * Selected item ids. (Controlled)\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n */\n selectedItems: PropTypes.any,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { RichTreeView };","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"visible\"],\n _excluded2 = [\"id\", \"itemId\", \"label\", \"disabled\", \"children\", \"slots\", \"slotProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport unsupportedProp from '@mui/utils/unsupportedProp';\nimport { alpha } from '@mui/material/styles';\nimport Collapse from '@mui/material/Collapse';\nimport MuiCheckbox from '@mui/material/Checkbox';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport { shouldForwardProp } from '@mui/system/createStyled';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled, createUseThemeProps } from \"../internals/zero-styled/index.js\";\nimport { useTreeItem2 } from \"../useTreeItem2/index.js\";\nimport { getTreeItemUtilityClass } from \"../TreeItem/index.js\";\nimport { TreeItem2Icon } from \"../TreeItem2Icon/index.js\";\nimport { TreeItem2DragAndDropOverlay } from \"../TreeItem2DragAndDropOverlay/index.js\";\nimport { TreeItem2Provider } from \"../TreeItem2Provider/index.js\";\nimport { TreeItem2LabelInput } from \"../TreeItem2LabelInput/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useThemeProps = createUseThemeProps('MuiTreeItem2');\nexport const TreeItem2Root = styled('li', {\n name: 'MuiTreeItem2',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n outline: 0\n});\nexport const TreeItem2Content = styled('div', {\n name: 'MuiTreeItem2',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content,\n shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'status' && prop !== 'indentationAtItemLevel'\n})(({\n theme\n}) => ({\n padding: theme.spacing(0.5, 1),\n borderRadius: theme.shape.borderRadius,\n width: '100%',\n boxSizing: 'border-box',\n // prevent width + padding to overflow\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n cursor: 'pointer',\n WebkitTapHighlightColor: 'transparent',\n '&:hover': {\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n variants: [{\n props: {\n indentationAtItemLevel: true\n },\n style: {\n paddingLeft: `calc(${theme.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`\n }\n }, {\n props: ({\n status\n }) => status.disabled,\n style: {\n opacity: (theme.vars || theme).palette.action.disabledOpacity,\n backgroundColor: 'transparent'\n }\n }, {\n props: ({\n status\n }) => status.focused,\n style: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n }\n }, {\n props: ({\n status\n }) => status.selected,\n style: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n '&:hover': {\n 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),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity)\n }\n }\n }\n }, {\n props: ({\n status\n }) => status.selected && status.focused,\n style: {\n 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)\n }\n }]\n}));\nexport const TreeItem2Label = styled('div', {\n name: 'MuiTreeItem2',\n slot: 'Label',\n overridesResolver: (props, styles) => styles.label,\n shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'editable'\n})(({\n theme\n}) => _extends({\n width: '100%',\n boxSizing: 'border-box',\n // prevent width + padding to overflow\n // fixes overflow - see https://github.com/mui/material-ui/issues/27372\n minWidth: 0,\n position: 'relative',\n overflow: 'hidden'\n}, theme.typography.body1, {\n variants: [{\n props: ({\n editable\n }) => editable,\n style: {\n paddingLeft: '2px'\n }\n }]\n}));\nexport const TreeItem2IconContainer = styled('div', {\n name: 'MuiTreeItem2',\n slot: 'IconContainer',\n overridesResolver: (props, styles) => styles.iconContainer\n})({\n width: 16,\n display: 'flex',\n flexShrink: 0,\n justifyContent: 'center',\n '& svg': {\n fontSize: 18\n }\n});\nexport const TreeItem2GroupTransition = styled(Collapse, {\n name: 'MuiTreeItem2',\n slot: 'GroupTransition',\n overridesResolver: (props, styles) => styles.groupTransition,\n shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'indentationAtItemLevel'\n})({\n margin: 0,\n padding: 0,\n paddingLeft: 'var(--TreeView-itemChildrenIndentation)',\n variants: [{\n props: {\n indentationAtItemLevel: true\n },\n style: {\n paddingLeft: 0\n }\n }]\n});\nexport const TreeItem2Checkbox = styled(/*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n visible\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n if (!visible) {\n return null;\n }\n return /*#__PURE__*/_jsx(MuiCheckbox, _extends({}, other, {\n ref: ref\n }));\n}), {\n name: 'MuiTreeItem2',\n slot: 'Checkbox',\n overridesResolver: (props, styles) => styles.checkbox\n})({\n padding: 0\n});\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n content: ['content'],\n expanded: ['expanded'],\n editing: ['editing'],\n editable: ['editable'],\n selected: ['selected'],\n focused: ['focused'],\n disabled: ['disabled'],\n iconContainer: ['iconContainer'],\n checkbox: ['checkbox'],\n label: ['label'],\n groupTransition: ['groupTransition'],\n labelInput: ['labelInput'],\n dragAndDropOverlay: ['dragAndDropOverlay']\n };\n return composeClasses(slots, getTreeItemUtilityClass, classes);\n};\n/**\n *\n * Demos:\n *\n * - [Tree View](https://mui.com/x/react-tree-view/)\n *\n * API:\n *\n * - [TreeItem2 API](https://mui.com/x/api/tree-view/tree-item-2/)\n */\nexport const TreeItem2 = /*#__PURE__*/React.forwardRef(function TreeItem2(inProps, forwardedRef) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTreeItem2'\n });\n const {\n id,\n itemId,\n label,\n disabled,\n children,\n slots = {},\n slotProps = {}\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n const {\n getRootProps,\n getContentProps,\n getIconContainerProps,\n getCheckboxProps,\n getLabelProps,\n getGroupTransitionProps,\n getLabelInputProps,\n getDragAndDropOverlayProps,\n status\n } = useTreeItem2({\n id,\n itemId,\n children,\n label,\n disabled\n });\n const ownerState = _extends({}, props, status);\n const classes = useUtilityClasses(ownerState);\n const Root = slots.root ?? TreeItem2Root;\n const rootProps = useSlotProps({\n elementType: Root,\n getSlotProps: getRootProps,\n externalForwardedProps: other,\n externalSlotProps: slotProps.root,\n additionalProps: {\n ref: forwardedRef\n },\n ownerState: {},\n className: classes.root\n });\n const Content = slots.content ?? TreeItem2Content;\n const contentProps = useSlotProps({\n elementType: Content,\n getSlotProps: getContentProps,\n externalSlotProps: slotProps.content,\n ownerState: {},\n className: clsx(classes.content, status.expanded && classes.expanded, status.selected && classes.selected, status.focused && classes.focused, status.disabled && classes.disabled, status.editing && classes.editing, status.editable && classes.editable)\n });\n const IconContainer = slots.iconContainer ?? TreeItem2IconContainer;\n const iconContainerProps = useSlotProps({\n elementType: IconContainer,\n getSlotProps: getIconContainerProps,\n externalSlotProps: slotProps.iconContainer,\n ownerState: {},\n className: classes.iconContainer\n });\n const Label = slots.label ?? TreeItem2Label;\n const labelProps = useSlotProps({\n elementType: Label,\n getSlotProps: getLabelProps,\n externalSlotProps: slotProps.label,\n ownerState: {},\n className: classes.label\n });\n const Checkbox = slots.checkbox ?? TreeItem2Checkbox;\n const checkboxProps = useSlotProps({\n elementType: Checkbox,\n getSlotProps: getCheckboxProps,\n externalSlotProps: slotProps.checkbox,\n ownerState: {},\n className: classes.checkbox\n });\n const GroupTransition = slots.groupTransition ?? undefined;\n const groupTransitionProps = useSlotProps({\n elementType: GroupTransition,\n getSlotProps: getGroupTransitionProps,\n externalSlotProps: slotProps.groupTransition,\n ownerState: {},\n className: classes.groupTransition\n });\n const LabelInput = slots.labelInput ?? TreeItem2LabelInput;\n const labelInputProps = useSlotProps({\n elementType: LabelInput,\n getSlotProps: getLabelInputProps,\n externalSlotProps: slotProps.labelInput,\n ownerState: {},\n className: classes.labelInput\n });\n const DragAndDropOverlay = slots.dragAndDropOverlay ?? TreeItem2DragAndDropOverlay;\n const dragAndDropOverlayProps = useSlotProps({\n elementType: DragAndDropOverlay,\n getSlotProps: getDragAndDropOverlayProps,\n externalSlotProps: slotProps.dragAndDropOverlay,\n ownerState: {},\n className: classes.dragAndDropOverlay\n });\n return /*#__PURE__*/_jsx(TreeItem2Provider, {\n itemId: itemId,\n children: /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {\n children: [/*#__PURE__*/_jsxs(Content, _extends({}, contentProps, {\n children: [/*#__PURE__*/_jsx(IconContainer, _extends({}, iconContainerProps, {\n children: /*#__PURE__*/_jsx(TreeItem2Icon, {\n status: status,\n slots: slots,\n slotProps: slotProps\n })\n })), /*#__PURE__*/_jsx(Checkbox, _extends({}, checkboxProps)), status.editing ? /*#__PURE__*/_jsx(LabelInput, _extends({}, labelInputProps)) : /*#__PURE__*/_jsx(Label, _extends({}, labelProps)), /*#__PURE__*/_jsx(DragAndDropOverlay, _extends({}, dragAndDropOverlayProps))]\n })), children && /*#__PURE__*/_jsx(TreeItem2GroupTransition, _extends({\n as: GroupTransition\n }, groupTransitionProps))]\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TreeItem2.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n /**\n * If `true`, the item is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * The id attribute of the item. If not provided, it will be generated.\n */\n id: PropTypes.string,\n /**\n * The id of the item.\n * Must be unique.\n */\n itemId: PropTypes.string.isRequired,\n /**\n * The label of the item.\n */\n label: PropTypes.node,\n /**\n * Callback fired when the item root is blurred.\n */\n onBlur: PropTypes.func,\n /**\n * This prop isn't supported.\n * Use the `onItemFocus` callback on the tree if you need to monitor an item's focus.\n */\n onFocus: unsupportedProp,\n /**\n * Callback fired when a key is pressed on the keyboard and the tree is in focus.\n */\n onKeyDown: PropTypes.func,\n /**\n * The props used for each component slot.\n * @default {}\n */\n slotProps: PropTypes.object,\n /**\n * Overridable component slots.\n * @default {}\n */\n slots: PropTypes.object\n} : void 0;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","// ::- Persistent data structure representing an ordered mapping from\n// strings to values, with some convenient update methods.\nfunction OrderedMap(content) {\n this.content = content;\n}\n\nOrderedMap.prototype = {\n constructor: OrderedMap,\n\n find: function(key) {\n for (var i = 0; i < this.content.length; i += 2)\n if (this.content[i] === key) return i\n return -1\n },\n\n // :: (string) → ?any\n // Retrieve the value stored under `key`, or return undefined when\n // no such key exists.\n get: function(key) {\n var found = this.find(key);\n return found == -1 ? undefined : this.content[found + 1]\n },\n\n // :: (string, any, ?string) → OrderedMap\n // Create a new map by replacing the value of `key` with a new\n // value, or adding a binding to the end of the map. If `newKey` is\n // given, the key of the binding will be replaced with that key.\n update: function(key, value, newKey) {\n var self = newKey && newKey != key ? this.remove(newKey) : this;\n var found = self.find(key), content = self.content.slice();\n if (found == -1) {\n content.push(newKey || key, value);\n } else {\n content[found + 1] = value;\n if (newKey) content[found] = newKey;\n }\n return new OrderedMap(content)\n },\n\n // :: (string) → OrderedMap\n // Return a map with the given key removed, if it existed.\n remove: function(key) {\n var found = this.find(key);\n if (found == -1) return this\n var content = this.content.slice();\n content.splice(found, 2);\n return new OrderedMap(content)\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the start of the map.\n addToStart: function(key, value) {\n return new OrderedMap([key, value].concat(this.remove(key).content))\n },\n\n // :: (string, any) → OrderedMap\n // Add a new key to the end of the map.\n addToEnd: function(key, value) {\n var content = this.remove(key).content.slice();\n content.push(key, value);\n return new OrderedMap(content)\n },\n\n // :: (string, string, any) → OrderedMap\n // Add a key after the given key. If `place` is not found, the new\n // key is added to the end.\n addBefore: function(place, key, value) {\n var without = this.remove(key), content = without.content.slice();\n var found = without.find(place);\n content.splice(found == -1 ? content.length : found, 0, key, value);\n return new OrderedMap(content)\n },\n\n // :: ((key: string, value: any))\n // Call the given function for each key/value pair in the map, in\n // order.\n forEach: function(f) {\n for (var i = 0; i < this.content.length; i += 2)\n f(this.content[i], this.content[i + 1]);\n },\n\n // :: (union) → OrderedMap\n // Create a new map by prepending the keys in this map that don't\n // appear in `map` before the keys in `map`.\n prepend: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(map.content.concat(this.subtract(map).content))\n },\n\n // :: (union) → OrderedMap\n // Create a new map by appending the keys in this map that don't\n // appear in `map` after the keys in `map`.\n append: function(map) {\n map = OrderedMap.from(map);\n if (!map.size) return this\n return new OrderedMap(this.subtract(map).content.concat(map.content))\n },\n\n // :: (union) → OrderedMap\n // Create a map containing all the keys in this map that don't\n // appear in `map`.\n subtract: function(map) {\n var result = this;\n map = OrderedMap.from(map);\n for (var i = 0; i < map.content.length; i += 2)\n result = result.remove(map.content[i]);\n return result\n },\n\n // :: () → Object\n // Turn ordered map into a plain object.\n toObject: function() {\n var result = {};\n this.forEach(function(key, value) { result[key] = value; });\n return result\n },\n\n // :: number\n // The amount of keys in this map.\n get size() {\n return this.content.length >> 1\n }\n};\n\n// :: (?union) → OrderedMap\n// Return a map with the given content. If null, create an empty\n// map. If given an ordered map, return that map itself. If given an\n// object, create a map from the object's properties.\nOrderedMap.from = function(value) {\n if (value instanceof OrderedMap) return value\n var content = [];\n if (value) for (var prop in value) content.push(prop, value[prop]);\n return new OrderedMap(content)\n};\n\nexport default OrderedMap;\n"],"names":["createUseThemeProps","name","useThemeProps","generateUtilityClasses","useTreeViewInstanceEvents","eventManager","React","EventManager","instance","$$publishEvent","_len","arguments","length","args","Array","_key","params","event","defaultMuiPrevented","undefined","isPropagationStopped","isSyntheticEvent","emit","$$subscribeEvent","handler","on","removeListener","useTreeViewOptionalPlugins","_ref","plugins","pluginSet","Set","getAvailablePlugins","globalTreeViewDefaultId","generateTreeItemIdAttribute","id","treeId","itemId","concat","useTreeViewId","_params$id2","state","setState","prevState","_params$id","_extends","getRootProps","contextValue","getInitialState","_ref2","TreeViewContext","useTreeViewContext","context","Error","join","publishTreeViewEvent","eventName","TREE_VIEW_ROOT_PARENT_ID","buildSiblingIndexes","siblings","siblingsIndexLookup","forEach","childId","index","TreeViewItemDepthContext","_excluded","updateItemsState","items","isItemDisabled","getItemLabel","getItemId","itemMetaMap","itemMap","itemOrderedChildrenIds","processItem","item","depth","parentId","_item$children","_item$children2","JSON","stringify","label","idAttribute","expandable","children","disabled","parentIdWithDefault","push","child","itemChildrenIndexes","Object","keys","useTreeViewItems","_experimentalFeatures","experimentalFeatures","getItemMeta","getItem","getItemTree","getItemFromItemId","_state$items$itemMap$","_objectWithoutPropertiesLoose","newChildren","map","itemMeta","getItemIndex","_instance$getItemMeta","getItemOrderedChildrenIds","_state$items$itemOrde","getItemDOMElement","document","getElementById","areItemUpdatesPreventedRef","preventItemUpdates","current","areItemUpdatesPrevented","newState","values","style","itemChildrenIndentation","publicAPI","getItemsToRender","getPropsFromItemId","_state$items$itemOrde2","isItemNavigable","disabledItemsFocusable","onItemClick","indentationAtItemLevel","getDefaultizedParams","_ref3","_params$disabledItems","_params$itemChildrenI","wrapRoot","_ref4","_jsx","Provider","value","_instance$getItemMeta2","_instance$getItemMeta3","useTreeViewExpansion","models","expandedItemsMap","temp","Map","expandedItems","set","setExpandedItems","_params$onExpandedIte","onExpandedItemsChange","call","setControlledValue","isItemExpanded","has","isItemExpandable","toggleItemExpansion","useEventCallback","isExpandedBefore","setItemExpansion","isExpanded","newExpanded","filter","onItemExpansionToggle","expandAllSiblings","diff","newlyExpandedItemId","expansion","expansionTrigger","isTreeViewEditable","getDefaultValue","defaultExpandedItems","DEFAULT_EXPANDED_ITEMS","_params$defaultExpand","getLastNavigableItemInArray","itemIndex","getPreviousNavigableItem","previousNavigableSiblingIndex","currentItemId","lastNavigableChild","find","getNextNavigableItem","firstNavigableChild","currentItemIndex","nextItemIndex","getLastNavigableItem","getFirstNavigableItem","findOrderInTremauxTree","itemAId","itemBId","itemMetaA","itemMetaB","aFamily","bFamily","aAncestor","bAncestor","aAncestorIsCommon","indexOf","bAncestorIsCommon","continueA","continueB","commonAncestor","ancestorFamily","aSide","bSide","convertSelectedItemsToArray","model","isArray","getLookupFromArray","array","lookup","useTreeViewSelection","lastSelectedItem","lastSelectedRange","selectedItemsMap","selectedItems","setSelectedItems","newSelectedItems","onItemSelectionToggle","multiSelect","addedItems","isItemSelected","removedItems","includes","onSelectedItemsChange","selectItem","newSelected","keepExistingSelection","shouldBeSelected","disableSelection","cleanSelectedItems","isSelectedBefore","selectRange","start","end","slice","selectedItemsLookup","range","getNonDisabledItemsInRange","getNextItem","first","last","itemsToAddToModel","selectAllNavigableItems","navigableItems","getAllNavigableItems","expandSelectionRange","selectRangeFromStartToItem","selectRangeFromItemToEnd","selectItemFromArrowNavigation","currentItem","nextItem","selection","checkboxSelection","defaultSelectedItems","DEFAULT_SELECTED_ITEMS","_params$disableSelect","_params$multiSelect","_params$checkboxSelec","_params$defaultSelect","TimerBasedCleanupTracking","constructor","timeout","this","timeouts","cleanupTimeout","register","object","unsubscribe","unregisterToken","setTimeout","delete","cleanupToken","unregister","get","clearTimeout","reset","key","FinalizationRegistryBasedCleanupTracking","registry","FinalizationRegistry","ObjectToBeRetainedByReact","registryContainer","useInstanceEventHandler","cleanupTokensCounter","objectRetainedByReact","subscription","handlerRef","cleanupTokenRef","enhancedHandler","_handlerRef$current","_subscription$current","_handlerRef$current2","_subscription$current2","createUseInstanceEventHandler","getActiveElement","activeEl","activeElement","shadowRoot","useTreeViewFocus","rootRef","defaultFocusableItemId","useDefaultFocusableItemId","tabbableItemId","setFocusedItemId","cleanItemId","focusedItemId","isTreeViewFocused","contains","ownerDocument","isItemFocused","innerFocusItem","itemElement","focus","onItemFocus","focusItem","isItemVisible","removeFocusedItem","blur","createRootHandleFocus","otherHandlers","_otherHandlers$onFocu","onFocus","target","currentTarget","canItemBeTabbed","hasPlugin","plugin","useTreeViewLabel","editedItemRef","editedItemId","Boolean","isItemEditable","updateItemLabel","onItemLabelChange","setEditedItemId","isItemBeingEdited","isItemBeingEditedRef","itemPlugin","props","labelInputValue","setLabelInputValue","propsEnhancers","labelInput","externalEventHandlers","interactions","onChange","_externalEventHandler3","onKeyDown","_externalEventHandler","handleSaveItemLabel","handleCancelItemLabelEditing","onBlur","_externalEventHandler2","autoFocus","type","_params$isItemEditabl","canUseFeature","labelEditing","useTreeViewKeyboardNavigation","isRtl","useRtl","firstCharMap","updateFirstCharMap","callback","newFirstCharMap","substring","toLowerCase","canToggleItemSelection","canToggleItemExpansion","handleItemKeyDown","altKey","closest","isTargetInDescendants","ctrlPressed","ctrlKey","metaKey","preventDefault","shiftKey","previousItem","nextItemId","parent","String","fromCharCode","keyCode","string","match","matchingItem","getFirstMatchingItem","query","cleanQuery","itemIdToCheck","matchingItemId","checkedItems","useTreeViewIcons","slots","slotProps","icons","collapseIcon","expandIcon","endIcon","TreeViewChildrenItemContext","TreeViewChildrenItemProvider","childrenIdAttrToIdRef","_instance$getItemOrde","idAttr","previousChildrenIds","escapedIdAttr","replace","childrenElements","querySelectorAll","childrenIds","from","some","setJSXItemsOrderedChildrenIds","registerChild","childIdAttribute","childItemId","unregisterChild","useTreeViewJSXItems","insertJSXItem","newItemMetaMap","newItemMap","orderedChildrenIds","mapFirstCharFromJSX","firstChar","newMap","reactChildren","contentRef","parentContext","pluginContentRef","handleContentRef","useForkRef","useEnhancedEffect","_pluginContentRef$cur","_pluginContentRef$cur2","textContent","wrapItem","depthContext","SimpleTreeViewRoot","styled","slot","overridesResolver","styles","root","padding","margin","listStyle","outline","position","TreeItem2DragAndDropOverlayRoot","shouldForwardProp","prop","theme","left","display","top","bottom","right","pointerEvents","variants","action","marginLeft","borderRadius","shape","backgroundColor","vars","palette","primary","darkChannel","focusOpacity","alpha","dark","borderTop","active","borderBottom","TreeItem2DragAndDropOverlay","TreeItem2LabelInput","typography","body1","width","background","paper","border","boxSizing","main","TreeItemContent","ref","classes","className","displayIcon","expansionIcon","icon","iconProp","onClick","onMouseDown","dragAndDropOverlayProps","labelInputProps","other","expanded","selected","focused","editing","editable","handleExpansion","handleSelection","handleCheckboxSelection","handleContentClick","preventSelection","toggleItemEditing","multiple","hasShift","nativeEvent","checked","useTreeItemState","checkboxRef","_jsxs","clsx","_checkboxRef$current","iconContainer","Checkbox","checkbox","tabIndex","onDoubleClick","treeItemClasses","createSvgIcon","d","PropTypes","isRequired","content","spacing","alignItems","gap","cursor","WebkitTapHighlightColor","hover","opacity","disabledOpacity","mainChannel","selectedOpacity","hoverOpacity","flexShrink","justifyContent","fontSize","minWidth","paddingLeft","Collapse","groupTransition","status","_ref5","_ref6","overflow","_ref7","visible","MuiCheckbox","getOwnPropertySymbols","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","module","exports","assign","test1","getOwnPropertyNames","test2","i","n","test3","split","letter","err","shouldUseNative","source","symbols","to","val","TypeError","toObject","s","OrderedMap","found","update","newKey","self","remove","splice","addToStart","addToEnd","addBefore","place","without","f","prepend","size","subtract","append","result"],"sourceRoot":""}