@hitachivantara/uikit-react-core 5.7.2 → 5.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/cjs/components/Banner/BannerContent/BannerContent.cjs +1 -1
  2. package/dist/cjs/components/Banner/BannerContent/BannerContent.cjs.map +1 -1
  3. package/dist/cjs/components/Dialog/Dialog.cjs +24 -20
  4. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  5. package/dist/cjs/components/Dialog/Dialog.styles.cjs +6 -28
  6. package/dist/cjs/components/Dialog/Dialog.styles.cjs.map +1 -1
  7. package/dist/cjs/components/Dialog/Title/Title.cjs +1 -1
  8. package/dist/cjs/components/Dialog/Title/Title.cjs.map +1 -1
  9. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.cjs +1 -1
  10. package/dist/cjs/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.cjs.map +1 -1
  11. package/dist/cjs/components/VerticalNavigation/NavigationPopup/NavigationPopup.cjs +1 -1
  12. package/dist/cjs/components/VerticalNavigation/NavigationPopup/NavigationPopup.cjs.map +1 -1
  13. package/dist/cjs/components/VerticalNavigation/NavigationPopup/NavigationPopup.styles.cjs +13 -3
  14. package/dist/cjs/components/VerticalNavigation/NavigationPopup/NavigationPopup.styles.cjs.map +1 -1
  15. package/dist/cjs/components/VerticalNavigation/NavigationSlider/NavigationSlider.cjs +7 -4
  16. package/dist/cjs/components/VerticalNavigation/NavigationSlider/NavigationSlider.cjs.map +1 -1
  17. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.cjs +6 -1
  18. package/dist/cjs/components/VerticalNavigation/TreeView/TreeView.cjs.map +1 -1
  19. package/dist/cjs/utils/iconVariant.cjs.map +1 -1
  20. package/dist/esm/components/Banner/BannerContent/BannerContent.js +1 -1
  21. package/dist/esm/components/Banner/BannerContent/BannerContent.js.map +1 -1
  22. package/dist/esm/components/Dialog/Dialog.js +25 -21
  23. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  24. package/dist/esm/components/Dialog/Dialog.styles.js +7 -29
  25. package/dist/esm/components/Dialog/Dialog.styles.js.map +1 -1
  26. package/dist/esm/components/Dialog/Title/Title.js +1 -1
  27. package/dist/esm/components/Dialog/Title/Title.js.map +1 -1
  28. package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js +1 -1
  29. package/dist/esm/components/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js.map +1 -1
  30. package/dist/esm/components/VerticalNavigation/NavigationPopup/NavigationPopup.js +3 -3
  31. package/dist/esm/components/VerticalNavigation/NavigationPopup/NavigationPopup.js.map +1 -1
  32. package/dist/esm/components/VerticalNavigation/NavigationPopup/NavigationPopup.styles.js +13 -3
  33. package/dist/esm/components/VerticalNavigation/NavigationPopup/NavigationPopup.styles.js.map +1 -1
  34. package/dist/esm/components/VerticalNavigation/NavigationSlider/NavigationSlider.js +7 -4
  35. package/dist/esm/components/VerticalNavigation/NavigationSlider/NavigationSlider.js.map +1 -1
  36. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.js +6 -1
  37. package/dist/esm/components/VerticalNavigation/TreeView/TreeView.js.map +1 -1
  38. package/dist/esm/utils/iconVariant.js.map +1 -1
  39. package/dist/types/index.d.ts +6 -1
  40. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"TreeView.cjs","sources":["../../../../../src/components/VerticalNavigation/TreeView/TreeView.tsx"],"sourcesContent":["import { forwardRef, useCallback, useMemo, useRef, useState } from \"react\";\nimport { clsx } from \"clsx\";\nimport { useControlled, useForkRef, useUniqueId } from \"@core/hooks\";\nimport { HvVerticalNavigationTreeClasses } from \"../Navigation/navigationClasses\";\nimport {\n TreeViewControlContext,\n TreeViewStateContext,\n} from \"./TreeViewContext\";\nimport { DescendantProvider } from \"./descendants\";\nimport { StyledRoot } from \"./TreeView.styles\";\nimport { NavigationMode } from \"../Navigation\";\nimport treeViewClasses from \"./treeViewClasses\";\n\nexport interface HvVerticalNavigationTreeViewProps {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the Radio button.\n */\n classes?: HvVerticalNavigationTreeClasses;\n /**\n * Modus operandi (role) of the widget instance.\n */\n mode?: NavigationMode;\n /**\n * Enables selection.\n * @default false\n */\n selectable?: boolean;\n /**\n * Enables the simultaneous selection of multiple items.\n * @default false\n */\n multiSelect?: boolean;\n /**\n * The selected nodes' ids.\n *\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n */\n selected?: string[] | string;\n /**\n * When uncontrolled, defines the initial selected nodes' ids.\n *\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelected?: string[] | string;\n /**\n * Can non-leaf nodes be collapsed / expanded.\n */\n collapsible?: boolean;\n /**\n * Callback fired when a tree item is selected.\n *\n * @param {object} event The event source of the callback.\n * @param {string} nodeId The id of the selected node.\n */\n onChange?: any;\n /**\n * Expanded nodes' ids.\n */\n expanded?: string[];\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n * @default []\n */\n defaultExpanded?: string[];\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {object} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes (old and new).\n */\n onToggle?: (event, nodeIds) => void;\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable?: boolean;\n /**\n * @ignore\n */\n onFocus?: (event: React.FocusEvent<any>) => void;\n /**\n * @ignore\n */\n onBlur?: (event: any) => void;\n /**\n * @ignore\n */\n onKeyDown?: (event: KeyboardEvent) => void;\n /**\n * The content of the component.\n */\n children?: React.ReactNode;\n}\n\nfunction isPrintableCharacter(string) {\n return string && string.length === 1 && string.match(/\\S/);\n}\n\nfunction findNextFirstChar(firstChars, startIndex, char) {\n for (let i = startIndex; i < firstChars.length; i += 1) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n}\n\nfunction noopSelection() {\n return false;\n}\n\nexport const HvVerticalNavigationTreeView = forwardRef(\n (props: HvVerticalNavigationTreeViewProps, ref) => {\n const {\n id: idProp,\n className,\n classes,\n\n mode = \"treeview\",\n\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded = [],\n onToggle,\n\n selectable = false,\n multiSelect: multiSelectProp = false,\n selected: selectedProp,\n defaultSelected = [],\n onChange,\n\n disabledItemsFocusable = false,\n\n onFocus,\n onBlur,\n onKeyDown,\n\n children,\n\n ...others\n } = props;\n\n const treeviewMode = mode === \"treeview\";\n const multiSelect = selectable && multiSelectProp;\n\n const treeId = useUniqueId(idProp, \"hvtreeview\");\n const treeRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(treeRef, ref);\n\n const [expanded, setExpandedState] = useControlled(\n expandedProp,\n defaultExpanded\n );\n\n const [selected, setSelectedState] = useControlled(\n selectedProp,\n defaultSelected\n );\n\n const [focusedNodeId, setFocusedNodeId] = useState<string | null>(null);\n\n const nodeMap = useRef({});\n\n const firstCharMap = useRef({});\n\n /*\n * Status Helpers\n */\n const isExpanded = useCallback(\n (id) =>\n !collapsible ||\n (Array.isArray(expanded) ? expanded.indexOf(id) !== -1 : false),\n [collapsible, expanded]\n );\n\n const isExpandable = useCallback(\n (id) =>\n collapsible && nodeMap.current[id] && nodeMap.current[id].expandable,\n [collapsible]\n );\n\n const isSelected = useCallback(\n (id) =>\n selectable &&\n (Array.isArray(selected)\n ? selected.indexOf(id) !== -1\n : selected === id),\n [selectable, selected]\n );\n\n const isSelectable = useCallback(\n (id) =>\n selectable && nodeMap.current[id] && nodeMap.current[id].selectable,\n [selectable]\n );\n\n const isDisabled = useCallback((id) => {\n let node = nodeMap.current[id];\n\n // This can be called before the node has been added to the node map.\n if (!node) {\n return false;\n }\n\n if (node.disabled) {\n return true;\n }\n\n while (node.parentId != null) {\n node = nodeMap.current[node.parentId];\n if (node.disabled) {\n return true;\n }\n }\n\n return false;\n }, []);\n\n const isFocused = useCallback(\n (id) => focusedNodeId === id,\n [focusedNodeId]\n );\n\n const isChildSelected = useCallback(\n (id) => selected.startsWith(id),\n [selected]\n );\n\n /*\n * Child Helpers\n */\n const getChildrenIds = (id: string | null) =>\n Object.keys(nodeMap.current)\n .map((key) => {\n return nodeMap.current[key];\n })\n .filter((node) => node.parentId === id)\n .sort((a, b) => a.index - b.index)\n .map((child) => child.id);\n\n const getNavigableChildrenIds = useCallback(\n (id: string | null) => {\n let childrenIds = getChildrenIds(id);\n\n if (!disabledItemsFocusable) {\n childrenIds = childrenIds.filter((node) => !isDisabled(node));\n }\n return childrenIds;\n },\n [disabledItemsFocusable, isDisabled]\n );\n\n /*\n * Node Helpers\n */\n const getNextNode = useCallback(\n (id: string) => {\n // If expanded get first child\n if (isExpanded(id) && getNavigableChildrenIds(id).length > 0) {\n return getNavigableChildrenIds(id)[0];\n }\n\n let node = nodeMap.current[id];\n while (node != null) {\n // Try to get next sibling\n const siblings = getNavigableChildrenIds(node.parentId);\n const nextSibling = siblings[siblings.indexOf(node.id) + 1];\n\n if (nextSibling) {\n return nextSibling;\n }\n\n // If the sibling does not exist, go up a level to the parent and try again.\n node = nodeMap.current[node.parentId];\n }\n\n return null;\n },\n [getNavigableChildrenIds, isExpanded]\n );\n\n const getPreviousNode = (id: string) => {\n const node = nodeMap.current[id];\n const siblings = getNavigableChildrenIds(node.parentId);\n const nodeIndex = siblings.indexOf(id);\n\n if (nodeIndex === 0) {\n return node.parentId;\n }\n\n let currentNode = siblings[nodeIndex - 1];\n while (\n isExpanded(currentNode) &&\n getNavigableChildrenIds(currentNode).length > 0\n ) {\n currentNode = getNavigableChildrenIds(currentNode).pop();\n }\n\n return currentNode;\n };\n\n const getLastNode = () => {\n let lastNode = getNavigableChildrenIds(null).pop();\n\n while (isExpanded(lastNode)) {\n lastNode = getNavigableChildrenIds(lastNode).pop();\n }\n return lastNode;\n };\n const getFirstNode = () => getNavigableChildrenIds(null)[0];\n const getParent = (id) => nodeMap.current[id].parentId;\n\n /**\n * This is used to determine the start and end of a selection range so\n * we can get the nodes between the two border nodes.\n *\n * It finds the nodes' 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 nodeA and NodeB\n * so we can compare their indexes to work out which node 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 node is shallower in a trémaux tree\n * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree\n */\n const findOrderInTremauxTree = useCallback(\n (nodeAId: string, nodeBId: string) => {\n if (nodeAId === nodeBId) {\n return [nodeAId, nodeBId];\n }\n\n const nodeA = nodeMap.current[nodeAId];\n const nodeB = nodeMap.current[nodeBId];\n\n if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {\n return nodeB.parentId === nodeA.id\n ? [nodeA.id, nodeB.id]\n : [nodeB.id, nodeA.id];\n }\n\n const aFamily = [nodeA.id];\n const bFamily = [nodeB.id];\n\n let aAncestor = nodeA.parentId;\n let bAncestor = nodeB.parentId;\n\n let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n\n let continueA = true;\n let continueB = true;\n\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 = nodeMap.current[aAncestor].parentId;\n }\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 = nodeMap.current[bAncestor].parentId;\n }\n }\n }\n\n const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;\n const ancestorFamily = getChildrenIds(commonAncestor);\n\n const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];\n const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];\n\n return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide)\n ? [nodeAId, nodeBId]\n : [nodeBId, nodeAId];\n },\n []\n );\n\n const getNodesInRange = useCallback(\n (nodeA, nodeB) => {\n if (nodeA && nodeB) {\n const [first, last] = findOrderInTremauxTree(nodeA, nodeB);\n const nodes = [first];\n\n let current = first;\n\n while (current !== last) {\n current = getNextNode(current);\n nodes.push(current);\n }\n\n return nodes;\n }\n return [];\n },\n [findOrderInTremauxTree, getNextNode]\n );\n\n /*\n * Focus Helpers\n */\n const focus = (event, id) => {\n if (id) {\n setFocusedNodeId(id);\n\n if (nodeMap.current[id]?.onFocus) {\n nodeMap.current[id].onFocus(event);\n }\n }\n };\n\n const focusNextNode = (event, id) => focus(event, getNextNode(id));\n const focusPreviousNode = (event, id) => focus(event, getPreviousNode(id));\n const focusFirstNode = (event) => focus(event, getFirstNode());\n const focusLastNode = (event) => focus(event, getLastNode());\n\n const focusByFirstCharacter = (event, id, char) => {\n let start;\n let index;\n const lowercaseChar = char.toLowerCase();\n\n const firstCharIds: string[] = [];\n const firstChars: string[] = [];\n // This really only works since the ids are strings\n Object.keys(firstCharMap.current).forEach((nodeId) => {\n const firstChar = firstCharMap.current[nodeId];\n const map = nodeMap.current[nodeId];\n const visible = map.parentId ? isExpanded(map.parentId) : true;\n const shouldBeSkipped = disabledItemsFocusable\n ? false\n : isDisabled(nodeId);\n\n if (visible && !shouldBeSkipped) {\n firstCharIds.push(nodeId);\n firstChars.push(firstChar);\n }\n });\n\n // Get start index for search based on position of currentItem\n start = firstCharIds.indexOf(id) + 1;\n if (start >= firstCharIds.length) {\n start = 0;\n }\n\n // Check remaining slots in the menu\n index = findNextFirstChar(firstChars, start, lowercaseChar);\n\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = findNextFirstChar(firstChars, 0, lowercaseChar);\n }\n\n // If match was found...\n if (index > -1) {\n focus(event, firstCharIds[index]);\n }\n };\n\n /*\n * Expansion Helpers\n */\n const toggleExpansion = useCallback(\n (event, value = focusedNodeId) => {\n let newExpanded;\n\n if (expanded.indexOf(value) !== -1) {\n newExpanded = expanded.filter((id) => id !== value);\n } else {\n newExpanded = [value].concat(expanded);\n }\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n\n setExpandedState(newExpanded);\n },\n [expanded, focusedNodeId, onToggle, setExpandedState]\n );\n\n const expandAllSiblings = (event, id) => {\n const map = nodeMap.current[id];\n const siblings = getChildrenIds(map.parentId);\n\n const diff = siblings.filter(\n (child) => isExpandable(child) && !isExpanded(child)\n );\n\n const newExpanded = expanded.concat(diff);\n\n if (diff.length > 0) {\n setExpandedState(newExpanded);\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n }\n };\n\n /*\n * Selection Helpers\n */\n const lastSelectedNode = useRef<HTMLDivElement | null>(null);\n const lastSelectionWasRange = useRef(false);\n const currentRangeSelection = useRef<HTMLDivElement[]>([]);\n\n const isDivElement = (element): element is HTMLDivElement => {\n return (element as HTMLDivElement).nodeType === 1;\n };\n\n const handleRangeArrowSelect = useCallback(\n (event, nodes: { start?; next?; current? }) => {\n let base = selected.slice();\n const { start, next, current } = nodes;\n\n if (!next || !current) {\n return;\n }\n\n if (\n isDivElement(current) &&\n currentRangeSelection.current.indexOf(current) === -1\n ) {\n currentRangeSelection.current = [];\n }\n\n if (lastSelectionWasRange.current) {\n if (\n isDivElement(next) &&\n currentRangeSelection.current.indexOf(next) !== -1\n ) {\n base = base.filter((id) => id === start || id !== current);\n currentRangeSelection.current =\n currentRangeSelection.current.filter(\n (id) => id === start || id !== current\n );\n } else {\n base.push(next);\n currentRangeSelection.current.push(next);\n }\n } else {\n base.push(next);\n currentRangeSelection.current.push(current, next);\n }\n\n if (onChange) {\n onChange(\n event,\n base,\n base.map((id) => nodeMap.current[id]?.payload)\n );\n }\n\n setSelectedState(base);\n },\n [onChange, selected, setSelectedState]\n );\n\n const handleRangeSelect = useCallback(\n (event, nodes: { start?; end?; current? }) => {\n let base = selected.slice();\n const { start, end } = nodes;\n // If last selection was a range selection ignore nodes that were selected.\n if (lastSelectionWasRange.current) {\n base = base.filter(\n (id) => currentRangeSelection.current.indexOf(id) === -1\n );\n }\n\n let range = getNodesInRange(start, end);\n range = range.filter((node) => !isDisabled(node));\n currentRangeSelection.current = range;\n let newSelected = base.concat(range);\n newSelected = newSelected.filter(\n (id, i) => newSelected.indexOf(id) === i\n );\n\n if (onChange) {\n onChange(\n event,\n newSelected,\n newSelected.map((id) => nodeMap.current[id]?.payload)\n );\n }\n\n setSelectedState(newSelected);\n },\n [getNodesInRange, isDisabled, onChange, selected, setSelectedState]\n );\n\n const handleMultipleSelect = useCallback(\n (event, value) => {\n let newSelected;\n if (selected.indexOf(value) !== -1) {\n newSelected = selected.filter((id) => id !== value);\n } else {\n newSelected = [value].concat(selected);\n }\n\n if (onChange) {\n onChange(\n event,\n newSelected,\n newSelected.map((id) => nodeMap.current[id]?.payload)\n );\n }\n\n setSelectedState(newSelected);\n },\n [onChange, selected, setSelectedState]\n );\n\n const handleSingleSelect = useCallback(\n (event, value) => {\n const newSelected = multiSelect ? [value] : value;\n if (onChange) {\n const nodeValue = nodeMap.current[newSelected]?.payload;\n onChange(event, newSelected, multiSelect ? [nodeValue] : nodeValue);\n }\n\n setSelectedState(newSelected);\n },\n [multiSelect, onChange, setSelectedState]\n );\n\n const selectNode = useCallback(\n (event, id, multiple = false) => {\n if (id && isSelectable(id)) {\n if (multiple) {\n handleMultipleSelect(event, id);\n } else {\n handleSingleSelect(event, id);\n }\n lastSelectedNode.current = id;\n lastSelectionWasRange.current = false;\n currentRangeSelection.current = [];\n\n return true;\n }\n return false;\n },\n [handleMultipleSelect, handleSingleSelect, isSelectable]\n );\n\n const selectRange = useCallback(\n (\n event,\n nodes: { start?; end?; current?: HTMLDivElement | null },\n stacked = false\n ) => {\n const { start = lastSelectedNode.current, end, current } = nodes;\n if (stacked) {\n handleRangeArrowSelect(event, { start, next: end, current });\n } else if (start != null && end != null) {\n handleRangeSelect(event, { start, end });\n }\n lastSelectionWasRange.current = true;\n },\n [handleRangeArrowSelect, handleRangeSelect]\n );\n\n const rangeSelectToFirst = (event, id) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = id;\n }\n\n const start = lastSelectionWasRange.current\n ? lastSelectedNode.current\n : id;\n\n selectRange(event, {\n start,\n end: getFirstNode(),\n });\n };\n\n const rangeSelectToLast = (event: any, id) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = id;\n }\n\n const start = lastSelectionWasRange.current\n ? lastSelectedNode.current\n : id;\n\n selectRange(event, {\n start,\n end: getLastNode(),\n });\n };\n\n const selectNextNode = (event, id) => {\n if (!isDisabled(getNextNode(id))) {\n selectRange(\n event,\n {\n end: getNextNode(id),\n current: id,\n },\n true\n );\n }\n };\n\n const selectPreviousNode = (event, id) => {\n if (!isDisabled(getPreviousNode(id))) {\n selectRange(\n event,\n {\n end: getPreviousNode(id),\n current: id,\n },\n true\n );\n }\n };\n\n const selectAllNodes = (event) => {\n selectRange(event, { start: getFirstNode(), end: getLastNode() });\n };\n\n /*\n * Mapping Helpers\n */\n const registerNode = useCallback((node) => {\n const {\n id,\n index,\n parentId,\n expandable,\n idAttribute,\n disabled,\n selectable: nodeSelectable,\n onFocus: nodeOnFocus,\n payload,\n } = node;\n\n nodeMap.current[id] = {\n id,\n index,\n parentId,\n expandable,\n idAttribute,\n disabled,\n selectable: nodeSelectable,\n onFocus: nodeOnFocus,\n payload,\n };\n }, []);\n\n const unregisterNode = useCallback((id) => {\n const newMap = { ...nodeMap.current };\n delete newMap[id];\n nodeMap.current = newMap;\n\n setFocusedNodeId((oldFocusedNodeId) => {\n if (\n oldFocusedNodeId === id &&\n treeRef.current &&\n treeRef.current ===\n (treeRef.current.ownerDocument || document).activeElement\n ) {\n return getChildrenIds(null)[0];\n }\n return oldFocusedNodeId;\n });\n }, []);\n\n const mapFirstChar = useCallback((id, firstChar) => {\n firstCharMap.current[id] = firstChar;\n }, []);\n\n const unMapFirstChar = useCallback((id) => {\n const newMap = { ...firstCharMap.current };\n delete newMap[id];\n firstCharMap.current = newMap;\n }, []);\n\n /**\n * Event handlers and Navigation\n */\n const handleNextArrow = (event) => {\n if (isExpandable(focusedNodeId)) {\n if (isExpanded(focusedNodeId)) {\n focusNextNode(event, focusedNodeId);\n } else if (!isDisabled(focusedNodeId)) {\n toggleExpansion(event);\n }\n }\n return true;\n };\n\n const handlePreviousArrow = (event) => {\n if (isExpanded(focusedNodeId) && !isDisabled(focusedNodeId)) {\n toggleExpansion(event, focusedNodeId);\n return true;\n }\n\n const parent = getParent(focusedNodeId);\n if (parent) {\n focus(event, parent);\n return true;\n }\n return false;\n };\n\n const handleKeyDown = (event) => {\n let flag = false;\n const { key } = event;\n\n // If the tree is empty there will be no focused node\n if (\n event.altKey ||\n event.currentTarget !== event.target ||\n !focusedNodeId\n ) {\n return;\n }\n\n const ctrlPressed = event.ctrlKey || event.metaKey;\n switch (key) {\n case \" \":\n if (isSelectable(focusedNodeId) && !isDisabled(focusedNodeId)) {\n if (multiSelect && event.shiftKey) {\n selectRange(event, { end: focusedNodeId });\n flag = true;\n } else if (multiSelect) {\n flag = selectNode(event, focusedNodeId, true);\n } else {\n flag = selectNode(event, focusedNodeId);\n }\n }\n event.stopPropagation();\n break;\n case \"Enter\":\n if (!isDisabled(focusedNodeId)) {\n if (isExpandable(focusedNodeId)) {\n toggleExpansion(event);\n flag = true;\n } else if (isSelectable(focusedNodeId)) {\n if (multiSelect && event.shiftKey) {\n selectRange(event, { end: focusedNodeId });\n flag = true;\n } else if (multiSelect) {\n flag = selectNode(event, focusedNodeId, true);\n } else {\n flag = selectNode(event, focusedNodeId);\n }\n }\n }\n event.stopPropagation();\n break;\n case \"ArrowDown\":\n if (multiSelect && event.shiftKey) {\n selectNextNode(event, focusedNodeId);\n }\n focusNextNode(event, focusedNodeId);\n flag = true;\n break;\n case \"ArrowUp\":\n if (multiSelect && event.shiftKey) {\n selectPreviousNode(event, focusedNodeId);\n }\n focusPreviousNode(event, focusedNodeId);\n flag = true;\n break;\n case \"ArrowRight\":\n flag = handleNextArrow(event);\n break;\n case \"ArrowLeft\":\n flag = handlePreviousArrow(event);\n break;\n case \"Home\":\n if (\n multiSelect &&\n ctrlPressed &&\n event.shiftKey &&\n !isDisabled(focusedNodeId)\n ) {\n rangeSelectToFirst(event, focusedNodeId);\n }\n focusFirstNode(event);\n flag = true;\n break;\n case \"End\":\n if (\n multiSelect &&\n ctrlPressed &&\n event.shiftKey &&\n !isDisabled(focusedNodeId)\n ) {\n rangeSelectToLast(event, focusedNodeId);\n }\n focusLastNode(event);\n flag = true;\n break;\n default:\n if (key === \"*\") {\n expandAllSiblings(event, focusedNodeId);\n flag = true;\n } else if (multiSelect && ctrlPressed && key.toLowerCase() === \"a\") {\n selectAllNodes(event);\n flag = true;\n } else if (\n !ctrlPressed &&\n !event.shiftKey &&\n isPrintableCharacter(key)\n ) {\n focusByFirstCharacter(event, focusedNodeId, key);\n flag = true;\n }\n }\n\n if (flag) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n const handleFocus = (event) => {\n // if the event bubbled (which is React specific) we don't want to steal focus\n if (event.target === event.currentTarget) {\n const firstSelected = Array.isArray(selected) ? selected[0] : selected;\n focus(event, firstSelected || getNavigableChildrenIds(null)[0]);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleBlur = (event) => {\n setFocusedNodeId(null);\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const activeDescendant =\n focusedNodeId && nodeMap.current[focusedNodeId]\n ? nodeMap.current[focusedNodeId].idAttribute\n : null;\n\n const treeControlContext = useMemo(\n () => ({\n treeId,\n mode,\n collapsible,\n toggleExpansion,\n multiSelect,\n selectNode: selectable ? selectNode : noopSelection,\n selectRange: selectable ? selectRange : noopSelection,\n disabledItemsFocusable,\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n focus,\n }),\n [\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n toggleExpansion,\n selectable,\n selectNode,\n selectRange,\n mode,\n collapsible,\n multiSelect,\n disabledItemsFocusable,\n treeId,\n ]\n );\n\n const treeStateContext = useMemo(\n () => ({\n isExpanded,\n isSelected,\n isFocused,\n isDisabled,\n isChildSelected,\n }),\n [isDisabled, isExpanded, isFocused, isSelected, isChildSelected]\n );\n\n return (\n <TreeViewControlContext.Provider value={treeControlContext}>\n <TreeViewStateContext.Provider value={treeStateContext}>\n <DescendantProvider>\n <StyledRoot\n ref={handleRef}\n id={idProp}\n className={clsx(treeViewClasses.root, classes?.root, className)}\n {...(treeviewMode && {\n id: treeId,\n role: \"tree\",\n \"aria-multiselectable\": multiSelect,\n \"aria-activedescendant\": activeDescendant,\n tabIndex: 0,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n })}\n {...others}\n >\n {children}\n </StyledRoot>\n </DescendantProvider>\n </TreeViewStateContext.Provider>\n </TreeViewControlContext.Provider>\n );\n }\n);\n"],"names":["isPrintableCharacter","string","length","match","findNextFirstChar","firstChars","startIndex","char","i","noopSelection","HvVerticalNavigationTreeView","forwardRef","props","ref","id","idProp","className","classes","mode","collapsible","expanded","expandedProp","defaultExpanded","onToggle","selectable","multiSelect","multiSelectProp","selected","selectedProp","defaultSelected","onChange","disabledItemsFocusable","onFocus","onBlur","onKeyDown","children","others","treeviewMode","treeId","useUniqueId","treeRef","useRef","handleRef","useForkRef","setExpandedState","useControlled","setSelectedState","focusedNodeId","setFocusedNodeId","useState","nodeMap","firstCharMap","isExpanded","useCallback","Array","isArray","indexOf","isExpandable","current","expandable","isSelected","isSelectable","isDisabled","node","disabled","parentId","isFocused","isChildSelected","startsWith","getChildrenIds","Object","keys","map","key","filter","sort","a","b","index","child","getNavigableChildrenIds","childrenIds","getNextNode","siblings","nextSibling","getPreviousNode","nodeIndex","currentNode","pop","getLastNode","lastNode","getFirstNode","getParent","findOrderInTremauxTree","nodeAId","nodeBId","nodeA","nodeB","aFamily","bFamily","aAncestor","bAncestor","aAncestorIsCommon","bAncestorIsCommon","continueA","continueB","push","commonAncestor","ancestorFamily","aSide","bSide","getNodesInRange","first","last","nodes","focus","event","focusNextNode","focusPreviousNode","focusFirstNode","focusLastNode","focusByFirstCharacter","start","lowercaseChar","toLowerCase","firstCharIds","forEach","nodeId","firstChar","visible","shouldBeSkipped","toggleExpansion","value","newExpanded","concat","expandAllSiblings","diff","lastSelectedNode","lastSelectionWasRange","currentRangeSelection","isDivElement","element","nodeType","handleRangeArrowSelect","base","slice","next","payload","handleRangeSelect","end","range","newSelected","handleMultipleSelect","handleSingleSelect","nodeValue","selectNode","multiple","selectRange","stacked","rangeSelectToFirst","rangeSelectToLast","selectNextNode","selectPreviousNode","selectAllNodes","registerNode","idAttribute","nodeSelectable","nodeOnFocus","unregisterNode","newMap","oldFocusedNodeId","ownerDocument","document","activeElement","mapFirstChar","unMapFirstChar","handleNextArrow","handlePreviousArrow","parent","handleKeyDown","flag","altKey","currentTarget","target","ctrlPressed","ctrlKey","metaKey","shiftKey","stopPropagation","preventDefault","handleFocus","firstSelected","handleBlur","activeDescendant","treeControlContext","useMemo","treeStateContext","_jsx","TreeViewControlContext","Provider","TreeViewStateContext","DescendantProvider","StyledRoot","clsx","treeViewClasses","root","role","tabIndex"],"mappings":"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"}
1
+ {"version":3,"file":"TreeView.cjs","sources":["../../../../../src/components/VerticalNavigation/TreeView/TreeView.tsx"],"sourcesContent":["import { forwardRef, useCallback, useMemo, useRef, useState } from \"react\";\nimport { clsx } from \"clsx\";\nimport { useControlled, useForkRef, useUniqueId } from \"@core/hooks\";\nimport { HvVerticalNavigationTreeClasses } from \"../Navigation/navigationClasses\";\nimport {\n TreeViewControlContext,\n TreeViewStateContext,\n} from \"./TreeViewContext\";\nimport { DescendantProvider } from \"./descendants\";\nimport { StyledRoot } from \"./TreeView.styles\";\nimport { NavigationMode } from \"../Navigation\";\nimport treeViewClasses from \"./treeViewClasses\";\n\nexport interface HvVerticalNavigationTreeViewProps {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * Class names to be applied.\n */\n className?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the Radio button.\n */\n classes?: HvVerticalNavigationTreeClasses;\n /**\n * Modus operandi (role) of the widget instance.\n */\n mode?: NavigationMode;\n /**\n * Enables selection.\n * @default false\n */\n selectable?: boolean;\n /**\n * Enables the simultaneous selection of multiple items.\n * @default false\n */\n multiSelect?: boolean;\n /**\n * The selected nodes' ids.\n *\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n */\n selected?: string[] | string;\n /**\n * When uncontrolled, defines the initial selected nodes' ids.\n *\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelected?: string[] | string;\n /**\n * Can non-leaf nodes be collapsed / expanded.\n */\n collapsible?: boolean;\n /**\n * Callback fired when a tree item is selected.\n *\n * @param {object} event The event source of the callback.\n * @param {string} nodeId The id of the selected node.\n */\n onChange?: any;\n /**\n * Expanded nodes' ids.\n */\n expanded?: string[];\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n * @default []\n */\n defaultExpanded?: string[];\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {object} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes (old and new).\n */\n onToggle?: (event, nodeIds) => void;\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable?: boolean;\n /**\n * @ignore\n */\n onFocus?: (event: React.FocusEvent<any>) => void;\n /**\n * @ignore\n */\n onBlur?: (event: any) => void;\n /**\n * @ignore\n */\n onKeyDown?: (event: KeyboardEvent) => void;\n /**\n * The content of the component.\n */\n children?: React.ReactNode;\n}\n\nfunction isPrintableCharacter(string) {\n return string && string.length === 1 && string.match(/\\S/);\n}\n\nfunction findNextFirstChar(firstChars, startIndex, char) {\n for (let i = startIndex; i < firstChars.length; i += 1) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n}\n\nfunction noopSelection() {\n return false;\n}\n\nexport const HvVerticalNavigationTreeView = forwardRef(\n (props: HvVerticalNavigationTreeViewProps, ref) => {\n const {\n id: idProp,\n className,\n classes,\n\n mode = \"treeview\",\n\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded = [],\n onToggle,\n\n selectable = false,\n multiSelect: multiSelectProp = false,\n selected: selectedProp,\n defaultSelected = [],\n onChange,\n\n disabledItemsFocusable = false,\n\n onFocus,\n onBlur,\n onKeyDown,\n\n children,\n\n ...others\n } = props;\n\n const treeviewMode = mode === \"treeview\";\n const multiSelect = selectable && multiSelectProp;\n\n const treeId = useUniqueId(idProp, \"hvtreeview\");\n const treeRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(treeRef, ref);\n\n const [expanded, setExpandedState] = useControlled(\n expandedProp,\n defaultExpanded\n );\n\n const [selected, setSelectedState] = useControlled(\n selectedProp,\n defaultSelected\n );\n\n const [focusedNodeId, setFocusedNodeId] = useState<string | null>(null);\n\n const nodeMap = useRef({});\n\n const firstCharMap = useRef({});\n\n /*\n * Status Helpers\n */\n const isExpanded = useCallback(\n (id) =>\n !collapsible ||\n (Array.isArray(expanded) ? expanded.indexOf(id) !== -1 : false),\n [collapsible, expanded]\n );\n\n const isExpandable = useCallback(\n (id) =>\n collapsible && nodeMap.current[id] && nodeMap.current[id].expandable,\n [collapsible]\n );\n\n const isSelected = useCallback(\n (id) =>\n selectable &&\n (Array.isArray(selected)\n ? selected.indexOf(id) !== -1\n : selected === id),\n [selectable, selected]\n );\n\n const isSelectable = useCallback(\n (id) =>\n selectable && nodeMap.current[id] && nodeMap.current[id].selectable,\n [selectable]\n );\n\n const isDisabled = useCallback((id) => {\n let node = nodeMap.current[id];\n\n // This can be called before the node has been added to the node map.\n if (!node) {\n return false;\n }\n\n if (node.disabled) {\n return true;\n }\n\n while (node.parentId != null) {\n node = nodeMap.current[node.parentId];\n if (node.disabled) {\n return true;\n }\n }\n\n return false;\n }, []);\n\n const isFocused = useCallback(\n (id) => focusedNodeId === id,\n [focusedNodeId]\n );\n\n const isChildSelected = useCallback(\n // the second part of the condition is to ensure that the id we're\n // looking at is actually of a child (ie, there's at least one \"-\")\n (id) => selected.startsWith(id) && selected.includes(\"-\"),\n [selected]\n );\n\n /*\n * Child Helpers\n */\n const getChildrenIds = (id: string | null) =>\n Object.keys(nodeMap.current)\n .map((key) => {\n return nodeMap.current[key];\n })\n .filter((node) => node.parentId === id)\n .sort((a, b) => a.index - b.index)\n .map((child) => child.id);\n\n const getNavigableChildrenIds = useCallback(\n (id: string | null) => {\n let childrenIds = getChildrenIds(id);\n\n if (!disabledItemsFocusable) {\n childrenIds = childrenIds.filter((node) => !isDisabled(node));\n }\n return childrenIds;\n },\n [disabledItemsFocusable, isDisabled]\n );\n\n /*\n * Node Helpers\n */\n const getNextNode = useCallback(\n (id: string) => {\n // If expanded get first child\n if (isExpanded(id) && getNavigableChildrenIds(id).length > 0) {\n return getNavigableChildrenIds(id)[0];\n }\n\n let node = nodeMap.current[id];\n while (node != null) {\n // Try to get next sibling\n const siblings = getNavigableChildrenIds(node.parentId);\n const nextSibling = siblings[siblings.indexOf(node.id) + 1];\n\n if (nextSibling) {\n return nextSibling;\n }\n\n // If the sibling does not exist, go up a level to the parent and try again.\n node = nodeMap.current[node.parentId];\n }\n\n return null;\n },\n [getNavigableChildrenIds, isExpanded]\n );\n\n const getPreviousNode = (id: string) => {\n const node = nodeMap.current[id];\n const siblings = getNavigableChildrenIds(node.parentId);\n const nodeIndex = siblings.indexOf(id);\n\n if (nodeIndex === 0) {\n return node.parentId;\n }\n\n let currentNode = siblings[nodeIndex - 1];\n while (\n isExpanded(currentNode) &&\n getNavigableChildrenIds(currentNode).length > 0\n ) {\n currentNode = getNavigableChildrenIds(currentNode).pop();\n }\n\n return currentNode;\n };\n\n const getLastNode = () => {\n let lastNode = getNavigableChildrenIds(null).pop();\n\n while (isExpanded(lastNode)) {\n lastNode = getNavigableChildrenIds(lastNode).pop();\n }\n return lastNode;\n };\n const getFirstNode = () => getNavigableChildrenIds(null)[0];\n const getParent = (id) => nodeMap.current[id].parentId;\n\n /**\n * This is used to determine the start and end of a selection range so\n * we can get the nodes between the two border nodes.\n *\n * It finds the nodes' 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 nodeA and NodeB\n * so we can compare their indexes to work out which node 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 node is shallower in a trémaux tree\n * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree\n */\n const findOrderInTremauxTree = useCallback(\n (nodeAId: string, nodeBId: string) => {\n if (nodeAId === nodeBId) {\n return [nodeAId, nodeBId];\n }\n\n const nodeA = nodeMap.current[nodeAId];\n const nodeB = nodeMap.current[nodeBId];\n\n if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {\n return nodeB.parentId === nodeA.id\n ? [nodeA.id, nodeB.id]\n : [nodeB.id, nodeA.id];\n }\n\n const aFamily = [nodeA.id];\n const bFamily = [nodeB.id];\n\n let aAncestor = nodeA.parentId;\n let bAncestor = nodeB.parentId;\n\n let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n\n let continueA = true;\n let continueB = true;\n\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 = nodeMap.current[aAncestor].parentId;\n }\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 = nodeMap.current[bAncestor].parentId;\n }\n }\n }\n\n const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;\n const ancestorFamily = getChildrenIds(commonAncestor);\n\n const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];\n const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];\n\n return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide)\n ? [nodeAId, nodeBId]\n : [nodeBId, nodeAId];\n },\n []\n );\n\n const getNodesInRange = useCallback(\n (nodeA, nodeB) => {\n if (nodeA && nodeB) {\n const [first, last] = findOrderInTremauxTree(nodeA, nodeB);\n const nodes = [first];\n\n let current = first;\n\n while (current !== last) {\n current = getNextNode(current);\n nodes.push(current);\n }\n\n return nodes;\n }\n return [];\n },\n [findOrderInTremauxTree, getNextNode]\n );\n\n /*\n * Focus Helpers\n */\n const focus = (event, id) => {\n if (id) {\n setFocusedNodeId(id);\n\n if (nodeMap.current[id]?.onFocus) {\n nodeMap.current[id].onFocus(event);\n }\n }\n };\n\n const focusNextNode = (event, id) => focus(event, getNextNode(id));\n const focusPreviousNode = (event, id) => focus(event, getPreviousNode(id));\n const focusFirstNode = (event) => focus(event, getFirstNode());\n const focusLastNode = (event) => focus(event, getLastNode());\n\n const focusByFirstCharacter = (event, id, char) => {\n let start;\n let index;\n const lowercaseChar = char.toLowerCase();\n\n const firstCharIds: string[] = [];\n const firstChars: string[] = [];\n // This really only works since the ids are strings\n Object.keys(firstCharMap.current).forEach((nodeId) => {\n const firstChar = firstCharMap.current[nodeId];\n const map = nodeMap.current[nodeId];\n const visible = map.parentId ? isExpanded(map.parentId) : true;\n const shouldBeSkipped = disabledItemsFocusable\n ? false\n : isDisabled(nodeId);\n\n if (visible && !shouldBeSkipped) {\n firstCharIds.push(nodeId);\n firstChars.push(firstChar);\n }\n });\n\n // Get start index for search based on position of currentItem\n start = firstCharIds.indexOf(id) + 1;\n if (start >= firstCharIds.length) {\n start = 0;\n }\n\n // Check remaining slots in the menu\n index = findNextFirstChar(firstChars, start, lowercaseChar);\n\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = findNextFirstChar(firstChars, 0, lowercaseChar);\n }\n\n // If match was found...\n if (index > -1) {\n focus(event, firstCharIds[index]);\n }\n };\n\n /*\n * Expansion Helpers\n */\n const toggleExpansion = useCallback(\n (event, value = focusedNodeId) => {\n let newExpanded;\n\n if (expanded.indexOf(value) !== -1) {\n newExpanded = expanded.filter((id) => id !== value);\n } else {\n newExpanded = [value].concat(expanded);\n }\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n\n setExpandedState(newExpanded);\n },\n [expanded, focusedNodeId, onToggle, setExpandedState]\n );\n\n const expandAllSiblings = (event, id) => {\n const map = nodeMap.current[id];\n const siblings = getChildrenIds(map.parentId);\n\n const diff = siblings.filter(\n (child) => isExpandable(child) && !isExpanded(child)\n );\n\n const newExpanded = expanded.concat(diff);\n\n if (diff.length > 0) {\n setExpandedState(newExpanded);\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n }\n };\n\n /*\n * Selection Helpers\n */\n const lastSelectedNode = useRef<HTMLDivElement | null>(null);\n const lastSelectionWasRange = useRef(false);\n const currentRangeSelection = useRef<HTMLDivElement[]>([]);\n\n const isDivElement = (element): element is HTMLDivElement => {\n return (element as HTMLDivElement).nodeType === 1;\n };\n\n const handleRangeArrowSelect = useCallback(\n (event, nodes: { start?; next?; current? }) => {\n let base = selected.slice();\n const { start, next, current } = nodes;\n\n if (!next || !current) {\n return;\n }\n\n if (\n isDivElement(current) &&\n currentRangeSelection.current.indexOf(current) === -1\n ) {\n currentRangeSelection.current = [];\n }\n\n if (lastSelectionWasRange.current) {\n if (\n isDivElement(next) &&\n currentRangeSelection.current.indexOf(next) !== -1\n ) {\n base = base.filter((id) => id === start || id !== current);\n currentRangeSelection.current =\n currentRangeSelection.current.filter(\n (id) => id === start || id !== current\n );\n } else {\n base.push(next);\n currentRangeSelection.current.push(next);\n }\n } else {\n base.push(next);\n currentRangeSelection.current.push(current, next);\n }\n\n if (onChange) {\n onChange(\n event,\n base,\n base.map((id) => nodeMap.current[id]?.payload)\n );\n }\n\n setSelectedState(base);\n },\n [onChange, selected, setSelectedState]\n );\n\n const handleRangeSelect = useCallback(\n (event, nodes: { start?; end?; current? }) => {\n let base = selected.slice();\n const { start, end } = nodes;\n // If last selection was a range selection ignore nodes that were selected.\n if (lastSelectionWasRange.current) {\n base = base.filter(\n (id) => currentRangeSelection.current.indexOf(id) === -1\n );\n }\n\n let range = getNodesInRange(start, end);\n range = range.filter((node) => !isDisabled(node));\n currentRangeSelection.current = range;\n let newSelected = base.concat(range);\n newSelected = newSelected.filter(\n (id, i) => newSelected.indexOf(id) === i\n );\n\n if (onChange) {\n onChange(\n event,\n newSelected,\n newSelected.map((id) => nodeMap.current[id]?.payload)\n );\n }\n\n setSelectedState(newSelected);\n },\n [getNodesInRange, isDisabled, onChange, selected, setSelectedState]\n );\n\n const handleMultipleSelect = useCallback(\n (event, value) => {\n let newSelected;\n if (selected.indexOf(value) !== -1) {\n newSelected = selected.filter((id) => id !== value);\n } else {\n newSelected = [value].concat(selected);\n }\n\n if (onChange) {\n onChange(\n event,\n newSelected,\n newSelected.map((id) => nodeMap.current[id]?.payload)\n );\n }\n\n setSelectedState(newSelected);\n },\n [onChange, selected, setSelectedState]\n );\n\n const handleSingleSelect = useCallback(\n (event, value) => {\n const newSelected = multiSelect ? [value] : value;\n if (onChange) {\n const nodeValue = nodeMap.current[newSelected]?.payload;\n onChange(event, newSelected, multiSelect ? [nodeValue] : nodeValue);\n }\n\n setSelectedState(newSelected);\n },\n [multiSelect, onChange, setSelectedState]\n );\n\n const selectNode = useCallback(\n (event, id, multiple = false) => {\n if (id && isSelectable(id)) {\n if (multiple) {\n handleMultipleSelect(event, id);\n } else {\n handleSingleSelect(event, id);\n }\n lastSelectedNode.current = id;\n lastSelectionWasRange.current = false;\n currentRangeSelection.current = [];\n\n return true;\n }\n return false;\n },\n [handleMultipleSelect, handleSingleSelect, isSelectable]\n );\n\n const selectRange = useCallback(\n (\n event,\n nodes: { start?; end?; current?: HTMLDivElement | null },\n stacked = false\n ) => {\n const { start = lastSelectedNode.current, end, current } = nodes;\n if (stacked) {\n handleRangeArrowSelect(event, { start, next: end, current });\n } else if (start != null && end != null) {\n handleRangeSelect(event, { start, end });\n }\n lastSelectionWasRange.current = true;\n },\n [handleRangeArrowSelect, handleRangeSelect]\n );\n\n const rangeSelectToFirst = (event, id) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = id;\n }\n\n const start = lastSelectionWasRange.current\n ? lastSelectedNode.current\n : id;\n\n selectRange(event, {\n start,\n end: getFirstNode(),\n });\n };\n\n const rangeSelectToLast = (event: any, id) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = id;\n }\n\n const start = lastSelectionWasRange.current\n ? lastSelectedNode.current\n : id;\n\n selectRange(event, {\n start,\n end: getLastNode(),\n });\n };\n\n const selectNextNode = (event, id) => {\n if (!isDisabled(getNextNode(id))) {\n selectRange(\n event,\n {\n end: getNextNode(id),\n current: id,\n },\n true\n );\n }\n };\n\n const selectPreviousNode = (event, id) => {\n if (!isDisabled(getPreviousNode(id))) {\n selectRange(\n event,\n {\n end: getPreviousNode(id),\n current: id,\n },\n true\n );\n }\n };\n\n const selectAllNodes = (event) => {\n selectRange(event, { start: getFirstNode(), end: getLastNode() });\n };\n\n /*\n * Mapping Helpers\n */\n const registerNode = useCallback((node) => {\n const {\n id,\n index,\n parentId,\n expandable,\n idAttribute,\n disabled,\n selectable: nodeSelectable,\n onFocus: nodeOnFocus,\n payload,\n } = node;\n\n nodeMap.current[id] = {\n id,\n index,\n parentId,\n expandable,\n idAttribute,\n disabled,\n selectable: nodeSelectable,\n onFocus: nodeOnFocus,\n payload,\n };\n }, []);\n\n const unregisterNode = useCallback((id) => {\n const newMap = { ...nodeMap.current };\n delete newMap[id];\n nodeMap.current = newMap;\n\n setFocusedNodeId((oldFocusedNodeId) => {\n if (\n oldFocusedNodeId === id &&\n treeRef.current &&\n treeRef.current ===\n (treeRef.current.ownerDocument || document).activeElement\n ) {\n return getChildrenIds(null)[0];\n }\n return oldFocusedNodeId;\n });\n }, []);\n\n const mapFirstChar = useCallback((id, firstChar) => {\n firstCharMap.current[id] = firstChar;\n }, []);\n\n const unMapFirstChar = useCallback((id) => {\n const newMap = { ...firstCharMap.current };\n delete newMap[id];\n firstCharMap.current = newMap;\n }, []);\n\n /**\n * Event handlers and Navigation\n */\n const handleNextArrow = (event) => {\n if (isExpandable(focusedNodeId)) {\n if (isExpanded(focusedNodeId)) {\n focusNextNode(event, focusedNodeId);\n } else if (!isDisabled(focusedNodeId)) {\n toggleExpansion(event);\n }\n }\n return true;\n };\n\n const handlePreviousArrow = (event) => {\n if (isExpanded(focusedNodeId) && !isDisabled(focusedNodeId)) {\n toggleExpansion(event, focusedNodeId);\n return true;\n }\n\n const parent = getParent(focusedNodeId);\n if (parent) {\n focus(event, parent);\n return true;\n }\n return false;\n };\n\n const handleKeyDown = (event) => {\n let flag = false;\n const { key } = event;\n\n // If the tree is empty there will be no focused node\n if (\n event.altKey ||\n event.currentTarget !== event.target ||\n !focusedNodeId\n ) {\n return;\n }\n\n const ctrlPressed = event.ctrlKey || event.metaKey;\n switch (key) {\n case \" \":\n if (isSelectable(focusedNodeId) && !isDisabled(focusedNodeId)) {\n if (multiSelect && event.shiftKey) {\n selectRange(event, { end: focusedNodeId });\n flag = true;\n } else if (multiSelect) {\n flag = selectNode(event, focusedNodeId, true);\n } else {\n flag = selectNode(event, focusedNodeId);\n }\n }\n event.stopPropagation();\n break;\n case \"Enter\":\n if (!isDisabled(focusedNodeId)) {\n if (isExpandable(focusedNodeId)) {\n toggleExpansion(event);\n flag = true;\n } else if (isSelectable(focusedNodeId)) {\n if (multiSelect && event.shiftKey) {\n selectRange(event, { end: focusedNodeId });\n flag = true;\n } else if (multiSelect) {\n flag = selectNode(event, focusedNodeId, true);\n } else {\n flag = selectNode(event, focusedNodeId);\n }\n }\n }\n event.stopPropagation();\n break;\n case \"ArrowDown\":\n if (multiSelect && event.shiftKey) {\n selectNextNode(event, focusedNodeId);\n }\n focusNextNode(event, focusedNodeId);\n flag = true;\n break;\n case \"ArrowUp\":\n if (multiSelect && event.shiftKey) {\n selectPreviousNode(event, focusedNodeId);\n }\n focusPreviousNode(event, focusedNodeId);\n flag = true;\n break;\n case \"ArrowRight\":\n flag = handleNextArrow(event);\n break;\n case \"ArrowLeft\":\n flag = handlePreviousArrow(event);\n break;\n case \"Home\":\n if (\n multiSelect &&\n ctrlPressed &&\n event.shiftKey &&\n !isDisabled(focusedNodeId)\n ) {\n rangeSelectToFirst(event, focusedNodeId);\n }\n focusFirstNode(event);\n flag = true;\n break;\n case \"End\":\n if (\n multiSelect &&\n ctrlPressed &&\n event.shiftKey &&\n !isDisabled(focusedNodeId)\n ) {\n rangeSelectToLast(event, focusedNodeId);\n }\n focusLastNode(event);\n flag = true;\n break;\n default:\n if (key === \"*\") {\n expandAllSiblings(event, focusedNodeId);\n flag = true;\n } else if (multiSelect && ctrlPressed && key.toLowerCase() === \"a\") {\n selectAllNodes(event);\n flag = true;\n } else if (\n !ctrlPressed &&\n !event.shiftKey &&\n isPrintableCharacter(key)\n ) {\n focusByFirstCharacter(event, focusedNodeId, key);\n flag = true;\n }\n }\n\n if (flag) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n const handleFocus = (event) => {\n // if the event bubbled (which is React specific) we don't want to steal focus\n if (event.target === event.currentTarget) {\n const firstSelected = Array.isArray(selected) ? selected[0] : selected;\n focus(event, firstSelected || getNavigableChildrenIds(null)[0]);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleBlur = (event) => {\n setFocusedNodeId(null);\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const activeDescendant =\n focusedNodeId && nodeMap.current[focusedNodeId]\n ? nodeMap.current[focusedNodeId].idAttribute\n : null;\n\n const treeControlContext = useMemo(\n () => ({\n treeId,\n mode,\n collapsible,\n toggleExpansion,\n multiSelect,\n selectNode: selectable ? selectNode : noopSelection,\n selectRange: selectable ? selectRange : noopSelection,\n disabledItemsFocusable,\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n focus,\n }),\n [\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n toggleExpansion,\n selectable,\n selectNode,\n selectRange,\n mode,\n collapsible,\n multiSelect,\n disabledItemsFocusable,\n treeId,\n ]\n );\n\n const treeStateContext = useMemo(\n () => ({\n isExpanded,\n isSelected,\n isFocused,\n isDisabled,\n isChildSelected,\n }),\n [isDisabled, isExpanded, isFocused, isSelected, isChildSelected]\n );\n\n return (\n <TreeViewControlContext.Provider value={treeControlContext}>\n <TreeViewStateContext.Provider value={treeStateContext}>\n <DescendantProvider>\n <StyledRoot\n ref={handleRef}\n id={idProp}\n className={clsx(treeViewClasses.root, classes?.root, className)}\n {...(treeviewMode && {\n id: treeId,\n role: \"tree\",\n \"aria-multiselectable\": multiSelect,\n \"aria-activedescendant\": activeDescendant,\n tabIndex: 0,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n })}\n {...others}\n >\n {children}\n </StyledRoot>\n </DescendantProvider>\n </TreeViewStateContext.Provider>\n </TreeViewControlContext.Provider>\n );\n }\n);\n"],"names":["isPrintableCharacter","string","length","match","findNextFirstChar","firstChars","startIndex","char","i","noopSelection","HvVerticalNavigationTreeView","forwardRef","props","ref","id","idProp","className","classes","mode","collapsible","expanded","expandedProp","defaultExpanded","onToggle","selectable","multiSelect","multiSelectProp","selected","selectedProp","defaultSelected","onChange","disabledItemsFocusable","onFocus","onBlur","onKeyDown","children","others","treeviewMode","treeId","useUniqueId","treeRef","useRef","handleRef","useForkRef","setExpandedState","useControlled","setSelectedState","focusedNodeId","setFocusedNodeId","useState","nodeMap","firstCharMap","isExpanded","useCallback","Array","isArray","indexOf","isExpandable","current","expandable","isSelected","isSelectable","isDisabled","node","disabled","parentId","isFocused","isChildSelected","startsWith","includes","getChildrenIds","Object","keys","map","key","filter","sort","a","b","index","child","getNavigableChildrenIds","childrenIds","getNextNode","siblings","nextSibling","getPreviousNode","nodeIndex","currentNode","pop","getLastNode","lastNode","getFirstNode","getParent","findOrderInTremauxTree","nodeAId","nodeBId","nodeA","nodeB","aFamily","bFamily","aAncestor","bAncestor","aAncestorIsCommon","bAncestorIsCommon","continueA","continueB","push","commonAncestor","ancestorFamily","aSide","bSide","getNodesInRange","first","last","nodes","focus","event","focusNextNode","focusPreviousNode","focusFirstNode","focusLastNode","focusByFirstCharacter","start","lowercaseChar","toLowerCase","firstCharIds","forEach","nodeId","firstChar","visible","shouldBeSkipped","toggleExpansion","value","newExpanded","concat","expandAllSiblings","diff","lastSelectedNode","lastSelectionWasRange","currentRangeSelection","isDivElement","element","nodeType","handleRangeArrowSelect","base","slice","next","payload","handleRangeSelect","end","range","newSelected","handleMultipleSelect","handleSingleSelect","nodeValue","selectNode","multiple","selectRange","stacked","rangeSelectToFirst","rangeSelectToLast","selectNextNode","selectPreviousNode","selectAllNodes","registerNode","idAttribute","nodeSelectable","nodeOnFocus","unregisterNode","newMap","oldFocusedNodeId","ownerDocument","document","activeElement","mapFirstChar","unMapFirstChar","handleNextArrow","handlePreviousArrow","parent","handleKeyDown","flag","altKey","currentTarget","target","ctrlPressed","ctrlKey","metaKey","shiftKey","stopPropagation","preventDefault","handleFocus","firstSelected","handleBlur","activeDescendant","treeControlContext","useMemo","treeStateContext","_jsx","TreeViewControlContext","Provider","TreeViewStateContext","DescendantProvider","StyledRoot","clsx","treeViewClasses","root","role","tabIndex"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"iconVariant.cjs","sources":["../../../src/utils/iconVariant.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Fail,\n Success,\n Caution,\n Info,\n} from \"@hitachivantara/uikit-react-icons\";\n\nconst iconVariant = (variant, color, semantic) => {\n switch (variant) {\n case \"success\":\n return <Success color={color} semantic={semantic && \"positive\"} />;\n case \"warning\":\n return <Caution color={color} semantic={semantic && \"warning\"} />;\n case \"error\":\n return <Fail color={color} semantic={semantic && \"negative\"} />;\n case \"info\":\n return <Info color={color} />;\n default:\n return null;\n }\n};\n\nexport default iconVariant;\n"],"names":["iconVariant","variant","color","semantic","Success","Caution","Fail","Info"],"mappings":";;;;AAQA,MAAMA,cAAcA,CAACC,SAASC,OAAOC,aAAa;AAChD,UAAQF,SAAO;AAAA,IACb,KAAK;AACH,4CAAQG,gBAAAA,SAAO;AAAA,QAACF;AAAAA,QAAcC,UAAUA,YAAY;AAAA,MAAA,CAAc;AAAA,IACpE,KAAK;AACH,4CAAQE,gBAAAA,SAAO;AAAA,QAACH;AAAAA,QAAcC,UAAUA,YAAY;AAAA,MAAA,CAAa;AAAA,IACnE,KAAK;AACH,4CAAQG,gBAAAA,MAAI;AAAA,QAACJ;AAAAA,QAAcC,UAAUA,YAAY;AAAA,MAAA,CAAc;AAAA,IACjE,KAAK;AACH,4CAAQI,gBAAAA,MAAI;AAAA,QAACL;AAAAA,MAAAA,CAAgB;AAAA,IAC/B;AACS,aAAA;AAAA,EAAK;AAElB;AAEA,MAAA,gBAAeF;;"}
1
+ {"version":3,"file":"iconVariant.cjs","sources":["../../../src/utils/iconVariant.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n Fail,\n Success,\n Caution,\n Info,\n IconBaseProps,\n} from \"@hitachivantara/uikit-react-icons\";\nimport { HvDialogTitleVariant } from \"..\";\n\nconst iconVariant = (\n variant: HvDialogTitleVariant,\n color?: IconBaseProps[\"color\"],\n semantic?: true\n) => {\n switch (variant) {\n case \"success\":\n return <Success color={color} semantic={semantic && \"positive\"} />;\n case \"warning\":\n return <Caution color={color} semantic={semantic && \"warning\"} />;\n case \"error\":\n return <Fail color={color} semantic={semantic && \"negative\"} />;\n case \"info\":\n return <Info color={color} />;\n default:\n return null;\n }\n};\n\nexport default iconVariant;\n"],"names":["iconVariant","variant","color","semantic","Success","Caution","Fail","Info"],"mappings":";;;;AAUA,MAAMA,cAAcA,CAClBC,SACAC,OACAC,aACG;AACH,UAAQF,SAAO;AAAA,IACb,KAAK;AACH,4CAAQG,gBAAAA,SAAO;AAAA,QAACF;AAAAA,QAAcC,UAAUA,YAAY;AAAA,MAAA,CAAc;AAAA,IACpE,KAAK;AACH,4CAAQE,gBAAAA,SAAO;AAAA,QAACH;AAAAA,QAAcC,UAAUA,YAAY;AAAA,MAAA,CAAa;AAAA,IACnE,KAAK;AACH,4CAAQG,gBAAAA,MAAI;AAAA,QAACJ;AAAAA,QAAcC,UAAUA,YAAY;AAAA,MAAA,CAAc;AAAA,IACjE,KAAK;AACH,4CAAQI,gBAAAA,MAAI;AAAA,QAACL;AAAAA,MAAAA,CAAgB;AAAA,IAC/B;AACS,aAAA;AAAA,EAAK;AAElB;AAEA,MAAA,gBAAeF;;"}
@@ -21,7 +21,7 @@ const HvBannerContent = forwardRef(({
21
21
  actionProps,
22
22
  ...others
23
23
  }, ref) => {
24
- const icon = customIcon || showIcon && iconVariant(variant, "base_dark", void 0);
24
+ const icon = customIcon || showIcon && iconVariant(variant, "base_dark");
25
25
  const effectiveActionsPosition = actionsPosition === "auto" ? "inline" : actionsPosition;
26
26
  return /* @__PURE__ */ jsx(ClassNames, {
27
27
  children: ({
@@ -1 +1 @@
1
- {"version":3,"file":"BannerContent.js","sources":["../../../../../src/components/Banner/BannerContent/BannerContent.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport SnackbarContent, {\n SnackbarContentProps as MuiSnackbarContentProps,\n} from \"@mui/material/SnackbarContent\";\nimport { HvBaseProps } from \"@core/types\";\nimport { iconVariant } from \"@core/utils\";\nimport {\n HvActionGeneric,\n HvBannerActionPosition,\n HvBannerVariant,\n} from \"@core/components\";\nimport bannerContentClasses, {\n HvBannerContentClasses,\n} from \"./bannerContentClasses\";\nimport { HvActionContainer, HvActionContainerProps } from \"./ActionContainer\";\nimport { HvMessageContainer } from \"./MessageContainer\";\nimport { ClassNames } from \"@emotion/react\";\nimport { styles } from \"./BannerContent.styles\";\n\nexport interface HvBannerContentProps\n extends Omit<MuiSnackbarContentProps, \"variant\" | \"classes\" | \"onClose\">,\n HvBaseProps {\n /** The message to display. */\n content?: string;\n /** Variant of the snackbar. */\n variant?: HvBannerVariant;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** onClose function. */\n onClose?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n /** Actions to display on the right side. */\n actions?: React.ReactNode | HvActionGeneric[];\n /** The callback function ran when an action is triggered, receiving `action` as param */\n actionsCallback?: (\n event: React.SyntheticEvent,\n id: string,\n action: HvActionGeneric\n ) => void;\n /** The position property of the header. */\n actionsPosition?: HvBannerActionPosition;\n /** The props to pass down to the Action Container. */\n actionProps?: HvActionContainerProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvBannerContentClasses;\n}\n\nexport const HvBannerContent = forwardRef<HTMLDivElement, HvBannerContentProps>(\n (\n {\n id,\n classes,\n showIcon = false,\n customIcon,\n variant = \"default\",\n onClose,\n actions,\n actionsCallback,\n actionsPosition = \"auto\",\n content,\n actionProps,\n ...others\n },\n ref\n ) => {\n const icon =\n customIcon || (showIcon && iconVariant(variant, \"base_dark\", undefined));\n\n // default to inline\n // this might try to be more intelligent in the future,\n // taking into account the content length, available space,\n // number of actions, etc..\n const effectiveActionsPosition =\n actionsPosition === \"auto\" ? \"inline\" : actionsPosition;\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <div\n className={cx(\n bannerContentClasses.outContainer,\n css(styles.outContainer),\n classes?.outContainer\n )}\n >\n <SnackbarContent\n ref={ref}\n id={id}\n classes={{\n root: cx(\n bannerContentClasses.root,\n css(styles.root),\n classes?.root\n ),\n message: cx(\n bannerContentClasses.message,\n css(styles.message),\n classes?.message\n ),\n action: cx(\n bannerContentClasses.action,\n css(styles.action),\n classes?.action\n ),\n }}\n className={cx(\n bannerContentClasses.baseVariant,\n bannerContentClasses[variant],\n css(styles.baseVariant),\n css(styles[variant]),\n classes?.baseVariant,\n classes?.[variant]\n )}\n message={\n <HvMessageContainer\n id={id}\n icon={icon}\n {...(effectiveActionsPosition === \"inline\" && {\n actionsOnMessage: actions,\n actionsOnMessageCallback: actionsCallback,\n })}\n message={content}\n />\n }\n action={\n <HvActionContainer\n id={id}\n onClose={onClose}\n {...(effectiveActionsPosition === \"bottom-right\" && {\n action: actions,\n actionCallback: actionsCallback,\n })}\n {...actionProps}\n />\n }\n {...others}\n />\n </div>\n )}\n </ClassNames>\n );\n }\n);\n"],"names":["HvBannerContent","forwardRef","id","classes","showIcon","customIcon","variant","onClose","actions","actionsCallback","actionsPosition","content","actionProps","others","ref","icon","iconVariant","undefined","effectiveActionsPosition","ClassNames","children","css","cx","className","bannerContentClasses","outContainer","styles","SnackbarContent","root","message","action","baseVariant","HvMessageContainer","actionsOnMessage","actionsOnMessageCallback","HvActionContainer","actionCallback"],"mappings":";;;;;;;;;AAgDaA,MAAAA,kBAAkBC,WAC7B,CACE;AAAA,EACEC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACXC;AAAAA,EACAC,UAAU;AAAA,EACVC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,kBAAkB;AAAA,EAClBC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACL,GACAC,QACG;AACH,QAAMC,OACJV,cAAeD,YAAYY,YAAYV,SAAS,aAAaW,MAAS;AAMlEC,QAAAA,2BACJR,oBAAoB,SAAS,WAAWA;AAE1C,6BACGS,YAAU;AAAA,IAAAC,UACRA,CAAC;AAAA,MAAEC;AAAAA,MAAKC;AAAAA,IAAAA,0BACP,OAAA;AAAA,MACEC,WAAWD,GACTE,qBAAqBC,cACrBJ,IAAIK,OAAOD,YAAY,GACvBtB,mCAASsB,YAAY;AAAA,MACrBL,8BAEDO,iBAAe;AAAA,QACdb;AAAAA,QACAZ;AAAAA,QACAC,SAAS;AAAA,UACPyB,MAAMN,GACJE,qBAAqBI,MACrBP,IAAIK,OAAOE,IAAI,GACfzB,mCAASyB,IAAI;AAAA,UAEfC,SAASP,GACPE,qBAAqBK,SACrBR,IAAIK,OAAOG,OAAO,GAClB1B,mCAAS0B,OAAO;AAAA,UAElBC,QAAQR,GACNE,qBAAqBM,QACrBT,IAAIK,OAAOI,MAAM,GACjB3B,mCAAS2B,MAAM;AAAA,QAEnB;AAAA,QACAP,WAAWD,GACTE,qBAAqBO,aACrBP,qBAAqBlB,OAAO,GAC5Be,IAAIK,OAAOK,WAAW,GACtBV,IAAIK,OAAOpB,OAAO,CAAC,GACnBH,mCAAS4B,aACT5B,mCAAUG,QAAQ;AAAA,QAEpBuB,6BACGG,oBAAkB;AAAA,UACjB9B;AAAAA,UACAa;AAAAA,UAAW,GACNG,6BAA6B,YAAY;AAAA,YAC5Ce,kBAAkBzB;AAAAA,YAClB0B,0BAA0BzB;AAAAA,UAC5B;AAAA,UACAoB,SAASlB;AAAAA,QAAAA,CAEZ;AAAA,QACDmB,4BACGK,mBAAiB;AAAA,UAChBjC;AAAAA,UACAK;AAAAA,UAAiB,GACZW,6BAA6B,kBAAkB;AAAA,YAClDY,QAAQtB;AAAAA,YACR4B,gBAAgB3B;AAAAA,UAClB;AAAA,UAAC,GACGG;AAAAA,QAAAA,CAEP;AAAA,QAAA,GACGC;AAAAA,MAAAA,CAAM;AAAA,IAAA,CACV;AAAA,EAAA,CAGK;AAEjB,CAAC;"}
1
+ {"version":3,"file":"BannerContent.js","sources":["../../../../../src/components/Banner/BannerContent/BannerContent.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport SnackbarContent, {\n SnackbarContentProps as MuiSnackbarContentProps,\n} from \"@mui/material/SnackbarContent\";\nimport { HvBaseProps } from \"@core/types\";\nimport { iconVariant } from \"@core/utils\";\nimport {\n HvActionGeneric,\n HvBannerActionPosition,\n HvBannerVariant,\n} from \"@core/components\";\nimport bannerContentClasses, {\n HvBannerContentClasses,\n} from \"./bannerContentClasses\";\nimport { HvActionContainer, HvActionContainerProps } from \"./ActionContainer\";\nimport { HvMessageContainer } from \"./MessageContainer\";\nimport { ClassNames } from \"@emotion/react\";\nimport { styles } from \"./BannerContent.styles\";\n\nexport interface HvBannerContentProps\n extends Omit<MuiSnackbarContentProps, \"variant\" | \"classes\" | \"onClose\">,\n HvBaseProps {\n /** The message to display. */\n content?: string;\n /** Variant of the snackbar. */\n variant?: HvBannerVariant;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n /** onClose function. */\n onClose?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n /** Actions to display on the right side. */\n actions?: React.ReactNode | HvActionGeneric[];\n /** The callback function ran when an action is triggered, receiving `action` as param */\n actionsCallback?: (\n event: React.SyntheticEvent,\n id: string,\n action: HvActionGeneric\n ) => void;\n /** The position property of the header. */\n actionsPosition?: HvBannerActionPosition;\n /** The props to pass down to the Action Container. */\n actionProps?: HvActionContainerProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvBannerContentClasses;\n}\n\nexport const HvBannerContent = forwardRef<HTMLDivElement, HvBannerContentProps>(\n (\n {\n id,\n classes,\n showIcon = false,\n customIcon,\n variant = \"default\",\n onClose,\n actions,\n actionsCallback,\n actionsPosition = \"auto\",\n content,\n actionProps,\n ...others\n },\n ref\n ) => {\n const icon = customIcon || (showIcon && iconVariant(variant, \"base_dark\"));\n\n // default to inline\n // this might try to be more intelligent in the future,\n // taking into account the content length, available space,\n // number of actions, etc..\n const effectiveActionsPosition =\n actionsPosition === \"auto\" ? \"inline\" : actionsPosition;\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <div\n className={cx(\n bannerContentClasses.outContainer,\n css(styles.outContainer),\n classes?.outContainer\n )}\n >\n <SnackbarContent\n ref={ref}\n id={id}\n classes={{\n root: cx(\n bannerContentClasses.root,\n css(styles.root),\n classes?.root\n ),\n message: cx(\n bannerContentClasses.message,\n css(styles.message),\n classes?.message\n ),\n action: cx(\n bannerContentClasses.action,\n css(styles.action),\n classes?.action\n ),\n }}\n className={cx(\n bannerContentClasses.baseVariant,\n bannerContentClasses[variant],\n css(styles.baseVariant),\n css(styles[variant]),\n classes?.baseVariant,\n classes?.[variant]\n )}\n message={\n <HvMessageContainer\n id={id}\n icon={icon}\n {...(effectiveActionsPosition === \"inline\" && {\n actionsOnMessage: actions,\n actionsOnMessageCallback: actionsCallback,\n })}\n message={content}\n />\n }\n action={\n <HvActionContainer\n id={id}\n onClose={onClose}\n {...(effectiveActionsPosition === \"bottom-right\" && {\n action: actions,\n actionCallback: actionsCallback,\n })}\n {...actionProps}\n />\n }\n {...others}\n />\n </div>\n )}\n </ClassNames>\n );\n }\n);\n"],"names":["HvBannerContent","forwardRef","id","classes","showIcon","customIcon","variant","onClose","actions","actionsCallback","actionsPosition","content","actionProps","others","ref","icon","iconVariant","effectiveActionsPosition","ClassNames","children","css","cx","className","bannerContentClasses","outContainer","styles","SnackbarContent","root","message","action","baseVariant","HvMessageContainer","actionsOnMessage","actionsOnMessageCallback","HvActionContainer","actionCallback"],"mappings":";;;;;;;;;AAgDaA,MAAAA,kBAAkBC,WAC7B,CACE;AAAA,EACEC;AAAAA,EACAC;AAAAA,EACAC,WAAW;AAAA,EACXC;AAAAA,EACAC,UAAU;AAAA,EACVC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,kBAAkB;AAAA,EAClBC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AACL,GACAC,QACG;AACH,QAAMC,OAAOV,cAAeD,YAAYY,YAAYV,SAAS,WAAW;AAMlEW,QAAAA,2BACJP,oBAAoB,SAAS,WAAWA;AAE1C,6BACGQ,YAAU;AAAA,IAAAC,UACRA,CAAC;AAAA,MAAEC;AAAAA,MAAKC;AAAAA,IAAAA,0BACP,OAAA;AAAA,MACEC,WAAWD,GACTE,qBAAqBC,cACrBJ,IAAIK,OAAOD,YAAY,GACvBrB,mCAASqB,YAAY;AAAA,MACrBL,8BAEDO,iBAAe;AAAA,QACdZ;AAAAA,QACAZ;AAAAA,QACAC,SAAS;AAAA,UACPwB,MAAMN,GACJE,qBAAqBI,MACrBP,IAAIK,OAAOE,IAAI,GACfxB,mCAASwB,IAAI;AAAA,UAEfC,SAASP,GACPE,qBAAqBK,SACrBR,IAAIK,OAAOG,OAAO,GAClBzB,mCAASyB,OAAO;AAAA,UAElBC,QAAQR,GACNE,qBAAqBM,QACrBT,IAAIK,OAAOI,MAAM,GACjB1B,mCAAS0B,MAAM;AAAA,QAEnB;AAAA,QACAP,WAAWD,GACTE,qBAAqBO,aACrBP,qBAAqBjB,OAAO,GAC5Bc,IAAIK,OAAOK,WAAW,GACtBV,IAAIK,OAAOnB,OAAO,CAAC,GACnBH,mCAAS2B,aACT3B,mCAAUG,QAAQ;AAAA,QAEpBsB,6BACGG,oBAAkB;AAAA,UACjB7B;AAAAA,UACAa;AAAAA,UAAW,GACNE,6BAA6B,YAAY;AAAA,YAC5Ce,kBAAkBxB;AAAAA,YAClByB,0BAA0BxB;AAAAA,UAC5B;AAAA,UACAmB,SAASjB;AAAAA,QAAAA,CAEZ;AAAA,QACDkB,4BACGK,mBAAiB;AAAA,UAChBhC;AAAAA,UACAK;AAAAA,UAAiB,GACZU,6BAA6B,kBAAkB;AAAA,YAClDY,QAAQrB;AAAAA,YACR2B,gBAAgB1B;AAAAA,UAClB;AAAA,UAAC,GACGG;AAAAA,QAAAA,CAEP;AAAA,QAAA,GACGC;AAAAA,MAAAA,CAAM;AAAA,IAAA,CACV;AAAA,EAAA,CAGK;AAEjB,CAAC;"}
@@ -1,11 +1,11 @@
1
- import React__default, { useRef, useCallback } from "react";
1
+ import React__default, { useRef, useCallback, useMemo } from "react";
2
+ import { ClassNames } from "@emotion/react";
2
3
  import MuiDialog from "@mui/material/Dialog";
4
+ import isNil from "lodash/isNil";
3
5
  import { Close } from "@hitachivantara/uikit-react-icons";
4
6
  import { theme } from "@hitachivantara/uikit-styles";
5
- import isNil from "lodash/isNil";
6
- import { StyledBackdrop, styles, StyledClose } from "./Dialog.styles.js";
7
7
  import dialogClasses from "./dialogClasses.js";
8
- import { ClassNames } from "@emotion/react";
8
+ import { styles, StyledClose, StyledBackdrop } from "./Dialog.styles.js";
9
9
  import { jsx, jsxs } from "@emotion/react/jsx-runtime";
10
10
  import { getFocusableList } from "../../utils/focusableElementFinder.js";
11
11
  import withTooltip from "../../hocs/withTooltip.js";
@@ -13,6 +13,17 @@ import { useTheme } from "../../hooks/useTheme.js";
13
13
  import { setId } from "../../utils/setId.js";
14
14
  import { isKeypress } from "../../utils/keyboardUtils/keyCheck.js";
15
15
  import { keyboardCodes } from "../../utils/keyboardUtils/keyboardCodes.js";
16
+ const DialogBackdrop = (backdropProps) => {
17
+ var _a;
18
+ const {
19
+ activeTheme,
20
+ selectedMode
21
+ } = useTheme();
22
+ return /* @__PURE__ */ jsx(StyledBackdrop, {
23
+ $backColor: ((_a = activeTheme == null ? void 0 : activeTheme.colors) == null ? void 0 : _a.modes[selectedMode].atmo4) || theme.colors.atmo4,
24
+ ...backdropProps
25
+ });
26
+ };
16
27
  const HvDialog = ({
17
28
  classes,
18
29
  className,
@@ -28,21 +39,19 @@ const HvDialog = ({
28
39
  }) => {
29
40
  delete others.fullScreen;
30
41
  const {
31
- activeTheme,
32
- selectedMode,
33
42
  rootId
34
43
  } = useTheme();
35
44
  const focusableQueue = useRef({
36
45
  first: void 0,
37
46
  last: void 0
38
47
  });
39
- const wrappedClose = (event, bypassValidation = false, reason) => {
48
+ const wrappedClose = useCallback((event, bypassValidation = false, reason) => {
40
49
  if (bypassValidation) {
41
50
  onClose == null ? void 0 : onClose(event, reason);
42
51
  } else if (!disableBackdropClick) {
43
52
  onClose == null ? void 0 : onClose(event, reason);
44
53
  }
45
- };
54
+ }, [onClose]);
46
55
  const measuredRef = useCallback((node) => {
47
56
  if (node) {
48
57
  const focusableList = getFocusableList(node);
@@ -88,6 +97,13 @@ const HvDialog = ({
88
97
  role: "presentation"
89
98
  });
90
99
  const CloseButtonTooltipWrapper = buttonTitle ? withTooltip(closeButtonDisplay, buttonTitle, "top") : closeButtonDisplay;
100
+ const slots = useMemo(() => ({
101
+ backdrop: (backdropProps) => /* @__PURE__ */ jsx(DialogBackdrop, {
102
+ open,
103
+ onClick: wrappedClose,
104
+ ...backdropProps
105
+ })
106
+ }), [open, wrappedClose]);
91
107
  return /* @__PURE__ */ jsx(ClassNames, {
92
108
  children: ({
93
109
  css,
@@ -101,19 +117,7 @@ const HvDialog = ({
101
117
  fullScreen: fullscreen,
102
118
  onClose: (event, reason) => wrappedClose(event, void 0, reason),
103
119
  onKeyDown: keyDownHandler,
104
- fullWidth: true,
105
- maxWidth: false,
106
- slots: {
107
- backdrop: (backdropProps) => {
108
- var _a;
109
- return /* @__PURE__ */ jsx(StyledBackdrop, {
110
- open,
111
- onClick: (event) => wrappedClose(event),
112
- $backColor: ((_a = activeTheme == null ? void 0 : activeTheme.colors) == null ? void 0 : _a.modes[selectedMode].atmo4) || theme.colors.atmo4,
113
- ...backdropProps
114
- });
115
- }
116
- },
120
+ slots,
117
121
  classes: {
118
122
  container: css({
119
123
  position: "relative"
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sources":["../../../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import React, { useCallback, useRef } from \"react\";\nimport MuiDialog, { DialogProps as MuiDialogProps } from \"@mui/material/Dialog\";\nimport { Close } from \"@hitachivantara/uikit-react-icons\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport isNil from \"lodash/isNil\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { StyledBackdrop, StyledClose, styles } from \"./Dialog.styles\";\nimport {\n isKeypress,\n keyboardCodes,\n setId,\n getFocusableList,\n} from \"@core/utils\";\nimport { withTooltip } from \"@core/hocs\";\nimport dialogClasses, { HvDialogClasses } from \"./dialogClasses\";\nimport { useTheme } from \"@core/hooks\";\nimport { ClassNames } from \"@emotion/react\";\n\nexport interface HvDialogProps\n extends Omit<MuiDialogProps, \"fullScreen\" | \"classes\" | \"open\">,\n HvBaseProps {\n /** Id to be applied to the root node. */\n id?: string;\n /** Current state of the Dialog. */\n open?: boolean;\n /** Function executed on close. */\n onClose?: (\n event: React.SyntheticEvent,\n reason?: \"escapeKeyDown\" | \"backdropClick\"\n ) => void;\n /** Element id that should be focus when the Dialog opens. */\n firstFocusable?: string;\n /** Title for the button close. */\n buttonTitle?: string;\n /** Set the dialog to fullscreen mode. */\n fullscreen?: boolean;\n /** Prevent closing the dialog when clicking on the backdrop. */\n disableBackdropClick?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvDialogClasses;\n}\n\nexport const HvDialog = ({\n classes,\n className,\n id,\n children,\n open = false,\n onClose,\n firstFocusable,\n buttonTitle = \"Close\",\n fullscreen = false,\n disableBackdropClick = false,\n ...others\n}: HvDialogProps) => {\n delete (others as any).fullScreen;\n\n const { activeTheme, selectedMode, rootId } = useTheme();\n\n const focusableQueue = useRef<{\n first?: HTMLElement;\n last?: HTMLElement;\n }>({ first: undefined, last: undefined });\n\n // Because the `disableBackdropClick` property was deprecated in MUI5\n // and we want to maintain that functionality to the user we're wrapping\n // the onClose call here to make that check.\n const wrappedClose = (\n event,\n bypassValidation: boolean = false,\n reason?: \"escapeKeyDown\" | \"backdropClick\"\n ) => {\n if (bypassValidation) {\n onClose?.(event, reason);\n } else if (!disableBackdropClick) {\n onClose?.(event, reason);\n }\n };\n\n const measuredRef = useCallback(\n (node) => {\n if (node) {\n const focusableList = getFocusableList(node);\n focusableQueue.current = {\n first: focusableList[1],\n last: focusableList[focusableList.length - 2],\n };\n if (isNil(firstFocusable)) focusableList[1].focus();\n else {\n const element =\n firstFocusable && document.getElementById(firstFocusable);\n if (element) element.focus();\n else {\n console.warn(`firstFocusable element ${firstFocusable} not found.`);\n\n focusableList[1].focus();\n }\n }\n }\n },\n [firstFocusable]\n );\n\n const keyDownHandler = (event) => {\n if (\n isKeypress(event, keyboardCodes.Tab) &&\n !isNil(event.target) &&\n !isNil(focusableQueue)\n ) {\n if (event.shiftKey && event.target === focusableQueue.current.first) {\n focusableQueue.current.last?.focus();\n event.preventDefault();\n }\n if (!event.shiftKey && event.target === focusableQueue.current.last) {\n focusableQueue.current.first?.focus();\n event.preventDefault();\n }\n }\n // Needed as this handler overrides the one in the material ui Modal.\n else if (isKeypress(event, keyboardCodes.Esc)) {\n if (\n \"onEscapeKeyDown\" in others &&\n typeof others.onEscapeKeyDown === \"function\"\n ) {\n others.onEscapeKeyDown(event);\n }\n\n if (!others.disableEscapeKeyDown) {\n // Swallow the event, in case someone is listening for the escape key on the body.\n event.stopPropagation();\n\n wrappedClose(event, true, \"escapeKeyDown\");\n }\n }\n };\n\n const closeButtonDisplay = () => <Close role=\"presentation\" />;\n\n const CloseButtonTooltipWrapper = buttonTitle\n ? withTooltip(closeButtonDisplay, buttonTitle, \"top\")\n : closeButtonDisplay;\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <MuiDialog\n container={document.getElementById(rootId || \"\") || document.body}\n className={cx(dialogClasses.root, className, classes?.root)}\n id={id}\n ref={measuredRef}\n open={open}\n fullScreen={fullscreen}\n onClose={(event, reason) => wrappedClose(event, undefined, reason)}\n onKeyDown={keyDownHandler}\n fullWidth\n maxWidth={false}\n slots={{\n backdrop: (backdropProps) => (\n <StyledBackdrop\n open={open}\n onClick={(event) => wrappedClose(event)}\n $backColor={\n activeTheme?.colors?.modes[selectedMode].atmo4 ||\n theme.colors.atmo4\n }\n {...backdropProps}\n />\n ),\n }}\n classes={{ container: css({ position: \"relative\" }) }}\n BackdropProps={{\n classes: {\n root: cx(dialogClasses.background, classes?.background),\n },\n }}\n PaperProps={{\n classes: {\n root: cx(\n dialogClasses.paper,\n fullscreen && cx(dialogClasses.fullscreen, \"fullscreen\"),\n css(styles.paper),\n css({ position: \"absolute\" }),\n classes?.paper,\n fullscreen && classes?.fullscreen\n ),\n },\n }}\n aria-modal\n {...others}\n >\n <StyledClose\n id={setId(id, \"close\")}\n className={cx(dialogClasses.closeButton, classes?.closeButton)}\n variant=\"secondaryGhost\"\n onClick={(event) => wrappedClose(event, true, undefined)}\n aria-label={buttonTitle}\n >\n <CloseButtonTooltipWrapper />\n </StyledClose>\n {children && typeof children === \"object\"\n ? React.Children.map(\n children,\n (c: React.ReactNode) =>\n c &&\n React.cloneElement(c as React.ReactElement, { fullscreen })\n )\n : children}\n </MuiDialog>\n )}\n </ClassNames>\n );\n};\n"],"names":["HvDialog","classes","className","id","children","open","onClose","firstFocusable","buttonTitle","fullscreen","disableBackdropClick","others","fullScreen","activeTheme","selectedMode","rootId","useTheme","focusableQueue","useRef","first","undefined","last","wrappedClose","event","bypassValidation","reason","measuredRef","useCallback","node","focusableList","getFocusableList","current","length","isNil","focus","element","document","getElementById","warn","keyDownHandler","isKeypress","keyboardCodes","Tab","target","shiftKey","preventDefault","Esc","onEscapeKeyDown","disableEscapeKeyDown","stopPropagation","closeButtonDisplay","_jsx","Close","role","CloseButtonTooltipWrapper","withTooltip","ClassNames","css","cx","MuiDialog","container","body","dialogClasses","root","ref","onKeyDown","fullWidth","maxWidth","slots","backdrop","backdropProps","StyledBackdrop","onClick","$backColor","colors","modes","atmo4","theme","position","BackdropProps","background","PaperProps","paper","styles","StyledClose","setId","closeButton","variant","React","Children","map","c","cloneElement"],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.js","sources":["../../../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef } from \"react\";\nimport { ClassNames } from \"@emotion/react\";\nimport MuiDialog, { DialogProps as MuiDialogProps } from \"@mui/material/Dialog\";\nimport { BackdropProps } from \"@mui/material\";\nimport isNil from \"lodash/isNil\";\n\nimport { Close } from \"@hitachivantara/uikit-react-icons\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport {\n isKeypress,\n keyboardCodes,\n setId,\n getFocusableList,\n} from \"@core/utils\";\nimport { withTooltip } from \"@core/hocs\";\nimport { useTheme } from \"@core/hooks\";\nimport dialogClasses, { HvDialogClasses } from \"./dialogClasses\";\nimport { StyledBackdrop, StyledClose, styles } from \"./Dialog.styles\";\n\nexport interface HvDialogProps\n extends Omit<MuiDialogProps, \"fullScreen\" | \"classes\" | \"open\">,\n HvBaseProps {\n /** Id to be applied to the root node. */\n id?: string;\n /** Current state of the Dialog. */\n open?: boolean;\n /** Function executed on close. */\n onClose?: (\n event: React.SyntheticEvent,\n reason?: \"escapeKeyDown\" | \"backdropClick\"\n ) => void;\n /** @inheritdoc */\n maxWidth?: MuiDialogProps[\"maxWidth\"];\n /** @inheritdoc */\n fullWidth?: MuiDialogProps[\"fullWidth\"];\n /** Element id that should be focus when the Dialog opens. */\n firstFocusable?: string;\n /** Title for the button close. */\n buttonTitle?: string;\n /** Set the dialog to fullscreen mode. */\n fullscreen?: boolean;\n /** Prevent closing the dialog when clicking on the backdrop. */\n disableBackdropClick?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvDialogClasses;\n}\n\nconst DialogBackdrop = (backdropProps: BackdropProps) => {\n const { activeTheme, selectedMode } = useTheme();\n return (\n <StyledBackdrop\n $backColor={\n activeTheme?.colors?.modes[selectedMode].atmo4 || theme.colors.atmo4\n }\n {...backdropProps}\n />\n );\n};\n\nexport const HvDialog = ({\n classes,\n className,\n id,\n children,\n open = false,\n onClose,\n firstFocusable,\n buttonTitle = \"Close\",\n fullscreen = false,\n disableBackdropClick = false,\n ...others\n}: HvDialogProps) => {\n delete (others as any).fullScreen;\n\n const { rootId } = useTheme();\n\n const focusableQueue = useRef<{\n first?: HTMLElement;\n last?: HTMLElement;\n }>({ first: undefined, last: undefined });\n\n // Because the `disableBackdropClick` property was deprecated in MUI5\n // and we want to maintain that functionality to the user we're wrapping\n // the onClose call here to make that check.\n const wrappedClose = useCallback(\n (\n event,\n bypassValidation: boolean = false,\n reason?: \"escapeKeyDown\" | \"backdropClick\"\n ) => {\n if (bypassValidation) {\n onClose?.(event, reason);\n } else if (!disableBackdropClick) {\n onClose?.(event, reason);\n }\n },\n [onClose]\n );\n\n const measuredRef = useCallback(\n (node) => {\n if (node) {\n const focusableList = getFocusableList(node);\n focusableQueue.current = {\n first: focusableList[1],\n last: focusableList[focusableList.length - 2],\n };\n if (isNil(firstFocusable)) focusableList[1].focus();\n else {\n const element =\n firstFocusable && document.getElementById(firstFocusable);\n if (element) element.focus();\n else {\n console.warn(`firstFocusable element ${firstFocusable} not found.`);\n\n focusableList[1].focus();\n }\n }\n }\n },\n [firstFocusable]\n );\n\n const keyDownHandler = (event) => {\n if (\n isKeypress(event, keyboardCodes.Tab) &&\n !isNil(event.target) &&\n !isNil(focusableQueue)\n ) {\n if (event.shiftKey && event.target === focusableQueue.current.first) {\n focusableQueue.current.last?.focus();\n event.preventDefault();\n }\n if (!event.shiftKey && event.target === focusableQueue.current.last) {\n focusableQueue.current.first?.focus();\n event.preventDefault();\n }\n }\n // Needed as this handler overrides the one in the material ui Modal.\n else if (isKeypress(event, keyboardCodes.Esc)) {\n if (\n \"onEscapeKeyDown\" in others &&\n typeof others.onEscapeKeyDown === \"function\"\n ) {\n others.onEscapeKeyDown(event);\n }\n\n if (!others.disableEscapeKeyDown) {\n // Swallow the event, in case someone is listening for the escape key on the body.\n event.stopPropagation();\n\n wrappedClose(event, true, \"escapeKeyDown\");\n }\n }\n };\n\n const closeButtonDisplay = () => <Close role=\"presentation\" />;\n\n const CloseButtonTooltipWrapper = buttonTitle\n ? withTooltip(closeButtonDisplay, buttonTitle, \"top\")\n : closeButtonDisplay;\n\n const slots = useMemo<MuiDialogProps[\"slots\"]>(\n () => ({\n backdrop: (backdropProps) => (\n <DialogBackdrop open={open} onClick={wrappedClose} {...backdropProps} />\n ),\n }),\n [open, wrappedClose]\n );\n\n return (\n <ClassNames>\n {({ css, cx }) => (\n <MuiDialog\n container={document.getElementById(rootId || \"\") || document.body}\n className={cx(dialogClasses.root, className, classes?.root)}\n id={id}\n ref={measuredRef}\n open={open}\n fullScreen={fullscreen}\n onClose={(event, reason) => wrappedClose(event, undefined, reason)}\n onKeyDown={keyDownHandler}\n slots={slots}\n classes={{ container: css({ position: \"relative\" }) }}\n BackdropProps={{\n classes: {\n root: cx(dialogClasses.background, classes?.background),\n },\n }}\n PaperProps={{\n classes: {\n root: cx(\n dialogClasses.paper,\n fullscreen && cx(dialogClasses.fullscreen, \"fullscreen\"),\n css(styles.paper),\n css({ position: \"absolute\" }),\n classes?.paper,\n fullscreen && classes?.fullscreen\n ),\n },\n }}\n aria-modal\n {...others}\n >\n <StyledClose\n id={setId(id, \"close\")}\n className={cx(dialogClasses.closeButton, classes?.closeButton)}\n variant=\"secondaryGhost\"\n onClick={(event) => wrappedClose(event, true, undefined)}\n aria-label={buttonTitle}\n >\n <CloseButtonTooltipWrapper />\n </StyledClose>\n {children && typeof children === \"object\"\n ? React.Children.map(\n children,\n (c: React.ReactNode) =>\n c &&\n React.cloneElement(c as React.ReactElement, { fullscreen })\n )\n : children}\n </MuiDialog>\n )}\n </ClassNames>\n );\n};\n"],"names":["DialogBackdrop","backdropProps","activeTheme","selectedMode","useTheme","StyledBackdrop","$backColor","colors","modes","atmo4","theme","HvDialog","classes","className","id","children","open","onClose","firstFocusable","buttonTitle","fullscreen","disableBackdropClick","others","fullScreen","rootId","focusableQueue","useRef","first","undefined","last","wrappedClose","useCallback","event","bypassValidation","reason","measuredRef","node","focusableList","getFocusableList","current","length","isNil","focus","element","document","getElementById","warn","keyDownHandler","isKeypress","keyboardCodes","Tab","target","shiftKey","preventDefault","Esc","onEscapeKeyDown","disableEscapeKeyDown","stopPropagation","closeButtonDisplay","_jsx","Close","role","CloseButtonTooltipWrapper","withTooltip","slots","useMemo","backdrop","onClick","ClassNames","css","cx","MuiDialog","container","body","dialogClasses","root","ref","onKeyDown","position","BackdropProps","background","PaperProps","paper","styles","StyledClose","setId","closeButton","variant","React","Children","map","c","cloneElement"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import _styled from "@emotion/styled/base";
2
- import { paperClasses, Backdrop } from "@mui/material";
2
+ import { Backdrop } from "@mui/material";
3
3
  import { theme } from "@hitachivantara/uikit-styles";
4
4
  import { transientOptions } from "../../utils/transientOptions.js";
5
5
  import fade from "../../utils/hexToRgbA.js";
@@ -22,32 +22,10 @@ function _extends() {
22
22
  }
23
23
  const styles = {
24
24
  paper: {
25
- [`&.MuiDialog-paper`]: {
26
- maxHeight: `calc(100% - (2 * ${theme.dialog.margin}))`,
27
- display: "flex",
28
- flexDirection: "column",
29
- color: theme.colors.secondary,
30
- flex: "0 0 83.3333333%",
31
- backgroundColor: theme.colors.atmo1,
32
- padding: "0px",
33
- overflow: "auto",
34
- boxShadow: ["none", "0 2px 12px rgba(65,65,65,0.12)"],
35
- borderRadius: theme.dialog.borderRadius,
36
- [`&.${paperClasses.root}`]: {
37
- // width: "inherit",
38
- minWidth: "33.3333333%",
39
- maxWidth: "83.3333333%",
40
- "&.fullscreen": {
41
- flex: "1",
42
- borderRadius: "0",
43
- width: "inherit",
44
- minWidth: "100%",
45
- maxWidth: "100%",
46
- minHeight: "100%",
47
- maxHeight: "100%"
48
- }
49
- }
50
- }
25
+ color: theme.colors.secondary,
26
+ backgroundColor: theme.colors.atmo1,
27
+ boxShadow: ["none", theme.colors.shadow],
28
+ borderRadius: theme.dialog.borderRadius
51
29
  }
52
30
  };
53
31
  const StyledBackdrop = /* @__PURE__ */ _styled(Backdrop, process.env.NODE_ENV === "production" ? _extends({}, {
@@ -59,7 +37,7 @@ const StyledBackdrop = /* @__PURE__ */ _styled(Backdrop, process.env.NODE_ENV ==
59
37
  $backColor
60
38
  }) => ({
61
39
  background: fade($backColor, 0.8)
62
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZDOEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvaHYtdWlraXQtcmVhY3QvaHYtdWlraXQtcmVhY3QvcGFja2FnZXMvY29yZS9zcmMvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7XG4gIHBhcGVyQ2xhc3NlcyBhcyBNdWlQYXBlckNsYXNzZXMsXG4gIEJhY2tkcm9wIGFzIE11aUJhY2tkcm9wLFxufSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tIFwiQGhpdGFjaGl2YW50YXJhL3Vpa2l0LXN0eWxlc1wiO1xuaW1wb3J0IHsgdHJhbnNpZW50T3B0aW9ucyB9IGZyb20gXCJAY29yZS91dGlscy90cmFuc2llbnRPcHRpb25zXCI7XG5pbXBvcnQgZmFkZSBmcm9tIFwiQGNvcmUvdXRpbHMvaGV4VG9SZ2JBXCI7XG5pbXBvcnQgeyBIdkJ1dHRvbiwgSHZCdXR0b25Qcm9wcyB9IGZyb20gXCJAY29yZS9jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENTU0ludGVycG9sYXRpb24gfSBmcm9tIFwiQGVtb3Rpb24vc2VyaWFsaXplXCI7XG5pbXBvcnQgeyBIdkRpYWxvZ0NsYXNzZXMgfSBmcm9tIFwiLi9kaWFsb2dDbGFzc2VzXCI7XG5cbmV4cG9ydCBjb25zdCBzdHlsZXM6IFBhcnRpYWw8UmVjb3JkPGtleW9mIEh2RGlhbG9nQ2xhc3NlcywgQ1NTSW50ZXJwb2xhdGlvbj4+ID1cbiAge1xuICAgIHBhcGVyOiB7XG4gICAgICBbYCYuTXVpRGlhbG9nLXBhcGVyYF06IHtcbiAgICAgICAgbWF4SGVpZ2h0OiBgY2FsYygxMDAlIC0gKDIgKiAke3RoZW1lLmRpYWxvZy5tYXJnaW59KSlgLFxuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcbiAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5zZWNvbmRhcnksXG4gICAgICAgIGZsZXg6IFwiMCAwIDgzLjMzMzMzMzMlXCIsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLmF0bW8xLFxuICAgICAgICBwYWRkaW5nOiBcIjBweFwiLFxuICAgICAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgICAgIGJveFNoYWRvdzogW1wibm9uZVwiLCBcIjAgMnB4IDEycHggcmdiYSg2NSw2NSw2NSwwLjEyKVwiXSxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiB0aGVtZS5kaWFsb2cuYm9yZGVyUmFkaXVzLFxuICAgICAgICBbYCYuJHtNdWlQYXBlckNsYXNzZXMucm9vdH1gXToge1xuICAgICAgICAgIC8vIHdpZHRoOiBcImluaGVyaXRcIixcbiAgICAgICAgICBtaW5XaWR0aDogXCIzMy4zMzMzMzMzJVwiLFxuICAgICAgICAgIG1heFdpZHRoOiBcIjgzLjMzMzMzMzMlXCIsXG4gICAgICAgICAgXCImLmZ1bGxzY3JlZW5cIjoge1xuICAgICAgICAgICAgZmxleDogXCIxXCIsXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiMFwiLFxuICAgICAgICAgICAgd2lkdGg6IFwiaW5oZXJpdFwiLFxuICAgICAgICAgICAgbWluV2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgICAgbWF4V2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgICAgbWluSGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgICAgICAgIG1heEhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEJhY2tkcm9wID0gc3R5bGVkKFxuICBNdWlCYWNrZHJvcCxcbiAgdHJhbnNpZW50T3B0aW9uc1xuKSgoeyAkYmFja0NvbG9yIH06IHsgJGJhY2tDb2xvcjogc3RyaW5nIH0pID0+ICh7XG4gIGJhY2tncm91bmQ6IGZhZGUoJGJhY2tDb2xvciwgMC44KSxcbn0pKTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZENsb3NlID0gc3R5bGVkKFxuICBmb3J3YXJkUmVmKChwcm9wczogSHZCdXR0b25Qcm9wcywgcmVmPzogUmVmPEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgIHJldHVybiA8SHZCdXR0b24gey4uLnByb3BzfSByZWY9e3JlZn0gLz47XG4gIH0pXG4pKHtcbiAgcGFkZGluZzogMCxcbiAgbWluV2lkdGg6IFwiYXV0b1wiLFxuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IHRoZW1lLnNwYWNlLnNtLFxuICByaWdodDogdGhlbWUuc3BhY2Uuc20sXG4gIHdpZHRoOiAzMixcbiAgaGVpZ2h0OiAzMixcbn0pO1xuIl19 */");
40
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1COEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvaHYtdWlraXQtcmVhY3QvaHYtdWlraXQtcmVhY3QvcGFja2FnZXMvY29yZS9zcmMvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IEJhY2tkcm9wIGFzIE11aUJhY2tkcm9wIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcbmltcG9ydCB7IHRyYW5zaWVudE9wdGlvbnMgfSBmcm9tIFwiQGNvcmUvdXRpbHMvdHJhbnNpZW50T3B0aW9uc1wiO1xuaW1wb3J0IGZhZGUgZnJvbSBcIkBjb3JlL3V0aWxzL2hleFRvUmdiQVwiO1xuaW1wb3J0IHsgSHZCdXR0b24sIEh2QnV0dG9uUHJvcHMgfSBmcm9tIFwiQGNvcmUvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBDU1NJbnRlcnBvbGF0aW9uIH0gZnJvbSBcIkBlbW90aW9uL3NlcmlhbGl6ZVwiO1xuaW1wb3J0IHsgSHZEaWFsb2dDbGFzc2VzIH0gZnJvbSBcIi4vZGlhbG9nQ2xhc3Nlc1wiO1xuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0ge1xuICBwYXBlcjoge1xuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuc2Vjb25kYXJ5LFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLmF0bW8xLFxuICAgIGJveFNoYWRvdzogW1wibm9uZVwiLCB0aGVtZS5jb2xvcnMuc2hhZG93XSxcbiAgICBib3JkZXJSYWRpdXM6IHRoZW1lLmRpYWxvZy5ib3JkZXJSYWRpdXMsXG4gIH0sXG59IHNhdGlzZmllcyBQYXJ0aWFsPFJlY29yZDxrZXlvZiBIdkRpYWxvZ0NsYXNzZXMsIENTU0ludGVycG9sYXRpb24+PjtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEJhY2tkcm9wID0gc3R5bGVkKFxuICBNdWlCYWNrZHJvcCxcbiAgdHJhbnNpZW50T3B0aW9uc1xuKSgoeyAkYmFja0NvbG9yIH06IHsgJGJhY2tDb2xvcjogc3RyaW5nIH0pID0+ICh7XG4gIGJhY2tncm91bmQ6IGZhZGUoJGJhY2tDb2xvciwgMC44KSxcbn0pKTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZENsb3NlID0gc3R5bGVkKFxuICBmb3J3YXJkUmVmKChwcm9wczogSHZCdXR0b25Qcm9wcywgcmVmPzogUmVmPEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgIHJldHVybiA8SHZCdXR0b24gey4uLnByb3BzfSByZWY9e3JlZn0gLz47XG4gIH0pXG4pKHtcbiAgcGFkZGluZzogMCxcbiAgbWluV2lkdGg6IFwiYXV0b1wiLFxuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IHRoZW1lLnNwYWNlLnNtLFxuICByaWdodDogdGhlbWUuc3BhY2Uuc20sXG4gIHdpZHRoOiAzMixcbiAgaGVpZ2h0OiAzMixcbn0pO1xuIl19 */");
63
41
  const StyledClose = /* @__PURE__ */ _styled(forwardRef((props, ref) => {
64
42
  return /* @__PURE__ */ jsx(HvButton, {
65
43
  ...props,
@@ -78,7 +56,7 @@ const StyledClose = /* @__PURE__ */ _styled(forwardRef((props, ref) => {
78
56
  right: theme.space.sm,
79
57
  width: 32,
80
58
  height: 32
81
- }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9EMkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvaHYtdWlraXQtcmVhY3QvaHYtdWlraXQtcmVhY3QvcGFja2FnZXMvY29yZS9zcmMvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7XG4gIHBhcGVyQ2xhc3NlcyBhcyBNdWlQYXBlckNsYXNzZXMsXG4gIEJhY2tkcm9wIGFzIE11aUJhY2tkcm9wLFxufSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tIFwiQGhpdGFjaGl2YW50YXJhL3Vpa2l0LXN0eWxlc1wiO1xuaW1wb3J0IHsgdHJhbnNpZW50T3B0aW9ucyB9IGZyb20gXCJAY29yZS91dGlscy90cmFuc2llbnRPcHRpb25zXCI7XG5pbXBvcnQgZmFkZSBmcm9tIFwiQGNvcmUvdXRpbHMvaGV4VG9SZ2JBXCI7XG5pbXBvcnQgeyBIdkJ1dHRvbiwgSHZCdXR0b25Qcm9wcyB9IGZyb20gXCJAY29yZS9jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENTU0ludGVycG9sYXRpb24gfSBmcm9tIFwiQGVtb3Rpb24vc2VyaWFsaXplXCI7XG5pbXBvcnQgeyBIdkRpYWxvZ0NsYXNzZXMgfSBmcm9tIFwiLi9kaWFsb2dDbGFzc2VzXCI7XG5cbmV4cG9ydCBjb25zdCBzdHlsZXM6IFBhcnRpYWw8UmVjb3JkPGtleW9mIEh2RGlhbG9nQ2xhc3NlcywgQ1NTSW50ZXJwb2xhdGlvbj4+ID1cbiAge1xuICAgIHBhcGVyOiB7XG4gICAgICBbYCYuTXVpRGlhbG9nLXBhcGVyYF06IHtcbiAgICAgICAgbWF4SGVpZ2h0OiBgY2FsYygxMDAlIC0gKDIgKiAke3RoZW1lLmRpYWxvZy5tYXJnaW59KSlgLFxuICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgZmxleERpcmVjdGlvbjogXCJjb2x1bW5cIixcbiAgICAgICAgY29sb3I6IHRoZW1lLmNvbG9ycy5zZWNvbmRhcnksXG4gICAgICAgIGZsZXg6IFwiMCAwIDgzLjMzMzMzMzMlXCIsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLmF0bW8xLFxuICAgICAgICBwYWRkaW5nOiBcIjBweFwiLFxuICAgICAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgICAgIGJveFNoYWRvdzogW1wibm9uZVwiLCBcIjAgMnB4IDEycHggcmdiYSg2NSw2NSw2NSwwLjEyKVwiXSxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiB0aGVtZS5kaWFsb2cuYm9yZGVyUmFkaXVzLFxuICAgICAgICBbYCYuJHtNdWlQYXBlckNsYXNzZXMucm9vdH1gXToge1xuICAgICAgICAgIC8vIHdpZHRoOiBcImluaGVyaXRcIixcbiAgICAgICAgICBtaW5XaWR0aDogXCIzMy4zMzMzMzMzJVwiLFxuICAgICAgICAgIG1heFdpZHRoOiBcIjgzLjMzMzMzMzMlXCIsXG4gICAgICAgICAgXCImLmZ1bGxzY3JlZW5cIjoge1xuICAgICAgICAgICAgZmxleDogXCIxXCIsXG4gICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiMFwiLFxuICAgICAgICAgICAgd2lkdGg6IFwiaW5oZXJpdFwiLFxuICAgICAgICAgICAgbWluV2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgICAgbWF4V2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgICAgbWluSGVpZ2h0OiBcIjEwMCVcIixcbiAgICAgICAgICAgIG1heEhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEJhY2tkcm9wID0gc3R5bGVkKFxuICBNdWlCYWNrZHJvcCxcbiAgdHJhbnNpZW50T3B0aW9uc1xuKSgoeyAkYmFja0NvbG9yIH06IHsgJGJhY2tDb2xvcjogc3RyaW5nIH0pID0+ICh7XG4gIGJhY2tncm91bmQ6IGZhZGUoJGJhY2tDb2xvciwgMC44KSxcbn0pKTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZENsb3NlID0gc3R5bGVkKFxuICBmb3J3YXJkUmVmKChwcm9wczogSHZCdXR0b25Qcm9wcywgcmVmPzogUmVmPEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgIHJldHVybiA8SHZCdXR0b24gey4uLnByb3BzfSByZWY9e3JlZn0gLz47XG4gIH0pXG4pKHtcbiAgcGFkZGluZzogMCxcbiAgbWluV2lkdGg6IFwiYXV0b1wiLFxuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IHRoZW1lLnNwYWNlLnNtLFxuICByaWdodDogdGhlbWUuc3BhY2Uuc20sXG4gIHdpZHRoOiAzMixcbiAgaGVpZ2h0OiAzMixcbn0pO1xuIl19 */");
59
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBCMkIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvaHYtdWlraXQtcmVhY3QvaHYtdWlraXQtcmVhY3QvcGFja2FnZXMvY29yZS9zcmMvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLnN0eWxlcy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IEJhY2tkcm9wIGFzIE11aUJhY2tkcm9wIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcbmltcG9ydCB7IHRyYW5zaWVudE9wdGlvbnMgfSBmcm9tIFwiQGNvcmUvdXRpbHMvdHJhbnNpZW50T3B0aW9uc1wiO1xuaW1wb3J0IGZhZGUgZnJvbSBcIkBjb3JlL3V0aWxzL2hleFRvUmdiQVwiO1xuaW1wb3J0IHsgSHZCdXR0b24sIEh2QnV0dG9uUHJvcHMgfSBmcm9tIFwiQGNvcmUvY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiwgUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBDU1NJbnRlcnBvbGF0aW9uIH0gZnJvbSBcIkBlbW90aW9uL3NlcmlhbGl6ZVwiO1xuaW1wb3J0IHsgSHZEaWFsb2dDbGFzc2VzIH0gZnJvbSBcIi4vZGlhbG9nQ2xhc3Nlc1wiO1xuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0ge1xuICBwYXBlcjoge1xuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuc2Vjb25kYXJ5LFxuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLmF0bW8xLFxuICAgIGJveFNoYWRvdzogW1wibm9uZVwiLCB0aGVtZS5jb2xvcnMuc2hhZG93XSxcbiAgICBib3JkZXJSYWRpdXM6IHRoZW1lLmRpYWxvZy5ib3JkZXJSYWRpdXMsXG4gIH0sXG59IHNhdGlzZmllcyBQYXJ0aWFsPFJlY29yZDxrZXlvZiBIdkRpYWxvZ0NsYXNzZXMsIENTU0ludGVycG9sYXRpb24+PjtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZEJhY2tkcm9wID0gc3R5bGVkKFxuICBNdWlCYWNrZHJvcCxcbiAgdHJhbnNpZW50T3B0aW9uc1xuKSgoeyAkYmFja0NvbG9yIH06IHsgJGJhY2tDb2xvcjogc3RyaW5nIH0pID0+ICh7XG4gIGJhY2tncm91bmQ6IGZhZGUoJGJhY2tDb2xvciwgMC44KSxcbn0pKTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZENsb3NlID0gc3R5bGVkKFxuICBmb3J3YXJkUmVmKChwcm9wczogSHZCdXR0b25Qcm9wcywgcmVmPzogUmVmPEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgIHJldHVybiA8SHZCdXR0b24gey4uLnByb3BzfSByZWY9e3JlZn0gLz47XG4gIH0pXG4pKHtcbiAgcGFkZGluZzogMCxcbiAgbWluV2lkdGg6IFwiYXV0b1wiLFxuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IHRoZW1lLnNwYWNlLnNtLFxuICByaWdodDogdGhlbWUuc3BhY2Uuc20sXG4gIHdpZHRoOiAzMixcbiAgaGVpZ2h0OiAzMixcbn0pO1xuIl19 */");
82
60
  export {
83
61
  StyledBackdrop,
84
62
  StyledClose,
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.styles.js","sources":["../../../../src/components/Dialog/Dialog.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport {\n paperClasses as MuiPaperClasses,\n Backdrop as MuiBackdrop,\n} from \"@mui/material\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { transientOptions } from \"@core/utils/transientOptions\";\nimport fade from \"@core/utils/hexToRgbA\";\nimport { HvButton, HvButtonProps } from \"@core/components\";\nimport { forwardRef, Ref } from \"react\";\nimport { CSSInterpolation } from \"@emotion/serialize\";\nimport { HvDialogClasses } from \"./dialogClasses\";\n\nexport const styles: Partial<Record<keyof HvDialogClasses, CSSInterpolation>> =\n {\n paper: {\n [`&.MuiDialog-paper`]: {\n maxHeight: `calc(100% - (2 * ${theme.dialog.margin}))`,\n display: \"flex\",\n flexDirection: \"column\",\n color: theme.colors.secondary,\n flex: \"0 0 83.3333333%\",\n backgroundColor: theme.colors.atmo1,\n padding: \"0px\",\n overflow: \"auto\",\n boxShadow: [\"none\", \"0 2px 12px rgba(65,65,65,0.12)\"],\n borderRadius: theme.dialog.borderRadius,\n [`&.${MuiPaperClasses.root}`]: {\n // width: \"inherit\",\n minWidth: \"33.3333333%\",\n maxWidth: \"83.3333333%\",\n \"&.fullscreen\": {\n flex: \"1\",\n borderRadius: \"0\",\n width: \"inherit\",\n minWidth: \"100%\",\n maxWidth: \"100%\",\n minHeight: \"100%\",\n maxHeight: \"100%\",\n },\n },\n },\n },\n };\n\nexport const StyledBackdrop = styled(\n MuiBackdrop,\n transientOptions\n)(({ $backColor }: { $backColor: string }) => ({\n background: fade($backColor, 0.8),\n}));\n\nexport const StyledClose = styled(\n forwardRef((props: HvButtonProps, ref?: Ref<HTMLButtonElement>) => {\n return <HvButton {...props} ref={ref} />;\n })\n)({\n padding: 0,\n minWidth: \"auto\",\n position: \"absolute\",\n top: theme.space.sm,\n right: theme.space.sm,\n width: 32,\n height: 32,\n});\n"],"names":["styles","paper","maxHeight","theme","dialog","margin","display","flexDirection","color","colors","secondary","flex","backgroundColor","atmo1","padding","overflow","boxShadow","borderRadius","MuiPaperClasses","root","minWidth","maxWidth","width","minHeight","StyledBackdrop","MuiBackdrop","process","env","NODE_ENV","_extends","target","transientOptions","label","$backColor","background","fade","StyledClose","_styled","forwardRef","props","ref","HvButton","position","top","space","sm","right","height"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAaO,MAAMA,SACX;AAAA,EACEC,OAAO;AAAA,IACL,CAAE,mBAAkB,GAAG;AAAA,MACrBC,WAAY,oBAAmBC,MAAMC,OAAOC;AAAAA,MAC5CC,SAAS;AAAA,MACTC,eAAe;AAAA,MACfC,OAAOL,MAAMM,OAAOC;AAAAA,MACpBC,MAAM;AAAA,MACNC,iBAAiBT,MAAMM,OAAOI;AAAAA,MAC9BC,SAAS;AAAA,MACTC,UAAU;AAAA,MACVC,WAAW,CAAC,QAAQ,gCAAgC;AAAA,MACpDC,cAAcd,MAAMC,OAAOa;AAAAA,MAC3B,CAAE,KAAIC,aAAgBC,MAAM,GAAG;AAAA;AAAA,QAE7BC,UAAU;AAAA,QACVC,UAAU;AAAA,QACV,gBAAgB;AAAA,UACdV,MAAM;AAAA,UACNM,cAAc;AAAA,UACdK,OAAO;AAAA,UACPF,UAAU;AAAA,UACVC,UAAU;AAAA,UACVE,WAAW;AAAA,UACXrB,WAAW;AAAA,QACb;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEWsB,MAAAA,yCACXC,UAAWC,QAAAC,IAAAC,4BAAAC,SAAA,IAAA;AAAA,EAAAC,QAAA;AAAA,GACXC,gBAAgB,IAAAF,SAAA,IAAA;AAAA,EAAAC,QAAA;AAAA,EAAAE,OAAA;AAAA,GAAhBD,gBAAgB,CACjB,EAAC,CAAC;AAAA,EAAEE;AAAmC,OAAO;AAAA,EAC7CC,YAAYC,KAAKF,YAAY,GAAG;AAClC,IAAEP,QAAAC,IAAAC,aAAC,eAAA,KAAA,ymGAAA;AAEI,MAAMQ,cAAcC,wBACzBC,WAAW,CAACC,OAAsBC,QAAiC;AACjE,6BAAQC,UAAQ;AAAA,IAAA,GAAKF;AAAAA,IAAOC;AAAAA,EAAAA,CAAY;AAC1C,CAAC,GAACd,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAE,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAE,OAAA;AAAA,CAAA,EACF;AAAA,EACAlB,SAAS;AAAA,EACTM,UAAU;AAAA,EACVsB,UAAU;AAAA,EACVC,KAAKxC,MAAMyC,MAAMC;AAAAA,EACjBC,OAAO3C,MAAMyC,MAAMC;AAAAA,EACnBvB,OAAO;AAAA,EACPyB,QAAQ;AACV,GAACrB,QAAAC,IAAAC,aAAC,eAAA,KAAA,ymGAAA;"}
1
+ {"version":3,"file":"Dialog.styles.js","sources":["../../../../src/components/Dialog/Dialog.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { Backdrop as MuiBackdrop } from \"@mui/material\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { transientOptions } from \"@core/utils/transientOptions\";\nimport fade from \"@core/utils/hexToRgbA\";\nimport { HvButton, HvButtonProps } from \"@core/components\";\nimport { forwardRef, Ref } from \"react\";\nimport { CSSInterpolation } from \"@emotion/serialize\";\nimport { HvDialogClasses } from \"./dialogClasses\";\n\nexport const styles = {\n paper: {\n color: theme.colors.secondary,\n backgroundColor: theme.colors.atmo1,\n boxShadow: [\"none\", theme.colors.shadow],\n borderRadius: theme.dialog.borderRadius,\n },\n} satisfies Partial<Record<keyof HvDialogClasses, CSSInterpolation>>;\n\nexport const StyledBackdrop = styled(\n MuiBackdrop,\n transientOptions\n)(({ $backColor }: { $backColor: string }) => ({\n background: fade($backColor, 0.8),\n}));\n\nexport const StyledClose = styled(\n forwardRef((props: HvButtonProps, ref?: Ref<HTMLButtonElement>) => {\n return <HvButton {...props} ref={ref} />;\n })\n)({\n padding: 0,\n minWidth: \"auto\",\n position: \"absolute\",\n top: theme.space.sm,\n right: theme.space.sm,\n width: 32,\n height: 32,\n});\n"],"names":["styles","paper","color","theme","colors","secondary","backgroundColor","atmo1","boxShadow","shadow","borderRadius","dialog","StyledBackdrop","MuiBackdrop","process","env","NODE_ENV","_extends","target","transientOptions","label","$backColor","background","fade","StyledClose","_styled","forwardRef","props","ref","HvButton","padding","minWidth","position","top","space","sm","right","width","height"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAUO,MAAMA,SAAS;AAAA,EACpBC,OAAO;AAAA,IACLC,OAAOC,MAAMC,OAAOC;AAAAA,IACpBC,iBAAiBH,MAAMC,OAAOG;AAAAA,IAC9BC,WAAW,CAAC,QAAQL,MAAMC,OAAOK,MAAM;AAAA,IACvCC,cAAcP,MAAMQ,OAAOD;AAAAA,EAC7B;AACF;AAEaE,MAAAA,yCACXC,UAAWC,QAAAC,IAAAC,4BAAAC,SAAA,IAAA;AAAA,EAAAC,QAAA;AAAA,GACXC,gBAAgB,IAAAF,SAAA,IAAA;AAAA,EAAAC,QAAA;AAAA,EAAAE,OAAA;AAAA,GAAhBD,gBAAgB,CACjB,EAAC,CAAC;AAAA,EAAEE;AAAmC,OAAO;AAAA,EAC7CC,YAAYC,KAAKF,YAAY,GAAG;AAClC,IAAEP,QAAAC,IAAAC,aAAC,eAAA,KAAA,qmEAAA;AAEI,MAAMQ,cAAcC,wBACzBC,WAAW,CAACC,OAAsBC,QAAiC;AACjE,6BAAQC,UAAQ;AAAA,IAAA,GAAKF;AAAAA,IAAOC;AAAAA,EAAAA,CAAY;AAC1C,CAAC,GAACd,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAE,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAE,OAAA;AAAA,CAAA,EACF;AAAA,EACAU,SAAS;AAAA,EACTC,UAAU;AAAA,EACVC,UAAU;AAAA,EACVC,KAAK9B,MAAM+B,MAAMC;AAAAA,EACjBC,OAAOjC,MAAM+B,MAAMC;AAAAA,EACnBE,OAAO;AAAA,EACPC,QAAQ;AACV,GAACxB,QAAAC,IAAAC,aAAC,eAAA,KAAA,qmEAAA;"}
@@ -22,7 +22,7 @@ const HvDialogTitle = ({
22
22
  fullscreen
23
23
  } = others;
24
24
  delete others.fullscreen;
25
- const icon = customIcon || showIcon && iconVariant(variant, "", "");
25
+ const icon = customIcon || showIcon && iconVariant(variant);
26
26
  return /* @__PURE__ */ jsx(StyledTitle, {
27
27
  className: clsx(dialogTitleClasses.root, classes == null ? void 0 : classes.root, className, fullscreen && clsx(dialogTitleClasses.fullscreen, classes == null ? void 0 : classes.fullscreen)),
28
28
  $fullscreen: fullscreen,
@@ -1 +1 @@
1
- {"version":3,"file":"Title.js","sources":["../../../../../src/components/Dialog/Title/Title.tsx"],"sourcesContent":["import { DialogTitleProps as MuiDialogTitleProps } from \"@mui/material/DialogTitle\";\nimport { clsx } from \"clsx\";\nimport { HvTypography } from \"@core/components\";\nimport { HvBaseProps } from \"@core/types\";\nimport { iconVariant } from \"@core/utils\";\nimport {\n StyledTitle,\n StyledMessageContainer,\n StyledTextWithIcon,\n} from \"./Title.styles\";\nimport dialogTitleClasses, { HvDialogTitleClasses } from \"./titleClasses\";\nimport { useTheme } from \"@core/hooks\";\n\nexport type HvDialogTitleVariant =\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\"\n | \"default\";\n\nexport interface HvDialogTitleProps\n extends Omit<MuiDialogTitleProps, \"variant\" | \"classes\">,\n HvBaseProps<HTMLSpanElement, \"color\"> {\n /** Variant of the Dialog. */\n variant?: HvDialogTitleVariant;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n classes?: HvDialogTitleClasses;\n}\n\nexport const HvDialogTitle = ({\n classes,\n className,\n children,\n variant = \"default\",\n showIcon = true,\n customIcon = null,\n ...others\n}: HvDialogTitleProps) => {\n const { activeTheme } = useTheme();\n\n const isString = typeof children === \"string\";\n\n const { fullscreen } = others as any;\n delete (others as any).fullscreen;\n\n const icon = customIcon || (showIcon && iconVariant(variant, \"\", \"\"));\n\n return (\n <StyledTitle\n className={clsx(\n dialogTitleClasses.root,\n classes?.root,\n className,\n fullscreen && clsx(dialogTitleClasses.fullscreen, classes?.fullscreen)\n )}\n $fullscreen={fullscreen}\n {...others}\n >\n <StyledMessageContainer\n className={clsx(\n dialogTitleClasses.messageContainer,\n classes?.messageContainer\n )}\n >\n {icon}\n <StyledTextWithIcon\n className={\n !!icon\n ? clsx(dialogTitleClasses.textWithIcon, classes?.textWithIcon)\n : undefined\n }\n $hasIcon={!!icon}\n >\n {!isString && children}\n {isString && (\n <HvTypography variant={activeTheme?.dialog.titleVariant}>\n {children}\n </HvTypography>\n )}\n </StyledTextWithIcon>\n </StyledMessageContainer>\n </StyledTitle>\n );\n};\n"],"names":["HvDialogTitle","classes","className","children","variant","showIcon","customIcon","others","activeTheme","useTheme","isString","fullscreen","icon","iconVariant","StyledTitle","clsx","dialogTitleClasses","root","$fullscreen","StyledMessageContainer","messageContainer","_jsxs","StyledTextWithIcon","textWithIcon","undefined","$hasIcon","HvTypography","dialog","titleVariant"],"mappings":";;;;;;;AAgCO,MAAMA,gBAAgBA,CAAC;AAAA,EAC5BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,UAAU;AAAA,EACVC,WAAW;AAAA,EACXC,aAAa;AAAA,EACb,GAAGC;AACe,MAAM;AAClB,QAAA;AAAA,IAAEC;AAAAA,MAAgBC,SAAU;AAE5BC,QAAAA,WAAW,OAAOP,aAAa;AAE/B,QAAA;AAAA,IAAEQ;AAAAA,EAAeJ,IAAAA;AACvB,SAAQA,OAAeI;AAEvB,QAAMC,OAAON,cAAeD,YAAYQ,YAAYT,SAAS,IAAI,EAAE;AAEnE,6BACGU,aAAW;AAAA,IACVZ,WAAWa,KACTC,mBAAmBC,MACnBhB,mCAASgB,MACTf,WACAS,cAAcI,KAAKC,mBAAmBL,YAAYV,mCAASU,UAAU,CAAC;AAAA,IAExEO,aAAaP;AAAAA,IAAW,GACpBJ;AAAAA,IAAMJ,+BAETgB,wBAAsB;AAAA,MACrBjB,WAAWa,KACTC,mBAAmBI,kBACnBnB,mCAASmB,gBAAgB;AAAA,MACzBjB,UAEDS,CAAAA,MACDS,qBAACC,oBAAkB;AAAA,QACjBpB,WACE,CAAC,CAACU,OACEG,KAAKC,mBAAmBO,cAActB,mCAASsB,YAAY,IAC3DC;AAAAA,QAENC,UAAU,CAAC,CAACb;AAAAA,QAAKT,UAAA,CAEhB,CAACO,YAAYP,UACbO,gCACEgB,cAAY;AAAA,UAACtB,SAASI,2CAAamB,OAAOC;AAAAA,UAAazB;AAAAA,QAAAA,CAGzD,CAAA;AAAA,MAAA,CACkB,CAAA;AAAA,IAAA,CAAA;AAAA,EAAA,CAEX;AAElB;"}
1
+ {"version":3,"file":"Title.js","sources":["../../../../../src/components/Dialog/Title/Title.tsx"],"sourcesContent":["import { DialogTitleProps as MuiDialogTitleProps } from \"@mui/material/DialogTitle\";\nimport { clsx } from \"clsx\";\nimport { HvTypography } from \"@core/components\";\nimport { HvBaseProps } from \"@core/types\";\nimport { iconVariant } from \"@core/utils\";\nimport {\n StyledTitle,\n StyledMessageContainer,\n StyledTextWithIcon,\n} from \"./Title.styles\";\nimport dialogTitleClasses, { HvDialogTitleClasses } from \"./titleClasses\";\nimport { useTheme } from \"@core/hooks\";\n\nexport type HvDialogTitleVariant =\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\"\n | \"default\";\n\nexport interface HvDialogTitleProps\n extends Omit<MuiDialogTitleProps, \"variant\" | \"classes\">,\n HvBaseProps<HTMLSpanElement, \"color\"> {\n /** Variant of the Dialog. */\n variant?: HvDialogTitleVariant;\n /** Controls if the associated icon to the variant should be shown. */\n showIcon?: boolean;\n /** Custom icon to replace the variant default. */\n customIcon?: React.ReactNode;\n classes?: HvDialogTitleClasses;\n}\n\nexport const HvDialogTitle = ({\n classes,\n className,\n children,\n variant = \"default\",\n showIcon = true,\n customIcon = null,\n ...others\n}: HvDialogTitleProps) => {\n const { activeTheme } = useTheme();\n\n const isString = typeof children === \"string\";\n\n const { fullscreen } = others as any;\n delete (others as any).fullscreen;\n\n const icon = customIcon || (showIcon && iconVariant(variant));\n\n return (\n <StyledTitle\n className={clsx(\n dialogTitleClasses.root,\n classes?.root,\n className,\n fullscreen && clsx(dialogTitleClasses.fullscreen, classes?.fullscreen)\n )}\n $fullscreen={fullscreen}\n {...others}\n >\n <StyledMessageContainer\n className={clsx(\n dialogTitleClasses.messageContainer,\n classes?.messageContainer\n )}\n >\n {icon}\n <StyledTextWithIcon\n className={\n !!icon\n ? clsx(dialogTitleClasses.textWithIcon, classes?.textWithIcon)\n : undefined\n }\n $hasIcon={!!icon}\n >\n {!isString && children}\n {isString && (\n <HvTypography variant={activeTheme?.dialog.titleVariant}>\n {children}\n </HvTypography>\n )}\n </StyledTextWithIcon>\n </StyledMessageContainer>\n </StyledTitle>\n );\n};\n"],"names":["HvDialogTitle","classes","className","children","variant","showIcon","customIcon","others","activeTheme","useTheme","isString","fullscreen","icon","iconVariant","StyledTitle","clsx","dialogTitleClasses","root","$fullscreen","StyledMessageContainer","messageContainer","_jsxs","StyledTextWithIcon","textWithIcon","undefined","$hasIcon","HvTypography","dialog","titleVariant"],"mappings":";;;;;;;AAgCO,MAAMA,gBAAgBA,CAAC;AAAA,EAC5BC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,UAAU;AAAA,EACVC,WAAW;AAAA,EACXC,aAAa;AAAA,EACb,GAAGC;AACe,MAAM;AAClB,QAAA;AAAA,IAAEC;AAAAA,MAAgBC,SAAU;AAE5BC,QAAAA,WAAW,OAAOP,aAAa;AAE/B,QAAA;AAAA,IAAEQ;AAAAA,EAAeJ,IAAAA;AACvB,SAAQA,OAAeI;AAEvB,QAAMC,OAAON,cAAeD,YAAYQ,YAAYT,OAAO;AAE3D,6BACGU,aAAW;AAAA,IACVZ,WAAWa,KACTC,mBAAmBC,MACnBhB,mCAASgB,MACTf,WACAS,cAAcI,KAAKC,mBAAmBL,YAAYV,mCAASU,UAAU,CAAC;AAAA,IAExEO,aAAaP;AAAAA,IAAW,GACpBJ;AAAAA,IAAMJ,+BAETgB,wBAAsB;AAAA,MACrBjB,WAAWa,KACTC,mBAAmBI,kBACnBnB,mCAASmB,gBAAgB;AAAA,MACzBjB,UAEDS,CAAAA,MACDS,qBAACC,oBAAkB;AAAA,QACjBpB,WACE,CAAC,CAACU,OACEG,KAAKC,mBAAmBO,cAActB,mCAASsB,YAAY,IAC3DC;AAAAA,QAENC,UAAU,CAAC,CAACb;AAAAA,QAAKT,UAAA,CAEhB,CAACO,YAAYP,UACbO,gCACEgB,cAAY;AAAA,UAACtB,SAASI,2CAAamB,OAAOC;AAAAA,UAAazB;AAAAA,QAAAA,CAGzD,CAAA;AAAA,MAAA,CACkB,CAAA;AAAA,IAAA,CAAA;AAAA,EAAA,CAEX;AAElB;"}