@razorpay/blade 12.8.2 → 12.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/native/components/Button/IconButton/StyledIconButton.native.js +1 -1
- package/build/lib/native/components/Button/IconButton/StyledIconButton.native.js.map +1 -1
- package/build/lib/native/components/Dropdown/Dropdown.js +1 -1
- package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/native/components/Dropdown/DropdownButton.js.map +1 -1
- package/build/lib/native/components/Dropdown/DropdownIconButton.js +13 -0
- package/build/lib/native/components/Dropdown/DropdownIconButton.js.map +1 -0
- package/build/lib/native/components/Dropdown/DropdownLink.js.map +1 -1
- package/build/lib/native/components/Dropdown/dropdownComponentIds.js +1 -1
- package/build/lib/native/components/Dropdown/dropdownComponentIds.js.map +1 -1
- package/build/lib/native/components/Dropdown/useDropdown.js.map +1 -1
- package/build/lib/native/components/index.js +1 -0
- package/build/lib/native/components/index.js.map +1 -1
- package/build/lib/web/development/components/Button/IconButton/StyledIconButton.web.js +7 -4
- package/build/lib/web/development/components/Button/IconButton/StyledIconButton.web.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/Dropdown.js +4 -1
- package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/DropdownButton.js +1 -7
- package/build/lib/web/development/components/Dropdown/DropdownButton.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/DropdownIconButton.js +78 -0
- package/build/lib/web/development/components/Dropdown/DropdownIconButton.js.map +1 -0
- package/build/lib/web/development/components/Dropdown/DropdownLink.js +0 -5
- package/build/lib/web/development/components/Dropdown/DropdownLink.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/dropdownComponentIds.js +2 -1
- package/build/lib/web/development/components/Dropdown/dropdownComponentIds.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/index.js +1 -0
- package/build/lib/web/development/components/Dropdown/index.js.map +1 -1
- package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavItem.web.js +2 -2
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavItem.web.js.map +1 -1
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js +3 -3
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
- package/build/lib/web/development/components/Tooltip/Tooltip.web.js +3 -1
- package/build/lib/web/development/components/Tooltip/Tooltip.web.js.map +1 -1
- package/build/lib/web/development/components/index.js +1 -0
- package/build/lib/web/development/components/index.js.map +1 -1
- package/build/lib/web/development/{components/SideNav/SideNavItems/TooltipifyNavItem.js → utils/TooltipifyComponent.js} +23 -6
- package/build/lib/web/development/utils/TooltipifyComponent.js.map +1 -0
- package/build/lib/web/production/components/Button/IconButton/StyledIconButton.web.js +7 -4
- package/build/lib/web/production/components/Button/IconButton/StyledIconButton.web.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/Dropdown.js +4 -1
- package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/DropdownButton.js +1 -7
- package/build/lib/web/production/components/Dropdown/DropdownButton.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/DropdownIconButton.js +78 -0
- package/build/lib/web/production/components/Dropdown/DropdownIconButton.js.map +1 -0
- package/build/lib/web/production/components/Dropdown/DropdownLink.js +0 -5
- package/build/lib/web/production/components/Dropdown/DropdownLink.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/dropdownComponentIds.js +2 -1
- package/build/lib/web/production/components/Dropdown/dropdownComponentIds.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/index.js +1 -0
- package/build/lib/web/production/components/Dropdown/index.js.map +1 -1
- package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavItem.web.js +2 -2
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavItem.web.js.map +1 -1
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js +3 -3
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
- package/build/lib/web/production/components/Tooltip/Tooltip.web.js +3 -1
- package/build/lib/web/production/components/Tooltip/Tooltip.web.js.map +1 -1
- package/build/lib/web/production/components/index.js +1 -0
- package/build/lib/web/production/components/index.js.map +1 -1
- package/build/lib/web/production/{components/SideNav/SideNavItems/TooltipifyNavItem.js → utils/TooltipifyComponent.js} +23 -6
- package/build/lib/web/production/utils/TooltipifyComponent.js.map +1 -0
- package/build/types/components/index.d.ts +14 -2
- package/build/types/components/index.native.d.ts +14 -2
- package/package.json +1 -1
- package/build/lib/web/development/components/SideNav/SideNavItems/TooltipifyNavItem.js.map +0 -1
- package/build/lib/web/production/components/SideNav/SideNavItems/TooltipifyNavItem.js.map +0 -1
|
@@ -31,7 +31,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
31
31
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
32
32
|
var validDropdownChildren = [
|
|
33
33
|
// TODO: Remove Box once CountrySelector's button sizing is fixed
|
|
34
|
-
dropdownComponentIds.BaseBox, dropdownComponentIds.triggers.SelectInput, dropdownComponentIds.triggers.SearchInput, dropdownComponentIds.triggers.DropdownButton, dropdownComponentIds.triggers.DropdownLink, dropdownComponentIds.DropdownOverlay, dropdownComponentIds.triggers.AutoComplete, ComponentIds.BottomSheet];
|
|
34
|
+
dropdownComponentIds.BaseBox, dropdownComponentIds.triggers.SelectInput, dropdownComponentIds.triggers.SearchInput, dropdownComponentIds.triggers.DropdownButton, dropdownComponentIds.triggers.DropdownIconButton, dropdownComponentIds.triggers.DropdownLink, dropdownComponentIds.DropdownOverlay, dropdownComponentIds.triggers.AutoComplete, ComponentIds.BottomSheet];
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
37
|
* ### Dropdown component
|
|
@@ -182,6 +182,9 @@ var _Dropdown = function _Dropdown(_ref, ref) {
|
|
|
182
182
|
if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownButton)) {
|
|
183
183
|
dropdownTriggerer.current = 'DropdownButton';
|
|
184
184
|
}
|
|
185
|
+
if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownIconButton)) {
|
|
186
|
+
dropdownTriggerer.current = 'DropdownIconButton';
|
|
187
|
+
}
|
|
185
188
|
if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {
|
|
186
189
|
dropdownTriggerer.current = 'AutoComplete';
|
|
187
190
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.js","sources":["../../../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { DropdownContext } from './useDropdown';\nimport type { DropdownContextType } from './useDropdown';\nimport type { DropdownProps } from './types';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useId } from '~utils/useId';\nimport { ComponentIds as bottomSheetComponentIds } from '~components/BottomSheet/componentIds';\nimport { BottomSheetAndDropdownGlueContext } from '~components/BottomSheet/BottomSheetContext';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport BaseBox from '~components/Box/BaseBox';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport type { BladeElementRef, ContainerElementType } from '~utils/types';\nimport { useControllableState } from '~utils/useControllable';\nimport { mergeRefs } from '~utils/useMergeRefs';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst validDropdownChildren = [\n // TODO: Remove Box once CountrySelector's button sizing is fixed\n dropdownComponentIds.BaseBox,\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.SearchInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\n];\n\n/**\n * ### Dropdown component\n *\n * Dropdown component is generic component that controls the dropdown functionality.\n * It can be used with multiple triggers and mostly contains ActionList component inside it\n *\n * ---\n *\n * #### Usage\n *\n * ```jsx\n * <Dropdown selectionType=\"single\">\n * <SelectInput />\n * <DropdownOverlay>\n * <ActionList>\n * <ActionListItem />\n * <ActionListItem />\n * </ActionList>\n * </DropdownOverlay>\n * </Dropdown>\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select Dropdown Documentation}\n */\nconst _Dropdown = (\n {\n children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n _width,\n ...rest\n }: DropdownProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const [options, setOptions] = React.useState<DropdownContextType['options']>([]);\n const [filteredValues, setFilteredValues] = React.useState<string[]>([]);\n const [selectedIndices, setSelectedIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [controlledValueIndices, setControlledValueIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [activeIndex, setActiveIndex] = React.useState(-1);\n const [activeTagIndex, setActiveTagIndex] = React.useState(-1);\n const [shouldIgnoreBlurAnimation, setShouldIgnoreBlurAnimation] = React.useState(false);\n const [hasFooterAction, setHasFooterAction] = React.useState(false);\n const [\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\n ] = React.useState(false);\n const [isKeydownPressed, setIsKeydownPressed] = React.useState(false);\n const [changeCallbackTriggerer, setChangeCallbackTriggerer] = React.useState<\n DropdownContextType['changeCallbackTriggerer']\n >(0);\n const [isControlled, setIsControlled] = React.useState(false);\n // keep track if dropdown contains bottomsheet\n const [dropdownHasBottomSheet, setDropdownHasBottomSheet] = React.useState(false);\n\n /**\n * In inputs, actual input is smaller than the visible input wrapper.\n * You can set this reference in such cases so floating ui calculations happen correctly\n * */\n const triggererWrapperRef = React.useRef<ContainerElementType>(null);\n const triggererRef = React.useRef<HTMLButtonElement>(null);\n const actionListItemRef = React.useRef<HTMLDivElement>(null);\n const dropdownTriggerer = React.useRef<DropdownContextType['dropdownTriggerer']>();\n const isTagDismissedRef = React.useRef<{ value: boolean } | null>({ value: false });\n const visibleTagsCountRef = React.useRef<{ value: number }>({ value: 0 });\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n\n const dropdownBaseId = useId('dropdown');\n const isDropdownOpenRef = React.useRef(isOpenControlled);\n\n const [isDropdownOpen, setIsDropdownOpen] = useControllableState({\n value: isOpenControlled,\n defaultValue: false,\n onChange: (isOpenControlledValue) => {\n isDropdownOpenRef.current = isOpenControlledValue;\n onOpenChange?.(isOpenControlledValue);\n },\n });\n\n isDropdownOpenRef.current = isDropdownOpen;\n\n const setIsOpen = (isOpenValue: boolean): void => {\n isDropdownOpenRef.current = isOpenValue;\n setIsDropdownOpen(() => isOpenValue);\n };\n\n const close = React.useCallback(() => {\n setActiveTagIndex(-1);\n setIsOpen(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n if (__DEV__) {\n if (!validDropdownChildren.includes(getComponentId(child) ?? '')) {\n throwBladeError({\n message: `Dropdown can only have one of following elements as children - \\n\\n ${validDropdownChildren.join(\n ', ',\n )} \\n\\n Check out: https://blade.razorpay.com/?path=/story/components-dropdown`,\n moduleName: 'Dropdown',\n });\n }\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SelectInput)) {\n dropdownTriggerer.current = 'SelectInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SearchInput)) {\n dropdownTriggerer.current = 'SearchInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\n }\n }\n });\n\n const contextValue = React.useMemo<DropdownContextType>(\n () => ({\n isOpen: isDropdownOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n controlledValueIndices,\n setControlledValueIndices,\n options,\n setOptions,\n filteredValues,\n setFilteredValues,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n isKeydownPressed,\n setIsKeydownPressed,\n dropdownBaseId,\n triggererRef,\n triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\n dropdownTriggerer: dropdownTriggerer.current,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setIsControlled,\n isTagDismissedRef,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n isDropdownOpen,\n isOpenControlled,\n selectedIndices,\n controlledValueIndices,\n options,\n filteredValues,\n activeIndex,\n activeTagIndex,\n shouldIgnoreBlurAnimation,\n selectionType,\n hasFooterAction,\n isKeydownPressed,\n changeCallbackTriggerer,\n isControlled,\n ],\n );\n\n const BottomSheetAndDropdownGlueContextValue = React.useMemo((): BottomSheetAndDropdownGlueContext => {\n return {\n isOpen: isDropdownOpen,\n dropdownHasBottomSheet,\n hasAutoCompleteInBottomSheetHeader,\n setDropdownHasBottomSheet,\n // This is the dismiss function which will be injected into the BottomSheet\n // Basically <BottomSheet onDismiss={onBottomSheetDismiss} />\n onBottomSheetDismiss: close,\n };\n }, [dropdownHasBottomSheet, hasAutoCompleteInBottomSheetHeader, isDropdownOpen, close]);\n\n return (\n <BottomSheetAndDropdownGlueContext.Provider value={BottomSheetAndDropdownGlueContextValue}>\n <DropdownContext.Provider value={contextValue}>\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={mergeRefs(ref, dropdownContainerRef as any)}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n width={_width}\n >\n <BaseBox position=\"relative\" textAlign={'left' as never}>\n {children}\n </BaseBox>\n </BaseBox>\n </DropdownContext.Provider>\n </BottomSheetAndDropdownGlueContext.Provider>\n );\n};\n\nconst Dropdown = assignWithoutSideEffects(React.forwardRef(_Dropdown), {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","BaseBox","triggers","SelectInput","SearchInput","DropdownButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","_Dropdown","_ref","ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","_width","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","options","setOptions","_React$useState3","_React$useState4","filteredValues","setFilteredValues","_React$useState5","_React$useState6","selectedIndices","setSelectedIndices","_React$useState7","_React$useState8","controlledValueIndices","setControlledValueIndices","_React$useState9","_React$useState10","activeIndex","setActiveIndex","_React$useState11","_React$useState12","activeTagIndex","setActiveTagIndex","_React$useState13","_React$useState14","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","_React$useState15","_React$useState16","hasFooterAction","setHasFooterAction","_React$useState17","_React$useState18","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","_React$useState19","_React$useState20","isKeydownPressed","setIsKeydownPressed","_React$useState21","_React$useState22","changeCallbackTriggerer","setChangeCallbackTriggerer","_React$useState23","_React$useState24","isControlled","setIsControlled","_React$useState25","_React$useState26","dropdownHasBottomSheet","setDropdownHasBottomSheet","triggererWrapperRef","useRef","triggererRef","actionListItemRef","dropdownTriggerer","isTagDismissedRef","value","visibleTagsCountRef","dropdownContainerRef","dropdownBaseId","useId","isDropdownOpenRef","_useControllableState","useControllableState","defaultValue","onChange","isOpenControlledValue","current","_useControllableState2","isDropdownOpen","setIsDropdownOpen","setIsOpen","isOpenValue","close","useCallback","Children","map","child","isValidElement","_getComponentId","includes","getComponentId","throwBladeError","message","concat","join","moduleName","isValidAllowedChildren","contextValue","useMemo","BottomSheetAndDropdownGlueContextValue","onBottomSheetDismiss","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","_objectSpread","mergeRefs","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","makeAnalyticsAttribute","width","position","textAlign","assignWithoutSideEffects","forwardRef","componentId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dropdown.js","sources":["../../../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React from 'react';\nimport { DropdownContext } from './useDropdown';\nimport type { DropdownContextType } from './useDropdown';\nimport type { DropdownProps } from './types';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useId } from '~utils/useId';\nimport { ComponentIds as bottomSheetComponentIds } from '~components/BottomSheet/componentIds';\nimport { BottomSheetAndDropdownGlueContext } from '~components/BottomSheet/BottomSheetContext';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport BaseBox from '~components/Box/BaseBox';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { throwBladeError } from '~utils/logger';\nimport type { BladeElementRef, ContainerElementType } from '~utils/types';\nimport { useControllableState } from '~utils/useControllable';\nimport { mergeRefs } from '~utils/useMergeRefs';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst validDropdownChildren = [\n // TODO: Remove Box once CountrySelector's button sizing is fixed\n dropdownComponentIds.BaseBox,\n dropdownComponentIds.triggers.SelectInput,\n dropdownComponentIds.triggers.SearchInput,\n dropdownComponentIds.triggers.DropdownButton,\n dropdownComponentIds.triggers.DropdownIconButton,\n dropdownComponentIds.triggers.DropdownLink,\n dropdownComponentIds.DropdownOverlay,\n dropdownComponentIds.triggers.AutoComplete,\n bottomSheetComponentIds.BottomSheet,\n];\n\n/**\n * ### Dropdown component\n *\n * Dropdown component is generic component that controls the dropdown functionality.\n * It can be used with multiple triggers and mostly contains ActionList component inside it\n *\n * ---\n *\n * #### Usage\n *\n * ```jsx\n * <Dropdown selectionType=\"single\">\n * <SelectInput />\n * <DropdownOverlay>\n * <ActionList>\n * <ActionListItem />\n * <ActionListItem />\n * </ActionList>\n * </DropdownOverlay>\n * </Dropdown>\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-dropdown-with-select--with-single-select Dropdown Documentation}\n */\nconst _Dropdown = (\n {\n children,\n isOpen: isOpenControlled,\n onOpenChange,\n selectionType = 'single',\n testID,\n _width,\n ...rest\n }: DropdownProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const [options, setOptions] = React.useState<DropdownContextType['options']>([]);\n const [filteredValues, setFilteredValues] = React.useState<string[]>([]);\n const [selectedIndices, setSelectedIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [controlledValueIndices, setControlledValueIndices] = React.useState<\n DropdownContextType['selectedIndices']\n >([]);\n const [activeIndex, setActiveIndex] = React.useState(-1);\n const [activeTagIndex, setActiveTagIndex] = React.useState(-1);\n const [shouldIgnoreBlurAnimation, setShouldIgnoreBlurAnimation] = React.useState(false);\n const [hasFooterAction, setHasFooterAction] = React.useState(false);\n const [\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\n ] = React.useState(false);\n const [isKeydownPressed, setIsKeydownPressed] = React.useState(false);\n const [changeCallbackTriggerer, setChangeCallbackTriggerer] = React.useState<\n DropdownContextType['changeCallbackTriggerer']\n >(0);\n const [isControlled, setIsControlled] = React.useState(false);\n // keep track if dropdown contains bottomsheet\n const [dropdownHasBottomSheet, setDropdownHasBottomSheet] = React.useState(false);\n\n /**\n * In inputs, actual input is smaller than the visible input wrapper.\n * You can set this reference in such cases so floating ui calculations happen correctly\n * */\n const triggererWrapperRef = React.useRef<ContainerElementType>(null);\n const triggererRef = React.useRef<HTMLButtonElement>(null);\n const actionListItemRef = React.useRef<HTMLDivElement>(null);\n const dropdownTriggerer = React.useRef<DropdownContextType['dropdownTriggerer']>();\n const isTagDismissedRef = React.useRef<{ value: boolean } | null>({ value: false });\n const visibleTagsCountRef = React.useRef<{ value: number }>({ value: 0 });\n const dropdownContainerRef = React.useRef<HTMLDivElement>(null);\n\n const dropdownBaseId = useId('dropdown');\n const isDropdownOpenRef = React.useRef(isOpenControlled);\n\n const [isDropdownOpen, setIsDropdownOpen] = useControllableState({\n value: isOpenControlled,\n defaultValue: false,\n onChange: (isOpenControlledValue) => {\n isDropdownOpenRef.current = isOpenControlledValue;\n onOpenChange?.(isOpenControlledValue);\n },\n });\n\n isDropdownOpenRef.current = isDropdownOpen;\n\n const setIsOpen = (isOpenValue: boolean): void => {\n isDropdownOpenRef.current = isOpenValue;\n setIsDropdownOpen(() => isOpenValue);\n };\n\n const close = React.useCallback(() => {\n setActiveTagIndex(-1);\n setIsOpen(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n if (__DEV__) {\n if (!validDropdownChildren.includes(getComponentId(child) ?? '')) {\n throwBladeError({\n message: `Dropdown can only have one of following elements as children - \\n\\n ${validDropdownChildren.join(\n ', ',\n )} \\n\\n Check out: https://blade.razorpay.com/?path=/story/components-dropdown`,\n moduleName: 'Dropdown',\n });\n }\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SelectInput)) {\n dropdownTriggerer.current = 'SelectInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.SearchInput)) {\n dropdownTriggerer.current = 'SearchInput';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownButton)) {\n dropdownTriggerer.current = 'DropdownButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.DropdownIconButton)) {\n dropdownTriggerer.current = 'DropdownIconButton';\n }\n\n if (isValidAllowedChildren(child, dropdownComponentIds.triggers.AutoComplete)) {\n dropdownTriggerer.current = 'AutoComplete';\n }\n }\n });\n\n const contextValue = React.useMemo<DropdownContextType>(\n () => ({\n isOpen: isDropdownOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n controlledValueIndices,\n setControlledValueIndices,\n options,\n setOptions,\n filteredValues,\n setFilteredValues,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n shouldIgnoreBlurAnimation,\n setShouldIgnoreBlurAnimation,\n isKeydownPressed,\n setIsKeydownPressed,\n dropdownBaseId,\n triggererRef,\n triggererWrapperRef,\n actionListItemRef,\n selectionType,\n hasFooterAction,\n setHasFooterAction,\n hasAutoCompleteInBottomSheetHeader,\n setHasAutoCompleteInBottomSheetHeader,\n dropdownTriggerer: dropdownTriggerer.current,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setIsControlled,\n isTagDismissedRef,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n isDropdownOpen,\n isOpenControlled,\n selectedIndices,\n controlledValueIndices,\n options,\n filteredValues,\n activeIndex,\n activeTagIndex,\n shouldIgnoreBlurAnimation,\n selectionType,\n hasFooterAction,\n isKeydownPressed,\n changeCallbackTriggerer,\n isControlled,\n ],\n );\n\n const BottomSheetAndDropdownGlueContextValue = React.useMemo((): BottomSheetAndDropdownGlueContext => {\n return {\n isOpen: isDropdownOpen,\n dropdownHasBottomSheet,\n hasAutoCompleteInBottomSheetHeader,\n setDropdownHasBottomSheet,\n // This is the dismiss function which will be injected into the BottomSheet\n // Basically <BottomSheet onDismiss={onBottomSheetDismiss} />\n onBottomSheetDismiss: close,\n };\n }, [dropdownHasBottomSheet, hasAutoCompleteInBottomSheetHeader, isDropdownOpen, close]);\n\n return (\n <BottomSheetAndDropdownGlueContext.Provider value={BottomSheetAndDropdownGlueContextValue}>\n <DropdownContext.Provider value={contextValue}>\n <BaseBox\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={mergeRefs(ref, dropdownContainerRef as any)}\n {...metaAttribute({ name: MetaConstants.Dropdown, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n width={_width}\n >\n <BaseBox position=\"relative\" textAlign={'left' as never}>\n {children}\n </BaseBox>\n </BaseBox>\n </DropdownContext.Provider>\n </BottomSheetAndDropdownGlueContext.Provider>\n );\n};\n\nconst Dropdown = assignWithoutSideEffects(React.forwardRef(_Dropdown), {\n componentId: dropdownComponentIds.Dropdown,\n});\n\nexport { Dropdown };\n"],"names":["validDropdownChildren","dropdownComponentIds","BaseBox","triggers","SelectInput","SearchInput","DropdownButton","DropdownIconButton","DropdownLink","DropdownOverlay","AutoComplete","bottomSheetComponentIds","BottomSheet","_Dropdown","_ref","ref","children","isOpenControlled","isOpen","onOpenChange","_ref$selectionType","selectionType","testID","_width","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","options","setOptions","_React$useState3","_React$useState4","filteredValues","setFilteredValues","_React$useState5","_React$useState6","selectedIndices","setSelectedIndices","_React$useState7","_React$useState8","controlledValueIndices","setControlledValueIndices","_React$useState9","_React$useState10","activeIndex","setActiveIndex","_React$useState11","_React$useState12","activeTagIndex","setActiveTagIndex","_React$useState13","_React$useState14","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","_React$useState15","_React$useState16","hasFooterAction","setHasFooterAction","_React$useState17","_React$useState18","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","_React$useState19","_React$useState20","isKeydownPressed","setIsKeydownPressed","_React$useState21","_React$useState22","changeCallbackTriggerer","setChangeCallbackTriggerer","_React$useState23","_React$useState24","isControlled","setIsControlled","_React$useState25","_React$useState26","dropdownHasBottomSheet","setDropdownHasBottomSheet","triggererWrapperRef","useRef","triggererRef","actionListItemRef","dropdownTriggerer","isTagDismissedRef","value","visibleTagsCountRef","dropdownContainerRef","dropdownBaseId","useId","isDropdownOpenRef","_useControllableState","useControllableState","defaultValue","onChange","isOpenControlledValue","current","_useControllableState2","isDropdownOpen","setIsDropdownOpen","setIsOpen","isOpenValue","close","useCallback","Children","map","child","isValidElement","_getComponentId","includes","getComponentId","throwBladeError","message","concat","join","moduleName","isValidAllowedChildren","contextValue","useMemo","BottomSheetAndDropdownGlueContextValue","onBottomSheetDismiss","_jsx","BottomSheetAndDropdownGlueContext","Provider","DropdownContext","_objectSpread","mergeRefs","metaAttribute","name","MetaConstants","Dropdown","getStyledProps","makeAnalyticsAttribute","width","position","textAlign","assignWithoutSideEffects","forwardRef","componentId"],"mappings":"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"}
|
|
@@ -61,9 +61,7 @@ var _DropdownButton = function _DropdownButton(_ref) {
|
|
|
61
61
|
size: size,
|
|
62
62
|
type: type,
|
|
63
63
|
variant: variant,
|
|
64
|
-
testID: testID
|
|
65
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
66
|
-
,
|
|
64
|
+
testID: testID,
|
|
67
65
|
ref: triggererRef,
|
|
68
66
|
accessibilityProps: {
|
|
69
67
|
label: accessibilityLabel,
|
|
@@ -75,22 +73,18 @@ var _DropdownButton = function _DropdownButton(_ref) {
|
|
|
75
73
|
onClick: function onClick(e) {
|
|
76
74
|
onTriggerClick();
|
|
77
75
|
// Setting it for web fails it on native typecheck and vice versa
|
|
78
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any
|
|
79
76
|
_onClick === null || _onClick === void 0 ? void 0 : _onClick(e);
|
|
80
77
|
},
|
|
81
78
|
onBlur: function onBlur(e) {
|
|
82
79
|
// With button trigger, there is no "value" as such. It's just clickable items
|
|
83
80
|
// Setting it for web fails it on native typecheck and vice versa
|
|
84
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any
|
|
85
81
|
_onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);
|
|
86
82
|
},
|
|
87
83
|
onKeyDown: function onKeyDown(e) {
|
|
88
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any
|
|
89
84
|
onTriggerKeydown === null || onTriggerKeydown === void 0 ? void 0 : onTriggerKeydown({
|
|
90
85
|
event: e
|
|
91
86
|
});
|
|
92
87
|
// Setting it for web fails it on native typecheck and vice versa
|
|
93
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any
|
|
94
88
|
_onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e);
|
|
95
89
|
}
|
|
96
90
|
}))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownButton.js","sources":["../../../../../../src/components/Dropdown/DropdownButton.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"DropdownButton.js","sources":["../../../../../../src/components/Dropdown/DropdownButton.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport BaseButton from '~components/Button/BaseButton';\nimport type { ButtonProps } from '~components/Button';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseButtonProps } from '~components/Button/BaseButton/BaseButton';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\ntype DropdownButtonProps = ButtonProps & {\n onBlur?: BaseButtonProps['onBlur'];\n onKeyDown?: BaseButtonProps['onKeyDown'];\n};\n\nconst _DropdownButton = ({\n children,\n icon,\n iconPosition = 'left',\n isDisabled = false,\n isFullWidth = false,\n isLoading = false,\n onClick,\n onBlur,\n onKeyDown,\n size = 'medium',\n type = 'button',\n variant = 'primary',\n accessibilityLabel,\n testID,\n ...rest\n}: DropdownButtonProps): React.ReactElement => {\n const {\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n } = useDropdown();\n\n return (\n // Using BaseButton here to avoid exporting onBlur and onKeyDown from Button\n // If in future we decide to export onBlur and onKeyDown on Button, this can be replaced with Button\n <BaseButton\n {...rest}\n {...(icon ? { icon, children } : { children })}\n iconPosition={iconPosition}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n size={size}\n type={type}\n variant={variant}\n testID={testID}\n ref={triggererRef as any}\n accessibilityProps={{\n label: accessibilityLabel,\n hasPopup: getActionListContainerRole(hasFooterAction, 'DropdownButton'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n // Setting it for web fails it on native typecheck and vice versa\n onClick?.(e as any);\n }}\n onBlur={(e) => {\n // With button trigger, there is no \"value\" as such. It's just clickable items\n // Setting it for web fails it on native typecheck and vice versa\n onBlur?.(e as any);\n }}\n onKeyDown={(e) => {\n onTriggerKeydown?.({ event: e as any });\n // Setting it for web fails it on native typecheck and vice versa\n onKeyDown?.(e as any);\n }}\n />\n );\n};\n\nconst DropdownButton = assignWithoutSideEffects(_DropdownButton, {\n componentId: dropdownComponentIds.triggers.DropdownButton,\n});\n\nexport { DropdownButton };\n"],"names":["_DropdownButton","_ref","children","icon","_ref$iconPosition","iconPosition","_ref$isDisabled","isDisabled","_ref$isFullWidth","isFullWidth","_ref$isLoading","isLoading","onClick","onBlur","onKeyDown","_ref$size","size","_ref$type","type","_ref$variant","variant","accessibilityLabel","testID","rest","_objectWithoutProperties","_excluded","_useDropdown","useDropdown","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","_jsx","BaseButton","_objectSpread","ref","accessibilityProps","label","hasPopup","getActionListContainerRole","expanded","controls","concat","activeDescendant","undefined","e","event","DropdownButton","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
|
+
import 'react';
|
|
4
|
+
import { useDropdown } from './useDropdown.js';
|
|
5
|
+
import { dropdownComponentIds } from './dropdownComponentIds.js';
|
|
6
|
+
import { getActionListContainerRole } from '../ActionList/getA11yRoles.js';
|
|
7
|
+
import '../../utils/assignWithoutSideEffects/index.js';
|
|
8
|
+
import StyledIconButton from '../Button/IconButton/StyledIconButton.web.js';
|
|
9
|
+
import { jsx } from 'react/jsx-runtime';
|
|
10
|
+
import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
|
|
11
|
+
|
|
12
|
+
var _excluded = ["icon", "isDisabled", "onClick", "onBlur", "onKeyDown", "size", "accessibilityLabel", "emphasis"];
|
|
13
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
|
+
var _DropdownIconButton = function _DropdownIconButton(_ref) {
|
|
16
|
+
var icon = _ref.icon,
|
|
17
|
+
_ref$isDisabled = _ref.isDisabled,
|
|
18
|
+
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
|
|
19
|
+
_onClick = _ref.onClick,
|
|
20
|
+
_onBlur = _ref.onBlur,
|
|
21
|
+
_onKeyDown = _ref.onKeyDown,
|
|
22
|
+
_ref$size = _ref.size,
|
|
23
|
+
size = _ref$size === void 0 ? 'medium' : _ref$size,
|
|
24
|
+
accessibilityLabel = _ref.accessibilityLabel,
|
|
25
|
+
_ref$emphasis = _ref.emphasis,
|
|
26
|
+
emphasis = _ref$emphasis === void 0 ? 'intense' : _ref$emphasis,
|
|
27
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
28
|
+
var _useDropdown = useDropdown(),
|
|
29
|
+
onTriggerClick = _useDropdown.onTriggerClick,
|
|
30
|
+
onTriggerKeydown = _useDropdown.onTriggerKeydown,
|
|
31
|
+
dropdownBaseId = _useDropdown.dropdownBaseId,
|
|
32
|
+
isOpen = _useDropdown.isOpen,
|
|
33
|
+
activeIndex = _useDropdown.activeIndex,
|
|
34
|
+
hasFooterAction = _useDropdown.hasFooterAction,
|
|
35
|
+
triggererRef = _useDropdown.triggererRef;
|
|
36
|
+
return (
|
|
37
|
+
/*#__PURE__*/
|
|
38
|
+
// Using StyledIconButton here to avoid exporting onKeydown, and accessibiltiyProps object
|
|
39
|
+
jsx(StyledIconButton, _objectSpread(_objectSpread({}, rest), {}, {
|
|
40
|
+
icon: icon,
|
|
41
|
+
isDisabled: isDisabled,
|
|
42
|
+
size: size,
|
|
43
|
+
emphasis: emphasis,
|
|
44
|
+
ref: triggererRef,
|
|
45
|
+
accessibilityLabel: accessibilityLabel,
|
|
46
|
+
accessibilityProps: {
|
|
47
|
+
label: accessibilityLabel,
|
|
48
|
+
hasPopup: getActionListContainerRole(hasFooterAction, 'DropdownIconButton'),
|
|
49
|
+
expanded: isOpen,
|
|
50
|
+
controls: "".concat(dropdownBaseId, "-actionlist"),
|
|
51
|
+
activeDescendant: activeIndex >= 0 ? "".concat(dropdownBaseId, "-").concat(activeIndex) : undefined
|
|
52
|
+
},
|
|
53
|
+
onClick: function onClick(e) {
|
|
54
|
+
onTriggerClick();
|
|
55
|
+
// Setting it for web fails it on native typecheck and vice versa
|
|
56
|
+
_onClick === null || _onClick === void 0 ? void 0 : _onClick(e);
|
|
57
|
+
},
|
|
58
|
+
onBlur: function onBlur(e) {
|
|
59
|
+
// With button trigger, there is no "value" as such. It's just clickable items
|
|
60
|
+
// Setting it for web fails it on native typecheck and vice versa
|
|
61
|
+
_onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);
|
|
62
|
+
},
|
|
63
|
+
onKeyDown: function onKeyDown(e) {
|
|
64
|
+
onTriggerKeydown === null || onTriggerKeydown === void 0 ? void 0 : onTriggerKeydown({
|
|
65
|
+
event: e
|
|
66
|
+
});
|
|
67
|
+
// Setting it for web fails it on native typecheck and vice versa
|
|
68
|
+
_onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e);
|
|
69
|
+
}
|
|
70
|
+
}))
|
|
71
|
+
);
|
|
72
|
+
};
|
|
73
|
+
var DropdownIconButton = /*#__PURE__*/assignWithoutSideEffects(_DropdownIconButton, {
|
|
74
|
+
componentId: dropdownComponentIds.triggers.DropdownIconButton
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
export { DropdownIconButton };
|
|
78
|
+
//# sourceMappingURL=DropdownIconButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownIconButton.js","sources":["../../../../../../src/components/Dropdown/DropdownIconButton.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseButtonProps } from '~components/Button/BaseButton/BaseButton';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport type { IconButtonProps } from '~components/Button/IconButton';\nimport StyledIconButton from '~components/Button/IconButton/StyledIconButton';\n\ntype DropdownIconButtonProps = Omit<IconButtonProps, 'onClick'> & {\n onBlur?: BaseButtonProps['onBlur'];\n onKeyDown?: BaseButtonProps['onKeyDown'];\n onClick?: IconButtonProps['onClick'];\n};\n\nconst _DropdownIconButton = ({\n icon,\n isDisabled = false,\n onClick,\n onBlur,\n onKeyDown,\n size = 'medium',\n accessibilityLabel,\n emphasis = 'intense',\n ...rest\n}: DropdownIconButtonProps): React.ReactElement => {\n const {\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n } = useDropdown();\n\n return (\n // Using StyledIconButton here to avoid exporting onKeydown, and accessibiltiyProps object\n <StyledIconButton\n {...rest}\n icon={icon}\n isDisabled={isDisabled}\n size={size}\n emphasis={emphasis}\n ref={triggererRef as any}\n accessibilityLabel={accessibilityLabel}\n accessibilityProps={{\n label: accessibilityLabel,\n hasPopup: getActionListContainerRole(hasFooterAction, 'DropdownIconButton'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n // Setting it for web fails it on native typecheck and vice versa\n onClick?.(e as any);\n }}\n onBlur={(e) => {\n // With button trigger, there is no \"value\" as such. It's just clickable items\n // Setting it for web fails it on native typecheck and vice versa\n onBlur?.(e as any);\n }}\n onKeyDown={(e) => {\n onTriggerKeydown?.({ event: e as any });\n // Setting it for web fails it on native typecheck and vice versa\n onKeyDown?.(e as any);\n }}\n />\n );\n};\n\nconst DropdownIconButton = assignWithoutSideEffects(_DropdownIconButton, {\n componentId: dropdownComponentIds.triggers.DropdownIconButton,\n});\n\nexport { DropdownIconButton };\n"],"names":["_DropdownIconButton","_ref","icon","_ref$isDisabled","isDisabled","onClick","onBlur","onKeyDown","_ref$size","size","accessibilityLabel","_ref$emphasis","emphasis","rest","_objectWithoutProperties","_excluded","_useDropdown","useDropdown","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","_jsx","StyledIconButton","_objectSpread","ref","accessibilityProps","label","hasPopup","getActionListContainerRole","expanded","controls","concat","activeDescendant","undefined","e","event","DropdownIconButton","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
|
|
@@ -61,7 +61,6 @@ var _DropdownLink = function _DropdownLink(_ref) {
|
|
|
61
61
|
htmlTitle: htmlTitle,
|
|
62
62
|
isDisabled: isDisabled
|
|
63
63
|
}, props), makeAnalyticsAttribute(props)), {}, {
|
|
64
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
64
|
ref: triggererRef,
|
|
66
65
|
accessibilityProps: {
|
|
67
66
|
label: accessibilityLabel,
|
|
@@ -73,21 +72,17 @@ var _DropdownLink = function _DropdownLink(_ref) {
|
|
|
73
72
|
onClick: function onClick(e) {
|
|
74
73
|
onTriggerClick();
|
|
75
74
|
// Setting it for web fails it on native typecheck and vice versa
|
|
76
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any
|
|
77
75
|
_onClick === null || _onClick === void 0 ? void 0 : _onClick(e);
|
|
78
76
|
},
|
|
79
77
|
onBlur: function onBlur(e) {
|
|
80
78
|
// Setting it for web fails it on native typecheck and vice versa
|
|
81
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any
|
|
82
79
|
_onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);
|
|
83
80
|
},
|
|
84
81
|
onKeyDown: function onKeyDown(e) {
|
|
85
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any
|
|
86
82
|
onTriggerKeydown === null || onTriggerKeydown === void 0 ? void 0 : onTriggerKeydown({
|
|
87
83
|
event: e
|
|
88
84
|
});
|
|
89
85
|
// Setting it for web fails it on native typecheck and vice versa
|
|
90
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any
|
|
91
86
|
_onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e);
|
|
92
87
|
}
|
|
93
88
|
}))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownLink.js","sources":["../../../../../../src/components/Dropdown/DropdownLink.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"DropdownLink.js","sources":["../../../../../../src/components/Dropdown/DropdownLink.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React from 'react';\nimport { getActionListContainerRole } from '../ActionList/getA11yRoles';\nimport { BaseLink } from '../Link/BaseLink';\nimport type { BaseLinkProps } from '../Link/BaseLink';\nimport type { LinkButtonVariantProps } from '../Link';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { assignWithoutSideEffects } from '~src/utils/assignWithoutSideEffects';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype DropdownLinkProps = LinkButtonVariantProps & {\n onBlur?: BaseLinkProps['onBlur'];\n onKeyDown?: BaseLinkProps['onKeyDown'];\n};\n\nconst _DropdownLink = ({\n children,\n icon,\n iconPosition = 'left',\n onClick,\n onBlur,\n onKeyDown,\n isDisabled,\n href,\n target,\n rel,\n accessibilityLabel,\n size = 'medium',\n testID,\n hitSlop,\n htmlTitle,\n ...props\n}: DropdownLinkProps): React.ReactElement => {\n const {\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n } = useDropdown();\n\n return (\n // Using BaseButton here to avoid exporting onBlur and onKeyDown from Button\n // If in future we decide to export onBlur and onKeyDown on Button, this can be replaced with Button\n <BaseLink\n variant=\"button\"\n {...(icon ? { icon, children } : { children })}\n iconPosition={iconPosition}\n size={size}\n testID={testID}\n hitSlop={hitSlop}\n htmlTitle={htmlTitle}\n isDisabled={isDisabled}\n {...props}\n {...makeAnalyticsAttribute(props)}\n ref={triggererRef as any}\n accessibilityProps={{\n label: accessibilityLabel,\n hasPopup: getActionListContainerRole(hasFooterAction, 'DropdownButton'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n // Setting it for web fails it on native typecheck and vice versa\n onClick?.(e as any);\n }}\n onBlur={(e) => {\n // Setting it for web fails it on native typecheck and vice versa\n onBlur?.(e as any);\n }}\n onKeyDown={(e) => {\n onTriggerKeydown?.({ event: e as any });\n // Setting it for web fails it on native typecheck and vice versa\n onKeyDown?.(e as any);\n }}\n />\n );\n};\n\nconst DropdownLink = assignWithoutSideEffects(_DropdownLink, {\n componentId: dropdownComponentIds.triggers.DropdownLink,\n});\n\nexport { DropdownLink };\n"],"names":["_DropdownLink","_ref","children","icon","_ref$iconPosition","iconPosition","onClick","onBlur","onKeyDown","isDisabled","href","target","rel","accessibilityLabel","_ref$size","size","testID","hitSlop","htmlTitle","props","_objectWithoutProperties","_excluded","_useDropdown","useDropdown","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","_jsx","BaseLink","_objectSpread","variant","makeAnalyticsAttribute","ref","accessibilityProps","label","hasPopup","getActionListContainerRole","expanded","controls","concat","activeDescendant","undefined","e","event","DropdownLink","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdownComponentIds.js","sources":["../../../../../../src/components/Dropdown/dropdownComponentIds.ts"],"sourcesContent":["export const dropdownComponentIds = {\n DropdownOverlay: 'DropdownOverlay',\n Dropdown: 'Dropdown',\n BaseBox: 'BaseBox',\n triggers: {\n SelectInput: 'SelectInput',\n DropdownButton: 'DropdownButton',\n DropdownLink: 'DropdownLink',\n AutoComplete: 'AutoComplete',\n SearchInput: 'SearchInput',\n },\n};\n"],"names":["dropdownComponentIds","DropdownOverlay","Dropdown","BaseBox","triggers","SelectInput","DropdownButton","DropdownLink","AutoComplete","SearchInput"],"mappings":"AAAO,IAAMA,oBAAoB,GAAG;AAClCC,EAAAA,eAAe,EAAE,iBAAiB;AAClCC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,WAAW,EAAE,aAAa;AAC1BC,IAAAA,cAAc,EAAE,gBAAgB;AAChCC,IAAAA,YAAY,EAAE,cAAc;AAC5BC,IAAAA,YAAY,EAAE,cAAc;AAC5BC,IAAAA,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"dropdownComponentIds.js","sources":["../../../../../../src/components/Dropdown/dropdownComponentIds.ts"],"sourcesContent":["export const dropdownComponentIds = {\n DropdownOverlay: 'DropdownOverlay',\n Dropdown: 'Dropdown',\n BaseBox: 'BaseBox',\n triggers: {\n SelectInput: 'SelectInput',\n DropdownButton: 'DropdownButton',\n DropdownLink: 'DropdownLink',\n AutoComplete: 'AutoComplete',\n SearchInput: 'SearchInput',\n DropdownIconButton: 'DropdownIconButton',\n },\n};\n"],"names":["dropdownComponentIds","DropdownOverlay","Dropdown","BaseBox","triggers","SelectInput","DropdownButton","DropdownLink","AutoComplete","SearchInput","DropdownIconButton"],"mappings":"AAAO,IAAMA,oBAAoB,GAAG;AAClCC,EAAAA,eAAe,EAAE,iBAAiB;AAClCC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,WAAW,EAAE,aAAa;AAC1BC,IAAAA,cAAc,EAAE,gBAAgB;AAChCC,IAAAA,YAAY,EAAE,cAAc;AAC5BC,IAAAA,YAAY,EAAE,cAAc;AAC5BC,IAAAA,WAAW,EAAE,aAAa;AAC1BC,IAAAA,kBAAkB,EAAE,oBAAA;AACtB,GAAA;AACF;;;;"}
|
|
@@ -2,6 +2,7 @@ export { Dropdown } from './Dropdown.js';
|
|
|
2
2
|
export { DropdownOverlay } from './DropdownOverlay.web.js';
|
|
3
3
|
export { DropdownButton } from './DropdownButton.js';
|
|
4
4
|
export { DropdownLink } from './DropdownLink.js';
|
|
5
|
+
export { DropdownIconButton } from './DropdownIconButton.js';
|
|
5
6
|
export { DropdownFooter, DropdownHeader } from './DropdownHeaderFooter.js';
|
|
6
7
|
import './types.js';
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDropdown.js","sources":["../../../../../../src/components/Dropdown/useDropdown.ts"],"sourcesContent":["import React from 'react';\n\nimport {\n ensureScrollVisiblity,\n getActionFromKey,\n getIndexByLetter,\n getUpdatedIndex,\n makeInputDisplayValue,\n makeInputValue,\n performAction,\n} from './dropdownUtils';\nimport type { SelectActionsType } from './dropdownUtils';\nimport type { DropdownProps } from './types';\n\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport type { FormInputHandleOnKeyDownEvent } from '~components/Form/FormTypes';\nimport { isReactNative, isBrowser } from '~utils';\nimport type { ContainerElementType } from '~utils/types';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\ntype OptionsType = {\n title: string;\n value: string;\n onClickTrigger?: (isSelected: boolean) => void;\n}[];\n\ntype DropdownContextType = {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n close: () => void;\n /**\n * contains the indexes of selected items\n */\n selectedIndices: number[];\n setSelectedIndices: (value: number[]) => void;\n /**\n * contains the indexes of selected items during controlled selection\n */\n controlledValueIndices: number[];\n setControlledValueIndices: (value: number[]) => void;\n /**\n * contains information about all the options inside actionlist\n */\n options: OptionsType;\n setOptions: (value: OptionsType) => void;\n\n /**\n * Filtered values for AutoComplete Inputs\n */\n filteredValues: string[];\n setFilteredValues: (values: string[]) => void;\n\n /** Currently active (focussed) index */\n activeIndex: number;\n setActiveIndex: (value: number) => void;\n\n /** Currently active (focussed) tag */\n activeTagIndex: number;\n setActiveTagIndex: (value: number) => void;\n\n /**\n * Sometimes we want to ignore the blur event to keep dropdown open but not ignore the blur animation from selectinput\n * E.g. When someone clicks on Footer, we just want to ignore the blur event and not the blur animation\n */\n shouldIgnoreBlurAnimation: boolean;\n setShouldIgnoreBlurAnimation: (value: boolean) => void;\n /** Tells you if keyboard was used. Its false by default and turns into true when keydown is called */\n isKeydownPressed: boolean;\n setIsKeydownPressed: (value: boolean) => void;\n /** common baseId which is prepended to multiple other ids inside this dropdown */\n dropdownBaseId: string;\n /** Which element has triggered the dropdown */\n dropdownTriggerer?:\n | 'SelectInput'\n | 'DropdownButton'\n | 'AutoComplete'\n | 'DropdownLink'\n | 'SearchInput';\n /** ref of triggerer. Used to call focus in certain places */\n triggererRef: React.MutableRefObject<HTMLButtonElement | null>;\n triggererWrapperRef: React.MutableRefObject<ContainerElementType | null>;\n actionListItemRef: React.RefObject<HTMLDivElement | null>;\n isTagDismissedRef: React.RefObject<{ value: boolean } | null>;\n visibleTagsCountRef: React.RefObject<{ value: number } | null>;\n\n selectionType?: DropdownProps['selectionType'];\n /** whether footer has an action item.\n * certain a11y behaviour changes happen here\n * E.g. tabbing moves focus to that action instead of outside\n */\n hasFooterAction: boolean;\n setHasFooterAction: (value: boolean) => void;\n\n /**\n * Apart from dropdownTriggerer prop, we also set this boolean because in BottomSheet, the initial trigger can be Select but also have autocomplete inside of it\n */\n hasAutoCompleteInBottomSheetHeader: boolean;\n setHasAutoCompleteInBottomSheetHeader: (value: boolean) => void;\n\n /**\n * A value that can be used in dependency array to know when Dropdown value is changed.\n *\n * E.g.\n * ```ts\n * useEffect(() => {\n * console.log('Uncontrolled value change');\n * }, [changeCallbackTriggerer])\n * ```\n */\n changeCallbackTriggerer: number;\n setChangeCallbackTriggerer: (changeCallbackTriggerer: number) => void;\n\n /**\n * true when SelectInput has `value` prop (when it is controlled)\n */\n isControlled: boolean;\n setIsControlled: (isControlled: boolean) => void;\n};\n\nconst DropdownContext = React.createContext<DropdownContextType>({\n isOpen: false,\n setIsOpen: noop,\n close: noop,\n selectedIndices: [],\n setSelectedIndices: noop,\n controlledValueIndices: [],\n setControlledValueIndices: noop,\n options: [],\n setOptions: noop,\n filteredValues: [],\n setFilteredValues: noop,\n activeIndex: -1,\n setActiveIndex: noop,\n activeTagIndex: -1,\n setActiveTagIndex: noop,\n shouldIgnoreBlurAnimation: false,\n setShouldIgnoreBlurAnimation: noop,\n hasFooterAction: false,\n setHasFooterAction: noop,\n hasAutoCompleteInBottomSheetHeader: false,\n setHasAutoCompleteInBottomSheetHeader: noop,\n isKeydownPressed: false,\n setIsKeydownPressed: noop,\n changeCallbackTriggerer: 0,\n setChangeCallbackTriggerer: noop,\n isControlled: false,\n setIsControlled: noop,\n dropdownBaseId: '',\n actionListItemRef: {\n current: null,\n },\n triggererRef: {\n current: null,\n },\n isTagDismissedRef: {\n current: null,\n },\n visibleTagsCountRef: {\n current: null,\n },\n triggererWrapperRef: {\n current: null,\n },\n});\n\nlet searchTimeout: number;\nlet searchString = '';\n\ntype UseDropdownReturnValue = DropdownContextType & {\n /**\n * Click event on combobox. Toggles the dropdown\n */\n onTriggerClick: () => void;\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n onTriggerKeydown: FormInputHandleOnKeyDownEvent | undefined;\n\n /**\n * Handles the click even on option.\n *\n * Contains the logic that selects the option, moves the focus, etc\n */\n onOptionClick: (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ) => void;\n\n /**\n * Removes the option with given optionsIndex\n */\n removeOption: (index: number) => void;\n\n /**\n * value that is used during form submissions\n */\n value: string;\n /**\n * This is the value that is displayed inside select after selection\n */\n displayValue: string;\n};\n\n/**\n * Handles almost all the functionality of dropdown.\n *\n * Returns the values from DropdownContext along with some helper functions and event handlers\n *\n */\nconst useDropdown = (): UseDropdownReturnValue => {\n const {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n options,\n selectionType,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setControlledValueIndices,\n filteredValues,\n dropdownTriggerer,\n ...rest\n } = React.useContext(DropdownContext);\n\n type SelectOptionType = (\n index: number,\n properties?: {\n closeOnSelection?: boolean;\n },\n ) => boolean;\n\n const setIndices = (indices: number[]): void => {\n if (isControlled) {\n setControlledValueIndices(indices);\n } else {\n setSelectedIndices(indices);\n }\n };\n\n const removeOption = (index: number): void => {\n // remove existing item\n const existingItemIndex = selectedIndices.indexOf(index);\n if (existingItemIndex < 0) {\n return;\n }\n\n setIndices([\n ...selectedIndices.slice(0, existingItemIndex),\n ...selectedIndices.slice(existingItemIndex + 1),\n ]);\n };\n\n /**\n * Marks the given index as selected.\n *\n * In single select, it also closes the menu.\n * In multiselect, it keeps the menu open for more selections\n */\n const selectOption: SelectOptionType = (\n index,\n properties = {\n closeOnSelection: true,\n },\n ) => {\n let isSelected = false;\n\n if (index < 0 || index > options.length - 1) {\n return isSelected;\n }\n\n if (selectionType === 'multiple') {\n if (selectedIndices.includes(index)) {\n removeOption(index);\n isSelected = false;\n } else {\n setIndices([...selectedIndices, index]);\n isSelected = true;\n }\n } else {\n setIndices([index]);\n isSelected = true;\n }\n\n // Triggers `onChange` on SelectInput\n setChangeCallbackTriggerer(changeCallbackTriggerer + 1);\n\n if (activeIndex !== index) {\n setActiveIndex(index);\n }\n\n if (properties?.closeOnSelection && selectionType !== 'multiple') {\n close();\n }\n\n return isSelected;\n };\n\n /**\n * Click listener for combobox (or any triggerer of the dropdown)\n */\n const onTriggerClick = (): void => {\n if (isOpen) {\n close();\n } else {\n setIsOpen(true);\n }\n };\n\n /**\n * Function that we call when we want to move focus from one option to other\n */\n const onOptionChange = (actionType: SelectActionsType, index?: number): void => {\n setActiveTagIndex(-1);\n const newIndex = index ?? activeIndex;\n let updatedIndex: number;\n const hasAutoComplete =\n rest.hasAutoCompleteInBottomSheetHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete;\n if (hasAutoComplete && filteredValues.length > 0) {\n // When its autocomplete, we don't loop over all options. We only loop on filtered options\n\n const filteredIndexes = filteredValues\n .map((filteredValue) => options.findIndex((option) => option.value === filteredValue))\n .sort((a, b) => a - b);\n\n updatedIndex =\n filteredIndexes[\n getUpdatedIndex({\n currentIndex: filteredIndexes.indexOf(newIndex),\n maxIndex: filteredIndexes.length - 1,\n actionType,\n })\n ];\n } else {\n updatedIndex = getUpdatedIndex({\n currentIndex: newIndex,\n maxIndex: options.length - 1,\n actionType,\n });\n }\n setActiveIndex(updatedIndex);\n\n const optionValues = options.map((option) => option.value);\n ensureScrollVisiblity(updatedIndex, rest.actionListItemRef.current, optionValues);\n if (isBrowser()) {\n fireNativeEvent(rest.actionListItemRef as React.RefObject<HTMLElement>, ['change', 'input']);\n }\n };\n\n /**\n * Click handler when user clicks on any particular option.\n *\n * It\n * - changes the option focus\n * - selects that option\n * - moves focus to combobox\n */\n const onOptionClick = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ): void => {\n const actionType = getActionFromKey(e, isOpen, dropdownTriggerer);\n if (typeof actionType === 'number') {\n onOptionChange(actionType, index);\n }\n selectOption(index);\n if (!isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n };\n\n /**\n * Function we call to handle the typeahead.\n *\n * It takes a letter, stores that letter in searchString (and clears it after timeout) to maintain a word\n *\n * Then searches for that word in options and moves focus there.\n */\n const onComboType = (letter: string, actionType: SelectActionsType): void => {\n // open the listbox if it is closed\n setIsOpen(true);\n\n if (\n rest.hasAutoCompleteInBottomSheetHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete\n ) {\n return;\n }\n\n if (typeof searchTimeout === 'number') {\n window.clearTimeout(searchTimeout);\n }\n\n searchTimeout = window.setTimeout(() => {\n searchString = '';\n }, 500);\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n searchString = searchString + letter;\n const optionTitles = options.map((option) => option.title);\n const searchIndex = getIndexByLetter(optionTitles, searchString, activeIndex + 1);\n\n // if a match was found, go to it\n if (searchIndex >= 0) {\n onOptionChange(actionType, searchIndex);\n }\n // if no matches, clear the timeout and search string\n else {\n window.clearTimeout(searchTimeout);\n searchString = '';\n }\n };\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n const onTriggerKeydown = (e: {\n event: React.KeyboardEvent<HTMLInputElement | HTMLButtonElement>;\n }): void => {\n if (!isKeydownPressed && ![' ', 'Enter', 'Escape', 'Meta'].includes(e.event.key)) {\n // When keydown is not already pressed and its not Enter, Space, Command, or Escape key (those are generic keys and we only want to handle arrow keys or home buttons etc)\n setIsKeydownPressed(true);\n }\n\n const actionType = getActionFromKey(e.event, isOpen, dropdownTriggerer);\n\n if (actionType) {\n performAction(actionType, e, {\n setIsOpen,\n close,\n onOptionChange,\n onComboType,\n selectCurrentOption: () => {\n if (activeIndex < 0) {\n return;\n }\n\n const isSelected = selectOption(activeIndex);\n if (rest.hasFooterAction && !isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n\n options[activeIndex].onClickTrigger?.(isSelected);\n },\n });\n }\n };\n\n return {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n filteredValues,\n removeOption,\n setControlledValueIndices,\n onTriggerClick,\n onTriggerKeydown,\n onOptionClick,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n options,\n value: makeInputValue(selectedIndices, options),\n displayValue: makeInputDisplayValue(selectedIndices, options),\n selectionType,\n dropdownTriggerer,\n ...rest,\n };\n};\n\nexport type { DropdownContextType, OptionsType };\nexport { useDropdown, DropdownContext };\n"],"names":["noop","DropdownContext","React","createContext","isOpen","setIsOpen","close","selectedIndices","setSelectedIndices","controlledValueIndices","setControlledValueIndices","options","setOptions","filteredValues","setFilteredValues","activeIndex","setActiveIndex","activeTagIndex","setActiveTagIndex","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","hasFooterAction","setHasFooterAction","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","isKeydownPressed","setIsKeydownPressed","changeCallbackTriggerer","setChangeCallbackTriggerer","isControlled","setIsControlled","dropdownBaseId","actionListItemRef","current","triggererRef","isTagDismissedRef","visibleTagsCountRef","triggererWrapperRef","searchTimeout","searchString","useDropdown","_React$useContext","useContext","selectionType","dropdownTriggerer","rest","_objectWithoutProperties","_excluded","setIndices","indices","removeOption","index","existingItemIndex","indexOf","concat","_toConsumableArray","slice","selectOption","properties","arguments","length","undefined","closeOnSelection","isSelected","includes","onTriggerClick","onOptionChange","actionType","newIndex","updatedIndex","hasAutoComplete","dropdownComponentIds","triggers","AutoComplete","filteredIndexes","map","filteredValue","findIndex","option","value","sort","a","b","getUpdatedIndex","currentIndex","maxIndex","optionValues","ensureScrollVisiblity","isBrowser","fireNativeEvent","onOptionClick","e","getActionFromKey","isReactNative","_rest$triggererRef$cu","focus","onComboType","letter","window","clearTimeout","setTimeout","optionTitles","title","searchIndex","getIndexByLetter","onTriggerKeydown","event","key","performAction","selectCurrentOption","_options$activeIndex$","_options$activeIndex","_rest$triggererRef$cu2","onClickTrigger","call","_objectSpread","makeInputValue","displayValue","makeInputDisplayValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDropdown.js","sources":["../../../../../../src/components/Dropdown/useDropdown.ts"],"sourcesContent":["import React from 'react';\n\nimport {\n ensureScrollVisiblity,\n getActionFromKey,\n getIndexByLetter,\n getUpdatedIndex,\n makeInputDisplayValue,\n makeInputValue,\n performAction,\n} from './dropdownUtils';\nimport type { SelectActionsType } from './dropdownUtils';\nimport type { DropdownProps } from './types';\n\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport type { FormInputHandleOnKeyDownEvent } from '~components/Form/FormTypes';\nimport { isReactNative, isBrowser } from '~utils';\nimport type { ContainerElementType } from '~utils/types';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\ntype OptionsType = {\n title: string;\n value: string;\n onClickTrigger?: (isSelected: boolean) => void;\n}[];\n\ntype DropdownContextType = {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n close: () => void;\n /**\n * contains the indexes of selected items\n */\n selectedIndices: number[];\n setSelectedIndices: (value: number[]) => void;\n /**\n * contains the indexes of selected items during controlled selection\n */\n controlledValueIndices: number[];\n setControlledValueIndices: (value: number[]) => void;\n /**\n * contains information about all the options inside actionlist\n */\n options: OptionsType;\n setOptions: (value: OptionsType) => void;\n\n /**\n * Filtered values for AutoComplete Inputs\n */\n filteredValues: string[];\n setFilteredValues: (values: string[]) => void;\n\n /** Currently active (focussed) index */\n activeIndex: number;\n setActiveIndex: (value: number) => void;\n\n /** Currently active (focussed) tag */\n activeTagIndex: number;\n setActiveTagIndex: (value: number) => void;\n\n /**\n * Sometimes we want to ignore the blur event to keep dropdown open but not ignore the blur animation from selectinput\n * E.g. When someone clicks on Footer, we just want to ignore the blur event and not the blur animation\n */\n shouldIgnoreBlurAnimation: boolean;\n setShouldIgnoreBlurAnimation: (value: boolean) => void;\n /** Tells you if keyboard was used. Its false by default and turns into true when keydown is called */\n isKeydownPressed: boolean;\n setIsKeydownPressed: (value: boolean) => void;\n /** common baseId which is prepended to multiple other ids inside this dropdown */\n dropdownBaseId: string;\n /** Which element has triggered the dropdown */\n dropdownTriggerer?:\n | 'SelectInput'\n | 'DropdownButton'\n | 'DropdownIconButton'\n | 'AutoComplete'\n | 'DropdownLink'\n | 'SearchInput';\n /** ref of triggerer. Used to call focus in certain places */\n triggererRef: React.MutableRefObject<HTMLButtonElement | null>;\n triggererWrapperRef: React.MutableRefObject<ContainerElementType | null>;\n actionListItemRef: React.RefObject<HTMLDivElement | null>;\n isTagDismissedRef: React.RefObject<{ value: boolean } | null>;\n visibleTagsCountRef: React.RefObject<{ value: number } | null>;\n\n selectionType?: DropdownProps['selectionType'];\n /** whether footer has an action item.\n * certain a11y behaviour changes happen here\n * E.g. tabbing moves focus to that action instead of outside\n */\n hasFooterAction: boolean;\n setHasFooterAction: (value: boolean) => void;\n\n /**\n * Apart from dropdownTriggerer prop, we also set this boolean because in BottomSheet, the initial trigger can be Select but also have autocomplete inside of it\n */\n hasAutoCompleteInBottomSheetHeader: boolean;\n setHasAutoCompleteInBottomSheetHeader: (value: boolean) => void;\n\n /**\n * A value that can be used in dependency array to know when Dropdown value is changed.\n *\n * E.g.\n * ```ts\n * useEffect(() => {\n * console.log('Uncontrolled value change');\n * }, [changeCallbackTriggerer])\n * ```\n */\n changeCallbackTriggerer: number;\n setChangeCallbackTriggerer: (changeCallbackTriggerer: number) => void;\n\n /**\n * true when SelectInput has `value` prop (when it is controlled)\n */\n isControlled: boolean;\n setIsControlled: (isControlled: boolean) => void;\n};\n\nconst DropdownContext = React.createContext<DropdownContextType>({\n isOpen: false,\n setIsOpen: noop,\n close: noop,\n selectedIndices: [],\n setSelectedIndices: noop,\n controlledValueIndices: [],\n setControlledValueIndices: noop,\n options: [],\n setOptions: noop,\n filteredValues: [],\n setFilteredValues: noop,\n activeIndex: -1,\n setActiveIndex: noop,\n activeTagIndex: -1,\n setActiveTagIndex: noop,\n shouldIgnoreBlurAnimation: false,\n setShouldIgnoreBlurAnimation: noop,\n hasFooterAction: false,\n setHasFooterAction: noop,\n hasAutoCompleteInBottomSheetHeader: false,\n setHasAutoCompleteInBottomSheetHeader: noop,\n isKeydownPressed: false,\n setIsKeydownPressed: noop,\n changeCallbackTriggerer: 0,\n setChangeCallbackTriggerer: noop,\n isControlled: false,\n setIsControlled: noop,\n dropdownBaseId: '',\n actionListItemRef: {\n current: null,\n },\n triggererRef: {\n current: null,\n },\n isTagDismissedRef: {\n current: null,\n },\n visibleTagsCountRef: {\n current: null,\n },\n triggererWrapperRef: {\n current: null,\n },\n});\n\nlet searchTimeout: number;\nlet searchString = '';\n\ntype UseDropdownReturnValue = DropdownContextType & {\n /**\n * Click event on combobox. Toggles the dropdown\n */\n onTriggerClick: () => void;\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n onTriggerKeydown: FormInputHandleOnKeyDownEvent | undefined;\n\n /**\n * Handles the click even on option.\n *\n * Contains the logic that selects the option, moves the focus, etc\n */\n onOptionClick: (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ) => void;\n\n /**\n * Removes the option with given optionsIndex\n */\n removeOption: (index: number) => void;\n\n /**\n * value that is used during form submissions\n */\n value: string;\n /**\n * This is the value that is displayed inside select after selection\n */\n displayValue: string;\n};\n\n/**\n * Handles almost all the functionality of dropdown.\n *\n * Returns the values from DropdownContext along with some helper functions and event handlers\n *\n */\nconst useDropdown = (): UseDropdownReturnValue => {\n const {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n options,\n selectionType,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setControlledValueIndices,\n filteredValues,\n dropdownTriggerer,\n ...rest\n } = React.useContext(DropdownContext);\n\n type SelectOptionType = (\n index: number,\n properties?: {\n closeOnSelection?: boolean;\n },\n ) => boolean;\n\n const setIndices = (indices: number[]): void => {\n if (isControlled) {\n setControlledValueIndices(indices);\n } else {\n setSelectedIndices(indices);\n }\n };\n\n const removeOption = (index: number): void => {\n // remove existing item\n const existingItemIndex = selectedIndices.indexOf(index);\n if (existingItemIndex < 0) {\n return;\n }\n\n setIndices([\n ...selectedIndices.slice(0, existingItemIndex),\n ...selectedIndices.slice(existingItemIndex + 1),\n ]);\n };\n\n /**\n * Marks the given index as selected.\n *\n * In single select, it also closes the menu.\n * In multiselect, it keeps the menu open for more selections\n */\n const selectOption: SelectOptionType = (\n index,\n properties = {\n closeOnSelection: true,\n },\n ) => {\n let isSelected = false;\n\n if (index < 0 || index > options.length - 1) {\n return isSelected;\n }\n\n if (selectionType === 'multiple') {\n if (selectedIndices.includes(index)) {\n removeOption(index);\n isSelected = false;\n } else {\n setIndices([...selectedIndices, index]);\n isSelected = true;\n }\n } else {\n setIndices([index]);\n isSelected = true;\n }\n\n // Triggers `onChange` on SelectInput\n setChangeCallbackTriggerer(changeCallbackTriggerer + 1);\n\n if (activeIndex !== index) {\n setActiveIndex(index);\n }\n\n if (properties?.closeOnSelection && selectionType !== 'multiple') {\n close();\n }\n\n return isSelected;\n };\n\n /**\n * Click listener for combobox (or any triggerer of the dropdown)\n */\n const onTriggerClick = (): void => {\n if (isOpen) {\n close();\n } else {\n setIsOpen(true);\n }\n };\n\n /**\n * Function that we call when we want to move focus from one option to other\n */\n const onOptionChange = (actionType: SelectActionsType, index?: number): void => {\n setActiveTagIndex(-1);\n const newIndex = index ?? activeIndex;\n let updatedIndex: number;\n const hasAutoComplete =\n rest.hasAutoCompleteInBottomSheetHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete;\n if (hasAutoComplete && filteredValues.length > 0) {\n // When its autocomplete, we don't loop over all options. We only loop on filtered options\n\n const filteredIndexes = filteredValues\n .map((filteredValue) => options.findIndex((option) => option.value === filteredValue))\n .sort((a, b) => a - b);\n\n updatedIndex =\n filteredIndexes[\n getUpdatedIndex({\n currentIndex: filteredIndexes.indexOf(newIndex),\n maxIndex: filteredIndexes.length - 1,\n actionType,\n })\n ];\n } else {\n updatedIndex = getUpdatedIndex({\n currentIndex: newIndex,\n maxIndex: options.length - 1,\n actionType,\n });\n }\n setActiveIndex(updatedIndex);\n\n const optionValues = options.map((option) => option.value);\n ensureScrollVisiblity(updatedIndex, rest.actionListItemRef.current, optionValues);\n if (isBrowser()) {\n fireNativeEvent(rest.actionListItemRef as React.RefObject<HTMLElement>, ['change', 'input']);\n }\n };\n\n /**\n * Click handler when user clicks on any particular option.\n *\n * It\n * - changes the option focus\n * - selects that option\n * - moves focus to combobox\n */\n const onOptionClick = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ): void => {\n const actionType = getActionFromKey(e, isOpen, dropdownTriggerer);\n if (typeof actionType === 'number') {\n onOptionChange(actionType, index);\n }\n selectOption(index);\n if (!isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n };\n\n /**\n * Function we call to handle the typeahead.\n *\n * It takes a letter, stores that letter in searchString (and clears it after timeout) to maintain a word\n *\n * Then searches for that word in options and moves focus there.\n */\n const onComboType = (letter: string, actionType: SelectActionsType): void => {\n // open the listbox if it is closed\n setIsOpen(true);\n\n if (\n rest.hasAutoCompleteInBottomSheetHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete\n ) {\n return;\n }\n\n if (typeof searchTimeout === 'number') {\n window.clearTimeout(searchTimeout);\n }\n\n searchTimeout = window.setTimeout(() => {\n searchString = '';\n }, 500);\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n searchString = searchString + letter;\n const optionTitles = options.map((option) => option.title);\n const searchIndex = getIndexByLetter(optionTitles, searchString, activeIndex + 1);\n\n // if a match was found, go to it\n if (searchIndex >= 0) {\n onOptionChange(actionType, searchIndex);\n }\n // if no matches, clear the timeout and search string\n else {\n window.clearTimeout(searchTimeout);\n searchString = '';\n }\n };\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n const onTriggerKeydown = (e: {\n event: React.KeyboardEvent<HTMLInputElement | HTMLButtonElement>;\n }): void => {\n if (!isKeydownPressed && ![' ', 'Enter', 'Escape', 'Meta'].includes(e.event.key)) {\n // When keydown is not already pressed and its not Enter, Space, Command, or Escape key (those are generic keys and we only want to handle arrow keys or home buttons etc)\n setIsKeydownPressed(true);\n }\n\n const actionType = getActionFromKey(e.event, isOpen, dropdownTriggerer);\n\n if (actionType) {\n performAction(actionType, e, {\n setIsOpen,\n close,\n onOptionChange,\n onComboType,\n selectCurrentOption: () => {\n if (activeIndex < 0) {\n return;\n }\n\n const isSelected = selectOption(activeIndex);\n if (rest.hasFooterAction && !isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n\n options[activeIndex].onClickTrigger?.(isSelected);\n },\n });\n }\n };\n\n return {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n filteredValues,\n removeOption,\n setControlledValueIndices,\n onTriggerClick,\n onTriggerKeydown,\n onOptionClick,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n options,\n value: makeInputValue(selectedIndices, options),\n displayValue: makeInputDisplayValue(selectedIndices, options),\n selectionType,\n dropdownTriggerer,\n ...rest,\n };\n};\n\nexport type { DropdownContextType, OptionsType };\nexport { useDropdown, DropdownContext };\n"],"names":["noop","DropdownContext","React","createContext","isOpen","setIsOpen","close","selectedIndices","setSelectedIndices","controlledValueIndices","setControlledValueIndices","options","setOptions","filteredValues","setFilteredValues","activeIndex","setActiveIndex","activeTagIndex","setActiveTagIndex","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","hasFooterAction","setHasFooterAction","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","isKeydownPressed","setIsKeydownPressed","changeCallbackTriggerer","setChangeCallbackTriggerer","isControlled","setIsControlled","dropdownBaseId","actionListItemRef","current","triggererRef","isTagDismissedRef","visibleTagsCountRef","triggererWrapperRef","searchTimeout","searchString","useDropdown","_React$useContext","useContext","selectionType","dropdownTriggerer","rest","_objectWithoutProperties","_excluded","setIndices","indices","removeOption","index","existingItemIndex","indexOf","concat","_toConsumableArray","slice","selectOption","properties","arguments","length","undefined","closeOnSelection","isSelected","includes","onTriggerClick","onOptionChange","actionType","newIndex","updatedIndex","hasAutoComplete","dropdownComponentIds","triggers","AutoComplete","filteredIndexes","map","filteredValue","findIndex","option","value","sort","a","b","getUpdatedIndex","currentIndex","maxIndex","optionValues","ensureScrollVisiblity","isBrowser","fireNativeEvent","onOptionClick","e","getActionFromKey","isReactNative","_rest$triggererRef$cu","focus","onComboType","letter","window","clearTimeout","setTimeout","optionTitles","title","searchIndex","getIndexByLetter","onTriggerKeydown","event","key","performAction","selectCurrentOption","_options$activeIndex$","_options$activeIndex","_rest$triggererRef$cu2","onClickTrigger","call","_objectSpread","makeInputValue","displayValue","makeInputDisplayValue"],"mappings":"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"}
|
|
@@ -2,12 +2,12 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
3
|
import styled from 'styled-components';
|
|
4
4
|
import { getNavItemTransition, NAV_ITEM_HEIGHT, classes } from '../tokens.js';
|
|
5
|
-
import { TooltipifyNavItem } from './TooltipifyNavItem.js';
|
|
6
5
|
import '../../Box/index.js';
|
|
7
6
|
import '../../Box/BaseBox/index.js';
|
|
8
7
|
import '../../Typography/index.js';
|
|
9
8
|
import '../../../utils/index.js';
|
|
10
9
|
import '../../../utils/makeAnalyticsAttribute/index.js';
|
|
10
|
+
import { TooltipifyComponent } from '../../../utils/TooltipifyComponent.js';
|
|
11
11
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
12
12
|
import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
|
|
13
13
|
import { makeSize } from '../../../utils/makeSize/makeSize.js';
|
|
@@ -35,7 +35,7 @@ var SideNavItem = function SideNavItem(_ref) {
|
|
|
35
35
|
_ref$as = _ref.as,
|
|
36
36
|
as = _ref$as === void 0 ? 'div' : _ref$as,
|
|
37
37
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
38
|
-
return /*#__PURE__*/jsx(
|
|
38
|
+
return /*#__PURE__*/jsx(TooltipifyComponent, {
|
|
39
39
|
tooltip: tooltip,
|
|
40
40
|
children: /*#__PURE__*/jsxs(SideNavItemContainer, _objectSpread(_objectSpread({
|
|
41
41
|
display: "flex",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideNavItem.web.js","sources":["../../../../../../../src/components/SideNav/SideNavItems/SideNavItem.web.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { classes, getNavItemTransition, NAV_ITEM_HEIGHT } from '../tokens';\nimport type { SideNavItemProps } from '../types';\nimport {
|
|
1
|
+
{"version":3,"file":"SideNavItem.web.js","sources":["../../../../../../../src/components/SideNav/SideNavItems/SideNavItem.web.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { classes, getNavItemTransition, NAV_ITEM_HEIGHT } from '../tokens';\nimport type { SideNavItemProps } from '../types';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport { makeSize } from '~utils';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { TooltipifyComponent } from '~utils/TooltipifyComponent';\n\nconst SideNavItemContainer = styled(BaseBox)((props) => {\n return {\n transition: getNavItemTransition(props.theme),\n };\n});\n\nconst SideNavItem = ({\n leading,\n trailing,\n title,\n backgroundColor,\n tooltip,\n as = 'div',\n ...rest\n}: SideNavItemProps): React.ReactElement => {\n return (\n <TooltipifyComponent tooltip={tooltip}>\n <SideNavItemContainer\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n paddingX=\"spacing.3\"\n height={makeSize(NAV_ITEM_HEIGHT)}\n backgroundColor={backgroundColor}\n borderRadius=\"medium\"\n as={as}\n cursor={as === 'label' ? 'pointer' : undefined}\n {...makeAnalyticsAttribute(rest)}\n >\n <Box display=\"inline-flex\" alignItems=\"center\" gap=\"spacing.3\">\n {leading}\n <BaseBox className={classes.HIDE_WHEN_COLLAPSED}>\n <Text\n truncateAfterLines={1}\n weight=\"medium\"\n size=\"medium\"\n color=\"surface.text.gray.subtle\"\n >\n {title}\n </Text>\n </BaseBox>\n </Box>\n <BaseBox className={classes.HIDE_WHEN_COLLAPSED}>{trailing}</BaseBox>\n </SideNavItemContainer>\n </TooltipifyComponent>\n );\n};\n\nexport { SideNavItem };\n"],"names":["SideNavItemContainer","styled","BaseBox","withConfig","displayName","componentId","props","transition","getNavItemTransition","theme","SideNavItem","_ref","leading","trailing","title","backgroundColor","tooltip","_ref$as","as","rest","_objectWithoutProperties","_excluded","_jsx","TooltipifyComponent","children","_jsxs","_objectSpread","display","flexDirection","justifyContent","alignItems","paddingX","height","makeSize","NAV_ITEM_HEIGHT","borderRadius","cursor","undefined","makeAnalyticsAttribute","Box","gap","className","classes","HIDE_WHEN_COLLAPSED","Text","truncateAfterLines","weight","size","color"],"mappings":";;;;;;;;;;;;;;;;;;;;AAUA,IAAMA,oBAAoB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,sCAAA;EAAAC,WAAA,EAAA,UAAA;AAAA,CAAC,CAAA,CAAA,UAACC,KAAK,EAAK;EACtD,OAAO;AACLC,IAAAA,UAAU,EAAEC,oBAAoB,CAACF,KAAK,CAACG,KAAK,CAAA;GAC7C,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAQ2B;AAAA,EAAA,IAP1CC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,eAAe,GAAAJ,IAAA,CAAfI,eAAe;IACfC,OAAO,GAAAL,IAAA,CAAPK,OAAO;IAAAC,OAAA,GAAAN,IAAA,CACPO,EAAE;AAAFA,IAAAA,EAAE,GAAAD,OAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,OAAA;AACPE,IAAAA,IAAI,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA,CAAA,CAAA;EAEP,oBACEC,GAAA,CAACC,mBAAmB,EAAA;AAACP,IAAAA,OAAO,EAAEA,OAAQ;AAAAQ,IAAAA,QAAA,eACpCC,IAAA,CAACzB,oBAAoB,EAAA0B,aAAA,CAAAA,aAAA,CAAA;AACnBC,MAAAA,OAAO,EAAC,MAAM;AACdC,MAAAA,aAAa,EAAC,KAAK;AACnBC,MAAAA,cAAc,EAAC,eAAe;AAC9BC,MAAAA,UAAU,EAAC,QAAQ;AACnBC,MAAAA,QAAQ,EAAC,WAAW;AACpBC,MAAAA,MAAM,EAAEC,QAAQ,CAACC,eAAe,CAAE;AAClCnB,MAAAA,eAAe,EAAEA,eAAgB;AACjCoB,MAAAA,YAAY,EAAC,QAAQ;AACrBjB,MAAAA,EAAE,EAAEA,EAAG;AACPkB,MAAAA,MAAM,EAAElB,EAAE,KAAK,OAAO,GAAG,SAAS,GAAGmB,SAAAA;KACjCC,EAAAA,sBAAsB,CAACnB,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;MAAAK,QAAA,EAAA,cAEhCC,IAAA,CAACc,GAAG,EAAA;AAACZ,QAAAA,OAAO,EAAC,aAAa;AAACG,QAAAA,UAAU,EAAC,QAAQ;AAACU,QAAAA,GAAG,EAAC,WAAW;AAAAhB,QAAAA,QAAA,EAC3DZ,CAAAA,OAAO,eACRU,GAAA,CAACpB,OAAO,EAAA;UAACuC,SAAS,EAAEC,OAAO,CAACC,mBAAoB;UAAAnB,QAAA,eAC9CF,GAAA,CAACsB,IAAI,EAAA;AACHC,YAAAA,kBAAkB,EAAE,CAAE;AACtBC,YAAAA,MAAM,EAAC,QAAQ;AACfC,YAAAA,IAAI,EAAC,QAAQ;AACbC,YAAAA,KAAK,EAAC,0BAA0B;AAAAxB,YAAAA,QAAA,EAE/BV,KAAAA;WACG,CAAA;AAAC,SACA,CAAC,CAAA;AAAA,OACP,CAAC,eACNQ,GAAA,CAACpB,OAAO,EAAA;QAACuC,SAAS,EAAEC,OAAO,CAACC,mBAAoB;AAAAnB,QAAAA,QAAA,EAAEX,QAAAA;AAAQ,OAAU,CAAC,CAAA;KACjD,CAAA,CAAA;AAAC,GACJ,CAAC,CAAA;AAE1B;;;;"}
|