PatternFly

Application launcher

Deprecated
Demo

An application launcher is an option menu that allows a user to launch a separate web application in a new browser window.

As the application launcher component is now deprecated, an application launcher may now be built using the new suite of menu components. This is showcased in the following demo, which uses the new dropdown component that is built off of menu.

Application launcher menu

Props

*required
NameTypeDefaultDescription
badgeBadgeProps | React.ReactNodeOptional badge rendered inside the toggle, after the children content
childrenReact.ReactNodeContent rendered inside the toggle
classNamestringAdditional classes added to the toggle
iconReact.ReactNodeOptional icon or image rendered inside the toggle, before the children content. It is recommended to wrap most basic icons in our icon component.
isDisabledbooleanFlag indicating the toggle is disabled
isExpandedbooleanFlag indicating the toggle has expanded styling
isFullHeightbooleanFlag indicating the toggle is full height
isFullWidthbooleanFlag indicating the toggle takes up the full width of its parent
splitButtonOptionsSplitButtonOptionsObject used to configure a split button menu toggle
statusBeta'success' | 'warning' | 'danger'Status styles of the menu toggle
statusIconReact.ReactNodeOverrides the status icon
variant'default' | 'plain' | 'primary' | 'plainText' | 'secondary' | 'typeahead'Variant styles of the menu toggle
*required
NameTypeDefaultDescription
childrenReact.ReactNodeItems within search
*required
NameTypeDefaultDescription
childrenReact.ReactNodeItems within input

Tooltip

*required
NameTypeDefaultDescription
contentrequiredReact.ReactNodeTooltip content
animationDurationnumber300CSS fade transition animation duration
appendToHTMLElement | ((ref?: HTMLElement) => HTMLElement)() => document.bodyThe element to append the tooltip to, defaults to body
aria'describedby' | 'labelledby' | 'none''describedby'aria-labelledby or aria-describedby for tooltip. The trigger will be cloned to add the aria attribute, and the corresponding id in the form of 'pf-tooltip-#' is added to the content container. If you don't want that or prefer to add the aria attribute yourself on the trigger, set aria to 'none'.
aria-live'off' | 'polite'triggerRef ? 'polite' : 'off'Determines whether the tooltip is an aria-live region. If the triggerRef prop is passed in the default behavior is 'polite' in order to ensure the tooltip contents is announced to assistive technologies. Otherwise the default behavior is 'off'.
childrenReactElement<any>The trigger reference element to which the Tooltip is relatively placed to. If you cannot wrap the element with the Tooltip, you can use the triggerRef prop instead. Usage: <Tooltip><Button>Reference</Button></Tooltip>
classNamestring''Tooltip additional class
distancenumber15Distance of the tooltip to its target, defaults to 15
enableFlipbooleantrueIf true, tries to keep the tooltip in view by flipping it if necessary
entryDelaynumber300Delay in ms before the tooltip appears
exitDelaynumber300Delay in ms before the tooltip disappears, Avoid passing in a value of "0", as users should be given ample time to move their mouse from the trigger to the tooltip content without the content being hidden.
flipBehavior| 'flip' | ( | 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end' )[]['top', 'right', 'bottom', 'left', 'top', 'right', 'bottom']The desired position to flip the tooltip to if the initial position is not possible. By setting this prop to 'flip' it attempts to flip the tooltip to the opposite side if there is no space. You can also pass an array of positions that determines the flip order. It should contain the initial position followed by alternative positions if that position is unavailable. Example: Initial position is 'top'. Button with tooltip is in the top right corner. 'flipBehavior' is set to ['top', 'right', 'left']. Since there is no space to the top, it checks if right is available. There's also no space to the right, so it finally shows the tooltip on the left.
idstring`pf-tooltip-${pfTooltipIdCounter++}`id of the tooltip
isContentLeftAlignedbooleanfalseFlag to indicate that the text content is left aligned
isVisiblebooleanfalsevalue for visibility when trigger is 'manual'
maxWidthstringtooltipMaxWidth.valueMaximum width of the tooltip (default 18.75rem)
minWidthstring | 'trigger'Minimum width of the tooltip. If set to "trigger", the minimum width will be set to the reference element width.
onTooltipHidden() => void() => {}Callback when tooltip's hide transition has finished executing
position| TooltipPosition | 'auto' | 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end''top'Tooltip position. Note: With 'enableFlip' set to true, it will change the position if there is not enough space for the starting position. The behavior of where it flips to can be controlled through the flipBehavior prop. The 'auto' position chooses the side with the most space. The 'auto' position requires the 'enableFlip' prop to be true.
triggerstring'mouseenter focus'Tooltip trigger: click, mouseenter, focus, manual Set to manual to trigger tooltip programmatically (through the isVisible prop)
triggerRefHTMLElement | (() => HTMLElement) | React.RefObject<any>The trigger reference element to which the Tooltip is relatively placed to. If you can wrap the element with the Tooltip, you can use the children prop instead, or both props together. When passed along with the trigger prop, the div element that wraps the trigger will be removed. Usage: <Tooltip triggerRef={() => document.getElementById('reference-element')} />
zIndexnumber9999z-index of the tooltip

Divider

*required
NameTypeDefaultDescription
classNamestringAdditional classes added to the divider
component'hr' | 'li' | 'div'DividerVariant.hrThe component type to use
inset{ default?: 'insetNone' | 'insetXs' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl' | 'inset3xl'; sm?: 'insetNone' | 'insetXs' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl' | 'inset3xl'; md?: 'insetNone' | 'insetXs' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl' | 'inset3xl'; lg?: 'insetNone' | 'insetXs' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl' | 'inset3xl'; xl?: 'insetNone' | 'insetXs' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl' | 'inset3xl'; '2xl'?: 'insetNone' | 'insetXs' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl' | 'inset3xl'; }Insets at various breakpoints.
orientation{ default?: 'vertical' | 'horizontal'; sm?: 'vertical' | 'horizontal'; md?: 'vertical' | 'horizontal'; lg?: 'vertical' | 'horizontal'; xl?: 'vertical' | 'horizontal'; '2xl'?: 'vertical' | 'horizontal'; }Indicates how the divider will display at various breakpoints. Vertical divider must be in a flex layout.

SearchInput

*required
NameTypeDefaultDescription
advancedSearchDelimiterstringDelimiter in the query string for pairing attributes with search values. Required whenever attributes are passed as props.
attributesstring[] | SearchInputSearchAttribute[][]Array of attribute values used for dynamically generated advanced search.
classNamestringAdditional classes added to the advanced search menu.
formAdditionalItemsReact.ReactNode
getAttrValueMap() => { [key: string]: string }Function which builds an attribute-value map by parsing the value in the search input.
hasWordsAttrLabelReact.ReactNode'Has words'Attribute label for strings unassociated with one of the provided listed attributes.
isSearchMenuOpenbooleanFlag for toggling the open/close state of the advanced search menu.
onChange(event: React.FormEvent<HTMLInputElement>, value: string) => voidA callback for when the input value changes.
onClear(event: React.SyntheticEvent<HTMLButtonElement>) => voidA callback for when the user clicks the clear button.
onSearch( event: React.SyntheticEvent<HTMLButtonElement>, value: string, attrValueMap: { [key: string]: string } ) => voidA callback for when the search button is clicked.
onToggleAdvancedMenu(e: React.SyntheticEvent<HTMLButtonElement>) => voidA callback for when the open advanced search button is clicked.
parentInputRefReact.RefObject<any>Ref of the input element within the search input.
parentRefReact.RefObject<any>Ref of the div wrapping the whole search input.
resetButtonLabelstring'Reset'Label for the button which resets the advanced search form and clears the search input.
submitSearchButtonLabelstring'Search'Label for the button which calls the onSearch event handler.
valuestring''Value of the search input.
See the Menu documentation for additional props that may be passed.
*required
NameTypeDefaultDescription
togglerequiredDropdownToggleProps | ((toggleRef: React.RefObject<any>) => React.ReactNode)Dropdown toggle. The toggle should either be a renderer function which forwards the given toggle ref, or a direct ReactNode that should be passed along with the toggleRef property.
childrenReact.ReactNodeAnything which can be rendered in a dropdown.
classNamestringClasses applied to root element of dropdown.
isOpenbooleanFlag to indicate if menu is opened.
isPlainbooleanIndicates if the menu should be without the outer box-shadow.
isScrollablebooleanIndicates if the menu should be scrollable.
maxMenuHeightstringMaximum height of dropdown menu
menuHeightstringHeight of the dropdown menu
onOpenChange(isOpen: boolean) => voidCallback to allow the dropdown component to change the open state of the menu. Triggered by clicking outside of the menu, or by pressing any keys specificed in onOpenChangeKeys.
onOpenChangeKeysBetastring[]Keys that trigger onOpenChange, defaults to tab and escape. It is highly recommended to include Escape in the array, while Tab may be omitted if the menu contains non-menu items that are focusable.
onSelect(event?: React.MouseEvent<Element, MouseEvent>, value?: string | number) => voidFunction callback called when user selects item.
ouiaIdnumber | stringValue to overwrite the randomly generated data-ouia-component-id.
ouiaSafebooleanSet the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false.
popperPropsDropdownPopperPropsAdditional properties to pass to the Popper
shouldFocusToggleOnSelectbooleanFlag indicating the toggle should be focused after a selection. If this use case is too restrictive, the optional toggleRef property with a node toggle may be used to control focus.
zIndexnumberz-index of the dropdown menu
See the MenuGroup section of the Menu documentation for additional props that may be passed.
*required
NameTypeDefaultDescription
childrenrequiredReact.ReactNodeAnything which can be rendered in a dropdown group.
classNamestringClasses applied to root element of dropdown group
labelstringLabel of the dropdown group
labelHeadingLevelNo type info'h1'
*required
NameTypeDefaultDescription
childrenrequiredReact.ReactNodeAnything which can be rendered in a dropdown list
classNamestringClasses applied to root element of dropdown list
See the MenuItem section of the Menu documentation for additional props that may be passed.
*required
NameTypeDefaultDescription
childrenReact.ReactNodeAnything which can be rendered in a dropdown item
classNamestringClasses applied to root element of dropdown item
descriptionReact.ReactNodeDescription of the dropdown item
isAriaDisabledbooleanRender item as aria-disabled option
isDisabledbooleanRender item as disabled option
onClick(event?: any) => voidCallback for item click
ouiaIdnumber | stringValue to overwrite the randomly generated data-ouia-component-id.
ouiaSafebooleanSet the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false.
tooltipPropsTooltipPropsProps for adding a tooltip to a menu item
valueanyIdentifies the component in the dropdown onSelect callback

View source on GitHub