@neo4j-ndl/react 4.9.8 → 4.9.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/menu/Menu.js +7 -3
- package/lib/cjs/menu/Menu.js.map +1 -1
- package/lib/cjs/menu/menu-types.js.map +1 -1
- package/lib/cjs/select/Overrides.js +82 -8
- package/lib/cjs/select/Overrides.js.map +1 -1
- package/lib/esm/menu/Menu.js +7 -3
- package/lib/esm/menu/Menu.js.map +1 -1
- package/lib/esm/menu/menu-types.js.map +1 -1
- package/lib/esm/select/Overrides.js +82 -8
- package/lib/esm/select/Overrides.js.map +1 -1
- package/lib/types/menu/Menu.d.ts.map +1 -1
- package/lib/types/menu/menu-types.d.ts.map +1 -1
- package/lib/types/select/Overrides.d.ts +1 -1
- package/lib/types/select/Overrides.d.ts.map +1 -1
- package/package.json +2 -2
package/lib/cjs/menu/Menu.js
CHANGED
|
@@ -97,9 +97,13 @@ const MenuComponent = ({ children, isOpen: controlledOpen, onClose, isRoot, anch
|
|
|
97
97
|
alignmentAxis: isNested ? -4 : 0,
|
|
98
98
|
mainAxis: isNested ? 0 : 4,
|
|
99
99
|
}),
|
|
100
|
-
(0, react_1.
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
...(isNested ? [(0, react_1.shift)()] : []),
|
|
101
|
+
(0, react_1.flip)(isNested
|
|
102
|
+
? {
|
|
103
|
+
fallbackPlacements: ['left-start', 'bottom-start', 'top-start'],
|
|
104
|
+
fallbackStrategy: 'bestFit',
|
|
105
|
+
}
|
|
106
|
+
: { fallbackPlacements: ['left-start', 'right-start'] }),
|
|
103
107
|
(0, react_1.shift)(),
|
|
104
108
|
],
|
|
105
109
|
nodeId,
|
package/lib/cjs/menu/Menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/menu/Menu.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingList,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingParentNodeId,\n useFloatingTree,\n useHover,\n useInteractions,\n useListItem,\n useListNavigation,\n useMergeRefs,\n useRole,\n useTypeahead,\n} from '@floating-ui/react';\nimport classNames from 'classnames';\nimport type React from 'react';\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport {\n type CommonProps,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { ConditionalWrap } from '../conditional-wrap';\nimport { useIsInsideDialog } from '../dialog/dialog-context';\nimport { Divider } from '../divider';\nimport { CheckIconOutline, ChevronRightIconOutline } from '../icons';\nimport { placementTranslation } from '../popover';\nimport { useNeedleTheme } from '../theme';\nimport type {\n CategoryItemProps,\n MenuGroupProps,\n MenuItemComponentProps,\n MenuItemProps,\n MenuItemsProps,\n MenuProps,\n NestedMenuItemProps,\n RadioItemProps,\n} from './menu-types';\n\nconst MenuContext = createContext<{\n getItemProps: (\n userProps?: React.HTMLProps<HTMLElement>,\n ) => Record<string, unknown>;\n activeIndex: number | null;\n setActiveIndex: React.Dispatch<React.SetStateAction<number | null>>;\n setHasFocusInside: React.Dispatch<React.SetStateAction<boolean>>;\n isOpen: boolean;\n}>({\n activeIndex: null,\n getItemProps: () => ({}),\n isOpen: false,\n // oxlint-disable-next-line @typescript-eslint/no-empty-function\n setActiveIndex: () => {},\n // oxlint-disable-next-line @typescript-eslint/no-empty-function\n setHasFocusInside: () => {},\n});\n\nconst MenuWrapper = (props: React.ComponentProps<typeof MenuComponent>) => {\n const parentId = useFloatingParentNodeId();\n\n if (parentId === null) {\n return (\n <FloatingTree>\n <MenuComponent {...props} isRoot />\n </FloatingTree>\n );\n }\n\n return <MenuComponent {...props} />;\n};\n\nconst MenuComponent = <T extends React.ElementType = 'div'>({\n children,\n isOpen: controlledOpen,\n onClose,\n isRoot,\n anchorRef,\n as,\n className,\n placement,\n minWidth,\n title,\n isDisabled,\n description,\n icon,\n isPortaled = true,\n portalTarget,\n htmlAttributes,\n strategy,\n ref: forwardedRef,\n style,\n}: PolymorphicCommonProps<T, MenuProps>) => {\n const [isOpen, setIsOpen] = useState(false);\n const [hasFocusInside, setHasFocusInside] = useState(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n\n const elementsRef = useRef<Array<HTMLButtonElement | null>>([]);\n const labelsRef = useRef<Array<string | null>>([]);\n const parent = useContext(MenuContext);\n\n const isInsideDialog = useIsInsideDialog();\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const parentId = useFloatingParentNodeId();\n const item = useListItem();\n const { themeClassName } = useNeedleTheme();\n useEffect(() => {\n if (controlledOpen === undefined) {\n return;\n }\n setIsOpen(controlledOpen);\n }, [controlledOpen]);\n\n useEffect(() => {\n if (isOpen) {\n setActiveIndex(0);\n }\n }, [isOpen]);\n\n const Component = as ?? 'div';\n\n const isNested = parentId !== null;\n\n const defaultPlacement = isNested ? 'right-start' : 'bottom-start';\n\n const { floatingStyles, refs, context } = useFloating<HTMLButtonElement>({\n elements: {\n reference: anchorRef?.current,\n },\n middleware: [\n offset({\n alignmentAxis: isNested ? -4 : 0,\n mainAxis: isNested ? 0 : 4,\n }),\n flip({\n fallbackPlacements: ['left-start', 'right-start'],\n }),\n shift(),\n ],\n nodeId,\n onOpenChange: (open, event) => {\n if (controlledOpen === undefined) {\n setIsOpen(open);\n }\n\n if (!open) {\n if (event instanceof PointerEvent) {\n onClose?.(event, { type: 'backdropClick' });\n } else if (event instanceof KeyboardEvent) {\n onClose?.(event, { type: 'escapeKeyDown' });\n } else if (event instanceof FocusEvent) {\n onClose?.(event, { type: 'focusOut' });\n }\n }\n },\n open: isOpen,\n placement: placement ? placementTranslation[placement] : defaultPlacement,\n strategy: strategy ?? (isInsideDialog ? 'fixed' : 'absolute'),\n whileElementsMounted: autoUpdate,\n });\n\n const hover = useHover(context, {\n delay: { open: 75 },\n enabled: isNested,\n handleClose: safePolygon({ blockPointerEvents: true }),\n });\n const click = useClick(context, {\n event: 'mousedown',\n ignoreMouse: isNested,\n toggle: !isNested,\n });\n const role = useRole(context, { role: 'menu' });\n const dismiss = useDismiss(context, { bubbles: true });\n const listNavigation = useListNavigation(context, {\n activeIndex,\n listRef: elementsRef,\n nested: isNested,\n onNavigate: setActiveIndex,\n });\n const typeahead = useTypeahead(context, {\n activeIndex,\n listRef: labelsRef,\n onMatch: isOpen ? setActiveIndex : undefined,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions(\n [hover, click, role, dismiss, listNavigation, typeahead],\n );\n\n // Event emitter allows you to communicate across tree components.\n // This effect closes all menus when an item gets clicked anywhere\n // in the tree.\n useEffect(() => {\n if (!tree) {\n return;\n }\n\n function handleTreeClick(data: { id?: string }) {\n if (controlledOpen === undefined) {\n setIsOpen(false);\n }\n onClose?.(undefined, { id: data?.id, type: 'itemClick' });\n }\n\n function onSubMenuOpen(event: { nodeId: string; parentId: string }) {\n if (event.nodeId !== nodeId && event.parentId === parentId) {\n if (controlledOpen === undefined) {\n setIsOpen(false);\n }\n onClose?.(undefined, { type: 'itemClick' });\n }\n }\n\n tree.events.on('click', handleTreeClick);\n tree.events.on('menuopen', onSubMenuOpen);\n\n return () => {\n tree.events.off('click', handleTreeClick);\n tree.events.off('menuopen', onSubMenuOpen);\n };\n }, [tree, nodeId, parentId, onClose, controlledOpen]);\n\n useEffect(() => {\n if (isOpen && tree) {\n tree.events.emit('menuopen', { nodeId, parentId });\n }\n }, [tree, isOpen, nodeId, parentId]);\n\n // Workaround for floating-ui bug where Shift+Tab doesn't trigger\n // closeOnFocusOut.\n // We detect Shift+Tab and check after guards redirect focus whether\n // focus has actually left the floating element.\n // TODO: check every now and then if floating ui addresses this\n const handleShiftTabClose = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (event.key === 'Tab' && event.shiftKey) {\n requestAnimationFrame(() => {\n const floatingEl = refs.floating.current;\n if (floatingEl && !floatingEl.contains(document.activeElement)) {\n if (controlledOpen === undefined) {\n setIsOpen(false);\n }\n onClose?.(undefined, { type: 'focusOut' });\n }\n });\n }\n },\n [controlledOpen, onClose, refs],\n );\n\n const menuClasses = classNames('ndl-menu', themeClassName, className);\n const ref = useMergeRefs([refs.setReference, item.ref, forwardedRef]);\n\n return (\n <FloatingNode id={nodeId}>\n {isRoot !== true && (\n <NestedMenuItem\n ref={ref}\n className={isNested ? 'MenuItem' : 'RootMenu'}\n isDisabled={isDisabled}\n style={style}\n htmlAttributes={{\n 'data-focus-inside': hasFocusInside ? '' : undefined,\n 'data-nested': isNested ? '' : undefined,\n 'data-open': isOpen ? '' : undefined,\n role: isNested ? 'menuitem' : undefined,\n tabIndex: !isNested\n ? undefined\n : parent.activeIndex === item.index\n ? 0\n : -1,\n ...htmlAttributes,\n ...getReferenceProps(\n parent.getItemProps({\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n htmlAttributes?.onFocus?.(event);\n setHasFocusInside(false);\n parent.setHasFocusInside(true);\n },\n }),\n ),\n }}\n title={title}\n description={description}\n leadingVisual={icon}\n />\n )}\n <MenuContext.Provider\n value={{\n activeIndex,\n getItemProps,\n isOpen: isDisabled === true ? false : isOpen,\n setActiveIndex,\n setHasFocusInside,\n }}\n >\n <FloatingList elementsRef={elementsRef} labelsRef={labelsRef}>\n {isOpen && (\n <ConditionalWrap\n shouldWrap={isPortaled}\n wrap={(wrapChildren) => (\n <FloatingPortal root={portalTarget}>\n {wrapChildren}\n </FloatingPortal>\n )}\n >\n <FloatingFocusManager\n context={context}\n modal={false}\n initialFocus={0}\n returnFocus={!isNested}\n closeOnFocusOut={true}\n guards={true}\n >\n <Component\n ref={refs.setFloating}\n className={menuClasses}\n style={{\n minWidth:\n minWidth !== undefined ? `${minWidth}px` : undefined,\n ...floatingStyles,\n ...style,\n }}\n {...getFloatingProps({\n onKeyDown: handleShiftTabClose,\n })}\n >\n {children}\n </Component>\n </FloatingFocusManager>\n </ConditionalWrap>\n )}\n </FloatingList>\n </MenuContext.Provider>\n </FloatingNode>\n );\n};\n\n/**\n * @internal This is used to build the menu item components. Do not export this component.\n */\nconst MenuItemComponent = <T extends React.ElementType = 'button'>({\n title,\n leadingContent,\n trailingContent,\n preLeadingContent,\n description,\n isDisabled,\n as,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, MenuItemComponentProps>) => {\n const classes = classNames(`ndl-menu-item`, className, {\n 'ndl-disabled': isDisabled,\n });\n\n const Component = as ?? 'button';\n\n return (\n <Component\n className={classes}\n ref={ref}\n type=\"button\"\n role=\"menuitem\"\n disabled={isDisabled}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n <div className=\"ndl-menu-item-inner\">\n {Boolean(preLeadingContent) && (\n <div className=\"ndl-menu-item-pre-leading-content\">\n {preLeadingContent}\n </div>\n )}\n {Boolean(leadingContent) && (\n <div className=\"ndl-menu-item-leading-content\">{leadingContent}</div>\n )}\n\n <div className=\"ndl-menu-item-title-wrapper\">\n <div className=\"ndl-menu-item-title\">{title}</div>\n {Boolean(description) && (\n <div className=\"ndl-menu-item-description\">{description}</div>\n )}\n </div>\n\n {Boolean(trailingContent) && (\n <div className=\"ndl-menu-item-trailing-content\">\n {trailingContent}\n </div>\n )}\n </div>\n </Component>\n );\n};\n\nconst MenuItem = <T extends React.ElementType = 'button'>({\n title,\n className,\n style,\n leadingVisual,\n trailingContent,\n description,\n isDisabled,\n as,\n onClick,\n onFocus,\n htmlAttributes,\n id,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, MenuItemProps>) => {\n const menu = useContext(MenuContext);\n const itemLabel = typeof title === 'string' ? title : undefined;\n const item = useListItem({ label: isDisabled === true ? null : itemLabel });\n const tree = useFloatingTree();\n const isActive = item.index === menu.activeIndex;\n\n const mergedRefs = useMergeRefs([item.ref, ref]);\n\n return (\n <MenuItemComponent\n as={as ?? 'button'}\n style={style}\n className={className}\n ref={mergedRefs}\n title={title}\n description={description}\n leadingContent={leadingVisual}\n trailingContent={trailingContent}\n isDisabled={isDisabled}\n htmlAttributes={{\n ...htmlAttributes,\n tabIndex: isActive ? 0 : -1,\n ...menu.getItemProps({\n id: id,\n onClick(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n tree?.events.emit('click', { id });\n },\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n onFocus?.(event);\n menu.setHasFocusInside(true);\n },\n }),\n }}\n {...restProps}\n />\n );\n};\n\nconst NestedMenuItem = <T extends React.ElementType = 'button'>({\n title,\n isDisabled,\n description,\n leadingVisual,\n as,\n onFocus,\n onClick,\n className,\n style,\n htmlAttributes,\n id,\n ref,\n}: PolymorphicCommonProps<T, NestedMenuItemProps>) => {\n const menu = useContext(MenuContext);\n const itemLabel = typeof title === 'string' ? title : undefined;\n const item = useListItem({ label: isDisabled === true ? null : itemLabel });\n const isActive = item.index === menu.activeIndex;\n const mergedRefs = useMergeRefs([item.ref, ref]);\n\n return (\n <MenuItemComponent\n as={as ?? 'button'}\n style={style}\n className={className}\n ref={mergedRefs}\n title={title}\n description={description}\n leadingContent={leadingVisual}\n trailingContent={\n <ChevronRightIconOutline className=\"ndl-menu-item-chevron\" />\n }\n isDisabled={isDisabled}\n htmlAttributes={{\n ...htmlAttributes,\n tabIndex: isActive ? 0 : -1,\n ...menu.getItemProps({\n onClick(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n },\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n onFocus?.(event);\n menu.setHasFocusInside(true);\n },\n onTouchStart() {\n menu.setHasFocusInside(true);\n },\n }),\n id: id,\n }}\n />\n );\n};\n\nconst CategoryItem = <T extends React.ElementType = 'button'>({\n children,\n className,\n style,\n as,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, CategoryItemProps>) => {\n const classes = classNames('ndl-menu-category-item', className);\n const Component: React.ElementType = as ?? 'div';\n return (\n <Component\n className={classes}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </Component>\n );\n};\n\nconst RadioItem = <T extends React.ElementType = 'button'>({\n title,\n leadingVisual,\n trailingContent,\n description,\n isDisabled,\n isChecked = false,\n onClick,\n onFocus,\n className,\n style,\n as,\n id,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, RadioItemProps>) => {\n const menu = useContext(MenuContext);\n const itemLabel = typeof title === 'string' ? title : undefined;\n const item = useListItem({ label: isDisabled === true ? null : itemLabel });\n const tree = useFloatingTree();\n const isActive = item.index === menu.activeIndex;\n\n const mergedRefs = useMergeRefs([item.ref, ref]);\n const classes = classNames('ndl-menu-radio-item', className, {\n 'ndl-checked': isChecked,\n });\n\n return (\n <MenuItemComponent\n as={as ?? 'button'}\n style={style}\n className={classes}\n ref={mergedRefs}\n title={title}\n description={description}\n preLeadingContent={\n isChecked ? (\n <CheckIconOutline className=\"n-size-5 n-shrink-0 n-self-center\" />\n ) : null\n }\n leadingContent={leadingVisual}\n trailingContent={trailingContent}\n isDisabled={isDisabled}\n htmlAttributes={{\n ...htmlAttributes,\n 'aria-checked': isChecked,\n role: 'menuitemradio',\n tabIndex: isActive ? 0 : -1,\n ...menu.getItemProps({\n id: id,\n onClick(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n tree?.events.emit('click', { id });\n },\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n onFocus?.(event);\n menu.setHasFocusInside(true);\n },\n }),\n }}\n {...restProps}\n />\n );\n};\n\nconst MenuItems = <T extends React.ElementType = 'div'>({\n as,\n children,\n className,\n htmlAttributes,\n style,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, MenuItemsProps>) => {\n const classes = classNames('ndl-menu-items', className);\n const Component: React.ElementType = as ?? 'div';\n return (\n <Component\n className={classes}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </Component>\n );\n};\n\nconst MenuGroup = ({\n children,\n className,\n htmlAttributes,\n style,\n ref,\n ...restProps\n}: CommonProps<'div', MenuGroupProps>) => {\n const classes = classNames('ndl-menu-group', className);\n return (\n <div\n className={classes}\n style={style}\n ref={ref}\n role=\"group\"\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\nconst Menu = Object.assign(MenuWrapper, {\n CategoryItem: CategoryItem,\n Divider: Divider,\n Group: MenuGroup,\n Item: MenuItem,\n /**\n * @deprecated Use Menu.Group instead if you want to group items together. If not, you can just omit this component in your implementation.\n */\n Items: MenuItems,\n RadioItem: RadioItem,\n});\nexport { Menu };\n"]}
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/menu/Menu.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,8CAwB4B;AAC5B,4DAAoC;AAEpC,iCAOe;AAMf,0DAAsD;AACtD,6DAA6D;AAC7D,wCAAqC;AACrC,oCAAqE;AACrE,wCAAkD;AAClD,oCAA0C;AAY1C,MAAM,WAAW,GAAG,IAAA,qBAAa,EAQ9B;IACD,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IACxB,MAAM,EAAE,KAAK;IACb,gEAAgE;IAChE,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;IACxB,gEAAgE;IAChE,iBAAiB,EAAE,GAAG,EAAE,GAAE,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,KAAiD,EAAE,EAAE;IACxE,MAAM,QAAQ,GAAG,IAAA,+BAAuB,GAAE,CAAC;IAE3C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,CACL,uBAAC,oBAAY,cACX,uBAAC,aAAa,oBAAK,KAAK,IAAE,MAAM,UAAG,GACtB,CAChB,CAAC;IACJ,CAAC;IAED,OAAO,uBAAC,aAAa,oBAAK,KAAK,EAAI,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAsC,EAC1D,QAAQ,EACR,MAAM,EAAE,cAAc,EACtB,OAAO,EACP,MAAM,EACN,SAAS,EACT,EAAE,EACF,SAAS,EACT,SAAS,EACT,QAAQ,EACR,KAAK,EACL,UAAU,EACV,WAAW,EACX,IAAI,EACJ,UAAU,GAAG,IAAI,EACjB,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,GAAG,EAAE,YAAY,EACjB,KAAK,GACgC,EAAE,EAAE;IACzC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAC;IAEpE,MAAM,WAAW,GAAG,IAAA,cAAM,EAAkC,EAAE,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,IAAA,cAAM,EAAuB,EAAE,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;IAEvC,MAAM,cAAc,GAAG,IAAA,kCAAiB,GAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAA,uBAAe,GAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAA,yBAAiB,GAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAA,+BAAuB,GAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAA,mBAAW,GAAE,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,sBAAc,GAAE,CAAC;IAC5C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5B,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,MAAM,EAAE,CAAC;YACX,cAAc,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,SAAS,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,KAAK,CAAC;IAE9B,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAEnC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC;IAEnE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAA,mBAAW,EAAoB;QACvE,QAAQ,EAAE;YACR,SAAS,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO;SAC9B;QACD,UAAU,EAAE;YACV,IAAA,cAAM,EAAC;gBACL,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,CAAC;YACF,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,aAAK,GAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,IAAA,YAAI,EACF,QAAQ;gBACN,CAAC,CAAC;oBACE,kBAAkB,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC;oBAC/D,gBAAgB,EAAE,SAAS;iBAC5B;gBACH,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,CAC1D;YACD,IAAA,aAAK,GAAE;SACR;QACD,MAAM;QACN,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,SAAS,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;oBAClC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC9C,CAAC;qBAAM,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;oBAC1C,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC9C,CAAC;qBAAM,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;oBACvC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,8BAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAgB;QACzE,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;QAC7D,oBAAoB,EAAE,kBAAU;KACjC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,OAAO,EAAE;QAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACnB,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,IAAA,mBAAW,EAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;KACvD,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAA,gBAAQ,EAAC,OAAO,EAAE;QAC9B,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,QAAQ;QACrB,MAAM,EAAE,CAAC,QAAQ;KAClB,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,IAAA,yBAAiB,EAAC,OAAO,EAAE;QAChD,WAAW;QACX,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,QAAQ;QAChB,UAAU,EAAE,cAAc;KAC3B,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,OAAO,EAAE;QACtC,WAAW;QACX,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;KAC7C,CAAC,CAAC;IAEH,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,IAAA,uBAAe,EAC3E,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC,CACzD,CAAC;IAEF,kEAAkE;IAClE,kEAAkE;IAClE,eAAe;IACf,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,SAAS,eAAe,CAAC,IAAqB;YAC5C,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;YACD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,SAAS,aAAa,CAAC,KAA2C;YAChE,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC3D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;oBACjC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC;gBACD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAE1C,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAEtD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAErC,iEAAiE;IACjE,mBAAmB;IACnB,oEAAoE;IACpE,gDAAgD;IAChD,+DAA+D;IAC/D,MAAM,mBAAmB,GAAG,IAAA,mBAAW,EACrC,CAAC,KAAuC,EAAE,EAAE;QAC1C,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1C,qBAAqB,CAAC,GAAG,EAAE;gBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACzC,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC/D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;wBACjC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACnB,CAAC;oBACD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EACD,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,CAChC,CAAC;IAEF,MAAM,WAAW,GAAG,IAAA,oBAAU,EAAC,UAAU,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,IAAA,oBAAY,EAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAEtE,OAAO,CACL,wBAAC,oBAAY,IAAC,EAAE,EAAE,MAAM,aACrB,MAAM,KAAK,IAAI,IAAI,CAClB,uBAAC,cAAc,IACb,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAC7C,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,cAAc,gCACZ,mBAAmB,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACpD,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACxC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACpC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACvC,QAAQ,EAAE,CAAC,QAAQ;wBACjB,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK;4BACjC,CAAC,CAAC,CAAC;4BACH,CAAC,CAAC,CAAC,CAAC,IACL,cAAc,GACd,iBAAiB,CAClB,MAAM,CAAC,YAAY,CAAC;oBAClB,OAAO,CAAC,KAA0C;;wBAChD,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,OAAO,+DAAG,KAAK,CAAC,CAAC;wBACjC,iBAAiB,CAAC,KAAK,CAAC,CAAC;wBACzB,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACjC,CAAC;iBACF,CAAC,CACH,GAEH,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,IAAI,GACnB,CACH,EACD,uBAAC,WAAW,CAAC,QAAQ,IACnB,KAAK,EAAE;oBACL,WAAW;oBACX,YAAY;oBACZ,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;oBAC5C,cAAc;oBACd,iBAAiB;iBAClB,YAED,uBAAC,oBAAY,IAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,YACzD,MAAM,IAAI,CACT,uBAAC,kCAAe,IACd,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,CACtB,uBAAC,sBAAc,IAAC,IAAI,EAAE,YAAY,YAC/B,YAAY,GACE,CAClB,YAED,uBAAC,4BAAoB,IACnB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,CAAC,EACf,WAAW,EAAE,CAAC,QAAQ,EACtB,eAAe,EAAE,IAAI,EACrB,MAAM,EAAE,IAAI,YAEZ,uBAAC,SAAS,kBACR,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,SAAS,EAAE,WAAW,EACtB,KAAK,gCACH,QAAQ,EACN,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,SAAS,IACnD,cAAc,GACd,KAAK,KAEN,gBAAgB,CAAC;gCACnB,SAAS,EAAE,mBAAmB;6BAC/B,CAAC,cAED,QAAQ,IACC,GACS,GACP,CACnB,GACY,GACM,IACV,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG,CAAyC,EAaf,EAAE,EAAE;QAbW,EACjE,KAAK,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,EAAE,EACF,SAAS,EACT,KAAK,EACL,cAAc,EACd,GAAG,OAE+C,EAD/C,SAAS,cAZqD,qJAalE,CADa;IAEZ,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,eAAe,EAAE,SAAS,EAAE;QACrD,cAAc,EAAE,UAAU;KAC3B,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,QAAQ,CAAC;IAEjC,OAAO,CACL,uBAAC,SAAS,kBACR,SAAS,EAAE,OAAO,EAClB,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAE,KAAK,IACR,SAAS,EACT,cAAc,cAElB,iCAAK,SAAS,EAAC,qBAAqB,aACjC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAC7B,gCAAK,SAAS,EAAC,mCAAmC,YAC/C,iBAAiB,GACd,CACP,EACA,OAAO,CAAC,cAAc,CAAC,IAAI,CAC1B,gCAAK,SAAS,EAAC,+BAA+B,YAAE,cAAc,GAAO,CACtE,EAED,iCAAK,SAAS,EAAC,6BAA6B,aAC1C,gCAAK,SAAS,EAAC,qBAAqB,YAAE,KAAK,GAAO,EACjD,OAAO,CAAC,WAAW,CAAC,IAAI,CACvB,gCAAK,SAAS,EAAC,2BAA2B,YAAE,WAAW,GAAO,CAC/D,IACG,EAEL,OAAO,CAAC,eAAe,CAAC,IAAI,CAC3B,gCAAK,SAAS,EAAC,gCAAgC,YAC5C,eAAe,GACZ,CACP,IACG,IACI,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAyC,EAef,EAAE,EAAE;QAfW,EACxD,KAAK,EACL,SAAS,EACT,KAAK,EACL,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,EAAE,EACF,OAAO,EACP,OAAO,EACP,cAAc,EACd,EAAE,EACF,GAAG,OAEsC,EADtC,SAAS,cAd4C,2JAezD,CADa;IAEZ,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,IAAA,uBAAe,GAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC;IAEjD,MAAM,UAAU,GAAG,IAAA,oBAAY,EAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAEjD,OAAO,CACL,uBAAC,iBAAiB,kBAChB,EAAE,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,aAAa,EAC7B,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,EACtB,cAAc,gDACT,cAAc,KACjB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KACxB,IAAI,CAAC,YAAY,CAAC;YACnB,EAAE,EAAE,EAAE;YACN,OAAO,CAAC,KAA0C;gBAChD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;gBACjB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,CAAC,KAA0C;gBAChD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;gBACjB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;SACF,CAAC,KAEA,SAAS,EACb,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAyC,EAC9D,KAAK,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,EAAE,EACF,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,cAAc,EACd,EAAE,EACF,GAAG,GAC4C,EAAE,EAAE;IACnD,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC;IACjD,MAAM,UAAU,GAAG,IAAA,oBAAY,EAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAEjD,OAAO,CACL,uBAAC,iBAAiB,IAChB,EAAE,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,aAAa,EAC7B,eAAe,EACb,uBAAC,+BAAuB,IAAC,SAAS,EAAC,uBAAuB,GAAG,EAE/D,UAAU,EAAE,UAAU,EACtB,cAAc,8DACT,cAAc,KACjB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KACxB,IAAI,CAAC,YAAY,CAAC;YACnB,OAAO,CAAC,KAA0C;gBAChD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;YACnB,CAAC;YACD,OAAO,CAAC,KAA0C;gBAChD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;gBACjB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACD,YAAY;gBACV,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;SACF,CAAC,KACF,EAAE,EAAE,EAAE,MAER,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAyC,EAQf,EAAE,EAAE;QARW,EAC5D,QAAQ,EACR,SAAS,EACT,KAAK,EACL,EAAE,EACF,cAAc,EACd,GAAG,OAE0C,EAD1C,SAAS,cAPgD,iEAQ7D,CADa;IAEZ,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,SAAS,GAAsB,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,KAAK,CAAC;IACjD,OAAO,CACL,uBAAC,SAAS,kBACR,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,GAAG,IACJ,SAAS,EACT,cAAc,cAEjB,QAAQ,IACC,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAyC,EAgBf,EAAE,EAAE;QAhBW,EACzD,KAAK,EACL,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,SAAS,GAAG,KAAK,EACjB,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,EAAE,EACF,EAAE,EACF,cAAc,EACd,GAAG,OAEuC,EADvC,SAAS,cAf6C,wKAgB1D,CADa;IAEZ,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,IAAA,uBAAe,GAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC;IAEjD,MAAM,UAAU,GAAG,IAAA,oBAAY,EAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,qBAAqB,EAAE,SAAS,EAAE;QAC3D,aAAa,EAAE,SAAS;KACzB,CAAC,CAAC;IAEH,OAAO,CACL,uBAAC,iBAAiB,kBAChB,EAAE,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,OAAO,EAClB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,iBAAiB,EACf,SAAS,CAAC,CAAC,CAAC,CACV,uBAAC,wBAAgB,IAAC,SAAS,EAAC,mCAAmC,GAAG,CACnE,CAAC,CAAC,CAAC,IAAI,EAEV,cAAc,EAAE,aAAa,EAC7B,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,EACtB,cAAc,gDACT,cAAc,KACjB,cAAc,EAAE,SAAS,EACzB,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KACxB,IAAI,CAAC,YAAY,CAAC;YACnB,EAAE,EAAE,EAAE;YACN,OAAO,CAAC,KAA0C;gBAChD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;gBACjB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,CAAC,KAA0C;gBAChD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAC;gBACjB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;SACF,CAAC,KAEA,SAAS,EACb,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAsC,EAQZ,EAAE,EAAE;QARQ,EACtD,EAAE,EACF,QAAQ,EACR,SAAS,EACT,cAAc,EACd,KAAK,EACL,GAAG,OAEuC,EADvC,SAAS,cAP0C,iEAQvD,CADa;IAEZ,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,SAAS,GAAsB,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,KAAK,CAAC;IACjD,OAAO,CACL,uBAAC,SAAS,kBACR,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,GAAG,IACJ,SAAS,EACT,cAAc,cAEjB,QAAQ,IACC,CACb,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,EAOkB,EAAE,EAAE;QAPtB,EACjB,QAAQ,EACR,SAAS,EACT,cAAc,EACd,KAAK,EACL,GAAG,OAEgC,EADhC,SAAS,cANK,2DAOlB,CADa;IAEZ,MAAM,OAAO,GAAG,IAAA,oBAAU,EAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACxD,OAAO,CACL,8CACE,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,OAAO,IACR,SAAS,EACT,cAAc,cAEjB,QAAQ,IACL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;IACtC,YAAY,EAAE,YAAY;IAC1B,OAAO,EAAE,iBAAO;IAChB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,QAAQ;IACd;;OAEG;IACH,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,SAAS;CACrB,CAAC,CAAC;AACM,oBAAI","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingList,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingParentNodeId,\n useFloatingTree,\n useHover,\n useInteractions,\n useListItem,\n useListNavigation,\n useMergeRefs,\n useRole,\n useTypeahead,\n} from '@floating-ui/react';\nimport classNames from 'classnames';\nimport type React from 'react';\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport {\n type CommonProps,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { ConditionalWrap } from '../conditional-wrap';\nimport { useIsInsideDialog } from '../dialog/dialog-context';\nimport { Divider } from '../divider';\nimport { CheckIconOutline, ChevronRightIconOutline } from '../icons';\nimport { placementTranslation } from '../popover';\nimport { useNeedleTheme } from '../theme';\nimport type {\n CategoryItemProps,\n MenuGroupProps,\n MenuItemComponentProps,\n MenuItemProps,\n MenuItemsProps,\n MenuProps,\n NestedMenuItemProps,\n RadioItemProps,\n} from './menu-types';\n\nconst MenuContext = createContext<{\n getItemProps: (\n userProps?: React.HTMLProps<HTMLElement>,\n ) => Record<string, unknown>;\n activeIndex: number | null;\n setActiveIndex: React.Dispatch<React.SetStateAction<number | null>>;\n setHasFocusInside: React.Dispatch<React.SetStateAction<boolean>>;\n isOpen: boolean;\n}>({\n activeIndex: null,\n getItemProps: () => ({}),\n isOpen: false,\n // oxlint-disable-next-line @typescript-eslint/no-empty-function\n setActiveIndex: () => {},\n // oxlint-disable-next-line @typescript-eslint/no-empty-function\n setHasFocusInside: () => {},\n});\n\nconst MenuWrapper = (props: React.ComponentProps<typeof MenuComponent>) => {\n const parentId = useFloatingParentNodeId();\n\n if (parentId === null) {\n return (\n <FloatingTree>\n <MenuComponent {...props} isRoot />\n </FloatingTree>\n );\n }\n\n return <MenuComponent {...props} />;\n};\n\nconst MenuComponent = <T extends React.ElementType = 'div'>({\n children,\n isOpen: controlledOpen,\n onClose,\n isRoot,\n anchorRef,\n as,\n className,\n placement,\n minWidth,\n title,\n isDisabled,\n description,\n icon,\n isPortaled = true,\n portalTarget,\n htmlAttributes,\n strategy,\n ref: forwardedRef,\n style,\n}: PolymorphicCommonProps<T, MenuProps>) => {\n const [isOpen, setIsOpen] = useState(false);\n const [hasFocusInside, setHasFocusInside] = useState(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n\n const elementsRef = useRef<Array<HTMLButtonElement | null>>([]);\n const labelsRef = useRef<Array<string | null>>([]);\n const parent = useContext(MenuContext);\n\n const isInsideDialog = useIsInsideDialog();\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const parentId = useFloatingParentNodeId();\n const item = useListItem();\n const { themeClassName } = useNeedleTheme();\n useEffect(() => {\n if (controlledOpen === undefined) {\n return;\n }\n setIsOpen(controlledOpen);\n }, [controlledOpen]);\n\n useEffect(() => {\n if (isOpen) {\n setActiveIndex(0);\n }\n }, [isOpen]);\n\n const Component = as ?? 'div';\n\n const isNested = parentId !== null;\n\n const defaultPlacement = isNested ? 'right-start' : 'bottom-start';\n\n const { floatingStyles, refs, context } = useFloating<HTMLButtonElement>({\n elements: {\n reference: anchorRef?.current,\n },\n middleware: [\n offset({\n alignmentAxis: isNested ? -4 : 0,\n mainAxis: isNested ? 0 : 4,\n }),\n ...(isNested ? [shift()] : []),\n flip(\n isNested\n ? {\n fallbackPlacements: ['left-start', 'bottom-start', 'top-start'],\n fallbackStrategy: 'bestFit',\n }\n : { fallbackPlacements: ['left-start', 'right-start'] },\n ),\n shift(),\n ],\n nodeId,\n onOpenChange: (open, event) => {\n if (controlledOpen === undefined) {\n setIsOpen(open);\n }\n\n if (!open) {\n if (event instanceof PointerEvent) {\n onClose?.(event, { type: 'backdropClick' });\n } else if (event instanceof KeyboardEvent) {\n onClose?.(event, { type: 'escapeKeyDown' });\n } else if (event instanceof FocusEvent) {\n onClose?.(event, { type: 'focusOut' });\n }\n }\n },\n open: isOpen,\n placement: placement ? placementTranslation[placement] : defaultPlacement,\n strategy: strategy ?? (isInsideDialog ? 'fixed' : 'absolute'),\n whileElementsMounted: autoUpdate,\n });\n\n const hover = useHover(context, {\n delay: { open: 75 },\n enabled: isNested,\n handleClose: safePolygon({ blockPointerEvents: true }),\n });\n const click = useClick(context, {\n event: 'mousedown',\n ignoreMouse: isNested,\n toggle: !isNested,\n });\n const role = useRole(context, { role: 'menu' });\n const dismiss = useDismiss(context, { bubbles: true });\n const listNavigation = useListNavigation(context, {\n activeIndex,\n listRef: elementsRef,\n nested: isNested,\n onNavigate: setActiveIndex,\n });\n const typeahead = useTypeahead(context, {\n activeIndex,\n listRef: labelsRef,\n onMatch: isOpen ? setActiveIndex : undefined,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions(\n [hover, click, role, dismiss, listNavigation, typeahead],\n );\n\n // Event emitter allows you to communicate across tree components.\n // This effect closes all menus when an item gets clicked anywhere\n // in the tree.\n useEffect(() => {\n if (!tree) {\n return;\n }\n\n function handleTreeClick(data: { id?: string }) {\n if (controlledOpen === undefined) {\n setIsOpen(false);\n }\n onClose?.(undefined, { id: data?.id, type: 'itemClick' });\n }\n\n function onSubMenuOpen(event: { nodeId: string; parentId: string }) {\n if (event.nodeId !== nodeId && event.parentId === parentId) {\n if (controlledOpen === undefined) {\n setIsOpen(false);\n }\n onClose?.(undefined, { type: 'itemClick' });\n }\n }\n\n tree.events.on('click', handleTreeClick);\n tree.events.on('menuopen', onSubMenuOpen);\n\n return () => {\n tree.events.off('click', handleTreeClick);\n tree.events.off('menuopen', onSubMenuOpen);\n };\n }, [tree, nodeId, parentId, onClose, controlledOpen]);\n\n useEffect(() => {\n if (isOpen && tree) {\n tree.events.emit('menuopen', { nodeId, parentId });\n }\n }, [tree, isOpen, nodeId, parentId]);\n\n // Workaround for floating-ui bug where Shift+Tab doesn't trigger\n // closeOnFocusOut.\n // We detect Shift+Tab and check after guards redirect focus whether\n // focus has actually left the floating element.\n // TODO: check every now and then if floating ui addresses this\n const handleShiftTabClose = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (event.key === 'Tab' && event.shiftKey) {\n requestAnimationFrame(() => {\n const floatingEl = refs.floating.current;\n if (floatingEl && !floatingEl.contains(document.activeElement)) {\n if (controlledOpen === undefined) {\n setIsOpen(false);\n }\n onClose?.(undefined, { type: 'focusOut' });\n }\n });\n }\n },\n [controlledOpen, onClose, refs],\n );\n\n const menuClasses = classNames('ndl-menu', themeClassName, className);\n const ref = useMergeRefs([refs.setReference, item.ref, forwardedRef]);\n\n return (\n <FloatingNode id={nodeId}>\n {isRoot !== true && (\n <NestedMenuItem\n ref={ref}\n className={isNested ? 'MenuItem' : 'RootMenu'}\n isDisabled={isDisabled}\n style={style}\n htmlAttributes={{\n 'data-focus-inside': hasFocusInside ? '' : undefined,\n 'data-nested': isNested ? '' : undefined,\n 'data-open': isOpen ? '' : undefined,\n role: isNested ? 'menuitem' : undefined,\n tabIndex: !isNested\n ? undefined\n : parent.activeIndex === item.index\n ? 0\n : -1,\n ...htmlAttributes,\n ...getReferenceProps(\n parent.getItemProps({\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n htmlAttributes?.onFocus?.(event);\n setHasFocusInside(false);\n parent.setHasFocusInside(true);\n },\n }),\n ),\n }}\n title={title}\n description={description}\n leadingVisual={icon}\n />\n )}\n <MenuContext.Provider\n value={{\n activeIndex,\n getItemProps,\n isOpen: isDisabled === true ? false : isOpen,\n setActiveIndex,\n setHasFocusInside,\n }}\n >\n <FloatingList elementsRef={elementsRef} labelsRef={labelsRef}>\n {isOpen && (\n <ConditionalWrap\n shouldWrap={isPortaled}\n wrap={(wrapChildren) => (\n <FloatingPortal root={portalTarget}>\n {wrapChildren}\n </FloatingPortal>\n )}\n >\n <FloatingFocusManager\n context={context}\n modal={false}\n initialFocus={0}\n returnFocus={!isNested}\n closeOnFocusOut={true}\n guards={true}\n >\n <Component\n ref={refs.setFloating}\n className={menuClasses}\n style={{\n minWidth:\n minWidth !== undefined ? `${minWidth}px` : undefined,\n ...floatingStyles,\n ...style,\n }}\n {...getFloatingProps({\n onKeyDown: handleShiftTabClose,\n })}\n >\n {children}\n </Component>\n </FloatingFocusManager>\n </ConditionalWrap>\n )}\n </FloatingList>\n </MenuContext.Provider>\n </FloatingNode>\n );\n};\n\n/**\n * @internal This is used to build the menu item components. Do not export this component.\n */\nconst MenuItemComponent = <T extends React.ElementType = 'button'>({\n title,\n leadingContent,\n trailingContent,\n preLeadingContent,\n description,\n isDisabled,\n as,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, MenuItemComponentProps>) => {\n const classes = classNames(`ndl-menu-item`, className, {\n 'ndl-disabled': isDisabled,\n });\n\n const Component = as ?? 'button';\n\n return (\n <Component\n className={classes}\n ref={ref}\n type=\"button\"\n role=\"menuitem\"\n disabled={isDisabled}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n <div className=\"ndl-menu-item-inner\">\n {Boolean(preLeadingContent) && (\n <div className=\"ndl-menu-item-pre-leading-content\">\n {preLeadingContent}\n </div>\n )}\n {Boolean(leadingContent) && (\n <div className=\"ndl-menu-item-leading-content\">{leadingContent}</div>\n )}\n\n <div className=\"ndl-menu-item-title-wrapper\">\n <div className=\"ndl-menu-item-title\">{title}</div>\n {Boolean(description) && (\n <div className=\"ndl-menu-item-description\">{description}</div>\n )}\n </div>\n\n {Boolean(trailingContent) && (\n <div className=\"ndl-menu-item-trailing-content\">\n {trailingContent}\n </div>\n )}\n </div>\n </Component>\n );\n};\n\nconst MenuItem = <T extends React.ElementType = 'button'>({\n title,\n className,\n style,\n leadingVisual,\n trailingContent,\n description,\n isDisabled,\n as,\n onClick,\n onFocus,\n htmlAttributes,\n id,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, MenuItemProps>) => {\n const menu = useContext(MenuContext);\n const itemLabel = typeof title === 'string' ? title : undefined;\n const item = useListItem({ label: isDisabled === true ? null : itemLabel });\n const tree = useFloatingTree();\n const isActive = item.index === menu.activeIndex;\n\n const mergedRefs = useMergeRefs([item.ref, ref]);\n\n return (\n <MenuItemComponent\n as={as ?? 'button'}\n style={style}\n className={className}\n ref={mergedRefs}\n title={title}\n description={description}\n leadingContent={leadingVisual}\n trailingContent={trailingContent}\n isDisabled={isDisabled}\n htmlAttributes={{\n ...htmlAttributes,\n tabIndex: isActive ? 0 : -1,\n ...menu.getItemProps({\n id: id,\n onClick(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n tree?.events.emit('click', { id });\n },\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n onFocus?.(event);\n menu.setHasFocusInside(true);\n },\n }),\n }}\n {...restProps}\n />\n );\n};\n\nconst NestedMenuItem = <T extends React.ElementType = 'button'>({\n title,\n isDisabled,\n description,\n leadingVisual,\n as,\n onFocus,\n onClick,\n className,\n style,\n htmlAttributes,\n id,\n ref,\n}: PolymorphicCommonProps<T, NestedMenuItemProps>) => {\n const menu = useContext(MenuContext);\n const itemLabel = typeof title === 'string' ? title : undefined;\n const item = useListItem({ label: isDisabled === true ? null : itemLabel });\n const isActive = item.index === menu.activeIndex;\n const mergedRefs = useMergeRefs([item.ref, ref]);\n\n return (\n <MenuItemComponent\n as={as ?? 'button'}\n style={style}\n className={className}\n ref={mergedRefs}\n title={title}\n description={description}\n leadingContent={leadingVisual}\n trailingContent={\n <ChevronRightIconOutline className=\"ndl-menu-item-chevron\" />\n }\n isDisabled={isDisabled}\n htmlAttributes={{\n ...htmlAttributes,\n tabIndex: isActive ? 0 : -1,\n ...menu.getItemProps({\n onClick(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n },\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n onFocus?.(event);\n menu.setHasFocusInside(true);\n },\n onTouchStart() {\n menu.setHasFocusInside(true);\n },\n }),\n id: id,\n }}\n />\n );\n};\n\nconst CategoryItem = <T extends React.ElementType = 'button'>({\n children,\n className,\n style,\n as,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, CategoryItemProps>) => {\n const classes = classNames('ndl-menu-category-item', className);\n const Component: React.ElementType = as ?? 'div';\n return (\n <Component\n className={classes}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </Component>\n );\n};\n\nconst RadioItem = <T extends React.ElementType = 'button'>({\n title,\n leadingVisual,\n trailingContent,\n description,\n isDisabled,\n isChecked = false,\n onClick,\n onFocus,\n className,\n style,\n as,\n id,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, RadioItemProps>) => {\n const menu = useContext(MenuContext);\n const itemLabel = typeof title === 'string' ? title : undefined;\n const item = useListItem({ label: isDisabled === true ? null : itemLabel });\n const tree = useFloatingTree();\n const isActive = item.index === menu.activeIndex;\n\n const mergedRefs = useMergeRefs([item.ref, ref]);\n const classes = classNames('ndl-menu-radio-item', className, {\n 'ndl-checked': isChecked,\n });\n\n return (\n <MenuItemComponent\n as={as ?? 'button'}\n style={style}\n className={classes}\n ref={mergedRefs}\n title={title}\n description={description}\n preLeadingContent={\n isChecked ? (\n <CheckIconOutline className=\"n-size-5 n-shrink-0 n-self-center\" />\n ) : null\n }\n leadingContent={leadingVisual}\n trailingContent={trailingContent}\n isDisabled={isDisabled}\n htmlAttributes={{\n ...htmlAttributes,\n 'aria-checked': isChecked,\n role: 'menuitemradio',\n tabIndex: isActive ? 0 : -1,\n ...menu.getItemProps({\n id: id,\n onClick(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n tree?.events.emit('click', { id });\n },\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n onFocus?.(event);\n menu.setHasFocusInside(true);\n },\n }),\n }}\n {...restProps}\n />\n );\n};\n\nconst MenuItems = <T extends React.ElementType = 'div'>({\n as,\n children,\n className,\n htmlAttributes,\n style,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, MenuItemsProps>) => {\n const classes = classNames('ndl-menu-items', className);\n const Component: React.ElementType = as ?? 'div';\n return (\n <Component\n className={classes}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </Component>\n );\n};\n\nconst MenuGroup = ({\n children,\n className,\n htmlAttributes,\n style,\n ref,\n ...restProps\n}: CommonProps<'div', MenuGroupProps>) => {\n const classes = classNames('ndl-menu-group', className);\n return (\n <div\n className={classes}\n style={style}\n ref={ref}\n role=\"group\"\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\nconst Menu = Object.assign(MenuWrapper, {\n CategoryItem: CategoryItem,\n Divider: Divider,\n Group: MenuGroup,\n Item: MenuItem,\n /**\n * @deprecated Use Menu.Group instead if you want to group items together. If not, you can just omit this component in your implementation.\n */\n Items: MenuItems,\n RadioItem: RadioItem,\n});\nexport { Menu };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-types.js","sourceRoot":"","sources":["../../../src/menu/menu-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { type Popover } from '../popover';\n\nexport interface MenuProps {\n /** Whether the menu is open or closed (uncontrolled when omitted) */\n isOpen?: boolean;\n /** Callback function that is called when the menu closes */\n onClose?: (\n event: Event | undefined,\n closeReason: {\n type: 'backdropClick' | 'itemClick' | 'escapeKeyDown' | 'focusOut';\n id?: string;\n },\n ) => void;\n /** Anchor element ref for positioning */\n anchorRef?: React.RefObject<HTMLElement | null>;\n /** Content displayed inside the menu */\n children?: React.ReactNode;\n /** Whether the menu is a root menu instance. This is set internally by the component based on nesting */\n isRoot?: boolean;\n /** The placement of the floating element is determined by two sets of words. The first set of words specifies the point on the anchor element where the floating element will be attached. The second set of coordinates specifies the point on the floating element that will attach to the anchor element.*/\n placement?: React.ComponentProps<typeof Popover>['placement'];\n /** Minimum width in pixels for the menu component */\n minWidth?: number;\n /** Optional title for nested trigger rendering */\n title?: string;\n /** Whether the menu trigger is disabled */\n isDisabled?: boolean;\n /** Optional description for nested trigger rendering */\n description?: React.ReactNode;\n /** Optional icon for nested trigger rendering */\n icon?: React.ReactNode;\n /** Whether the menu should be wrapped in a floating portal */\n isPortaled?: boolean;\n /** Portal target element (defaults to `document.body`) */\n portalTarget?: HTMLElement | null;\n /** Positioning strategy used by Floating UI */\n strategy?: 'absolute' | 'fixed';\n}\n\nexport interface MenuItemProps {\n /** Title of the menu item component */\n title: React.ReactNode;\n /** Leading icon for the menu item component */\n leadingVisual?: React.ReactNode;\n trailingContent?: React.ReactNode;\n /** Supporting text below title */\n description?: React.ReactNode;\n /** Whether the menu item is disabled */\n isDisabled?: boolean;\n /** Callback function that is called when the menu item is clicked and it closes the menu tree */\n onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n /** Callback function that is called when the menu item is focused */\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void;\n /** Unique identifier for the menu item */\n id?: string;\n /** Content displayed inside the menu item component */\n children?: React.ReactNode;\n}\n\nexport type NestedMenuItemProps = Omit<\n MenuItemProps,\n 'children' | 'trailingContent'\n>;\n\nexport interface MenuItemsProps {\n /** Content displayed inside the menu items component */\n children?: React.ReactNode;\n}\n\nexport interface CategoryItemProps {\n /** Content displayed inside the category item component */\n children?: React.ReactNode;\n}\n\nexport type MenuItemComponentProps = {\n title?: React.ReactNode;\n description?: React.ReactNode;\n className?: string;\n leadingContent?: React.ReactNode;\n trailingContent?: React.ReactNode;\n isDisabled?: boolean;\n preLeadingContent?: React.ReactNode;\n};\n\nexport type RadioItemProps = MenuItemProps & {\n /** Whether the radio item is checked. Marks the item as aria-checked. */\n isChecked?: boolean;\n};\n\nexport type MenuGroupProps = {\n /** Content displayed inside the group. */\n children?: React.ReactNode;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"menu-types.js","sourceRoot":"","sources":["../../../src/menu/menu-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { type Popover } from '../popover';\n\nexport interface MenuProps {\n /** Whether the menu is open or closed (uncontrolled when omitted) */\n isOpen?: boolean;\n /** Callback function that is called when the menu closes */\n onClose?: (\n event: Event | undefined,\n closeReason: {\n type: 'backdropClick' | 'itemClick' | 'escapeKeyDown' | 'focusOut';\n id?: string;\n },\n ) => void;\n /** Anchor element ref for positioning */\n anchorRef?: React.RefObject<HTMLElement | null>;\n /** Content displayed inside the menu */\n children?: React.ReactNode;\n /** Whether the menu is a root menu instance. This is set internally by the component based on nesting */\n isRoot?: boolean;\n /** The placement of the floating element is determined by two sets of words. The first set of words specifies the point on the anchor element where the floating element will be attached. The second set of coordinates specifies the point on the floating element that will attach to the anchor element.*/\n placement?: React.ComponentProps<typeof Popover>['placement'];\n /** Minimum width in pixels for the menu component */\n minWidth?: number;\n /** Optional title for nested trigger rendering */\n title?: string;\n /** Whether the menu trigger is disabled */\n isDisabled?: boolean;\n /** Optional description for nested trigger rendering */\n description?: React.ReactNode;\n // TODO v5: rename to leadingVisual\n /** Optional icon for nested trigger rendering */\n icon?: React.ReactNode;\n /** Whether the menu should be wrapped in a floating portal */\n isPortaled?: boolean;\n /** Portal target element (defaults to `document.body`) */\n portalTarget?: HTMLElement | null;\n /** Positioning strategy used by Floating UI */\n strategy?: 'absolute' | 'fixed';\n}\n\nexport interface MenuItemProps {\n /** Title of the menu item component */\n title: React.ReactNode;\n /** Leading icon for the menu item component */\n leadingVisual?: React.ReactNode;\n trailingContent?: React.ReactNode;\n /** Supporting text below title */\n description?: React.ReactNode;\n /** Whether the menu item is disabled */\n isDisabled?: boolean;\n /** Callback function that is called when the menu item is clicked and it closes the menu tree */\n onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n /** Callback function that is called when the menu item is focused */\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void;\n /** Unique identifier for the menu item */\n id?: string;\n /** Content displayed inside the menu item component */\n children?: React.ReactNode;\n}\n\nexport type NestedMenuItemProps = Omit<\n MenuItemProps,\n 'children' | 'trailingContent'\n>;\n\nexport interface MenuItemsProps {\n /** Content displayed inside the menu items component */\n children?: React.ReactNode;\n}\n\nexport interface CategoryItemProps {\n /** Content displayed inside the category item component */\n children?: React.ReactNode;\n}\n\nexport type MenuItemComponentProps = {\n title?: React.ReactNode;\n description?: React.ReactNode;\n className?: string;\n leadingContent?: React.ReactNode;\n trailingContent?: React.ReactNode;\n isDisabled?: boolean;\n preLeadingContent?: React.ReactNode;\n};\n\nexport type RadioItemProps = MenuItemProps & {\n /** Whether the radio item is checked. Marks the item as aria-checked. */\n isChecked?: boolean;\n};\n\nexport type MenuGroupProps = {\n /** Content displayed inside the group. */\n children?: React.ReactNode;\n};\n"]}
|
|
@@ -43,6 +43,53 @@ const checkbox_1 = require("../checkbox");
|
|
|
43
43
|
const icons_1 = require("../icons");
|
|
44
44
|
const tag_1 = require("../tag");
|
|
45
45
|
const theme_1 = require("../theme");
|
|
46
|
+
/**
|
|
47
|
+
* React-select triggers control/indicator interactions on mouseDown which breaks WCAG 2.5.2 Pointer Cancellation.
|
|
48
|
+
* This helper shifts mouseDown to mouseUp to allow users to cancel by dragging away.
|
|
49
|
+
*/
|
|
50
|
+
const shiftMouseDownToMouseUp = (innerProps, stopPropagation = false) => {
|
|
51
|
+
const baseProps = innerProps !== null && innerProps !== void 0 ? innerProps : {};
|
|
52
|
+
const maybeStopPropagation = (e) => stopPropagation && e.stopPropagation();
|
|
53
|
+
return Object.assign(Object.assign({}, baseProps), { onMouseDown: (e) => {
|
|
54
|
+
e.preventDefault();
|
|
55
|
+
maybeStopPropagation(e);
|
|
56
|
+
}, onMouseUp: (e) => {
|
|
57
|
+
var _a, _b;
|
|
58
|
+
(_a = baseProps.onMouseUp) === null || _a === void 0 ? void 0 : _a.call(baseProps, e);
|
|
59
|
+
(_b = baseProps.onMouseDown) === null || _b === void 0 ? void 0 : _b.call(baseProps, e);
|
|
60
|
+
maybeStopPropagation(e);
|
|
61
|
+
}, onTouchEnd: (e) => {
|
|
62
|
+
var _a, _b;
|
|
63
|
+
(_a = baseProps.onTouchEnd) === null || _a === void 0 ? void 0 : _a.call(baseProps, e);
|
|
64
|
+
(_b = baseProps.onMouseDown) === null || _b === void 0 ? void 0 : _b.call(baseProps, e);
|
|
65
|
+
maybeStopPropagation(e);
|
|
66
|
+
}, onTouchStart: (e) => {
|
|
67
|
+
e.preventDefault();
|
|
68
|
+
maybeStopPropagation(e);
|
|
69
|
+
} });
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* React-select triggers option selection on click which fires on mouseDown.
|
|
73
|
+
* This helper shifts the click handler to mouseUp/touchEnd to allow users to cancel by dragging away.
|
|
74
|
+
*/
|
|
75
|
+
const shiftOptionClickToMouseUp = (innerProps) => {
|
|
76
|
+
const baseProps = innerProps !== null && innerProps !== void 0 ? innerProps : {};
|
|
77
|
+
return Object.assign(Object.assign({}, baseProps), {
|
|
78
|
+
// Remove onClick to prevent double-execution (onMouseUp already calls it, and browser would fire click after mouseup)
|
|
79
|
+
onClick: undefined, onMouseDown: (event) => {
|
|
80
|
+
event.preventDefault();
|
|
81
|
+
}, onMouseUp: (event) => {
|
|
82
|
+
var _a, _b;
|
|
83
|
+
(_a = baseProps.onMouseUp) === null || _a === void 0 ? void 0 : _a.call(baseProps, event);
|
|
84
|
+
(_b = baseProps.onClick) === null || _b === void 0 ? void 0 : _b.call(baseProps, event);
|
|
85
|
+
}, onTouchEnd: (event) => {
|
|
86
|
+
var _a, _b;
|
|
87
|
+
(_a = baseProps.onTouchEnd) === null || _a === void 0 ? void 0 : _a.call(baseProps, event);
|
|
88
|
+
(_b = baseProps.onClick) === null || _b === void 0 ? void 0 : _b.call(baseProps, event);
|
|
89
|
+
}, onTouchStart: (event) => {
|
|
90
|
+
event.preventDefault();
|
|
91
|
+
} });
|
|
92
|
+
};
|
|
46
93
|
const DropdownIndicatorCurrying = ({ size, }) => function Component(props) {
|
|
47
94
|
const classes = (0, classnames_1.default)('ndl-select-dropdown-indicator', {
|
|
48
95
|
'ndl-disabled': props.isDisabled,
|
|
@@ -52,7 +99,9 @@ const DropdownIndicatorCurrying = ({ size, }) => function Component(props) {
|
|
|
52
99
|
'ndl-medium': size === 'medium',
|
|
53
100
|
'ndl-small': size === 'small',
|
|
54
101
|
});
|
|
55
|
-
|
|
102
|
+
// stopPropagation so that we prevent the control from also toggling the menu (double-toggle)
|
|
103
|
+
const indicatorInnerProps = shiftMouseDownToMouseUp(props.innerProps, true);
|
|
104
|
+
return ((0, jsx_runtime_1.jsx)(react_select_1.components.DropdownIndicator, Object.assign({}, props, { className: classes, innerProps: indicatorInnerProps, children: (0, jsx_runtime_1.jsx)(icons_1.ChevronDownIconOutline, { className: "ndl-select-icon", style: {
|
|
56
105
|
transform: props.selectProps.menuIsOpen
|
|
57
106
|
? 'rotate(180deg)'
|
|
58
107
|
: 'rotate(0deg)',
|
|
@@ -61,7 +110,7 @@ const DropdownIndicatorCurrying = ({ size, }) => function Component(props) {
|
|
|
61
110
|
};
|
|
62
111
|
exports.DropdownIndicatorCurrying = DropdownIndicatorCurrying;
|
|
63
112
|
const CustomClearIndication = ({ size, }) => function Component(_a) {
|
|
64
|
-
var { className } = _a, restProps = __rest(_a, ["className"]);
|
|
113
|
+
var { className, innerProps } = _a, restProps = __rest(_a, ["className", "innerProps"]);
|
|
65
114
|
const classes = (0, classnames_1.default)('ndl-select-clear', className, {
|
|
66
115
|
'ndl-focused': restProps.isFocused,
|
|
67
116
|
'ndl-is-multi': restProps.isMulti,
|
|
@@ -69,7 +118,26 @@ const CustomClearIndication = ({ size, }) => function Component(_a) {
|
|
|
69
118
|
'ndl-medium': size === 'medium',
|
|
70
119
|
'ndl-small': size === 'small',
|
|
71
120
|
});
|
|
72
|
-
|
|
121
|
+
const handleClear = () => {
|
|
122
|
+
var _a;
|
|
123
|
+
(_a = restProps.clearValue) === null || _a === void 0 ? void 0 : _a.call(restProps);
|
|
124
|
+
};
|
|
125
|
+
// Stop propagation to prevent react-select's keyboard handling.
|
|
126
|
+
const handleKeyDown = (event) => {
|
|
127
|
+
var _a, _b;
|
|
128
|
+
if (event.key === '') {
|
|
129
|
+
event.preventDefault();
|
|
130
|
+
}
|
|
131
|
+
event.stopPropagation();
|
|
132
|
+
(_b = (_a = event.nativeEvent).stopImmediatePropagation) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
133
|
+
};
|
|
134
|
+
// Prevent react-select's default clear-on-mousedown/touchend behavior.
|
|
135
|
+
const preventAndStop = (e) => {
|
|
136
|
+
e.preventDefault();
|
|
137
|
+
e.stopPropagation();
|
|
138
|
+
};
|
|
139
|
+
const safeInnerProps = Object.assign(Object.assign({}, innerProps), { 'aria-hidden': undefined, onMouseDown: preventAndStop, onTouchEnd: preventAndStop });
|
|
140
|
+
return ((0, jsx_runtime_1.jsxs)(react_select_1.components.ClearIndicator, Object.assign({ className: classes, innerProps: safeInnerProps }, restProps, { children: [(0, jsx_runtime_1.jsx)("button", { type: "button", className: "ndl-select-clear-button", onClick: handleClear, onKeyDown: handleKeyDown, "aria-label": "Clear selection", children: (0, jsx_runtime_1.jsx)(icons_1.XMarkIconOutline, {}) }), (0, jsx_runtime_1.jsx)("div", { className: "ndl-select-divider" })] })));
|
|
73
141
|
};
|
|
74
142
|
exports.CustomClearIndication = CustomClearIndication;
|
|
75
143
|
const CustomMultiValue = ({ size, }) => function Component(_a) {
|
|
@@ -118,7 +186,8 @@ const CustomControl = ({ size, isClean, errorText, }) => function Component(_a)
|
|
|
118
186
|
'ndl-medium': size === 'medium',
|
|
119
187
|
'ndl-small': size === 'small',
|
|
120
188
|
});
|
|
121
|
-
|
|
189
|
+
const controlInnerProps = shiftMouseDownToMouseUp(restProps.innerProps);
|
|
190
|
+
return ((0, jsx_runtime_1.jsx)(react_select_1.components.Control, Object.assign({}, restProps, { className: classes, innerProps: controlInnerProps, children: children })));
|
|
122
191
|
};
|
|
123
192
|
exports.CustomControl = CustomControl;
|
|
124
193
|
const CustomIndicatorsContainer = ({ size, }) => function Component(_a) {
|
|
@@ -215,19 +284,24 @@ const CustomOption = ({ size, }) => function Component(_a) {
|
|
|
215
284
|
'ndl-selected': restProps.isSelected,
|
|
216
285
|
'ndl-small': size === 'small',
|
|
217
286
|
});
|
|
218
|
-
|
|
287
|
+
const optionInnerProps = shiftOptionClickToMouseUp(restProps.innerProps);
|
|
288
|
+
return ((0, jsx_runtime_1.jsxs)(react_select_1.components.Option, Object.assign({}, restProps, { className: classes, innerProps: optionInnerProps, children: [restProps.isMulti === true && ((0, jsx_runtime_1.jsx)(checkbox_1.Checkbox, { isChecked: restProps.isSelected, ariaLabel: restProps.label, isDisabled: restProps.isDisabled, htmlAttributes: {
|
|
219
289
|
'aria-hidden': true,
|
|
220
290
|
disabled: true,
|
|
221
291
|
onPointerDown: (e) => {
|
|
222
|
-
var _a, _b;
|
|
223
292
|
e.preventDefault();
|
|
293
|
+
},
|
|
294
|
+
onPointerUp: (e) => {
|
|
295
|
+
var _a, _b;
|
|
224
296
|
(_b = (_a = restProps.innerProps).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
225
297
|
},
|
|
226
|
-
|
|
298
|
+
onTouchEnd: (e) => {
|
|
227
299
|
var _a, _b;
|
|
228
|
-
e.preventDefault();
|
|
229
300
|
(_b = (_a = restProps.innerProps).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
230
301
|
},
|
|
302
|
+
onTouchStart: (e) => {
|
|
303
|
+
e.preventDefault();
|
|
304
|
+
},
|
|
231
305
|
role: 'presentation',
|
|
232
306
|
tabIndex: -1,
|
|
233
307
|
} })), children] })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overrides.js","sourceRoot":"","sources":["../../../src/select/Overrides.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { tokens } from '@neo4j-ndl/base';\nimport classNames from 'classnames';\nimport {\n type ClearIndicatorProps,\n components,\n type ControlProps,\n type DropdownIndicatorProps,\n type GroupBase,\n type IndicatorsContainerProps,\n type InputProps,\n type MenuProps,\n type MultiValueProps,\n type OptionProps,\n type PlaceholderProps,\n type SingleValueProps,\n type ValueContainerProps,\n} from 'react-select';\nimport {\n type MenuListProps,\n type MenuPortalProps,\n} from 'react-select/dist/declarations/src/components/Menu';\n\nimport { Checkbox } from '../checkbox';\nimport { ChevronDownIconOutline, XMarkIconOutline } from '../icons';\nimport { Tag } from '../tag';\nimport { useNeedleTheme } from '../theme';\nimport { type SelectOverrideCustomProps } from './types';\n\nexport const DropdownIndicatorCurrying = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component(\n props: DropdownIndicatorProps<OptionType, IsMulti, GroupType>,\n ) {\n const classes = classNames('ndl-select-dropdown-indicator', {\n 'ndl-disabled': props.isDisabled,\n 'ndl-focused': props.isFocused,\n 'ndl-is-multi': props.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n\n return (\n <components.DropdownIndicator {...props} className={classes}>\n <ChevronDownIconOutline\n className=\"ndl-select-icon\"\n style={{\n transform: props.selectProps.menuIsOpen\n ? 'rotate(180deg)'\n : 'rotate(0deg)',\n transitionDuration: tokens.motion.duration.quick,\n }}\n />\n </components.DropdownIndicator>\n );\n };\n\nexport const CustomClearIndication = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n className,\n ...restProps\n }: ClearIndicatorProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames('ndl-select-clear', className, {\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.ClearIndicator {...restProps} className={classes}>\n <div>\n <XMarkIconOutline />\n <div className=\"ndl-select-divider\" />\n </div>\n </components.ClearIndicator>\n );\n };\n\nexport const CustomMultiValue = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: MultiValueProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames('ndl-select-multi-value', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.MultiValueContainer\n {...restProps}\n innerProps={{\n className: classes,\n }}\n >\n <Tag\n size={size}\n onClick={(e) => {\n e.preventDefault();\n restProps.removeProps.onClick?.(\n e as unknown as React.MouseEvent<HTMLDivElement, MouseEvent>,\n );\n }}\n htmlAttributes={{\n onMouseDown: (e) => e.preventDefault(),\n }}\n >\n {children}\n </Tag>\n </components.MultiValueContainer>\n );\n };\n\nexport const CustomPlaceholder = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: PlaceholderProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames('ndl-select-placeholder', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.Placeholder {...restProps} className={classes}>\n {children}\n </components.Placeholder>\n );\n };\n\nexport const CustomControl = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n isClean,\n errorText,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ children, className, ...restProps }: ControlProps) {\n const classes = classNames('ndl-select-control', className, {\n 'ndl-clean': isClean,\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-has-error': !!errorText,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n\n return (\n <components.Control {...restProps} className={classes}>\n {children}\n </components.Control>\n );\n };\n\nexport const CustomIndicatorsContainer = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: IndicatorsContainerProps) {\n const classes = classNames('ndl-select-indicators-container', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.IndicatorsContainer {...restProps} className={classes}>\n {children}\n </components.IndicatorsContainer>\n );\n };\n\nexport const CustomValueContainer = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: ValueContainerProps) {\n const classes = classNames('ndl-select-value-container', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.ValueContainer {...restProps} className={classes}>\n {children}\n </components.ValueContainer>\n );\n };\n\nexport const CustomInput = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ className, ...restProps }: InputProps) {\n const classes = classNames('ndl-select-input', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return <components.Input {...restProps} className={classes} />;\n };\n\nexport const CustomSingleValue = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ className, ...restProps }: SingleValueProps) {\n const classes = classNames('ndl-select-single-value', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return <components.SingleValue {...restProps} className={classes} />;\n };\n\n/** Overrides that are part of the popover menu */\n\nexport const CustomMenu = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ children, className, ...restProps }: MenuProps) {\n const { themeClassName } = useNeedleTheme();\n const classes = classNames('ndl-select-menu', className, themeClassName, {\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.Menu {...restProps} className={classes}>\n {children}\n </components.Menu>\n );\n };\n\nexport const CustomMenuPortal = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: MenuPortalProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames(className, 'ndl-select-menu-portal', {\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.MenuPortal {...restProps} className={classes}>\n {children}\n </components.MenuPortal>\n );\n };\n\nexport const CustomMenuList = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: MenuListProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames(className, 'ndl-select-menu-list', {\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.MenuList {...restProps} className={classes}>\n {children}\n </components.MenuList>\n );\n };\n\nexport const CustomOption = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: OptionProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames(className, 'ndl-select-option', {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-selected': restProps.isSelected,\n 'ndl-small': size === 'small',\n });\n return (\n <components.Option {...restProps} className={classes}>\n {restProps.isMulti === true && (\n <Checkbox\n isChecked={restProps.isSelected}\n ariaLabel={restProps.label}\n isDisabled={restProps.isDisabled}\n htmlAttributes={{\n 'aria-hidden': true,\n disabled: true,\n onPointerDown: (e) => {\n e.preventDefault();\n restProps.innerProps.onClick?.(e);\n },\n onTouchStart: (e) => {\n e.preventDefault();\n restProps.innerProps.onClick?.(\n e as unknown as React.MouseEvent<HTMLDivElement, MouseEvent>,\n );\n },\n role: 'presentation',\n tabIndex: -1,\n }}\n />\n )}\n {children}\n </components.Option>\n );\n };\n"]}
|
|
1
|
+
{"version":3,"file":"Overrides.js","sourceRoot":"","sources":["../../../src/select/Overrides.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { tokens } from '@neo4j-ndl/base';\nimport classNames from 'classnames';\nimport {\n type ClearIndicatorProps,\n components,\n type ControlProps,\n type DropdownIndicatorProps,\n type GroupBase,\n type IndicatorsContainerProps,\n type InputProps,\n type MenuProps,\n type MultiValueProps,\n type OptionProps,\n type PlaceholderProps,\n type SingleValueProps,\n type ValueContainerProps,\n} from 'react-select';\nimport {\n type MenuListProps,\n type MenuPortalProps,\n} from 'react-select/dist/declarations/src/components/Menu';\n\nimport { Checkbox } from '../checkbox';\nimport { ChevronDownIconOutline, XMarkIconOutline } from '../icons';\nimport { Tag } from '../tag';\nimport { useNeedleTheme } from '../theme';\nimport { type SelectOverrideCustomProps } from './types';\n\n/**\n * React-select triggers control/indicator interactions on mouseDown which breaks WCAG 2.5.2 Pointer Cancellation.\n * This helper shifts mouseDown to mouseUp to allow users to cancel by dragging away.\n */\nconst shiftMouseDownToMouseUp = (\n innerProps?: React.HTMLAttributes<HTMLDivElement>,\n stopPropagation = false,\n): React.HTMLAttributes<HTMLDivElement> => {\n const baseProps = innerProps ?? {};\n const maybeStopPropagation = (e: React.SyntheticEvent) =>\n stopPropagation && e.stopPropagation();\n\n return {\n ...baseProps,\n onMouseDown: (e) => {\n e.preventDefault();\n maybeStopPropagation(e);\n },\n onMouseUp: (e) => {\n baseProps.onMouseUp?.(e);\n baseProps.onMouseDown?.(e);\n maybeStopPropagation(e);\n },\n onTouchEnd: (e) => {\n baseProps.onTouchEnd?.(e);\n baseProps.onMouseDown?.(e as unknown as React.MouseEvent<HTMLDivElement>);\n maybeStopPropagation(e);\n },\n onTouchStart: (e) => {\n e.preventDefault();\n maybeStopPropagation(e);\n },\n };\n};\n\n/**\n * React-select triggers option selection on click which fires on mouseDown.\n * This helper shifts the click handler to mouseUp/touchEnd to allow users to cancel by dragging away.\n */\nconst shiftOptionClickToMouseUp = (\n innerProps?: React.HTMLAttributes<HTMLDivElement>,\n): React.HTMLAttributes<HTMLDivElement> => {\n const baseProps = innerProps ?? {};\n\n return {\n ...baseProps,\n // Remove onClick to prevent double-execution (onMouseUp already calls it, and browser would fire click after mouseup)\n onClick: undefined,\n onMouseDown: (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n },\n onMouseUp: (event: React.MouseEvent<HTMLDivElement>) => {\n baseProps.onMouseUp?.(event);\n baseProps.onClick?.(event);\n },\n onTouchEnd: (event: React.TouchEvent<HTMLDivElement>) => {\n baseProps.onTouchEnd?.(event);\n baseProps.onClick?.(event as unknown as React.MouseEvent<HTMLDivElement>);\n },\n onTouchStart: (event: React.TouchEvent<HTMLDivElement>) => {\n event.preventDefault();\n },\n };\n};\n\nexport const DropdownIndicatorCurrying = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component(\n props: DropdownIndicatorProps<OptionType, IsMulti, GroupType>,\n ) {\n const classes = classNames('ndl-select-dropdown-indicator', {\n 'ndl-disabled': props.isDisabled,\n 'ndl-focused': props.isFocused,\n 'ndl-is-multi': props.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n\n // stopPropagation so that we prevent the control from also toggling the menu (double-toggle)\n const indicatorInnerProps = shiftMouseDownToMouseUp(props.innerProps, true);\n\n return (\n <components.DropdownIndicator\n {...props}\n className={classes}\n innerProps={indicatorInnerProps}\n >\n <ChevronDownIconOutline\n className=\"ndl-select-icon\"\n style={{\n transform: props.selectProps.menuIsOpen\n ? 'rotate(180deg)'\n : 'rotate(0deg)',\n transitionDuration: tokens.motion.duration.quick,\n }}\n />\n </components.DropdownIndicator>\n );\n };\n\nexport const CustomClearIndication = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n className,\n innerProps,\n ...restProps\n }: ClearIndicatorProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames('ndl-select-clear', className, {\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n\n const handleClear = () => {\n restProps.clearValue?.();\n };\n\n // Stop propagation to prevent react-select's keyboard handling.\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === '') {\n event.preventDefault();\n }\n event.stopPropagation();\n event.nativeEvent.stopImmediatePropagation?.();\n };\n\n // Prevent react-select's default clear-on-mousedown/touchend behavior.\n const preventAndStop = (e: React.SyntheticEvent) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n const safeInnerProps: typeof innerProps = {\n ...innerProps,\n 'aria-hidden': undefined, // Remove to allow focusable button inside\n onMouseDown: preventAndStop,\n onTouchEnd: preventAndStop,\n };\n\n return (\n <components.ClearIndicator\n className={classes}\n innerProps={safeInnerProps}\n {...restProps}\n >\n <button\n type=\"button\"\n className=\"ndl-select-clear-button\"\n onClick={handleClear}\n onKeyDown={handleKeyDown}\n aria-label=\"Clear selection\"\n >\n <XMarkIconOutline />\n </button>\n <div className=\"ndl-select-divider\" />\n </components.ClearIndicator>\n );\n };\n\nexport const CustomMultiValue = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: MultiValueProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames('ndl-select-multi-value', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.MultiValueContainer\n {...restProps}\n innerProps={{\n className: classes,\n }}\n >\n <Tag\n size={size}\n onClick={(e) => {\n e.preventDefault();\n restProps.removeProps.onClick?.(\n e as unknown as React.MouseEvent<HTMLDivElement, MouseEvent>,\n );\n }}\n htmlAttributes={{\n onMouseDown: (e) => e.preventDefault(),\n }}\n >\n {children}\n </Tag>\n </components.MultiValueContainer>\n );\n };\n\nexport const CustomPlaceholder = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: PlaceholderProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames('ndl-select-placeholder', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.Placeholder {...restProps} className={classes}>\n {children}\n </components.Placeholder>\n );\n };\n\nexport const CustomControl = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n isClean,\n errorText,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ children, className, ...restProps }: ControlProps) {\n const classes = classNames('ndl-select-control', className, {\n 'ndl-clean': isClean,\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-has-error': !!errorText,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n\n const controlInnerProps = shiftMouseDownToMouseUp(restProps.innerProps);\n\n return (\n <components.Control\n {...restProps}\n className={classes}\n innerProps={controlInnerProps}\n >\n {children}\n </components.Control>\n );\n };\n\nexport const CustomIndicatorsContainer = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: IndicatorsContainerProps) {\n const classes = classNames('ndl-select-indicators-container', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.IndicatorsContainer {...restProps} className={classes}>\n {children}\n </components.IndicatorsContainer>\n );\n };\n\nexport const CustomValueContainer = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: ValueContainerProps) {\n const classes = classNames('ndl-select-value-container', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.ValueContainer {...restProps} className={classes}>\n {children}\n </components.ValueContainer>\n );\n };\n\nexport const CustomInput = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ className, ...restProps }: InputProps) {\n const classes = classNames('ndl-select-input', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return <components.Input {...restProps} className={classes} />;\n };\n\nexport const CustomSingleValue = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ className, ...restProps }: SingleValueProps) {\n const classes = classNames('ndl-select-single-value', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return <components.SingleValue {...restProps} className={classes} />;\n };\n\n/** Overrides that are part of the popover menu */\n\nexport const CustomMenu = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ children, className, ...restProps }: MenuProps) {\n const { themeClassName } = useNeedleTheme();\n const classes = classNames('ndl-select-menu', className, themeClassName, {\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.Menu {...restProps} className={classes}>\n {children}\n </components.Menu>\n );\n };\n\nexport const CustomMenuPortal = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: MenuPortalProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames(className, 'ndl-select-menu-portal', {\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.MenuPortal {...restProps} className={classes}>\n {children}\n </components.MenuPortal>\n );\n };\n\nexport const CustomMenuList = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: MenuListProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames(className, 'ndl-select-menu-list', {\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.MenuList {...restProps} className={classes}>\n {children}\n </components.MenuList>\n );\n };\n\nexport const CustomOption = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: OptionProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames(className, 'ndl-select-option', {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-selected': restProps.isSelected,\n 'ndl-small': size === 'small',\n });\n const optionInnerProps = shiftOptionClickToMouseUp(restProps.innerProps);\n\n return (\n <components.Option\n {...restProps}\n className={classes}\n innerProps={optionInnerProps}\n >\n {restProps.isMulti === true && (\n <Checkbox\n isChecked={restProps.isSelected}\n ariaLabel={restProps.label}\n isDisabled={restProps.isDisabled}\n htmlAttributes={{\n 'aria-hidden': true,\n disabled: true,\n onPointerDown: (e) => {\n e.preventDefault();\n },\n onPointerUp: (e) => {\n restProps.innerProps.onClick?.(e);\n },\n onTouchEnd: (e) => {\n restProps.innerProps.onClick?.(\n e as unknown as React.MouseEvent<HTMLDivElement, MouseEvent>,\n );\n },\n onTouchStart: (e) => {\n e.preventDefault();\n },\n role: 'presentation',\n tabIndex: -1,\n }}\n />\n )}\n {children}\n </components.Option>\n );\n };\n"]}
|
package/lib/esm/menu/Menu.js
CHANGED
|
@@ -91,9 +91,13 @@ const MenuComponent = ({ children, isOpen: controlledOpen, onClose, isRoot, anch
|
|
|
91
91
|
alignmentAxis: isNested ? -4 : 0,
|
|
92
92
|
mainAxis: isNested ? 0 : 4,
|
|
93
93
|
}),
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
...(isNested ? [shift()] : []),
|
|
95
|
+
flip(isNested
|
|
96
|
+
? {
|
|
97
|
+
fallbackPlacements: ['left-start', 'bottom-start', 'top-start'],
|
|
98
|
+
fallbackStrategy: 'bestFit',
|
|
99
|
+
}
|
|
100
|
+
: { fallbackPlacements: ['left-start', 'right-start'] }),
|
|
97
101
|
shift(),
|
|
98
102
|
],
|
|
99
103
|
nodeId,
|
package/lib/esm/menu/Menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/menu/Menu.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingList,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingParentNodeId,\n useFloatingTree,\n useHover,\n useInteractions,\n useListItem,\n useListNavigation,\n useMergeRefs,\n useRole,\n useTypeahead,\n} from '@floating-ui/react';\nimport classNames from 'classnames';\nimport type React from 'react';\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport {\n type CommonProps,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { ConditionalWrap } from '../conditional-wrap';\nimport { useIsInsideDialog } from '../dialog/dialog-context';\nimport { Divider } from '../divider';\nimport { CheckIconOutline, ChevronRightIconOutline } from '../icons';\nimport { placementTranslation } from '../popover';\nimport { useNeedleTheme } from '../theme';\nimport type {\n CategoryItemProps,\n MenuGroupProps,\n MenuItemComponentProps,\n MenuItemProps,\n MenuItemsProps,\n MenuProps,\n NestedMenuItemProps,\n RadioItemProps,\n} from './menu-types';\n\nconst MenuContext = createContext<{\n getItemProps: (\n userProps?: React.HTMLProps<HTMLElement>,\n ) => Record<string, unknown>;\n activeIndex: number | null;\n setActiveIndex: React.Dispatch<React.SetStateAction<number | null>>;\n setHasFocusInside: React.Dispatch<React.SetStateAction<boolean>>;\n isOpen: boolean;\n}>({\n activeIndex: null,\n getItemProps: () => ({}),\n isOpen: false,\n // oxlint-disable-next-line @typescript-eslint/no-empty-function\n setActiveIndex: () => {},\n // oxlint-disable-next-line @typescript-eslint/no-empty-function\n setHasFocusInside: () => {},\n});\n\nconst MenuWrapper = (props: React.ComponentProps<typeof MenuComponent>) => {\n const parentId = useFloatingParentNodeId();\n\n if (parentId === null) {\n return (\n <FloatingTree>\n <MenuComponent {...props} isRoot />\n </FloatingTree>\n );\n }\n\n return <MenuComponent {...props} />;\n};\n\nconst MenuComponent = <T extends React.ElementType = 'div'>({\n children,\n isOpen: controlledOpen,\n onClose,\n isRoot,\n anchorRef,\n as,\n className,\n placement,\n minWidth,\n title,\n isDisabled,\n description,\n icon,\n isPortaled = true,\n portalTarget,\n htmlAttributes,\n strategy,\n ref: forwardedRef,\n style,\n}: PolymorphicCommonProps<T, MenuProps>) => {\n const [isOpen, setIsOpen] = useState(false);\n const [hasFocusInside, setHasFocusInside] = useState(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n\n const elementsRef = useRef<Array<HTMLButtonElement | null>>([]);\n const labelsRef = useRef<Array<string | null>>([]);\n const parent = useContext(MenuContext);\n\n const isInsideDialog = useIsInsideDialog();\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const parentId = useFloatingParentNodeId();\n const item = useListItem();\n const { themeClassName } = useNeedleTheme();\n useEffect(() => {\n if (controlledOpen === undefined) {\n return;\n }\n setIsOpen(controlledOpen);\n }, [controlledOpen]);\n\n useEffect(() => {\n if (isOpen) {\n setActiveIndex(0);\n }\n }, [isOpen]);\n\n const Component = as ?? 'div';\n\n const isNested = parentId !== null;\n\n const defaultPlacement = isNested ? 'right-start' : 'bottom-start';\n\n const { floatingStyles, refs, context } = useFloating<HTMLButtonElement>({\n elements: {\n reference: anchorRef?.current,\n },\n middleware: [\n offset({\n alignmentAxis: isNested ? -4 : 0,\n mainAxis: isNested ? 0 : 4,\n }),\n flip({\n fallbackPlacements: ['left-start', 'right-start'],\n }),\n shift(),\n ],\n nodeId,\n onOpenChange: (open, event) => {\n if (controlledOpen === undefined) {\n setIsOpen(open);\n }\n\n if (!open) {\n if (event instanceof PointerEvent) {\n onClose?.(event, { type: 'backdropClick' });\n } else if (event instanceof KeyboardEvent) {\n onClose?.(event, { type: 'escapeKeyDown' });\n } else if (event instanceof FocusEvent) {\n onClose?.(event, { type: 'focusOut' });\n }\n }\n },\n open: isOpen,\n placement: placement ? placementTranslation[placement] : defaultPlacement,\n strategy: strategy ?? (isInsideDialog ? 'fixed' : 'absolute'),\n whileElementsMounted: autoUpdate,\n });\n\n const hover = useHover(context, {\n delay: { open: 75 },\n enabled: isNested,\n handleClose: safePolygon({ blockPointerEvents: true }),\n });\n const click = useClick(context, {\n event: 'mousedown',\n ignoreMouse: isNested,\n toggle: !isNested,\n });\n const role = useRole(context, { role: 'menu' });\n const dismiss = useDismiss(context, { bubbles: true });\n const listNavigation = useListNavigation(context, {\n activeIndex,\n listRef: elementsRef,\n nested: isNested,\n onNavigate: setActiveIndex,\n });\n const typeahead = useTypeahead(context, {\n activeIndex,\n listRef: labelsRef,\n onMatch: isOpen ? setActiveIndex : undefined,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions(\n [hover, click, role, dismiss, listNavigation, typeahead],\n );\n\n // Event emitter allows you to communicate across tree components.\n // This effect closes all menus when an item gets clicked anywhere\n // in the tree.\n useEffect(() => {\n if (!tree) {\n return;\n }\n\n function handleTreeClick(data: { id?: string }) {\n if (controlledOpen === undefined) {\n setIsOpen(false);\n }\n onClose?.(undefined, { id: data?.id, type: 'itemClick' });\n }\n\n function onSubMenuOpen(event: { nodeId: string; parentId: string }) {\n if (event.nodeId !== nodeId && event.parentId === parentId) {\n if (controlledOpen === undefined) {\n setIsOpen(false);\n }\n onClose?.(undefined, { type: 'itemClick' });\n }\n }\n\n tree.events.on('click', handleTreeClick);\n tree.events.on('menuopen', onSubMenuOpen);\n\n return () => {\n tree.events.off('click', handleTreeClick);\n tree.events.off('menuopen', onSubMenuOpen);\n };\n }, [tree, nodeId, parentId, onClose, controlledOpen]);\n\n useEffect(() => {\n if (isOpen && tree) {\n tree.events.emit('menuopen', { nodeId, parentId });\n }\n }, [tree, isOpen, nodeId, parentId]);\n\n // Workaround for floating-ui bug where Shift+Tab doesn't trigger\n // closeOnFocusOut.\n // We detect Shift+Tab and check after guards redirect focus whether\n // focus has actually left the floating element.\n // TODO: check every now and then if floating ui addresses this\n const handleShiftTabClose = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (event.key === 'Tab' && event.shiftKey) {\n requestAnimationFrame(() => {\n const floatingEl = refs.floating.current;\n if (floatingEl && !floatingEl.contains(document.activeElement)) {\n if (controlledOpen === undefined) {\n setIsOpen(false);\n }\n onClose?.(undefined, { type: 'focusOut' });\n }\n });\n }\n },\n [controlledOpen, onClose, refs],\n );\n\n const menuClasses = classNames('ndl-menu', themeClassName, className);\n const ref = useMergeRefs([refs.setReference, item.ref, forwardedRef]);\n\n return (\n <FloatingNode id={nodeId}>\n {isRoot !== true && (\n <NestedMenuItem\n ref={ref}\n className={isNested ? 'MenuItem' : 'RootMenu'}\n isDisabled={isDisabled}\n style={style}\n htmlAttributes={{\n 'data-focus-inside': hasFocusInside ? '' : undefined,\n 'data-nested': isNested ? '' : undefined,\n 'data-open': isOpen ? '' : undefined,\n role: isNested ? 'menuitem' : undefined,\n tabIndex: !isNested\n ? undefined\n : parent.activeIndex === item.index\n ? 0\n : -1,\n ...htmlAttributes,\n ...getReferenceProps(\n parent.getItemProps({\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n htmlAttributes?.onFocus?.(event);\n setHasFocusInside(false);\n parent.setHasFocusInside(true);\n },\n }),\n ),\n }}\n title={title}\n description={description}\n leadingVisual={icon}\n />\n )}\n <MenuContext.Provider\n value={{\n activeIndex,\n getItemProps,\n isOpen: isDisabled === true ? false : isOpen,\n setActiveIndex,\n setHasFocusInside,\n }}\n >\n <FloatingList elementsRef={elementsRef} labelsRef={labelsRef}>\n {isOpen && (\n <ConditionalWrap\n shouldWrap={isPortaled}\n wrap={(wrapChildren) => (\n <FloatingPortal root={portalTarget}>\n {wrapChildren}\n </FloatingPortal>\n )}\n >\n <FloatingFocusManager\n context={context}\n modal={false}\n initialFocus={0}\n returnFocus={!isNested}\n closeOnFocusOut={true}\n guards={true}\n >\n <Component\n ref={refs.setFloating}\n className={menuClasses}\n style={{\n minWidth:\n minWidth !== undefined ? `${minWidth}px` : undefined,\n ...floatingStyles,\n ...style,\n }}\n {...getFloatingProps({\n onKeyDown: handleShiftTabClose,\n })}\n >\n {children}\n </Component>\n </FloatingFocusManager>\n </ConditionalWrap>\n )}\n </FloatingList>\n </MenuContext.Provider>\n </FloatingNode>\n );\n};\n\n/**\n * @internal This is used to build the menu item components. Do not export this component.\n */\nconst MenuItemComponent = <T extends React.ElementType = 'button'>({\n title,\n leadingContent,\n trailingContent,\n preLeadingContent,\n description,\n isDisabled,\n as,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, MenuItemComponentProps>) => {\n const classes = classNames(`ndl-menu-item`, className, {\n 'ndl-disabled': isDisabled,\n });\n\n const Component = as ?? 'button';\n\n return (\n <Component\n className={classes}\n ref={ref}\n type=\"button\"\n role=\"menuitem\"\n disabled={isDisabled}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n <div className=\"ndl-menu-item-inner\">\n {Boolean(preLeadingContent) && (\n <div className=\"ndl-menu-item-pre-leading-content\">\n {preLeadingContent}\n </div>\n )}\n {Boolean(leadingContent) && (\n <div className=\"ndl-menu-item-leading-content\">{leadingContent}</div>\n )}\n\n <div className=\"ndl-menu-item-title-wrapper\">\n <div className=\"ndl-menu-item-title\">{title}</div>\n {Boolean(description) && (\n <div className=\"ndl-menu-item-description\">{description}</div>\n )}\n </div>\n\n {Boolean(trailingContent) && (\n <div className=\"ndl-menu-item-trailing-content\">\n {trailingContent}\n </div>\n )}\n </div>\n </Component>\n );\n};\n\nconst MenuItem = <T extends React.ElementType = 'button'>({\n title,\n className,\n style,\n leadingVisual,\n trailingContent,\n description,\n isDisabled,\n as,\n onClick,\n onFocus,\n htmlAttributes,\n id,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, MenuItemProps>) => {\n const menu = useContext(MenuContext);\n const itemLabel = typeof title === 'string' ? title : undefined;\n const item = useListItem({ label: isDisabled === true ? null : itemLabel });\n const tree = useFloatingTree();\n const isActive = item.index === menu.activeIndex;\n\n const mergedRefs = useMergeRefs([item.ref, ref]);\n\n return (\n <MenuItemComponent\n as={as ?? 'button'}\n style={style}\n className={className}\n ref={mergedRefs}\n title={title}\n description={description}\n leadingContent={leadingVisual}\n trailingContent={trailingContent}\n isDisabled={isDisabled}\n htmlAttributes={{\n ...htmlAttributes,\n tabIndex: isActive ? 0 : -1,\n ...menu.getItemProps({\n id: id,\n onClick(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n tree?.events.emit('click', { id });\n },\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n onFocus?.(event);\n menu.setHasFocusInside(true);\n },\n }),\n }}\n {...restProps}\n />\n );\n};\n\nconst NestedMenuItem = <T extends React.ElementType = 'button'>({\n title,\n isDisabled,\n description,\n leadingVisual,\n as,\n onFocus,\n onClick,\n className,\n style,\n htmlAttributes,\n id,\n ref,\n}: PolymorphicCommonProps<T, NestedMenuItemProps>) => {\n const menu = useContext(MenuContext);\n const itemLabel = typeof title === 'string' ? title : undefined;\n const item = useListItem({ label: isDisabled === true ? null : itemLabel });\n const isActive = item.index === menu.activeIndex;\n const mergedRefs = useMergeRefs([item.ref, ref]);\n\n return (\n <MenuItemComponent\n as={as ?? 'button'}\n style={style}\n className={className}\n ref={mergedRefs}\n title={title}\n description={description}\n leadingContent={leadingVisual}\n trailingContent={\n <ChevronRightIconOutline className=\"ndl-menu-item-chevron\" />\n }\n isDisabled={isDisabled}\n htmlAttributes={{\n ...htmlAttributes,\n tabIndex: isActive ? 0 : -1,\n ...menu.getItemProps({\n onClick(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n },\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n onFocus?.(event);\n menu.setHasFocusInside(true);\n },\n onTouchStart() {\n menu.setHasFocusInside(true);\n },\n }),\n id: id,\n }}\n />\n );\n};\n\nconst CategoryItem = <T extends React.ElementType = 'button'>({\n children,\n className,\n style,\n as,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, CategoryItemProps>) => {\n const classes = classNames('ndl-menu-category-item', className);\n const Component: React.ElementType = as ?? 'div';\n return (\n <Component\n className={classes}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </Component>\n );\n};\n\nconst RadioItem = <T extends React.ElementType = 'button'>({\n title,\n leadingVisual,\n trailingContent,\n description,\n isDisabled,\n isChecked = false,\n onClick,\n onFocus,\n className,\n style,\n as,\n id,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, RadioItemProps>) => {\n const menu = useContext(MenuContext);\n const itemLabel = typeof title === 'string' ? title : undefined;\n const item = useListItem({ label: isDisabled === true ? null : itemLabel });\n const tree = useFloatingTree();\n const isActive = item.index === menu.activeIndex;\n\n const mergedRefs = useMergeRefs([item.ref, ref]);\n const classes = classNames('ndl-menu-radio-item', className, {\n 'ndl-checked': isChecked,\n });\n\n return (\n <MenuItemComponent\n as={as ?? 'button'}\n style={style}\n className={classes}\n ref={mergedRefs}\n title={title}\n description={description}\n preLeadingContent={\n isChecked ? (\n <CheckIconOutline className=\"n-size-5 n-shrink-0 n-self-center\" />\n ) : null\n }\n leadingContent={leadingVisual}\n trailingContent={trailingContent}\n isDisabled={isDisabled}\n htmlAttributes={{\n ...htmlAttributes,\n 'aria-checked': isChecked,\n role: 'menuitemradio',\n tabIndex: isActive ? 0 : -1,\n ...menu.getItemProps({\n id: id,\n onClick(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n tree?.events.emit('click', { id });\n },\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n onFocus?.(event);\n menu.setHasFocusInside(true);\n },\n }),\n }}\n {...restProps}\n />\n );\n};\n\nconst MenuItems = <T extends React.ElementType = 'div'>({\n as,\n children,\n className,\n htmlAttributes,\n style,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, MenuItemsProps>) => {\n const classes = classNames('ndl-menu-items', className);\n const Component: React.ElementType = as ?? 'div';\n return (\n <Component\n className={classes}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </Component>\n );\n};\n\nconst MenuGroup = ({\n children,\n className,\n htmlAttributes,\n style,\n ref,\n ...restProps\n}: CommonProps<'div', MenuGroupProps>) => {\n const classes = classNames('ndl-menu-group', className);\n return (\n <div\n className={classes}\n style={style}\n ref={ref}\n role=\"group\"\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\nconst Menu = Object.assign(MenuWrapper, {\n CategoryItem: CategoryItem,\n Divider: Divider,\n Group: MenuGroup,\n Item: MenuItem,\n /**\n * @deprecated Use Menu.Group instead if you want to group items together. If not, you can just omit this component in your implementation.\n */\n Items: MenuItems,\n RadioItem: RadioItem,\n});\nexport { Menu };\n"]}
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/menu/Menu.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingList,\n FloatingNode,\n FloatingPortal,\n FloatingTree,\n offset,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFloatingNodeId,\n useFloatingParentNodeId,\n useFloatingTree,\n useHover,\n useInteractions,\n useListItem,\n useListNavigation,\n useMergeRefs,\n useRole,\n useTypeahead,\n} from '@floating-ui/react';\nimport classNames from 'classnames';\nimport type React from 'react';\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport {\n type CommonProps,\n type PolymorphicCommonProps,\n} from '../_common/types';\nimport { ConditionalWrap } from '../conditional-wrap';\nimport { useIsInsideDialog } from '../dialog/dialog-context';\nimport { Divider } from '../divider';\nimport { CheckIconOutline, ChevronRightIconOutline } from '../icons';\nimport { placementTranslation } from '../popover';\nimport { useNeedleTheme } from '../theme';\nimport type {\n CategoryItemProps,\n MenuGroupProps,\n MenuItemComponentProps,\n MenuItemProps,\n MenuItemsProps,\n MenuProps,\n NestedMenuItemProps,\n RadioItemProps,\n} from './menu-types';\n\nconst MenuContext = createContext<{\n getItemProps: (\n userProps?: React.HTMLProps<HTMLElement>,\n ) => Record<string, unknown>;\n activeIndex: number | null;\n setActiveIndex: React.Dispatch<React.SetStateAction<number | null>>;\n setHasFocusInside: React.Dispatch<React.SetStateAction<boolean>>;\n isOpen: boolean;\n}>({\n activeIndex: null,\n getItemProps: () => ({}),\n isOpen: false,\n // oxlint-disable-next-line @typescript-eslint/no-empty-function\n setActiveIndex: () => {},\n // oxlint-disable-next-line @typescript-eslint/no-empty-function\n setHasFocusInside: () => {},\n});\n\nconst MenuWrapper = (props: React.ComponentProps<typeof MenuComponent>) => {\n const parentId = useFloatingParentNodeId();\n\n if (parentId === null) {\n return (\n <FloatingTree>\n <MenuComponent {...props} isRoot />\n </FloatingTree>\n );\n }\n\n return <MenuComponent {...props} />;\n};\n\nconst MenuComponent = <T extends React.ElementType = 'div'>({\n children,\n isOpen: controlledOpen,\n onClose,\n isRoot,\n anchorRef,\n as,\n className,\n placement,\n minWidth,\n title,\n isDisabled,\n description,\n icon,\n isPortaled = true,\n portalTarget,\n htmlAttributes,\n strategy,\n ref: forwardedRef,\n style,\n}: PolymorphicCommonProps<T, MenuProps>) => {\n const [isOpen, setIsOpen] = useState(false);\n const [hasFocusInside, setHasFocusInside] = useState(false);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n\n const elementsRef = useRef<Array<HTMLButtonElement | null>>([]);\n const labelsRef = useRef<Array<string | null>>([]);\n const parent = useContext(MenuContext);\n\n const isInsideDialog = useIsInsideDialog();\n const tree = useFloatingTree();\n const nodeId = useFloatingNodeId();\n const parentId = useFloatingParentNodeId();\n const item = useListItem();\n const { themeClassName } = useNeedleTheme();\n useEffect(() => {\n if (controlledOpen === undefined) {\n return;\n }\n setIsOpen(controlledOpen);\n }, [controlledOpen]);\n\n useEffect(() => {\n if (isOpen) {\n setActiveIndex(0);\n }\n }, [isOpen]);\n\n const Component = as ?? 'div';\n\n const isNested = parentId !== null;\n\n const defaultPlacement = isNested ? 'right-start' : 'bottom-start';\n\n const { floatingStyles, refs, context } = useFloating<HTMLButtonElement>({\n elements: {\n reference: anchorRef?.current,\n },\n middleware: [\n offset({\n alignmentAxis: isNested ? -4 : 0,\n mainAxis: isNested ? 0 : 4,\n }),\n ...(isNested ? [shift()] : []),\n flip(\n isNested\n ? {\n fallbackPlacements: ['left-start', 'bottom-start', 'top-start'],\n fallbackStrategy: 'bestFit',\n }\n : { fallbackPlacements: ['left-start', 'right-start'] },\n ),\n shift(),\n ],\n nodeId,\n onOpenChange: (open, event) => {\n if (controlledOpen === undefined) {\n setIsOpen(open);\n }\n\n if (!open) {\n if (event instanceof PointerEvent) {\n onClose?.(event, { type: 'backdropClick' });\n } else if (event instanceof KeyboardEvent) {\n onClose?.(event, { type: 'escapeKeyDown' });\n } else if (event instanceof FocusEvent) {\n onClose?.(event, { type: 'focusOut' });\n }\n }\n },\n open: isOpen,\n placement: placement ? placementTranslation[placement] : defaultPlacement,\n strategy: strategy ?? (isInsideDialog ? 'fixed' : 'absolute'),\n whileElementsMounted: autoUpdate,\n });\n\n const hover = useHover(context, {\n delay: { open: 75 },\n enabled: isNested,\n handleClose: safePolygon({ blockPointerEvents: true }),\n });\n const click = useClick(context, {\n event: 'mousedown',\n ignoreMouse: isNested,\n toggle: !isNested,\n });\n const role = useRole(context, { role: 'menu' });\n const dismiss = useDismiss(context, { bubbles: true });\n const listNavigation = useListNavigation(context, {\n activeIndex,\n listRef: elementsRef,\n nested: isNested,\n onNavigate: setActiveIndex,\n });\n const typeahead = useTypeahead(context, {\n activeIndex,\n listRef: labelsRef,\n onMatch: isOpen ? setActiveIndex : undefined,\n });\n\n const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions(\n [hover, click, role, dismiss, listNavigation, typeahead],\n );\n\n // Event emitter allows you to communicate across tree components.\n // This effect closes all menus when an item gets clicked anywhere\n // in the tree.\n useEffect(() => {\n if (!tree) {\n return;\n }\n\n function handleTreeClick(data: { id?: string }) {\n if (controlledOpen === undefined) {\n setIsOpen(false);\n }\n onClose?.(undefined, { id: data?.id, type: 'itemClick' });\n }\n\n function onSubMenuOpen(event: { nodeId: string; parentId: string }) {\n if (event.nodeId !== nodeId && event.parentId === parentId) {\n if (controlledOpen === undefined) {\n setIsOpen(false);\n }\n onClose?.(undefined, { type: 'itemClick' });\n }\n }\n\n tree.events.on('click', handleTreeClick);\n tree.events.on('menuopen', onSubMenuOpen);\n\n return () => {\n tree.events.off('click', handleTreeClick);\n tree.events.off('menuopen', onSubMenuOpen);\n };\n }, [tree, nodeId, parentId, onClose, controlledOpen]);\n\n useEffect(() => {\n if (isOpen && tree) {\n tree.events.emit('menuopen', { nodeId, parentId });\n }\n }, [tree, isOpen, nodeId, parentId]);\n\n // Workaround for floating-ui bug where Shift+Tab doesn't trigger\n // closeOnFocusOut.\n // We detect Shift+Tab and check after guards redirect focus whether\n // focus has actually left the floating element.\n // TODO: check every now and then if floating ui addresses this\n const handleShiftTabClose = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (event.key === 'Tab' && event.shiftKey) {\n requestAnimationFrame(() => {\n const floatingEl = refs.floating.current;\n if (floatingEl && !floatingEl.contains(document.activeElement)) {\n if (controlledOpen === undefined) {\n setIsOpen(false);\n }\n onClose?.(undefined, { type: 'focusOut' });\n }\n });\n }\n },\n [controlledOpen, onClose, refs],\n );\n\n const menuClasses = classNames('ndl-menu', themeClassName, className);\n const ref = useMergeRefs([refs.setReference, item.ref, forwardedRef]);\n\n return (\n <FloatingNode id={nodeId}>\n {isRoot !== true && (\n <NestedMenuItem\n ref={ref}\n className={isNested ? 'MenuItem' : 'RootMenu'}\n isDisabled={isDisabled}\n style={style}\n htmlAttributes={{\n 'data-focus-inside': hasFocusInside ? '' : undefined,\n 'data-nested': isNested ? '' : undefined,\n 'data-open': isOpen ? '' : undefined,\n role: isNested ? 'menuitem' : undefined,\n tabIndex: !isNested\n ? undefined\n : parent.activeIndex === item.index\n ? 0\n : -1,\n ...htmlAttributes,\n ...getReferenceProps(\n parent.getItemProps({\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n htmlAttributes?.onFocus?.(event);\n setHasFocusInside(false);\n parent.setHasFocusInside(true);\n },\n }),\n ),\n }}\n title={title}\n description={description}\n leadingVisual={icon}\n />\n )}\n <MenuContext.Provider\n value={{\n activeIndex,\n getItemProps,\n isOpen: isDisabled === true ? false : isOpen,\n setActiveIndex,\n setHasFocusInside,\n }}\n >\n <FloatingList elementsRef={elementsRef} labelsRef={labelsRef}>\n {isOpen && (\n <ConditionalWrap\n shouldWrap={isPortaled}\n wrap={(wrapChildren) => (\n <FloatingPortal root={portalTarget}>\n {wrapChildren}\n </FloatingPortal>\n )}\n >\n <FloatingFocusManager\n context={context}\n modal={false}\n initialFocus={0}\n returnFocus={!isNested}\n closeOnFocusOut={true}\n guards={true}\n >\n <Component\n ref={refs.setFloating}\n className={menuClasses}\n style={{\n minWidth:\n minWidth !== undefined ? `${minWidth}px` : undefined,\n ...floatingStyles,\n ...style,\n }}\n {...getFloatingProps({\n onKeyDown: handleShiftTabClose,\n })}\n >\n {children}\n </Component>\n </FloatingFocusManager>\n </ConditionalWrap>\n )}\n </FloatingList>\n </MenuContext.Provider>\n </FloatingNode>\n );\n};\n\n/**\n * @internal This is used to build the menu item components. Do not export this component.\n */\nconst MenuItemComponent = <T extends React.ElementType = 'button'>({\n title,\n leadingContent,\n trailingContent,\n preLeadingContent,\n description,\n isDisabled,\n as,\n className,\n style,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, MenuItemComponentProps>) => {\n const classes = classNames(`ndl-menu-item`, className, {\n 'ndl-disabled': isDisabled,\n });\n\n const Component = as ?? 'button';\n\n return (\n <Component\n className={classes}\n ref={ref}\n type=\"button\"\n role=\"menuitem\"\n disabled={isDisabled}\n style={style}\n {...restProps}\n {...htmlAttributes}\n >\n <div className=\"ndl-menu-item-inner\">\n {Boolean(preLeadingContent) && (\n <div className=\"ndl-menu-item-pre-leading-content\">\n {preLeadingContent}\n </div>\n )}\n {Boolean(leadingContent) && (\n <div className=\"ndl-menu-item-leading-content\">{leadingContent}</div>\n )}\n\n <div className=\"ndl-menu-item-title-wrapper\">\n <div className=\"ndl-menu-item-title\">{title}</div>\n {Boolean(description) && (\n <div className=\"ndl-menu-item-description\">{description}</div>\n )}\n </div>\n\n {Boolean(trailingContent) && (\n <div className=\"ndl-menu-item-trailing-content\">\n {trailingContent}\n </div>\n )}\n </div>\n </Component>\n );\n};\n\nconst MenuItem = <T extends React.ElementType = 'button'>({\n title,\n className,\n style,\n leadingVisual,\n trailingContent,\n description,\n isDisabled,\n as,\n onClick,\n onFocus,\n htmlAttributes,\n id,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, MenuItemProps>) => {\n const menu = useContext(MenuContext);\n const itemLabel = typeof title === 'string' ? title : undefined;\n const item = useListItem({ label: isDisabled === true ? null : itemLabel });\n const tree = useFloatingTree();\n const isActive = item.index === menu.activeIndex;\n\n const mergedRefs = useMergeRefs([item.ref, ref]);\n\n return (\n <MenuItemComponent\n as={as ?? 'button'}\n style={style}\n className={className}\n ref={mergedRefs}\n title={title}\n description={description}\n leadingContent={leadingVisual}\n trailingContent={trailingContent}\n isDisabled={isDisabled}\n htmlAttributes={{\n ...htmlAttributes,\n tabIndex: isActive ? 0 : -1,\n ...menu.getItemProps({\n id: id,\n onClick(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n tree?.events.emit('click', { id });\n },\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n onFocus?.(event);\n menu.setHasFocusInside(true);\n },\n }),\n }}\n {...restProps}\n />\n );\n};\n\nconst NestedMenuItem = <T extends React.ElementType = 'button'>({\n title,\n isDisabled,\n description,\n leadingVisual,\n as,\n onFocus,\n onClick,\n className,\n style,\n htmlAttributes,\n id,\n ref,\n}: PolymorphicCommonProps<T, NestedMenuItemProps>) => {\n const menu = useContext(MenuContext);\n const itemLabel = typeof title === 'string' ? title : undefined;\n const item = useListItem({ label: isDisabled === true ? null : itemLabel });\n const isActive = item.index === menu.activeIndex;\n const mergedRefs = useMergeRefs([item.ref, ref]);\n\n return (\n <MenuItemComponent\n as={as ?? 'button'}\n style={style}\n className={className}\n ref={mergedRefs}\n title={title}\n description={description}\n leadingContent={leadingVisual}\n trailingContent={\n <ChevronRightIconOutline className=\"ndl-menu-item-chevron\" />\n }\n isDisabled={isDisabled}\n htmlAttributes={{\n ...htmlAttributes,\n tabIndex: isActive ? 0 : -1,\n ...menu.getItemProps({\n onClick(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n },\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n onFocus?.(event);\n menu.setHasFocusInside(true);\n },\n onTouchStart() {\n menu.setHasFocusInside(true);\n },\n }),\n id: id,\n }}\n />\n );\n};\n\nconst CategoryItem = <T extends React.ElementType = 'button'>({\n children,\n className,\n style,\n as,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, CategoryItemProps>) => {\n const classes = classNames('ndl-menu-category-item', className);\n const Component: React.ElementType = as ?? 'div';\n return (\n <Component\n className={classes}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </Component>\n );\n};\n\nconst RadioItem = <T extends React.ElementType = 'button'>({\n title,\n leadingVisual,\n trailingContent,\n description,\n isDisabled,\n isChecked = false,\n onClick,\n onFocus,\n className,\n style,\n as,\n id,\n htmlAttributes,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, RadioItemProps>) => {\n const menu = useContext(MenuContext);\n const itemLabel = typeof title === 'string' ? title : undefined;\n const item = useListItem({ label: isDisabled === true ? null : itemLabel });\n const tree = useFloatingTree();\n const isActive = item.index === menu.activeIndex;\n\n const mergedRefs = useMergeRefs([item.ref, ref]);\n const classes = classNames('ndl-menu-radio-item', className, {\n 'ndl-checked': isChecked,\n });\n\n return (\n <MenuItemComponent\n as={as ?? 'button'}\n style={style}\n className={classes}\n ref={mergedRefs}\n title={title}\n description={description}\n preLeadingContent={\n isChecked ? (\n <CheckIconOutline className=\"n-size-5 n-shrink-0 n-self-center\" />\n ) : null\n }\n leadingContent={leadingVisual}\n trailingContent={trailingContent}\n isDisabled={isDisabled}\n htmlAttributes={{\n ...htmlAttributes,\n 'aria-checked': isChecked,\n role: 'menuitemradio',\n tabIndex: isActive ? 0 : -1,\n ...menu.getItemProps({\n id: id,\n onClick(event: React.MouseEvent<HTMLButtonElement>) {\n onClick?.(event);\n tree?.events.emit('click', { id });\n },\n onFocus(event: React.FocusEvent<HTMLButtonElement>) {\n onFocus?.(event);\n menu.setHasFocusInside(true);\n },\n }),\n }}\n {...restProps}\n />\n );\n};\n\nconst MenuItems = <T extends React.ElementType = 'div'>({\n as,\n children,\n className,\n htmlAttributes,\n style,\n ref,\n ...restProps\n}: PolymorphicCommonProps<T, MenuItemsProps>) => {\n const classes = classNames('ndl-menu-items', className);\n const Component: React.ElementType = as ?? 'div';\n return (\n <Component\n className={classes}\n style={style}\n ref={ref}\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </Component>\n );\n};\n\nconst MenuGroup = ({\n children,\n className,\n htmlAttributes,\n style,\n ref,\n ...restProps\n}: CommonProps<'div', MenuGroupProps>) => {\n const classes = classNames('ndl-menu-group', className);\n return (\n <div\n className={classes}\n style={style}\n ref={ref}\n role=\"group\"\n {...restProps}\n {...htmlAttributes}\n >\n {children}\n </div>\n );\n};\n\nconst Menu = Object.assign(MenuWrapper, {\n CategoryItem: CategoryItem,\n Divider: Divider,\n Group: MenuGroup,\n Item: MenuItem,\n /**\n * @deprecated Use Menu.Group instead if you want to group items together. If not, you can just omit this component in your implementation.\n */\n Items: MenuItems,\n RadioItem: RadioItem,\n});\nexport { Menu };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-types.js","sourceRoot":"","sources":["../../../src/menu/menu-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { type Popover } from '../popover';\n\nexport interface MenuProps {\n /** Whether the menu is open or closed (uncontrolled when omitted) */\n isOpen?: boolean;\n /** Callback function that is called when the menu closes */\n onClose?: (\n event: Event | undefined,\n closeReason: {\n type: 'backdropClick' | 'itemClick' | 'escapeKeyDown' | 'focusOut';\n id?: string;\n },\n ) => void;\n /** Anchor element ref for positioning */\n anchorRef?: React.RefObject<HTMLElement | null>;\n /** Content displayed inside the menu */\n children?: React.ReactNode;\n /** Whether the menu is a root menu instance. This is set internally by the component based on nesting */\n isRoot?: boolean;\n /** The placement of the floating element is determined by two sets of words. The first set of words specifies the point on the anchor element where the floating element will be attached. The second set of coordinates specifies the point on the floating element that will attach to the anchor element.*/\n placement?: React.ComponentProps<typeof Popover>['placement'];\n /** Minimum width in pixels for the menu component */\n minWidth?: number;\n /** Optional title for nested trigger rendering */\n title?: string;\n /** Whether the menu trigger is disabled */\n isDisabled?: boolean;\n /** Optional description for nested trigger rendering */\n description?: React.ReactNode;\n /** Optional icon for nested trigger rendering */\n icon?: React.ReactNode;\n /** Whether the menu should be wrapped in a floating portal */\n isPortaled?: boolean;\n /** Portal target element (defaults to `document.body`) */\n portalTarget?: HTMLElement | null;\n /** Positioning strategy used by Floating UI */\n strategy?: 'absolute' | 'fixed';\n}\n\nexport interface MenuItemProps {\n /** Title of the menu item component */\n title: React.ReactNode;\n /** Leading icon for the menu item component */\n leadingVisual?: React.ReactNode;\n trailingContent?: React.ReactNode;\n /** Supporting text below title */\n description?: React.ReactNode;\n /** Whether the menu item is disabled */\n isDisabled?: boolean;\n /** Callback function that is called when the menu item is clicked and it closes the menu tree */\n onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n /** Callback function that is called when the menu item is focused */\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void;\n /** Unique identifier for the menu item */\n id?: string;\n /** Content displayed inside the menu item component */\n children?: React.ReactNode;\n}\n\nexport type NestedMenuItemProps = Omit<\n MenuItemProps,\n 'children' | 'trailingContent'\n>;\n\nexport interface MenuItemsProps {\n /** Content displayed inside the menu items component */\n children?: React.ReactNode;\n}\n\nexport interface CategoryItemProps {\n /** Content displayed inside the category item component */\n children?: React.ReactNode;\n}\n\nexport type MenuItemComponentProps = {\n title?: React.ReactNode;\n description?: React.ReactNode;\n className?: string;\n leadingContent?: React.ReactNode;\n trailingContent?: React.ReactNode;\n isDisabled?: boolean;\n preLeadingContent?: React.ReactNode;\n};\n\nexport type RadioItemProps = MenuItemProps & {\n /** Whether the radio item is checked. Marks the item as aria-checked. */\n isChecked?: boolean;\n};\n\nexport type MenuGroupProps = {\n /** Content displayed inside the group. */\n children?: React.ReactNode;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"menu-types.js","sourceRoot":"","sources":["../../../src/menu/menu-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { type Popover } from '../popover';\n\nexport interface MenuProps {\n /** Whether the menu is open or closed (uncontrolled when omitted) */\n isOpen?: boolean;\n /** Callback function that is called when the menu closes */\n onClose?: (\n event: Event | undefined,\n closeReason: {\n type: 'backdropClick' | 'itemClick' | 'escapeKeyDown' | 'focusOut';\n id?: string;\n },\n ) => void;\n /** Anchor element ref for positioning */\n anchorRef?: React.RefObject<HTMLElement | null>;\n /** Content displayed inside the menu */\n children?: React.ReactNode;\n /** Whether the menu is a root menu instance. This is set internally by the component based on nesting */\n isRoot?: boolean;\n /** The placement of the floating element is determined by two sets of words. The first set of words specifies the point on the anchor element where the floating element will be attached. The second set of coordinates specifies the point on the floating element that will attach to the anchor element.*/\n placement?: React.ComponentProps<typeof Popover>['placement'];\n /** Minimum width in pixels for the menu component */\n minWidth?: number;\n /** Optional title for nested trigger rendering */\n title?: string;\n /** Whether the menu trigger is disabled */\n isDisabled?: boolean;\n /** Optional description for nested trigger rendering */\n description?: React.ReactNode;\n // TODO v5: rename to leadingVisual\n /** Optional icon for nested trigger rendering */\n icon?: React.ReactNode;\n /** Whether the menu should be wrapped in a floating portal */\n isPortaled?: boolean;\n /** Portal target element (defaults to `document.body`) */\n portalTarget?: HTMLElement | null;\n /** Positioning strategy used by Floating UI */\n strategy?: 'absolute' | 'fixed';\n}\n\nexport interface MenuItemProps {\n /** Title of the menu item component */\n title: React.ReactNode;\n /** Leading icon for the menu item component */\n leadingVisual?: React.ReactNode;\n trailingContent?: React.ReactNode;\n /** Supporting text below title */\n description?: React.ReactNode;\n /** Whether the menu item is disabled */\n isDisabled?: boolean;\n /** Callback function that is called when the menu item is clicked and it closes the menu tree */\n onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n /** Callback function that is called when the menu item is focused */\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void;\n /** Unique identifier for the menu item */\n id?: string;\n /** Content displayed inside the menu item component */\n children?: React.ReactNode;\n}\n\nexport type NestedMenuItemProps = Omit<\n MenuItemProps,\n 'children' | 'trailingContent'\n>;\n\nexport interface MenuItemsProps {\n /** Content displayed inside the menu items component */\n children?: React.ReactNode;\n}\n\nexport interface CategoryItemProps {\n /** Content displayed inside the category item component */\n children?: React.ReactNode;\n}\n\nexport type MenuItemComponentProps = {\n title?: React.ReactNode;\n description?: React.ReactNode;\n className?: string;\n leadingContent?: React.ReactNode;\n trailingContent?: React.ReactNode;\n isDisabled?: boolean;\n preLeadingContent?: React.ReactNode;\n};\n\nexport type RadioItemProps = MenuItemProps & {\n /** Whether the radio item is checked. Marks the item as aria-checked. */\n isChecked?: boolean;\n};\n\nexport type MenuGroupProps = {\n /** Content displayed inside the group. */\n children?: React.ReactNode;\n};\n"]}
|
|
@@ -37,6 +37,53 @@ import { Checkbox } from '../checkbox';
|
|
|
37
37
|
import { ChevronDownIconOutline, XMarkIconOutline } from '../icons';
|
|
38
38
|
import { Tag } from '../tag';
|
|
39
39
|
import { useNeedleTheme } from '../theme';
|
|
40
|
+
/**
|
|
41
|
+
* React-select triggers control/indicator interactions on mouseDown which breaks WCAG 2.5.2 Pointer Cancellation.
|
|
42
|
+
* This helper shifts mouseDown to mouseUp to allow users to cancel by dragging away.
|
|
43
|
+
*/
|
|
44
|
+
const shiftMouseDownToMouseUp = (innerProps, stopPropagation = false) => {
|
|
45
|
+
const baseProps = innerProps !== null && innerProps !== void 0 ? innerProps : {};
|
|
46
|
+
const maybeStopPropagation = (e) => stopPropagation && e.stopPropagation();
|
|
47
|
+
return Object.assign(Object.assign({}, baseProps), { onMouseDown: (e) => {
|
|
48
|
+
e.preventDefault();
|
|
49
|
+
maybeStopPropagation(e);
|
|
50
|
+
}, onMouseUp: (e) => {
|
|
51
|
+
var _a, _b;
|
|
52
|
+
(_a = baseProps.onMouseUp) === null || _a === void 0 ? void 0 : _a.call(baseProps, e);
|
|
53
|
+
(_b = baseProps.onMouseDown) === null || _b === void 0 ? void 0 : _b.call(baseProps, e);
|
|
54
|
+
maybeStopPropagation(e);
|
|
55
|
+
}, onTouchEnd: (e) => {
|
|
56
|
+
var _a, _b;
|
|
57
|
+
(_a = baseProps.onTouchEnd) === null || _a === void 0 ? void 0 : _a.call(baseProps, e);
|
|
58
|
+
(_b = baseProps.onMouseDown) === null || _b === void 0 ? void 0 : _b.call(baseProps, e);
|
|
59
|
+
maybeStopPropagation(e);
|
|
60
|
+
}, onTouchStart: (e) => {
|
|
61
|
+
e.preventDefault();
|
|
62
|
+
maybeStopPropagation(e);
|
|
63
|
+
} });
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* React-select triggers option selection on click which fires on mouseDown.
|
|
67
|
+
* This helper shifts the click handler to mouseUp/touchEnd to allow users to cancel by dragging away.
|
|
68
|
+
*/
|
|
69
|
+
const shiftOptionClickToMouseUp = (innerProps) => {
|
|
70
|
+
const baseProps = innerProps !== null && innerProps !== void 0 ? innerProps : {};
|
|
71
|
+
return Object.assign(Object.assign({}, baseProps), {
|
|
72
|
+
// Remove onClick to prevent double-execution (onMouseUp already calls it, and browser would fire click after mouseup)
|
|
73
|
+
onClick: undefined, onMouseDown: (event) => {
|
|
74
|
+
event.preventDefault();
|
|
75
|
+
}, onMouseUp: (event) => {
|
|
76
|
+
var _a, _b;
|
|
77
|
+
(_a = baseProps.onMouseUp) === null || _a === void 0 ? void 0 : _a.call(baseProps, event);
|
|
78
|
+
(_b = baseProps.onClick) === null || _b === void 0 ? void 0 : _b.call(baseProps, event);
|
|
79
|
+
}, onTouchEnd: (event) => {
|
|
80
|
+
var _a, _b;
|
|
81
|
+
(_a = baseProps.onTouchEnd) === null || _a === void 0 ? void 0 : _a.call(baseProps, event);
|
|
82
|
+
(_b = baseProps.onClick) === null || _b === void 0 ? void 0 : _b.call(baseProps, event);
|
|
83
|
+
}, onTouchStart: (event) => {
|
|
84
|
+
event.preventDefault();
|
|
85
|
+
} });
|
|
86
|
+
};
|
|
40
87
|
export const DropdownIndicatorCurrying = ({ size, }) => function Component(props) {
|
|
41
88
|
const classes = classNames('ndl-select-dropdown-indicator', {
|
|
42
89
|
'ndl-disabled': props.isDisabled,
|
|
@@ -46,7 +93,9 @@ export const DropdownIndicatorCurrying = ({ size, }) => function Component(props
|
|
|
46
93
|
'ndl-medium': size === 'medium',
|
|
47
94
|
'ndl-small': size === 'small',
|
|
48
95
|
});
|
|
49
|
-
|
|
96
|
+
// stopPropagation so that we prevent the control from also toggling the menu (double-toggle)
|
|
97
|
+
const indicatorInnerProps = shiftMouseDownToMouseUp(props.innerProps, true);
|
|
98
|
+
return (_jsx(components.DropdownIndicator, Object.assign({}, props, { className: classes, innerProps: indicatorInnerProps, children: _jsx(ChevronDownIconOutline, { className: "ndl-select-icon", style: {
|
|
50
99
|
transform: props.selectProps.menuIsOpen
|
|
51
100
|
? 'rotate(180deg)'
|
|
52
101
|
: 'rotate(0deg)',
|
|
@@ -54,7 +103,7 @@ export const DropdownIndicatorCurrying = ({ size, }) => function Component(props
|
|
|
54
103
|
} }) })));
|
|
55
104
|
};
|
|
56
105
|
export const CustomClearIndication = ({ size, }) => function Component(_a) {
|
|
57
|
-
var { className } = _a, restProps = __rest(_a, ["className"]);
|
|
106
|
+
var { className, innerProps } = _a, restProps = __rest(_a, ["className", "innerProps"]);
|
|
58
107
|
const classes = classNames('ndl-select-clear', className, {
|
|
59
108
|
'ndl-focused': restProps.isFocused,
|
|
60
109
|
'ndl-is-multi': restProps.isMulti,
|
|
@@ -62,7 +111,26 @@ export const CustomClearIndication = ({ size, }) => function Component(_a) {
|
|
|
62
111
|
'ndl-medium': size === 'medium',
|
|
63
112
|
'ndl-small': size === 'small',
|
|
64
113
|
});
|
|
65
|
-
|
|
114
|
+
const handleClear = () => {
|
|
115
|
+
var _a;
|
|
116
|
+
(_a = restProps.clearValue) === null || _a === void 0 ? void 0 : _a.call(restProps);
|
|
117
|
+
};
|
|
118
|
+
// Stop propagation to prevent react-select's keyboard handling.
|
|
119
|
+
const handleKeyDown = (event) => {
|
|
120
|
+
var _a, _b;
|
|
121
|
+
if (event.key === '') {
|
|
122
|
+
event.preventDefault();
|
|
123
|
+
}
|
|
124
|
+
event.stopPropagation();
|
|
125
|
+
(_b = (_a = event.nativeEvent).stopImmediatePropagation) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
126
|
+
};
|
|
127
|
+
// Prevent react-select's default clear-on-mousedown/touchend behavior.
|
|
128
|
+
const preventAndStop = (e) => {
|
|
129
|
+
e.preventDefault();
|
|
130
|
+
e.stopPropagation();
|
|
131
|
+
};
|
|
132
|
+
const safeInnerProps = Object.assign(Object.assign({}, innerProps), { 'aria-hidden': undefined, onMouseDown: preventAndStop, onTouchEnd: preventAndStop });
|
|
133
|
+
return (_jsxs(components.ClearIndicator, Object.assign({ className: classes, innerProps: safeInnerProps }, restProps, { children: [_jsx("button", { type: "button", className: "ndl-select-clear-button", onClick: handleClear, onKeyDown: handleKeyDown, "aria-label": "Clear selection", children: _jsx(XMarkIconOutline, {}) }), _jsx("div", { className: "ndl-select-divider" })] })));
|
|
66
134
|
};
|
|
67
135
|
export const CustomMultiValue = ({ size, }) => function Component(_a) {
|
|
68
136
|
var { children, className } = _a, restProps = __rest(_a, ["children", "className"]);
|
|
@@ -108,7 +176,8 @@ export const CustomControl = ({ size, isClean, errorText, }) => function Compone
|
|
|
108
176
|
'ndl-medium': size === 'medium',
|
|
109
177
|
'ndl-small': size === 'small',
|
|
110
178
|
});
|
|
111
|
-
|
|
179
|
+
const controlInnerProps = shiftMouseDownToMouseUp(restProps.innerProps);
|
|
180
|
+
return (_jsx(components.Control, Object.assign({}, restProps, { className: classes, innerProps: controlInnerProps, children: children })));
|
|
112
181
|
};
|
|
113
182
|
export const CustomIndicatorsContainer = ({ size, }) => function Component(_a) {
|
|
114
183
|
var { children, className } = _a, restProps = __rest(_a, ["children", "className"]);
|
|
@@ -197,19 +266,24 @@ export const CustomOption = ({ size, }) => function Component(_a) {
|
|
|
197
266
|
'ndl-selected': restProps.isSelected,
|
|
198
267
|
'ndl-small': size === 'small',
|
|
199
268
|
});
|
|
200
|
-
|
|
269
|
+
const optionInnerProps = shiftOptionClickToMouseUp(restProps.innerProps);
|
|
270
|
+
return (_jsxs(components.Option, Object.assign({}, restProps, { className: classes, innerProps: optionInnerProps, children: [restProps.isMulti === true && (_jsx(Checkbox, { isChecked: restProps.isSelected, ariaLabel: restProps.label, isDisabled: restProps.isDisabled, htmlAttributes: {
|
|
201
271
|
'aria-hidden': true,
|
|
202
272
|
disabled: true,
|
|
203
273
|
onPointerDown: (e) => {
|
|
204
|
-
var _a, _b;
|
|
205
274
|
e.preventDefault();
|
|
275
|
+
},
|
|
276
|
+
onPointerUp: (e) => {
|
|
277
|
+
var _a, _b;
|
|
206
278
|
(_b = (_a = restProps.innerProps).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
207
279
|
},
|
|
208
|
-
|
|
280
|
+
onTouchEnd: (e) => {
|
|
209
281
|
var _a, _b;
|
|
210
|
-
e.preventDefault();
|
|
211
282
|
(_b = (_a = restProps.innerProps).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);
|
|
212
283
|
},
|
|
284
|
+
onTouchStart: (e) => {
|
|
285
|
+
e.preventDefault();
|
|
286
|
+
},
|
|
213
287
|
role: 'presentation',
|
|
214
288
|
tabIndex: -1,
|
|
215
289
|
} })), children] })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overrides.js","sourceRoot":"","sources":["../../../src/select/Overrides.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { tokens } from '@neo4j-ndl/base';\nimport classNames from 'classnames';\nimport {\n type ClearIndicatorProps,\n components,\n type ControlProps,\n type DropdownIndicatorProps,\n type GroupBase,\n type IndicatorsContainerProps,\n type InputProps,\n type MenuProps,\n type MultiValueProps,\n type OptionProps,\n type PlaceholderProps,\n type SingleValueProps,\n type ValueContainerProps,\n} from 'react-select';\nimport {\n type MenuListProps,\n type MenuPortalProps,\n} from 'react-select/dist/declarations/src/components/Menu';\n\nimport { Checkbox } from '../checkbox';\nimport { ChevronDownIconOutline, XMarkIconOutline } from '../icons';\nimport { Tag } from '../tag';\nimport { useNeedleTheme } from '../theme';\nimport { type SelectOverrideCustomProps } from './types';\n\nexport const DropdownIndicatorCurrying = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component(\n props: DropdownIndicatorProps<OptionType, IsMulti, GroupType>,\n ) {\n const classes = classNames('ndl-select-dropdown-indicator', {\n 'ndl-disabled': props.isDisabled,\n 'ndl-focused': props.isFocused,\n 'ndl-is-multi': props.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n\n return (\n <components.DropdownIndicator {...props} className={classes}>\n <ChevronDownIconOutline\n className=\"ndl-select-icon\"\n style={{\n transform: props.selectProps.menuIsOpen\n ? 'rotate(180deg)'\n : 'rotate(0deg)',\n transitionDuration: tokens.motion.duration.quick,\n }}\n />\n </components.DropdownIndicator>\n );\n };\n\nexport const CustomClearIndication = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n className,\n ...restProps\n }: ClearIndicatorProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames('ndl-select-clear', className, {\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.ClearIndicator {...restProps} className={classes}>\n <div>\n <XMarkIconOutline />\n <div className=\"ndl-select-divider\" />\n </div>\n </components.ClearIndicator>\n );\n };\n\nexport const CustomMultiValue = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: MultiValueProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames('ndl-select-multi-value', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.MultiValueContainer\n {...restProps}\n innerProps={{\n className: classes,\n }}\n >\n <Tag\n size={size}\n onClick={(e) => {\n e.preventDefault();\n restProps.removeProps.onClick?.(\n e as unknown as React.MouseEvent<HTMLDivElement, MouseEvent>,\n );\n }}\n htmlAttributes={{\n onMouseDown: (e) => e.preventDefault(),\n }}\n >\n {children}\n </Tag>\n </components.MultiValueContainer>\n );\n };\n\nexport const CustomPlaceholder = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: PlaceholderProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames('ndl-select-placeholder', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.Placeholder {...restProps} className={classes}>\n {children}\n </components.Placeholder>\n );\n };\n\nexport const CustomControl = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n isClean,\n errorText,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ children, className, ...restProps }: ControlProps) {\n const classes = classNames('ndl-select-control', className, {\n 'ndl-clean': isClean,\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-has-error': !!errorText,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n\n return (\n <components.Control {...restProps} className={classes}>\n {children}\n </components.Control>\n );\n };\n\nexport const CustomIndicatorsContainer = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: IndicatorsContainerProps) {\n const classes = classNames('ndl-select-indicators-container', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.IndicatorsContainer {...restProps} className={classes}>\n {children}\n </components.IndicatorsContainer>\n );\n };\n\nexport const CustomValueContainer = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: ValueContainerProps) {\n const classes = classNames('ndl-select-value-container', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.ValueContainer {...restProps} className={classes}>\n {children}\n </components.ValueContainer>\n );\n };\n\nexport const CustomInput = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ className, ...restProps }: InputProps) {\n const classes = classNames('ndl-select-input', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return <components.Input {...restProps} className={classes} />;\n };\n\nexport const CustomSingleValue = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ className, ...restProps }: SingleValueProps) {\n const classes = classNames('ndl-select-single-value', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return <components.SingleValue {...restProps} className={classes} />;\n };\n\n/** Overrides that are part of the popover menu */\n\nexport const CustomMenu = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ children, className, ...restProps }: MenuProps) {\n const { themeClassName } = useNeedleTheme();\n const classes = classNames('ndl-select-menu', className, themeClassName, {\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.Menu {...restProps} className={classes}>\n {children}\n </components.Menu>\n );\n };\n\nexport const CustomMenuPortal = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: MenuPortalProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames(className, 'ndl-select-menu-portal', {\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.MenuPortal {...restProps} className={classes}>\n {children}\n </components.MenuPortal>\n );\n };\n\nexport const CustomMenuList = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: MenuListProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames(className, 'ndl-select-menu-list', {\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.MenuList {...restProps} className={classes}>\n {children}\n </components.MenuList>\n );\n };\n\nexport const CustomOption = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: OptionProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames(className, 'ndl-select-option', {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-selected': restProps.isSelected,\n 'ndl-small': size === 'small',\n });\n return (\n <components.Option {...restProps} className={classes}>\n {restProps.isMulti === true && (\n <Checkbox\n isChecked={restProps.isSelected}\n ariaLabel={restProps.label}\n isDisabled={restProps.isDisabled}\n htmlAttributes={{\n 'aria-hidden': true,\n disabled: true,\n onPointerDown: (e) => {\n e.preventDefault();\n restProps.innerProps.onClick?.(e);\n },\n onTouchStart: (e) => {\n e.preventDefault();\n restProps.innerProps.onClick?.(\n e as unknown as React.MouseEvent<HTMLDivElement, MouseEvent>,\n );\n },\n role: 'presentation',\n tabIndex: -1,\n }}\n />\n )}\n {children}\n </components.Option>\n );\n };\n"]}
|
|
1
|
+
{"version":3,"file":"Overrides.js","sourceRoot":"","sources":["../../../src/select/Overrides.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n *\n * Copyright (c) \"Neo4j\"\n * Neo4j Sweden AB [http://neo4j.com]\n *\n * This file is part of Neo4j.\n *\n * Neo4j is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { tokens } from '@neo4j-ndl/base';\nimport classNames from 'classnames';\nimport {\n type ClearIndicatorProps,\n components,\n type ControlProps,\n type DropdownIndicatorProps,\n type GroupBase,\n type IndicatorsContainerProps,\n type InputProps,\n type MenuProps,\n type MultiValueProps,\n type OptionProps,\n type PlaceholderProps,\n type SingleValueProps,\n type ValueContainerProps,\n} from 'react-select';\nimport {\n type MenuListProps,\n type MenuPortalProps,\n} from 'react-select/dist/declarations/src/components/Menu';\n\nimport { Checkbox } from '../checkbox';\nimport { ChevronDownIconOutline, XMarkIconOutline } from '../icons';\nimport { Tag } from '../tag';\nimport { useNeedleTheme } from '../theme';\nimport { type SelectOverrideCustomProps } from './types';\n\n/**\n * React-select triggers control/indicator interactions on mouseDown which breaks WCAG 2.5.2 Pointer Cancellation.\n * This helper shifts mouseDown to mouseUp to allow users to cancel by dragging away.\n */\nconst shiftMouseDownToMouseUp = (\n innerProps?: React.HTMLAttributes<HTMLDivElement>,\n stopPropagation = false,\n): React.HTMLAttributes<HTMLDivElement> => {\n const baseProps = innerProps ?? {};\n const maybeStopPropagation = (e: React.SyntheticEvent) =>\n stopPropagation && e.stopPropagation();\n\n return {\n ...baseProps,\n onMouseDown: (e) => {\n e.preventDefault();\n maybeStopPropagation(e);\n },\n onMouseUp: (e) => {\n baseProps.onMouseUp?.(e);\n baseProps.onMouseDown?.(e);\n maybeStopPropagation(e);\n },\n onTouchEnd: (e) => {\n baseProps.onTouchEnd?.(e);\n baseProps.onMouseDown?.(e as unknown as React.MouseEvent<HTMLDivElement>);\n maybeStopPropagation(e);\n },\n onTouchStart: (e) => {\n e.preventDefault();\n maybeStopPropagation(e);\n },\n };\n};\n\n/**\n * React-select triggers option selection on click which fires on mouseDown.\n * This helper shifts the click handler to mouseUp/touchEnd to allow users to cancel by dragging away.\n */\nconst shiftOptionClickToMouseUp = (\n innerProps?: React.HTMLAttributes<HTMLDivElement>,\n): React.HTMLAttributes<HTMLDivElement> => {\n const baseProps = innerProps ?? {};\n\n return {\n ...baseProps,\n // Remove onClick to prevent double-execution (onMouseUp already calls it, and browser would fire click after mouseup)\n onClick: undefined,\n onMouseDown: (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n },\n onMouseUp: (event: React.MouseEvent<HTMLDivElement>) => {\n baseProps.onMouseUp?.(event);\n baseProps.onClick?.(event);\n },\n onTouchEnd: (event: React.TouchEvent<HTMLDivElement>) => {\n baseProps.onTouchEnd?.(event);\n baseProps.onClick?.(event as unknown as React.MouseEvent<HTMLDivElement>);\n },\n onTouchStart: (event: React.TouchEvent<HTMLDivElement>) => {\n event.preventDefault();\n },\n };\n};\n\nexport const DropdownIndicatorCurrying = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component(\n props: DropdownIndicatorProps<OptionType, IsMulti, GroupType>,\n ) {\n const classes = classNames('ndl-select-dropdown-indicator', {\n 'ndl-disabled': props.isDisabled,\n 'ndl-focused': props.isFocused,\n 'ndl-is-multi': props.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n\n // stopPropagation so that we prevent the control from also toggling the menu (double-toggle)\n const indicatorInnerProps = shiftMouseDownToMouseUp(props.innerProps, true);\n\n return (\n <components.DropdownIndicator\n {...props}\n className={classes}\n innerProps={indicatorInnerProps}\n >\n <ChevronDownIconOutline\n className=\"ndl-select-icon\"\n style={{\n transform: props.selectProps.menuIsOpen\n ? 'rotate(180deg)'\n : 'rotate(0deg)',\n transitionDuration: tokens.motion.duration.quick,\n }}\n />\n </components.DropdownIndicator>\n );\n };\n\nexport const CustomClearIndication = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n className,\n innerProps,\n ...restProps\n }: ClearIndicatorProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames('ndl-select-clear', className, {\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n\n const handleClear = () => {\n restProps.clearValue?.();\n };\n\n // Stop propagation to prevent react-select's keyboard handling.\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === '') {\n event.preventDefault();\n }\n event.stopPropagation();\n event.nativeEvent.stopImmediatePropagation?.();\n };\n\n // Prevent react-select's default clear-on-mousedown/touchend behavior.\n const preventAndStop = (e: React.SyntheticEvent) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n const safeInnerProps: typeof innerProps = {\n ...innerProps,\n 'aria-hidden': undefined, // Remove to allow focusable button inside\n onMouseDown: preventAndStop,\n onTouchEnd: preventAndStop,\n };\n\n return (\n <components.ClearIndicator\n className={classes}\n innerProps={safeInnerProps}\n {...restProps}\n >\n <button\n type=\"button\"\n className=\"ndl-select-clear-button\"\n onClick={handleClear}\n onKeyDown={handleKeyDown}\n aria-label=\"Clear selection\"\n >\n <XMarkIconOutline />\n </button>\n <div className=\"ndl-select-divider\" />\n </components.ClearIndicator>\n );\n };\n\nexport const CustomMultiValue = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: MultiValueProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames('ndl-select-multi-value', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.MultiValueContainer\n {...restProps}\n innerProps={{\n className: classes,\n }}\n >\n <Tag\n size={size}\n onClick={(e) => {\n e.preventDefault();\n restProps.removeProps.onClick?.(\n e as unknown as React.MouseEvent<HTMLDivElement, MouseEvent>,\n );\n }}\n htmlAttributes={{\n onMouseDown: (e) => e.preventDefault(),\n }}\n >\n {children}\n </Tag>\n </components.MultiValueContainer>\n );\n };\n\nexport const CustomPlaceholder = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: PlaceholderProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames('ndl-select-placeholder', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.Placeholder {...restProps} className={classes}>\n {children}\n </components.Placeholder>\n );\n };\n\nexport const CustomControl = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n isClean,\n errorText,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ children, className, ...restProps }: ControlProps) {\n const classes = classNames('ndl-select-control', className, {\n 'ndl-clean': isClean,\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-has-error': !!errorText,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n\n const controlInnerProps = shiftMouseDownToMouseUp(restProps.innerProps);\n\n return (\n <components.Control\n {...restProps}\n className={classes}\n innerProps={controlInnerProps}\n >\n {children}\n </components.Control>\n );\n };\n\nexport const CustomIndicatorsContainer = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: IndicatorsContainerProps) {\n const classes = classNames('ndl-select-indicators-container', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.IndicatorsContainer {...restProps} className={classes}>\n {children}\n </components.IndicatorsContainer>\n );\n };\n\nexport const CustomValueContainer = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: ValueContainerProps) {\n const classes = classNames('ndl-select-value-container', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.ValueContainer {...restProps} className={classes}>\n {children}\n </components.ValueContainer>\n );\n };\n\nexport const CustomInput = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ className, ...restProps }: InputProps) {\n const classes = classNames('ndl-select-input', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return <components.Input {...restProps} className={classes} />;\n };\n\nexport const CustomSingleValue = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ className, ...restProps }: SingleValueProps) {\n const classes = classNames('ndl-select-single-value', className, {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return <components.SingleValue {...restProps} className={classes} />;\n };\n\n/** Overrides that are part of the popover menu */\n\nexport const CustomMenu = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({ children, className, ...restProps }: MenuProps) {\n const { themeClassName } = useNeedleTheme();\n const classes = classNames('ndl-select-menu', className, themeClassName, {\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.Menu {...restProps} className={classes}>\n {children}\n </components.Menu>\n );\n };\n\nexport const CustomMenuPortal = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: MenuPortalProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames(className, 'ndl-select-menu-portal', {\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.MenuPortal {...restProps} className={classes}>\n {children}\n </components.MenuPortal>\n );\n };\n\nexport const CustomMenuList = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: MenuListProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames(className, 'ndl-select-menu-list', {\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-small': size === 'small',\n });\n return (\n <components.MenuList {...restProps} className={classes}>\n {children}\n </components.MenuList>\n );\n };\n\nexport const CustomOption = <\n OptionType,\n IsMulti extends boolean = false,\n GroupType extends GroupBase<OptionType> = GroupBase<OptionType>,\n>({\n size,\n}: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) =>\n function Component({\n children,\n className,\n ...restProps\n }: OptionProps<OptionType, IsMulti, GroupType>) {\n const classes = classNames(className, 'ndl-select-option', {\n 'ndl-disabled': restProps.isDisabled,\n 'ndl-focused': restProps.isFocused,\n 'ndl-is-multi': restProps.isMulti,\n 'ndl-large': size === 'large',\n 'ndl-medium': size === 'medium',\n 'ndl-selected': restProps.isSelected,\n 'ndl-small': size === 'small',\n });\n const optionInnerProps = shiftOptionClickToMouseUp(restProps.innerProps);\n\n return (\n <components.Option\n {...restProps}\n className={classes}\n innerProps={optionInnerProps}\n >\n {restProps.isMulti === true && (\n <Checkbox\n isChecked={restProps.isSelected}\n ariaLabel={restProps.label}\n isDisabled={restProps.isDisabled}\n htmlAttributes={{\n 'aria-hidden': true,\n disabled: true,\n onPointerDown: (e) => {\n e.preventDefault();\n },\n onPointerUp: (e) => {\n restProps.innerProps.onClick?.(e);\n },\n onTouchEnd: (e) => {\n restProps.innerProps.onClick?.(\n e as unknown as React.MouseEvent<HTMLDivElement, MouseEvent>,\n );\n },\n onTouchStart: (e) => {\n e.preventDefault();\n },\n role: 'presentation',\n tabIndex: -1,\n }}\n />\n )}\n {children}\n </components.Option>\n );\n };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../src/menu/Menu.tsx"],"names":[],"mappings":"AA8CA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAO1B,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EAEd,aAAa,EACb,cAAc,EACd,SAAS,EAET,cAAc,EACf,MAAM,cAAc,CAAC;AAkCtB,QAAA,MAAM,aAAa,GAAI,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,KAAK,EAAE,2NAoBzD,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../src/menu/Menu.tsx"],"names":[],"mappings":"AA8CA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAO1B,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EAEd,aAAa,EACb,cAAc,EACd,SAAS,EAET,cAAc,EACf,MAAM,cAAc,CAAC;AAkCtB,QAAA,MAAM,aAAa,GAAI,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,KAAK,EAAE,2NAoBzD,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,4CA2PtC,CAAC;AAqTF,QAAA,MAAM,IAAI,WAllBkB,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC;mBAychD,CAAC,SAAS,KAAK,CAAC,WAAW,oFAQ9C,sBAAsB,CAAC,CAAC,EAAE,iBAAiB,CAAC;;;;+EAiH5C,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC;WAtOnB,CAAC,SAAS,KAAK,CAAC,WAAW,gKAe1C,sBAAsB,CAAC,CAAC,EAAE,aAAa,CAAC;IA4OzC;;OAEG;YAtDc,CAAC,SAAS,KAAK,CAAC,WAAW,iFAQ3C,sBAAsB,CAAC,CAAC,EAAE,cAAc,CAAC;gBA1EzB,CAAC,SAAS,KAAK,CAAC,WAAW,2KAgB3C,sBAAsB,CAAC,CAAC,EAAE,cAAc,CAAC;CA2G1C,CAAC;AACH,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-types.d.ts","sourceRoot":"","sources":["../../../src/menu/menu-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,SAAS;IACxB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,WAAW,EAAE;QACX,IAAI,EAAE,eAAe,GAAG,WAAW,GAAG,eAAe,GAAG,UAAU,CAAC;QACnE,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,KACE,IAAI,CAAC;IACV,yCAAyC;IACzC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChD,wCAAwC;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,yGAAyG;IACzG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+SAA+S;IAC/S,SAAS,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;IAC9D,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wDAAwD;IACxD,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"menu-types.d.ts","sourceRoot":"","sources":["../../../src/menu/menu-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ import { type ClearIndicatorProps, type ControlProps, type DropdownIndicatorProp
|
|
|
22
22
|
import { type MenuListProps, type MenuPortalProps } from 'react-select/dist/declarations/src/components/Menu';
|
|
23
23
|
import { type SelectOverrideCustomProps } from './types';
|
|
24
24
|
export declare const DropdownIndicatorCurrying: <OptionType, IsMulti extends boolean = false, GroupType extends GroupBase<OptionType> = GroupBase<OptionType>>({ size, }: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) => (props: DropdownIndicatorProps<OptionType, IsMulti, GroupType>) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
-
export declare const CustomClearIndication: <OptionType, IsMulti extends boolean = false, GroupType extends GroupBase<OptionType> = GroupBase<OptionType>>({ size, }: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) => ({ className, ...restProps }: ClearIndicatorProps<OptionType, IsMulti, GroupType>) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export declare const CustomClearIndication: <OptionType, IsMulti extends boolean = false, GroupType extends GroupBase<OptionType> = GroupBase<OptionType>>({ size, }: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) => ({ className, innerProps, ...restProps }: ClearIndicatorProps<OptionType, IsMulti, GroupType>) => import("react/jsx-runtime").JSX.Element;
|
|
26
26
|
export declare const CustomMultiValue: <OptionType, IsMulti extends boolean = false, GroupType extends GroupBase<OptionType> = GroupBase<OptionType>>({ size, }: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) => ({ children, className, ...restProps }: MultiValueProps<OptionType, IsMulti, GroupType>) => import("react/jsx-runtime").JSX.Element;
|
|
27
27
|
export declare const CustomPlaceholder: <OptionType, IsMulti extends boolean = false, GroupType extends GroupBase<OptionType> = GroupBase<OptionType>>({ size, }: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) => ({ children, className, ...restProps }: PlaceholderProps<OptionType, IsMulti, GroupType>) => import("react/jsx-runtime").JSX.Element;
|
|
28
28
|
export declare const CustomControl: <OptionType, IsMulti extends boolean = false, GroupType extends GroupBase<OptionType> = GroupBase<OptionType>>({ size, isClean, errorText, }: SelectOverrideCustomProps<OptionType, IsMulti, GroupType>) => ({ children, className, ...restProps }: ControlProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overrides.d.ts","sourceRoot":"","sources":["../../../src/select/Overrides.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EACL,KAAK,mBAAmB,EAExB,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EACd,KAAK,wBAAwB,EAC7B,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,oDAAoD,CAAC;AAM5D,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Overrides.d.ts","sourceRoot":"","sources":["../../../src/select/Overrides.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neo4j-ndl/react",
|
|
3
|
-
"version": "4.9.
|
|
3
|
+
"version": "4.9.10",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"description": "React implementation of Neo4j Design System",
|
|
6
6
|
"keywords": [
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"@tanstack/react-table": "8.21.3",
|
|
86
86
|
"react": ">=19.0.0",
|
|
87
87
|
"react-dom": ">=19.0.0",
|
|
88
|
-
"@neo4j-ndl/base": "^4.9.
|
|
88
|
+
"@neo4j-ndl/base": "^4.9.3"
|
|
89
89
|
},
|
|
90
90
|
"dependencies": {
|
|
91
91
|
"@dnd-kit/core": "6.3.1",
|