@chayns-components/core 5.5.52 → 5.5.53

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.
@@ -98,7 +98,7 @@ const DelayedDropdownContent = ({
98
98
  duration: ANIMATION_DELAY_MS / 1000,
99
99
  type: 'tween'
100
100
  },
101
- inert: !shouldShowContent ? 'true' : undefined
101
+ inert: !shouldShowContent || undefined
102
102
  }, children);
103
103
  };
104
104
  DelayedDropdownContent.displayName = 'DelayedDropdownContent';
@@ -1 +1 @@
1
- {"version":3,"file":"DelayedDropdownContent.js","names":["_react","_interopRequireWildcard","require","_DelayedDropdownContent","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ANIMATION_DELAY_MS","AnimationType","DelayedDropdownContent","children","shouldShowContent","onMeasure","coordinates","transform","animationState","setAnimationState","useState","None","ref","useRef","timeoutRef","measureElement","useCallback","current","height","width","x","y","getBoundingClientRect","scrollHeight","element","FadeIn","window","setTimeout","Visible","useEffect","observer","ResizeObserver","observe","disconnect","Hidden","clearTimeout","prevState","FadeOut","refCallback","reference","undefined","createElement","StyledMotionDelayedDropdownContent","$coordinates","$transform","$shouldHideContent","animate","opacity","includes","transition","duration","type","inert","displayName","_default","exports"],"sources":["../../../../../src/components/dropdown-body-wrapper/delayed-dropdown-content/DelayedDropdownContent.tsx"],"sourcesContent":["import React, { FC, ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { StyledMotionDelayedDropdownContent } from './DelayedDropdownContent.styles';\nimport {\n DropdownCoordinates,\n DropdownMeasurements,\n DropdownTransform,\n} from '../../../types/dropdown';\n\nconst ANIMATION_DELAY_MS = 200;\n\nenum AnimationType {\n None,\n Hidden,\n Visible,\n FadeIn,\n FadeOut,\n}\n\nexport type DelayedDropdownContentProps = {\n /**\n * The content to be rendered inside the dropdown.\n */\n children: ReactNode;\n /**\n * The absolute coordinates used to position the dropdown.\n */\n coordinates: DropdownCoordinates;\n /**\n * Callback that returns the dimensions of the dropdown after measuring.\n */\n onMeasure?: (measurements: DropdownMeasurements) => void;\n /**\n * Whether the dropdown should be rendered and animated in.\n */\n shouldShowContent: boolean;\n /**\n * CSS transform data (e.g. translate offsets) to apply for positioning.\n */\n transform: DropdownTransform;\n};\n\nconst DelayedDropdownContent: FC<DelayedDropdownContentProps> = ({\n children,\n shouldShowContent,\n onMeasure,\n coordinates,\n transform,\n}) => {\n const [animationState, setAnimationState] = useState<AnimationType>(AnimationType.None);\n\n const ref = useRef<HTMLDivElement>();\n const timeoutRef = useRef<number>();\n\n const measureElement = useCallback(() => {\n if (ref.current) {\n const { height, width, x, y } = ref.current.getBoundingClientRect();\n const { scrollHeight } = ref.current;\n\n if (typeof onMeasure === 'function') {\n onMeasure({\n x,\n y,\n height,\n scrollHeight,\n width,\n element: ref.current,\n });\n }\n\n setAnimationState(AnimationType.FadeIn);\n\n timeoutRef.current = window.setTimeout(() => {\n setAnimationState(AnimationType.Visible);\n }, ANIMATION_DELAY_MS);\n }\n }, [onMeasure]);\n\n useEffect(() => {\n if (!shouldShowContent) return () => {};\n\n const observer = new ResizeObserver(() => {\n measureElement();\n });\n\n if (ref.current) {\n observer.observe(ref.current);\n }\n\n return () => observer.disconnect();\n }, [measureElement, shouldShowContent]);\n\n useEffect(() => {\n if (shouldShowContent) {\n setAnimationState(AnimationType.Hidden);\n } else {\n clearTimeout(timeoutRef.current);\n\n setAnimationState((prevState) => {\n if (prevState === AnimationType.None) {\n return prevState;\n }\n\n return AnimationType.FadeOut;\n });\n\n window.setTimeout(() => {\n setAnimationState(AnimationType.None);\n }, ANIMATION_DELAY_MS);\n }\n }, [measureElement, shouldShowContent]);\n\n const refCallback = useCallback(\n (reference: HTMLDivElement | null) => {\n ref.current = reference ?? undefined;\n measureElement();\n },\n [measureElement],\n );\n\n if (animationState === AnimationType.None) {\n return null;\n }\n\n return (\n <StyledMotionDelayedDropdownContent\n ref={refCallback}\n $coordinates={coordinates}\n $transform={transform}\n $shouldHideContent={animationState === AnimationType.Hidden}\n animate={{\n opacity: [AnimationType.FadeIn, AnimationType.Visible].includes(animationState)\n ? 1\n : 0,\n }}\n transition={{ duration: ANIMATION_DELAY_MS / 1000, type: 'tween' }}\n inert={!shouldShowContent ? 'true' : undefined}\n >\n {children}\n </StyledMotionDelayedDropdownContent>\n );\n};\n\nDelayedDropdownContent.displayName = 'DelayedDropdownContent';\n\nexport default DelayedDropdownContent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DelayedDropdownContent.js","names":["_react","_interopRequireWildcard","require","_DelayedDropdownContent","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ANIMATION_DELAY_MS","AnimationType","DelayedDropdownContent","children","shouldShowContent","onMeasure","coordinates","transform","animationState","setAnimationState","useState","None","ref","useRef","timeoutRef","measureElement","useCallback","current","height","width","x","y","getBoundingClientRect","scrollHeight","element","FadeIn","window","setTimeout","Visible","useEffect","observer","ResizeObserver","observe","disconnect","Hidden","clearTimeout","prevState","FadeOut","refCallback","reference","undefined","createElement","StyledMotionDelayedDropdownContent","$coordinates","$transform","$shouldHideContent","animate","opacity","includes","transition","duration","type","inert","displayName","_default","exports"],"sources":["../../../../../src/components/dropdown-body-wrapper/delayed-dropdown-content/DelayedDropdownContent.tsx"],"sourcesContent":["import React, { FC, ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { StyledMotionDelayedDropdownContent } from './DelayedDropdownContent.styles';\nimport {\n DropdownCoordinates,\n DropdownMeasurements,\n DropdownTransform,\n} from '../../../types/dropdown';\n\nconst ANIMATION_DELAY_MS = 200;\n\nenum AnimationType {\n None,\n Hidden,\n Visible,\n FadeIn,\n FadeOut,\n}\n\nexport type DelayedDropdownContentProps = {\n /**\n * The content to be rendered inside the dropdown.\n */\n children: ReactNode;\n /**\n * The absolute coordinates used to position the dropdown.\n */\n coordinates: DropdownCoordinates;\n /**\n * Callback that returns the dimensions of the dropdown after measuring.\n */\n onMeasure?: (measurements: DropdownMeasurements) => void;\n /**\n * Whether the dropdown should be rendered and animated in.\n */\n shouldShowContent: boolean;\n /**\n * CSS transform data (e.g. translate offsets) to apply for positioning.\n */\n transform: DropdownTransform;\n};\n\nconst DelayedDropdownContent: FC<DelayedDropdownContentProps> = ({\n children,\n shouldShowContent,\n onMeasure,\n coordinates,\n transform,\n}) => {\n const [animationState, setAnimationState] = useState<AnimationType>(AnimationType.None);\n\n const ref = useRef<HTMLDivElement>();\n const timeoutRef = useRef<number>();\n\n const measureElement = useCallback(() => {\n if (ref.current) {\n const { height, width, x, y } = ref.current.getBoundingClientRect();\n const { scrollHeight } = ref.current;\n\n if (typeof onMeasure === 'function') {\n onMeasure({\n x,\n y,\n height,\n scrollHeight,\n width,\n element: ref.current,\n });\n }\n\n setAnimationState(AnimationType.FadeIn);\n\n timeoutRef.current = window.setTimeout(() => {\n setAnimationState(AnimationType.Visible);\n }, ANIMATION_DELAY_MS);\n }\n }, [onMeasure]);\n\n useEffect(() => {\n if (!shouldShowContent) return () => {};\n\n const observer = new ResizeObserver(() => {\n measureElement();\n });\n\n if (ref.current) {\n observer.observe(ref.current);\n }\n\n return () => observer.disconnect();\n }, [measureElement, shouldShowContent]);\n\n useEffect(() => {\n if (shouldShowContent) {\n setAnimationState(AnimationType.Hidden);\n } else {\n clearTimeout(timeoutRef.current);\n\n setAnimationState((prevState) => {\n if (prevState === AnimationType.None) {\n return prevState;\n }\n\n return AnimationType.FadeOut;\n });\n\n window.setTimeout(() => {\n setAnimationState(AnimationType.None);\n }, ANIMATION_DELAY_MS);\n }\n }, [measureElement, shouldShowContent]);\n\n const refCallback = useCallback(\n (reference: HTMLDivElement | null) => {\n ref.current = reference ?? undefined;\n measureElement();\n },\n [measureElement],\n );\n\n if (animationState === AnimationType.None) {\n return null;\n }\n\n return (\n <StyledMotionDelayedDropdownContent\n ref={refCallback}\n $coordinates={coordinates}\n $transform={transform}\n $shouldHideContent={animationState === AnimationType.Hidden}\n animate={{\n opacity: [AnimationType.FadeIn, AnimationType.Visible].includes(animationState)\n ? 1\n : 0,\n }}\n transition={{ duration: ANIMATION_DELAY_MS / 1000, type: 'tween' }}\n inert={!shouldShowContent || undefined}\n >\n {children}\n </StyledMotionDelayedDropdownContent>\n );\n};\n\nDelayedDropdownContent.displayName = 'DelayedDropdownContent';\n\nexport default DelayedDropdownContent;\n"],"mappings":"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","ignoreList":[]}
@@ -246,7 +246,7 @@ const Filter = /*#__PURE__*/(0, _react.forwardRef)(({
246
246
  shouldEnableKeyboardHighlighting: checkboxConfig.shouldEnableKeyboardHighlighting ?? shouldEnableKeyboardHighlightingEffective
247
247
  })), type === _filter.FilterType.ONLY_COMBOBOX && comboboxElement), [_filter.FilterType.MULTIPLE, _filter.FilterType.ONLY_FILTER].includes(type) && /*#__PURE__*/_react.default.createElement(_Filter.StyledFilterContentWrapper, {
248
248
  ref: contentRef,
249
- inert: !isOpen ? 'true' : undefined,
249
+ inert: !isOpen || undefined,
250
250
  "aria-hidden": !isOpen
251
251
  }, /*#__PURE__*/_react.default.createElement(_ExpandableContent.default, {
252
252
  isOpen: isOpen
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.js","names":["_react","_interopRequireWildcard","require","_Filter","_ExpandableContent","_interopRequireDefault","_Icon","_FilterContent","_ComboBox","_filter","_SearchInput","_ContextMenu","_Checkbox","_useFocusRingPortal","_useKeyboardFocusHighlighting","_ColorSchemeProvider","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","FilterIconButton","icons","onClick","isOpen","shouldEnableKeyboardHighlighting","shouldShowKeyboardHighlighting","shouldShowRoundedHoverEffect","iconRef","useRef","useFocusRingPortal","isEnabled","handleKeyDown","useCallback","event","key","preventDefault","createElement","StyledFilterIcon","ref","onKeyDown","$isOpen","role","undefined","tabIndex","$shouldShowKeyboardHighlighting","$shouldShowRoundedHoverEffect","size","Filter","forwardRef","headline","searchConfig","sortConfig","shouldAutoFocus","filterButtonConfig","checkboxConfig","comboboxConfig","onActiveChange","rightIcons","setIsOpen","useState","isSearchActive","setIsSearchActive","shouldFocus","setShouldFocus","contentRef","filterRef","searchRef","colorScheme","useColorScheme","shouldEnableKeyboardHighlightingEffective","contextMenuRef","useKeyboardFocusHighlighting","type","useMemo","FilterType","ONLY_FILTER","ONLY_SORT","ONLY_SEARCH","ONLY_CHECKBOX","ONLY_COMBOBOX","MULTIPLE","useEffect","handleHide","current","hide","_searchRef$current","focus","window","setTimeout","handleShow","useImperativeHandle","show","handleIconClick","handleIconKeyDown","iconElement","sortItems","selectedItem","onSortChange","items","map","id","text","toString","isSelected","comboboxElement","StyledFilter","StyledFilterHead","isValidElement","StyledFilterHeadline","$isSearchActive","StyledFilterHeadlineElement","includes","StyledFilterIconWrapper","rIcons","join","StyledFilterSearch","isActive","value","searchValue","onChange","ev","onSearchChange","target","StyledFilterContentWrapper","inert","displayName","_default","exports"],"sources":["../../../../src/components/filter/Filter.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, react/jsx-props-no-spreading */\nimport React, {\n forwardRef,\n isValidElement,\n KeyboardEventHandler,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n StyledFilter,\n StyledFilterContentWrapper,\n StyledFilterHead,\n StyledFilterHeadline,\n StyledFilterHeadlineElement,\n StyledFilterIcon,\n StyledFilterIconWrapper,\n StyledFilterSearch,\n} from './Filter.styles';\nimport ExpandableContent from '../expandable-content/ExpandableContent';\nimport Icon from '../icon/Icon';\nimport FilterContent from './filter-content/FilterContent';\nimport ComboBox from '../combobox/ComboBox';\nimport {\n CheckboxConfig,\n ComboboxConfig,\n FilterButtonConfig,\n FilterRef,\n FilterType,\n SearchConfig,\n SortConfig,\n} from '../../types/filter';\nimport SearchInput from '../search-input/SearchInput';\nimport ContextMenu from '../context-menu/ContextMenu';\nimport type { ContextMenuItem, ContextMenuRef } from '../context-menu/ContextMenu.types';\nimport Checkbox from '../checkbox/Checkbox';\nimport { InputRef } from '../input/Input';\nimport { useFocusRingPortal } from '../../hooks/useFocusRingPortal';\nimport { useKeyboardFocusHighlighting } from '../../hooks/useKeyboardFocusHighlighting';\nimport { useColorScheme } from '../color-scheme-provider/ColorSchemeProvider';\n\nexport interface FilterRightIcon {\n icons: string[];\n onClick: VoidFunction;\n}\n\ntype FilterIconButtonProps = FilterRightIcon & {\n isOpen: boolean;\n shouldEnableKeyboardHighlighting: boolean;\n shouldShowKeyboardHighlighting: boolean;\n shouldShowRoundedHoverEffect: boolean;\n};\n\nconst FilterIconButton: React.FC<FilterIconButtonProps> = ({\n icons,\n onClick,\n isOpen,\n shouldEnableKeyboardHighlighting,\n shouldShowKeyboardHighlighting,\n shouldShowRoundedHoverEffect,\n}) => {\n const iconRef = useRef<HTMLDivElement | null>(null);\n\n useFocusRingPortal(iconRef, { isEnabled: shouldShowKeyboardHighlighting });\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLDivElement>>(\n (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onClick();\n }\n },\n [onClick],\n );\n\n return (\n <StyledFilterIcon\n ref={iconRef}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n $isOpen={isOpen}\n role={shouldEnableKeyboardHighlighting ? 'button' : undefined}\n tabIndex={shouldEnableKeyboardHighlighting ? 0 : -1}\n $shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n $shouldShowRoundedHoverEffect={shouldShowRoundedHoverEffect}\n >\n <Icon icons={icons} size={18} />\n </StyledFilterIcon>\n );\n};\n\n//\nexport type FilterProps = {\n headline: ReactNode;\n searchConfig?: SearchConfig;\n filterButtonConfig?: FilterButtonConfig;\n sortConfig?: SortConfig;\n checkboxConfig?: CheckboxConfig;\n comboboxConfig?: ComboboxConfig;\n onActiveChange?: (isActive: boolean) => void;\n shouldShowRoundedHoverEffect?: boolean;\n rightIcons?: FilterRightIcon[];\n shouldAutoFocus?: boolean;\n shouldEnableKeyboardHighlighting?: boolean;\n};\n\nconst Filter = forwardRef<FilterRef, FilterProps>(\n (\n {\n headline,\n searchConfig,\n sortConfig,\n shouldAutoFocus = false,\n shouldShowRoundedHoverEffect = false,\n filterButtonConfig,\n checkboxConfig,\n comboboxConfig,\n onActiveChange,\n rightIcons,\n shouldEnableKeyboardHighlighting,\n },\n ref,\n ) => {\n const [isOpen, setIsOpen] = useState(false);\n const [isSearchActive, setIsSearchActive] = useState(false);\n const [shouldFocus, setShouldFocus] = useState(false);\n\n const contentRef = useRef<HTMLDivElement | null>(null);\n const iconRef = useRef<HTMLDivElement | null>(null);\n const filterRef = useRef<HTMLDivElement | null>(null);\n const searchRef = useRef<InputRef | null>(null);\n\n const colorScheme = useColorScheme();\n const shouldEnableKeyboardHighlightingEffective =\n shouldEnableKeyboardHighlighting ??\n colorScheme?.shouldEnableKeyboardHighlighting ??\n false;\n\n const contextMenuRef = useRef<ContextMenuRef>(null);\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n shouldEnableKeyboardHighlightingEffective,\n );\n useFocusRingPortal(iconRef, { isEnabled: shouldShowKeyboardHighlighting });\n\n const type = useMemo(() => {\n if (\n filterButtonConfig &&\n !searchConfig &&\n !sortConfig &&\n !checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_FILTER;\n }\n\n if (\n !filterButtonConfig &&\n !searchConfig &&\n sortConfig &&\n !checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_SORT;\n }\n\n if (\n !filterButtonConfig &&\n searchConfig &&\n !sortConfig &&\n !checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_SEARCH;\n }\n\n if (\n !filterButtonConfig &&\n !searchConfig &&\n !sortConfig &&\n checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_CHECKBOX;\n }\n\n if (\n !filterButtonConfig &&\n !searchConfig &&\n !sortConfig &&\n !checkboxConfig &&\n comboboxConfig\n ) {\n return FilterType.ONLY_COMBOBOX;\n }\n\n return FilterType.MULTIPLE;\n }, [checkboxConfig, comboboxConfig, filterButtonConfig, searchConfig, sortConfig]);\n\n const icons = useMemo(() => {\n switch (type) {\n case FilterType.ONLY_FILTER:\n return ['fa fa-filter'];\n case FilterType.ONLY_SORT:\n return ['fa fa-arrow-up-arrow-down'];\n default:\n return ['fa fa-search'];\n }\n }, [type]);\n\n useEffect(() => {\n if (typeof onActiveChange === 'function') {\n onActiveChange(isOpen);\n }\n }, [isOpen, onActiveChange]);\n\n const handleHide = useCallback(() => {\n setIsOpen(false);\n\n if (type === FilterType.ONLY_SORT && contextMenuRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n contextMenuRef.current.hide();\n }\n\n if (type === FilterType.ONLY_SEARCH) {\n setIsSearchActive(false);\n }\n }, [type]);\n\n useEffect(() => {\n if (shouldFocus) {\n searchRef.current?.focus();\n\n window.setTimeout(() => {\n setShouldFocus(false);\n }, 200);\n }\n }, [shouldFocus]);\n\n const handleShow = useCallback(() => {\n setIsOpen(true);\n\n if (shouldAutoFocus) {\n setShouldFocus(true);\n }\n\n if (type === FilterType.ONLY_SORT && contextMenuRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n contextMenuRef.current.hide();\n }\n\n if (type === FilterType.ONLY_SEARCH) {\n setIsSearchActive(true);\n }\n }, [shouldAutoFocus, type]);\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n const handleIconClick = useCallback(() => {\n if (isOpen) {\n handleHide();\n } else {\n handleShow();\n }\n }, [handleHide, handleShow, isOpen]);\n\n const handleIconKeyDown = useCallback<KeyboardEventHandler<HTMLDivElement>>(\n (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleIconClick();\n }\n },\n [handleIconClick],\n );\n\n const iconElement = useMemo(\n () => (\n <StyledFilterIcon\n onClick={handleIconClick}\n onKeyDown={handleIconKeyDown}\n $isOpen={isOpen}\n ref={iconRef}\n role={shouldEnableKeyboardHighlightingEffective ? 'button' : undefined}\n tabIndex={shouldEnableKeyboardHighlightingEffective ? 0 : -1}\n $shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n $shouldShowRoundedHoverEffect={shouldShowRoundedHoverEffect}\n >\n <Icon icons={icons} size={18} />\n </StyledFilterIcon>\n ),\n [\n handleIconClick,\n handleIconKeyDown,\n icons,\n isOpen,\n shouldEnableKeyboardHighlightingEffective,\n shouldShowKeyboardHighlighting,\n shouldShowRoundedHoverEffect,\n ],\n );\n\n const sortItems: ContextMenuItem[] = useMemo(() => {\n if (!sortConfig) {\n return [];\n }\n\n const { selectedItem, onSortChange } = sortConfig;\n\n return sortConfig.items.map(({ id, text }) => ({\n text,\n key: id.toString(),\n isSelected: id === selectedItem.id,\n icons: id === selectedItem.id ? ['fas fa-circle-small'] : [],\n onClick: () => onSortChange({ text, id }),\n }));\n }, [sortConfig]);\n\n const comboboxElement = useMemo(() => {\n if (!comboboxConfig) {\n return null;\n }\n\n return (\n <ComboBox\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...comboboxConfig}\n shouldEnableKeyboardHighlighting={\n comboboxConfig.shouldEnableKeyboardHighlighting ??\n shouldEnableKeyboardHighlightingEffective\n }\n />\n );\n }, [comboboxConfig, shouldEnableKeyboardHighlightingEffective]);\n\n return useMemo(\n () => (\n <StyledFilter ref={filterRef}>\n <StyledFilterHead>\n {!isValidElement(headline) ? (\n <StyledFilterHeadline $isSearchActive={isSearchActive}>\n {headline}\n </StyledFilterHeadline>\n ) : (\n <StyledFilterHeadlineElement $isSearchActive={isSearchActive}>\n {headline}\n </StyledFilterHeadlineElement>\n )}\n {[FilterType.MULTIPLE, FilterType.ONLY_FILTER].includes(type) && (\n <StyledFilterIconWrapper>\n {rightIcons &&\n rightIcons.map(({ icons: rIcons, onClick }) => (\n <FilterIconButton\n key={rIcons.join('-')}\n icons={rIcons}\n onClick={onClick}\n isOpen={false}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n shouldShowKeyboardHighlighting={\n shouldShowKeyboardHighlighting\n }\n shouldShowRoundedHoverEffect={\n shouldShowRoundedHoverEffect\n }\n />\n ))}\n {iconElement}\n </StyledFilterIconWrapper>\n )}\n {type === FilterType.ONLY_SEARCH && searchConfig && (\n <StyledFilterSearch>\n <SearchInput\n onActiveChange={(isActive) => {\n setIsSearchActive(isActive);\n setIsOpen(isActive);\n }}\n ref={searchRef}\n isActive={isSearchActive}\n value={searchConfig.searchValue}\n onChange={(ev) => searchConfig.onSearchChange(ev.target.value)}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n />\n </StyledFilterSearch>\n )}\n {type === FilterType.ONLY_SORT && sortConfig && (\n <ContextMenu\n ref={contextMenuRef}\n items={sortItems}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n >\n {iconElement}\n </ContextMenu>\n )}\n {type === FilterType.ONLY_CHECKBOX && checkboxConfig && (\n <Checkbox\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...checkboxConfig}\n shouldEnableKeyboardHighlighting={\n checkboxConfig.shouldEnableKeyboardHighlighting ??\n shouldEnableKeyboardHighlightingEffective\n }\n />\n )}\n {type === FilterType.ONLY_COMBOBOX && comboboxElement}\n </StyledFilterHead>\n {[FilterType.MULTIPLE, FilterType.ONLY_FILTER].includes(type) && (\n <StyledFilterContentWrapper\n ref={contentRef}\n inert={!isOpen ? 'true' : undefined}\n aria-hidden={!isOpen}\n >\n <ExpandableContent isOpen={isOpen}>\n <FilterContent\n shouldAutoFocus={shouldFocus}\n searchConfig={searchConfig}\n filterButtonConfig={filterButtonConfig}\n sortConfig={sortConfig}\n checkboxConfig={checkboxConfig}\n comboboxConfig={comboboxConfig}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n />\n </ExpandableContent>\n </StyledFilterContentWrapper>\n )}\n </StyledFilter>\n ),\n [\n headline,\n isSearchActive,\n type,\n rightIcons,\n iconElement,\n searchConfig,\n sortConfig,\n sortItems,\n checkboxConfig,\n isOpen,\n shouldFocus,\n shouldEnableKeyboardHighlightingEffective,\n filterButtonConfig,\n comboboxConfig,\n comboboxElement,\n shouldShowKeyboardHighlighting,\n shouldShowRoundedHoverEffect,\n ],\n );\n },\n);\n\nFilter.displayName = 'Filter';\n\nexport default Filter;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Filter.js","names":["_react","_interopRequireWildcard","require","_Filter","_ExpandableContent","_interopRequireDefault","_Icon","_FilterContent","_ComboBox","_filter","_SearchInput","_ContextMenu","_Checkbox","_useFocusRingPortal","_useKeyboardFocusHighlighting","_ColorSchemeProvider","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","FilterIconButton","icons","onClick","isOpen","shouldEnableKeyboardHighlighting","shouldShowKeyboardHighlighting","shouldShowRoundedHoverEffect","iconRef","useRef","useFocusRingPortal","isEnabled","handleKeyDown","useCallback","event","key","preventDefault","createElement","StyledFilterIcon","ref","onKeyDown","$isOpen","role","undefined","tabIndex","$shouldShowKeyboardHighlighting","$shouldShowRoundedHoverEffect","size","Filter","forwardRef","headline","searchConfig","sortConfig","shouldAutoFocus","filterButtonConfig","checkboxConfig","comboboxConfig","onActiveChange","rightIcons","setIsOpen","useState","isSearchActive","setIsSearchActive","shouldFocus","setShouldFocus","contentRef","filterRef","searchRef","colorScheme","useColorScheme","shouldEnableKeyboardHighlightingEffective","contextMenuRef","useKeyboardFocusHighlighting","type","useMemo","FilterType","ONLY_FILTER","ONLY_SORT","ONLY_SEARCH","ONLY_CHECKBOX","ONLY_COMBOBOX","MULTIPLE","useEffect","handleHide","current","hide","_searchRef$current","focus","window","setTimeout","handleShow","useImperativeHandle","show","handleIconClick","handleIconKeyDown","iconElement","sortItems","selectedItem","onSortChange","items","map","id","text","toString","isSelected","comboboxElement","StyledFilter","StyledFilterHead","isValidElement","StyledFilterHeadline","$isSearchActive","StyledFilterHeadlineElement","includes","StyledFilterIconWrapper","rIcons","join","StyledFilterSearch","isActive","value","searchValue","onChange","ev","onSearchChange","target","StyledFilterContentWrapper","inert","displayName","_default","exports"],"sources":["../../../../src/components/filter/Filter.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, react/jsx-props-no-spreading */\nimport React, {\n forwardRef,\n isValidElement,\n KeyboardEventHandler,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n StyledFilter,\n StyledFilterContentWrapper,\n StyledFilterHead,\n StyledFilterHeadline,\n StyledFilterHeadlineElement,\n StyledFilterIcon,\n StyledFilterIconWrapper,\n StyledFilterSearch,\n} from './Filter.styles';\nimport ExpandableContent from '../expandable-content/ExpandableContent';\nimport Icon from '../icon/Icon';\nimport FilterContent from './filter-content/FilterContent';\nimport ComboBox from '../combobox/ComboBox';\nimport {\n CheckboxConfig,\n ComboboxConfig,\n FilterButtonConfig,\n FilterRef,\n FilterType,\n SearchConfig,\n SortConfig,\n} from '../../types/filter';\nimport SearchInput from '../search-input/SearchInput';\nimport ContextMenu from '../context-menu/ContextMenu';\nimport type { ContextMenuItem, ContextMenuRef } from '../context-menu/ContextMenu.types';\nimport Checkbox from '../checkbox/Checkbox';\nimport { InputRef } from '../input/Input';\nimport { useFocusRingPortal } from '../../hooks/useFocusRingPortal';\nimport { useKeyboardFocusHighlighting } from '../../hooks/useKeyboardFocusHighlighting';\nimport { useColorScheme } from '../color-scheme-provider/ColorSchemeProvider';\n\nexport interface FilterRightIcon {\n icons: string[];\n onClick: VoidFunction;\n}\n\ntype FilterIconButtonProps = FilterRightIcon & {\n isOpen: boolean;\n shouldEnableKeyboardHighlighting: boolean;\n shouldShowKeyboardHighlighting: boolean;\n shouldShowRoundedHoverEffect: boolean;\n};\n\nconst FilterIconButton: React.FC<FilterIconButtonProps> = ({\n icons,\n onClick,\n isOpen,\n shouldEnableKeyboardHighlighting,\n shouldShowKeyboardHighlighting,\n shouldShowRoundedHoverEffect,\n}) => {\n const iconRef = useRef<HTMLDivElement | null>(null);\n\n useFocusRingPortal(iconRef, { isEnabled: shouldShowKeyboardHighlighting });\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLDivElement>>(\n (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onClick();\n }\n },\n [onClick],\n );\n\n return (\n <StyledFilterIcon\n ref={iconRef}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n $isOpen={isOpen}\n role={shouldEnableKeyboardHighlighting ? 'button' : undefined}\n tabIndex={shouldEnableKeyboardHighlighting ? 0 : -1}\n $shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n $shouldShowRoundedHoverEffect={shouldShowRoundedHoverEffect}\n >\n <Icon icons={icons} size={18} />\n </StyledFilterIcon>\n );\n};\n\n//\nexport type FilterProps = {\n headline: ReactNode;\n searchConfig?: SearchConfig;\n filterButtonConfig?: FilterButtonConfig;\n sortConfig?: SortConfig;\n checkboxConfig?: CheckboxConfig;\n comboboxConfig?: ComboboxConfig;\n onActiveChange?: (isActive: boolean) => void;\n shouldShowRoundedHoverEffect?: boolean;\n rightIcons?: FilterRightIcon[];\n shouldAutoFocus?: boolean;\n shouldEnableKeyboardHighlighting?: boolean;\n};\n\nconst Filter = forwardRef<FilterRef, FilterProps>(\n (\n {\n headline,\n searchConfig,\n sortConfig,\n shouldAutoFocus = false,\n shouldShowRoundedHoverEffect = false,\n filterButtonConfig,\n checkboxConfig,\n comboboxConfig,\n onActiveChange,\n rightIcons,\n shouldEnableKeyboardHighlighting,\n },\n ref,\n ) => {\n const [isOpen, setIsOpen] = useState(false);\n const [isSearchActive, setIsSearchActive] = useState(false);\n const [shouldFocus, setShouldFocus] = useState(false);\n\n const contentRef = useRef<HTMLDivElement | null>(null);\n const iconRef = useRef<HTMLDivElement | null>(null);\n const filterRef = useRef<HTMLDivElement | null>(null);\n const searchRef = useRef<InputRef | null>(null);\n\n const colorScheme = useColorScheme();\n const shouldEnableKeyboardHighlightingEffective =\n shouldEnableKeyboardHighlighting ??\n colorScheme?.shouldEnableKeyboardHighlighting ??\n false;\n\n const contextMenuRef = useRef<ContextMenuRef>(null);\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n shouldEnableKeyboardHighlightingEffective,\n );\n useFocusRingPortal(iconRef, { isEnabled: shouldShowKeyboardHighlighting });\n\n const type = useMemo(() => {\n if (\n filterButtonConfig &&\n !searchConfig &&\n !sortConfig &&\n !checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_FILTER;\n }\n\n if (\n !filterButtonConfig &&\n !searchConfig &&\n sortConfig &&\n !checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_SORT;\n }\n\n if (\n !filterButtonConfig &&\n searchConfig &&\n !sortConfig &&\n !checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_SEARCH;\n }\n\n if (\n !filterButtonConfig &&\n !searchConfig &&\n !sortConfig &&\n checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_CHECKBOX;\n }\n\n if (\n !filterButtonConfig &&\n !searchConfig &&\n !sortConfig &&\n !checkboxConfig &&\n comboboxConfig\n ) {\n return FilterType.ONLY_COMBOBOX;\n }\n\n return FilterType.MULTIPLE;\n }, [checkboxConfig, comboboxConfig, filterButtonConfig, searchConfig, sortConfig]);\n\n const icons = useMemo(() => {\n switch (type) {\n case FilterType.ONLY_FILTER:\n return ['fa fa-filter'];\n case FilterType.ONLY_SORT:\n return ['fa fa-arrow-up-arrow-down'];\n default:\n return ['fa fa-search'];\n }\n }, [type]);\n\n useEffect(() => {\n if (typeof onActiveChange === 'function') {\n onActiveChange(isOpen);\n }\n }, [isOpen, onActiveChange]);\n\n const handleHide = useCallback(() => {\n setIsOpen(false);\n\n if (type === FilterType.ONLY_SORT && contextMenuRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n contextMenuRef.current.hide();\n }\n\n if (type === FilterType.ONLY_SEARCH) {\n setIsSearchActive(false);\n }\n }, [type]);\n\n useEffect(() => {\n if (shouldFocus) {\n searchRef.current?.focus();\n\n window.setTimeout(() => {\n setShouldFocus(false);\n }, 200);\n }\n }, [shouldFocus]);\n\n const handleShow = useCallback(() => {\n setIsOpen(true);\n\n if (shouldAutoFocus) {\n setShouldFocus(true);\n }\n\n if (type === FilterType.ONLY_SORT && contextMenuRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n contextMenuRef.current.hide();\n }\n\n if (type === FilterType.ONLY_SEARCH) {\n setIsSearchActive(true);\n }\n }, [shouldAutoFocus, type]);\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n const handleIconClick = useCallback(() => {\n if (isOpen) {\n handleHide();\n } else {\n handleShow();\n }\n }, [handleHide, handleShow, isOpen]);\n\n const handleIconKeyDown = useCallback<KeyboardEventHandler<HTMLDivElement>>(\n (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleIconClick();\n }\n },\n [handleIconClick],\n );\n\n const iconElement = useMemo(\n () => (\n <StyledFilterIcon\n onClick={handleIconClick}\n onKeyDown={handleIconKeyDown}\n $isOpen={isOpen}\n ref={iconRef}\n role={shouldEnableKeyboardHighlightingEffective ? 'button' : undefined}\n tabIndex={shouldEnableKeyboardHighlightingEffective ? 0 : -1}\n $shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n $shouldShowRoundedHoverEffect={shouldShowRoundedHoverEffect}\n >\n <Icon icons={icons} size={18} />\n </StyledFilterIcon>\n ),\n [\n handleIconClick,\n handleIconKeyDown,\n icons,\n isOpen,\n shouldEnableKeyboardHighlightingEffective,\n shouldShowKeyboardHighlighting,\n shouldShowRoundedHoverEffect,\n ],\n );\n\n const sortItems: ContextMenuItem[] = useMemo(() => {\n if (!sortConfig) {\n return [];\n }\n\n const { selectedItem, onSortChange } = sortConfig;\n\n return sortConfig.items.map(({ id, text }) => ({\n text,\n key: id.toString(),\n isSelected: id === selectedItem.id,\n icons: id === selectedItem.id ? ['fas fa-circle-small'] : [],\n onClick: () => onSortChange({ text, id }),\n }));\n }, [sortConfig]);\n\n const comboboxElement = useMemo(() => {\n if (!comboboxConfig) {\n return null;\n }\n\n return (\n <ComboBox\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...comboboxConfig}\n shouldEnableKeyboardHighlighting={\n comboboxConfig.shouldEnableKeyboardHighlighting ??\n shouldEnableKeyboardHighlightingEffective\n }\n />\n );\n }, [comboboxConfig, shouldEnableKeyboardHighlightingEffective]);\n\n return useMemo(\n () => (\n <StyledFilter ref={filterRef}>\n <StyledFilterHead>\n {!isValidElement(headline) ? (\n <StyledFilterHeadline $isSearchActive={isSearchActive}>\n {headline}\n </StyledFilterHeadline>\n ) : (\n <StyledFilterHeadlineElement $isSearchActive={isSearchActive}>\n {headline}\n </StyledFilterHeadlineElement>\n )}\n {[FilterType.MULTIPLE, FilterType.ONLY_FILTER].includes(type) && (\n <StyledFilterIconWrapper>\n {rightIcons &&\n rightIcons.map(({ icons: rIcons, onClick }) => (\n <FilterIconButton\n key={rIcons.join('-')}\n icons={rIcons}\n onClick={onClick}\n isOpen={false}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n shouldShowKeyboardHighlighting={\n shouldShowKeyboardHighlighting\n }\n shouldShowRoundedHoverEffect={\n shouldShowRoundedHoverEffect\n }\n />\n ))}\n {iconElement}\n </StyledFilterIconWrapper>\n )}\n {type === FilterType.ONLY_SEARCH && searchConfig && (\n <StyledFilterSearch>\n <SearchInput\n onActiveChange={(isActive) => {\n setIsSearchActive(isActive);\n setIsOpen(isActive);\n }}\n ref={searchRef}\n isActive={isSearchActive}\n value={searchConfig.searchValue}\n onChange={(ev) => searchConfig.onSearchChange(ev.target.value)}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n />\n </StyledFilterSearch>\n )}\n {type === FilterType.ONLY_SORT && sortConfig && (\n <ContextMenu\n ref={contextMenuRef}\n items={sortItems}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n >\n {iconElement}\n </ContextMenu>\n )}\n {type === FilterType.ONLY_CHECKBOX && checkboxConfig && (\n <Checkbox\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...checkboxConfig}\n shouldEnableKeyboardHighlighting={\n checkboxConfig.shouldEnableKeyboardHighlighting ??\n shouldEnableKeyboardHighlightingEffective\n }\n />\n )}\n {type === FilterType.ONLY_COMBOBOX && comboboxElement}\n </StyledFilterHead>\n {[FilterType.MULTIPLE, FilterType.ONLY_FILTER].includes(type) && (\n <StyledFilterContentWrapper\n ref={contentRef}\n inert={!isOpen || undefined}\n aria-hidden={!isOpen}\n >\n <ExpandableContent isOpen={isOpen}>\n <FilterContent\n shouldAutoFocus={shouldFocus}\n searchConfig={searchConfig}\n filterButtonConfig={filterButtonConfig}\n sortConfig={sortConfig}\n checkboxConfig={checkboxConfig}\n comboboxConfig={comboboxConfig}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n />\n </ExpandableContent>\n </StyledFilterContentWrapper>\n )}\n </StyledFilter>\n ),\n [\n headline,\n isSearchActive,\n type,\n rightIcons,\n iconElement,\n searchConfig,\n sortConfig,\n sortItems,\n checkboxConfig,\n isOpen,\n shouldFocus,\n shouldEnableKeyboardHighlightingEffective,\n filterButtonConfig,\n comboboxConfig,\n comboboxElement,\n shouldShowKeyboardHighlighting,\n shouldShowRoundedHoverEffect,\n ],\n );\n },\n);\n\nFilter.displayName = 'Filter';\n\nexport default Filter;\n"],"mappings":"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","ignoreList":[]}
@@ -52,7 +52,7 @@ const SearchBoxBody = /*#__PURE__*/(0, _react.forwardRef)(({
52
52
  return (0, _react.useMemo)(() => /*#__PURE__*/_react.default.createElement(_SearchBoxBody.StyledSearchBoxBody, {
53
53
  onClick: handlePreventDefault,
54
54
  ref: ref,
55
- inert: !shouldShow ? 'true' : undefined
55
+ inert: !shouldShow || undefined
56
56
  }, filterButtons && (filterButtons === null || filterButtons === void 0 ? void 0 : filterButtons.length) > 1 && /*#__PURE__*/_react.default.createElement(_SearchBoxBody.StyledSearchBoxBodyHead, {
57
57
  ref: headRef,
58
58
  $hasScrolled: hasScrolled,
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBoxBody.js","names":["_react","_interopRequireWildcard","require","_element","_uuid","_searchBox","_FilterButtons","_interopRequireDefault","_SearchBoxBody","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SearchBoxBody","forwardRef","filterButtons","selectedGroups","height","maxHeight","children","shouldShow","onGroupSelect","shouldHideFilterButtons","ref","hasScrolled","setHasScrolled","useState","currentGroupName","setCurrentGroupName","headRef","useRef","headSize","useElementSize","uuid","useUuid","headHeight","useMemo","useEffect","element","document","getElementById","length","getCurrentGroupName","handlePreventDefault","event","preventDefault","stopPropagation","handleScroll","useCallback","scrollTop","target","createElement","StyledSearchBoxBody","onClick","inert","undefined","StyledSearchBoxBodyHead","$hasScrolled","$hasGroupName","items","size","onSelect","selectedItemIds","StyledSearchBoxBodyHeadGroupName","replace","StyledSearchBoxBodyContent","$height","$headHeight","$maxHeight","key","id","className","tabIndex","onScroll","displayName","_default","exports"],"sources":["../../../../../src/components/search-box/search-box-body/SearchBoxBody.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEvent,\n UIEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { useElementSize } from '../../../hooks/element';\nimport { useUuid } from '../../../hooks/uuid';\nimport type { IFilterButtonItem } from '../../../types/filterButtons';\nimport { getCurrentGroupName } from '../../../utils/searchBox';\nimport FilterButtons from '../../filter-buttons/FilterButtons';\nimport {\n StyledSearchBoxBody,\n StyledSearchBoxBodyContent,\n StyledSearchBoxBodyHead,\n StyledSearchBoxBodyHeadGroupName,\n} from './SearchBoxBody.styles';\n\nexport type SearchBoxBodyProps = {\n children: ReactNode;\n filterButtons?: IFilterButtonItem[];\n selectedGroups?: string[];\n height: number;\n maxHeight?: number;\n onGroupSelect?: (keys: string[]) => void;\n shouldHideFilterButtons?: boolean;\n shouldShow: boolean;\n};\n\nconst SearchBoxBody = forwardRef<HTMLDivElement, SearchBoxBodyProps>(\n (\n {\n filterButtons,\n selectedGroups,\n height,\n maxHeight = 300,\n children,\n shouldShow,\n onGroupSelect,\n shouldHideFilterButtons,\n },\n ref,\n ) => {\n const [hasScrolled, setHasScrolled] = useState(false);\n const [currentGroupName, setCurrentGroupName] = useState('');\n\n const headRef = useRef<HTMLDivElement>(null);\n\n const headSize = useElementSize(headRef);\n\n const uuid = useUuid();\n\n const headHeight = useMemo(\n () => (headSize?.height ? headSize.height + 15 : 0),\n [headSize?.height],\n );\n\n useEffect(() => {\n const element = document.getElementById(`searchBoxContent__${uuid}`);\n\n if (\n element &&\n ((selectedGroups?.length === 1 && selectedGroups[0] === 'all') ||\n selectedGroups?.length !== 1)\n ) {\n setCurrentGroupName(getCurrentGroupName(element));\n } else {\n setCurrentGroupName('');\n }\n }, [uuid, children, selectedGroups]);\n\n const handlePreventDefault = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n const handleScroll = useCallback(\n (event: UIEvent) => {\n const { scrollTop } = event.target as HTMLDivElement;\n\n setHasScrolled(scrollTop > 1);\n\n if (\n (selectedGroups?.length === 1 && selectedGroups[0] === 'all') ||\n selectedGroups?.length !== 1\n ) {\n setCurrentGroupName(getCurrentGroupName(event.target as HTMLDivElement));\n }\n },\n [selectedGroups],\n );\n\n return useMemo(\n () => (\n <StyledSearchBoxBody\n onClick={handlePreventDefault}\n ref={ref}\n inert={!shouldShow ? 'true' : undefined}\n >\n {filterButtons && filterButtons?.length > 1 && (\n <StyledSearchBoxBodyHead\n ref={headRef}\n $hasScrolled={hasScrolled}\n $hasGroupName={!!currentGroupName}\n >\n {!shouldHideFilterButtons && (\n <FilterButtons\n items={filterButtons}\n size={0}\n onSelect={onGroupSelect}\n selectedItemIds={selectedGroups}\n />\n )}\n <StyledSearchBoxBodyHeadGroupName>\n {currentGroupName.replace('_', '')}\n </StyledSearchBoxBodyHeadGroupName>\n </StyledSearchBoxBodyHead>\n )}\n <StyledSearchBoxBodyContent\n $height={height}\n $headHeight={headHeight}\n $maxHeight={maxHeight}\n key=\"content\"\n id={`searchBoxContent__${uuid}`}\n className=\"chayns-scrollbar\"\n tabIndex={0}\n onScroll={handleScroll}\n >\n {children}\n </StyledSearchBoxBodyContent>\n </StyledSearchBoxBody>\n ),\n [\n children,\n currentGroupName,\n filterButtons,\n handleScroll,\n hasScrolled,\n headHeight,\n height,\n onGroupSelect,\n maxHeight,\n ref,\n selectedGroups,\n shouldHideFilterButtons,\n shouldShow,\n uuid,\n ],\n );\n },\n);\n\nSearchBoxBody.displayName = 'SearchBoxBody';\n\nexport default SearchBoxBody;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SearchBoxBody.js","names":["_react","_interopRequireWildcard","require","_element","_uuid","_searchBox","_FilterButtons","_interopRequireDefault","_SearchBoxBody","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SearchBoxBody","forwardRef","filterButtons","selectedGroups","height","maxHeight","children","shouldShow","onGroupSelect","shouldHideFilterButtons","ref","hasScrolled","setHasScrolled","useState","currentGroupName","setCurrentGroupName","headRef","useRef","headSize","useElementSize","uuid","useUuid","headHeight","useMemo","useEffect","element","document","getElementById","length","getCurrentGroupName","handlePreventDefault","event","preventDefault","stopPropagation","handleScroll","useCallback","scrollTop","target","createElement","StyledSearchBoxBody","onClick","inert","undefined","StyledSearchBoxBodyHead","$hasScrolled","$hasGroupName","items","size","onSelect","selectedItemIds","StyledSearchBoxBodyHeadGroupName","replace","StyledSearchBoxBodyContent","$height","$headHeight","$maxHeight","key","id","className","tabIndex","onScroll","displayName","_default","exports"],"sources":["../../../../../src/components/search-box/search-box-body/SearchBoxBody.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEvent,\n UIEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { useElementSize } from '../../../hooks/element';\nimport { useUuid } from '../../../hooks/uuid';\nimport type { IFilterButtonItem } from '../../../types/filterButtons';\nimport { getCurrentGroupName } from '../../../utils/searchBox';\nimport FilterButtons from '../../filter-buttons/FilterButtons';\nimport {\n StyledSearchBoxBody,\n StyledSearchBoxBodyContent,\n StyledSearchBoxBodyHead,\n StyledSearchBoxBodyHeadGroupName,\n} from './SearchBoxBody.styles';\n\nexport type SearchBoxBodyProps = {\n children: ReactNode;\n filterButtons?: IFilterButtonItem[];\n selectedGroups?: string[];\n height: number;\n maxHeight?: number;\n onGroupSelect?: (keys: string[]) => void;\n shouldHideFilterButtons?: boolean;\n shouldShow: boolean;\n};\n\nconst SearchBoxBody = forwardRef<HTMLDivElement, SearchBoxBodyProps>(\n (\n {\n filterButtons,\n selectedGroups,\n height,\n maxHeight = 300,\n children,\n shouldShow,\n onGroupSelect,\n shouldHideFilterButtons,\n },\n ref,\n ) => {\n const [hasScrolled, setHasScrolled] = useState(false);\n const [currentGroupName, setCurrentGroupName] = useState('');\n\n const headRef = useRef<HTMLDivElement>(null);\n\n const headSize = useElementSize(headRef);\n\n const uuid = useUuid();\n\n const headHeight = useMemo(\n () => (headSize?.height ? headSize.height + 15 : 0),\n [headSize?.height],\n );\n\n useEffect(() => {\n const element = document.getElementById(`searchBoxContent__${uuid}`);\n\n if (\n element &&\n ((selectedGroups?.length === 1 && selectedGroups[0] === 'all') ||\n selectedGroups?.length !== 1)\n ) {\n setCurrentGroupName(getCurrentGroupName(element));\n } else {\n setCurrentGroupName('');\n }\n }, [uuid, children, selectedGroups]);\n\n const handlePreventDefault = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n const handleScroll = useCallback(\n (event: UIEvent) => {\n const { scrollTop } = event.target as HTMLDivElement;\n\n setHasScrolled(scrollTop > 1);\n\n if (\n (selectedGroups?.length === 1 && selectedGroups[0] === 'all') ||\n selectedGroups?.length !== 1\n ) {\n setCurrentGroupName(getCurrentGroupName(event.target as HTMLDivElement));\n }\n },\n [selectedGroups],\n );\n\n return useMemo(\n () => (\n <StyledSearchBoxBody\n onClick={handlePreventDefault}\n ref={ref}\n inert={!shouldShow || undefined}\n >\n {filterButtons && filterButtons?.length > 1 && (\n <StyledSearchBoxBodyHead\n ref={headRef}\n $hasScrolled={hasScrolled}\n $hasGroupName={!!currentGroupName}\n >\n {!shouldHideFilterButtons && (\n <FilterButtons\n items={filterButtons}\n size={0}\n onSelect={onGroupSelect}\n selectedItemIds={selectedGroups}\n />\n )}\n <StyledSearchBoxBodyHeadGroupName>\n {currentGroupName.replace('_', '')}\n </StyledSearchBoxBodyHeadGroupName>\n </StyledSearchBoxBodyHead>\n )}\n <StyledSearchBoxBodyContent\n $height={height}\n $headHeight={headHeight}\n $maxHeight={maxHeight}\n key=\"content\"\n id={`searchBoxContent__${uuid}`}\n className=\"chayns-scrollbar\"\n tabIndex={0}\n onScroll={handleScroll}\n >\n {children}\n </StyledSearchBoxBodyContent>\n </StyledSearchBoxBody>\n ),\n [\n children,\n currentGroupName,\n filterButtons,\n handleScroll,\n hasScrolled,\n headHeight,\n height,\n onGroupSelect,\n maxHeight,\n ref,\n selectedGroups,\n shouldHideFilterButtons,\n shouldShow,\n uuid,\n ],\n );\n },\n);\n\nSearchBoxBody.displayName = 'SearchBoxBody';\n\nexport default SearchBoxBody;\n"],"mappings":"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","ignoreList":[]}
@@ -141,7 +141,7 @@ const useMeasuredClone = ({
141
141
  width: 'auto',
142
142
  visibility: 'hidden'
143
143
  },
144
- inert: "true",
144
+ inert: true,
145
145
  tabIndex: -1
146
146
  }, clonedElement);
147
147
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","names":["_react","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isSameRect","a","b","width","height","x","y","useElementSize","ref","shouldUseChildElement","shouldUseParentElement","size","setSize","useState","useEffect","target","current","_ref$current","parentElement","_ref$current2","firstElementChild","undefined","frameId","updateSize","nextSize","window","cancelAnimationFrame","requestAnimationFrame","currentSize","getBoundingClientRect","observer","ResizeObserver","entry","contentRect","observe","disconnect","exports","cloneWithTabIndex","node","isValidElement","element","type","React","Fragment","children","Children","map","props","cloneElement","displayName","createElement","tabIndex","getClonedElement","content","preventEvents","onClick","stopPropagation","onMouseDown","onMouseUp","onKeyDown","onKeyUp","onFocus","onBlur","useMeasuredClone","shouldPreventTextWrapping","useRef","clonedElement","measure","offsetWidth","offsetHeight","measuredElement","style","position","opacity","pointerEvents","userSelect","zIndex","visibility","inert","useIsMeasuredClone","isClone","setIsClone","el","hasAttribute","useIsInsideDialog","isInsideDialog","setIsInsideDialog","closest"],"sources":["../../../src/hooks/element.tsx"],"sourcesContent":["import React, {\n Children,\n cloneElement,\n HTMLAttributes,\n isValidElement,\n MutableRefObject,\n ReactElement,\n ReactNode,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\ninterface UseElementSizeOptions {\n shouldUseChildElement?: boolean;\n shouldUseParentElement?: boolean;\n}\n\nconst isSameRect = (a?: DOMRectReadOnly, b?: DOMRectReadOnly) => {\n if (!a || !b) return false;\n\n return a.width === b.width && a.height === b.height && a.x === b.x && a.y === b.y;\n};\n\nexport const useElementSize = (\n ref: MutableRefObject<HTMLDivElement | HTMLLabelElement | null>,\n { shouldUseChildElement = false, shouldUseParentElement = false }: UseElementSizeOptions = {},\n): DOMRectReadOnly | undefined => {\n const [size, setSize] = useState<DOMRectReadOnly>();\n\n useEffect(() => {\n let target: HTMLElement | null = ref.current;\n\n if (shouldUseParentElement) {\n target = ref.current?.parentElement ?? null;\n }\n\n if (shouldUseChildElement) {\n target = ref.current?.firstElementChild as HTMLElement | null;\n }\n\n if (!target) return undefined;\n\n let frameId: number | undefined;\n\n const updateSize = (nextSize: DOMRectReadOnly) => {\n if (frameId) {\n window.cancelAnimationFrame(frameId);\n }\n\n frameId = window.requestAnimationFrame(() => {\n setSize((currentSize) =>\n isSameRect(currentSize, nextSize) ? currentSize : nextSize,\n );\n });\n };\n\n updateSize(target.getBoundingClientRect());\n\n const observer = new ResizeObserver(([entry]) => {\n if (!entry || entry.target !== target) return;\n\n updateSize(entry.contentRect);\n });\n\n observer.observe(target);\n\n return () => {\n if (frameId) {\n window.cancelAnimationFrame(frameId);\n }\n\n observer.disconnect();\n };\n }, [ref, shouldUseChildElement, shouldUseParentElement]);\n\n return size;\n};\n\nconst cloneWithTabIndex = (node: ReactNode): ReactNode => {\n if (!isValidElement(node)) return node;\n\n const element = node as ReactElement;\n\n if (element.type === React.Fragment) {\n const children = Children.map(element.props.children, cloneWithTabIndex);\n\n return cloneElement(element, {\n ...element.props,\n children,\n });\n }\n\n const children = element.props.children\n ? Children.map(element.props.children, cloneWithTabIndex)\n : element.props.children;\n\n if ((element.type as any).displayName === 'Button') {\n return (\n // eslint-disable-next-line react/button-has-type\n <button tabIndex={-1}>{children}</button>\n );\n }\n\n return cloneElement(element, {\n ...element.props,\n tabIndex: -1,\n children,\n });\n};\n\nconst getClonedElement = (content: ReactNode) => {\n const preventEvents: Partial<HTMLAttributes<never>> = {\n onClick: (e) => e.stopPropagation(),\n onMouseDown: (e) => e.stopPropagation(),\n onMouseUp: (e) => e.stopPropagation(),\n onKeyDown: (e) => e.stopPropagation(),\n onKeyUp: (e) => e.stopPropagation(),\n onFocus: (e) => e.stopPropagation(),\n onBlur: (e) => e.stopPropagation(),\n };\n\n if (typeof content === 'string') {\n return (\n <span tabIndex={-1} data-measured-clone>\n {content}\n </span>\n );\n }\n\n if (isValidElement(content)) {\n return cloneWithTabIndex(\n cloneElement(content, {\n ...preventEvents,\n 'data-measured-clone': true,\n }),\n );\n }\n\n return content;\n};\n\ninterface UseMeasuredCloneOptions {\n content: ReactNode;\n shouldPreventTextWrapping?: boolean;\n}\n\nexport const useMeasuredClone = ({\n content,\n shouldPreventTextWrapping = true,\n}: UseMeasuredCloneOptions) => {\n const ref = useRef<HTMLDivElement>(null);\n\n const [size, setSize] = useState({ width: 0, height: 0 });\n\n const clonedElement = getClonedElement(content);\n\n useEffect(() => {\n const measure = () => {\n if (!ref.current) return;\n\n const { offsetWidth: width, offsetHeight: height } = ref.current;\n\n setSize({ width: width + (shouldPreventTextWrapping ? 10 : 0), height });\n };\n\n measure();\n\n const observer = new ResizeObserver(measure);\n\n if (ref.current) observer.observe(ref.current);\n\n return () => observer.disconnect();\n }, [shouldPreventTextWrapping]);\n\n const measuredElement = (\n <div\n data-measured-clone=\"true\"\n ref={ref}\n style={{\n position: 'fixed',\n opacity: 0,\n pointerEvents: 'none',\n userSelect: 'none',\n zIndex: -1,\n height: 'auto',\n width: 'auto',\n visibility: 'hidden',\n }}\n inert=\"true\"\n tabIndex={-1}\n >\n {clonedElement}\n </div>\n );\n\n return {\n measuredElement,\n width: size.width,\n height: size.height,\n };\n};\n\nexport const useIsMeasuredClone = <T extends HTMLElement>() => {\n const ref = useRef<T | null>(null);\n\n const [isClone, setIsClone] = useState(false);\n\n useEffect(() => {\n if (!ref.current) return;\n\n let el: HTMLElement | null = ref.current;\n\n while (el) {\n if (el.hasAttribute('data-measured-clone')) {\n setIsClone(true);\n\n return;\n }\n\n el = el.parentElement;\n }\n\n setIsClone(false);\n }, []);\n\n return [isClone, ref] as const;\n};\n\nexport const useIsInsideDialog = <T extends HTMLElement>(ref: MutableRefObject<T | null>) => {\n const [isInsideDialog, setIsInsideDialog] = useState(false);\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n setIsInsideDialog(ref.current.closest('.dialog-inner') !== null);\n }, [ref]);\n\n return isInsideDialog;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"element.js","names":["_react","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isSameRect","a","b","width","height","x","y","useElementSize","ref","shouldUseChildElement","shouldUseParentElement","size","setSize","useState","useEffect","target","current","_ref$current","parentElement","_ref$current2","firstElementChild","undefined","frameId","updateSize","nextSize","window","cancelAnimationFrame","requestAnimationFrame","currentSize","getBoundingClientRect","observer","ResizeObserver","entry","contentRect","observe","disconnect","exports","cloneWithTabIndex","node","isValidElement","element","type","React","Fragment","children","Children","map","props","cloneElement","displayName","createElement","tabIndex","getClonedElement","content","preventEvents","onClick","stopPropagation","onMouseDown","onMouseUp","onKeyDown","onKeyUp","onFocus","onBlur","useMeasuredClone","shouldPreventTextWrapping","useRef","clonedElement","measure","offsetWidth","offsetHeight","measuredElement","style","position","opacity","pointerEvents","userSelect","zIndex","visibility","inert","useIsMeasuredClone","isClone","setIsClone","el","hasAttribute","useIsInsideDialog","isInsideDialog","setIsInsideDialog","closest"],"sources":["../../../src/hooks/element.tsx"],"sourcesContent":["import React, {\n Children,\n cloneElement,\n HTMLAttributes,\n isValidElement,\n MutableRefObject,\n ReactElement,\n ReactNode,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\ninterface UseElementSizeOptions {\n shouldUseChildElement?: boolean;\n shouldUseParentElement?: boolean;\n}\n\nconst isSameRect = (a?: DOMRectReadOnly, b?: DOMRectReadOnly) => {\n if (!a || !b) return false;\n\n return a.width === b.width && a.height === b.height && a.x === b.x && a.y === b.y;\n};\n\nexport const useElementSize = (\n ref: MutableRefObject<HTMLDivElement | HTMLLabelElement | null>,\n { shouldUseChildElement = false, shouldUseParentElement = false }: UseElementSizeOptions = {},\n): DOMRectReadOnly | undefined => {\n const [size, setSize] = useState<DOMRectReadOnly>();\n\n useEffect(() => {\n let target: HTMLElement | null = ref.current;\n\n if (shouldUseParentElement) {\n target = ref.current?.parentElement ?? null;\n }\n\n if (shouldUseChildElement) {\n target = ref.current?.firstElementChild as HTMLElement | null;\n }\n\n if (!target) return undefined;\n\n let frameId: number | undefined;\n\n const updateSize = (nextSize: DOMRectReadOnly) => {\n if (frameId) {\n window.cancelAnimationFrame(frameId);\n }\n\n frameId = window.requestAnimationFrame(() => {\n setSize((currentSize) =>\n isSameRect(currentSize, nextSize) ? currentSize : nextSize,\n );\n });\n };\n\n updateSize(target.getBoundingClientRect());\n\n const observer = new ResizeObserver(([entry]) => {\n if (!entry || entry.target !== target) return;\n\n updateSize(entry.contentRect);\n });\n\n observer.observe(target);\n\n return () => {\n if (frameId) {\n window.cancelAnimationFrame(frameId);\n }\n\n observer.disconnect();\n };\n }, [ref, shouldUseChildElement, shouldUseParentElement]);\n\n return size;\n};\n\nconst cloneWithTabIndex = (node: ReactNode): ReactNode => {\n if (!isValidElement(node)) return node;\n\n const element = node as ReactElement;\n\n if (element.type === React.Fragment) {\n const children = Children.map(element.props.children, cloneWithTabIndex);\n\n return cloneElement(element, {\n ...element.props,\n children,\n });\n }\n\n const children = element.props.children\n ? Children.map(element.props.children, cloneWithTabIndex)\n : element.props.children;\n\n if ((element.type as any).displayName === 'Button') {\n return (\n // eslint-disable-next-line react/button-has-type\n <button tabIndex={-1}>{children}</button>\n );\n }\n\n return cloneElement(element, {\n ...element.props,\n tabIndex: -1,\n children,\n });\n};\n\nconst getClonedElement = (content: ReactNode) => {\n const preventEvents: Partial<HTMLAttributes<never>> = {\n onClick: (e) => e.stopPropagation(),\n onMouseDown: (e) => e.stopPropagation(),\n onMouseUp: (e) => e.stopPropagation(),\n onKeyDown: (e) => e.stopPropagation(),\n onKeyUp: (e) => e.stopPropagation(),\n onFocus: (e) => e.stopPropagation(),\n onBlur: (e) => e.stopPropagation(),\n };\n\n if (typeof content === 'string') {\n return (\n <span tabIndex={-1} data-measured-clone>\n {content}\n </span>\n );\n }\n\n if (isValidElement(content)) {\n return cloneWithTabIndex(\n cloneElement(content, {\n ...preventEvents,\n 'data-measured-clone': true,\n }),\n );\n }\n\n return content;\n};\n\ninterface UseMeasuredCloneOptions {\n content: ReactNode;\n shouldPreventTextWrapping?: boolean;\n}\n\nexport const useMeasuredClone = ({\n content,\n shouldPreventTextWrapping = true,\n}: UseMeasuredCloneOptions) => {\n const ref = useRef<HTMLDivElement>(null);\n\n const [size, setSize] = useState({ width: 0, height: 0 });\n\n const clonedElement = getClonedElement(content);\n\n useEffect(() => {\n const measure = () => {\n if (!ref.current) return;\n\n const { offsetWidth: width, offsetHeight: height } = ref.current;\n\n setSize({ width: width + (shouldPreventTextWrapping ? 10 : 0), height });\n };\n\n measure();\n\n const observer = new ResizeObserver(measure);\n\n if (ref.current) observer.observe(ref.current);\n\n return () => observer.disconnect();\n }, [shouldPreventTextWrapping]);\n\n const measuredElement = (\n <div\n data-measured-clone=\"true\"\n ref={ref}\n style={{\n position: 'fixed',\n opacity: 0,\n pointerEvents: 'none',\n userSelect: 'none',\n zIndex: -1,\n height: 'auto',\n width: 'auto',\n visibility: 'hidden',\n }}\n inert={true}\n tabIndex={-1}\n >\n {clonedElement}\n </div>\n );\n\n return {\n measuredElement,\n width: size.width,\n height: size.height,\n };\n};\n\nexport const useIsMeasuredClone = <T extends HTMLElement>() => {\n const ref = useRef<T | null>(null);\n\n const [isClone, setIsClone] = useState(false);\n\n useEffect(() => {\n if (!ref.current) return;\n\n let el: HTMLElement | null = ref.current;\n\n while (el) {\n if (el.hasAttribute('data-measured-clone')) {\n setIsClone(true);\n\n return;\n }\n\n el = el.parentElement;\n }\n\n setIsClone(false);\n }, []);\n\n return [isClone, ref] as const;\n};\n\nexport const useIsInsideDialog = <T extends HTMLElement>(ref: MutableRefObject<T | null>) => {\n const [isInsideDialog, setIsInsideDialog] = useState(false);\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n setIsInsideDialog(ref.current.closest('.dialog-inner') !== null);\n }, [ref]);\n\n return isInsideDialog;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -91,7 +91,7 @@ const DelayedDropdownContent = ({
91
91
  duration: ANIMATION_DELAY_MS / 1000,
92
92
  type: 'tween'
93
93
  },
94
- inert: !shouldShowContent ? 'true' : undefined
94
+ inert: !shouldShowContent || undefined
95
95
  }, children);
96
96
  };
97
97
  DelayedDropdownContent.displayName = 'DelayedDropdownContent';
@@ -1 +1 @@
1
- {"version":3,"file":"DelayedDropdownContent.js","names":["React","useCallback","useEffect","useRef","useState","StyledMotionDelayedDropdownContent","ANIMATION_DELAY_MS","AnimationType","DelayedDropdownContent","children","shouldShowContent","onMeasure","coordinates","transform","animationState","setAnimationState","None","ref","timeoutRef","measureElement","current","height","width","x","y","getBoundingClientRect","scrollHeight","element","FadeIn","window","setTimeout","Visible","observer","ResizeObserver","observe","disconnect","Hidden","clearTimeout","prevState","FadeOut","refCallback","reference","undefined","createElement","$coordinates","$transform","$shouldHideContent","animate","opacity","includes","transition","duration","type","inert","displayName"],"sources":["../../../../../src/components/dropdown-body-wrapper/delayed-dropdown-content/DelayedDropdownContent.tsx"],"sourcesContent":["import React, { FC, ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { StyledMotionDelayedDropdownContent } from './DelayedDropdownContent.styles';\nimport {\n DropdownCoordinates,\n DropdownMeasurements,\n DropdownTransform,\n} from '../../../types/dropdown';\n\nconst ANIMATION_DELAY_MS = 200;\n\nenum AnimationType {\n None,\n Hidden,\n Visible,\n FadeIn,\n FadeOut,\n}\n\nexport type DelayedDropdownContentProps = {\n /**\n * The content to be rendered inside the dropdown.\n */\n children: ReactNode;\n /**\n * The absolute coordinates used to position the dropdown.\n */\n coordinates: DropdownCoordinates;\n /**\n * Callback that returns the dimensions of the dropdown after measuring.\n */\n onMeasure?: (measurements: DropdownMeasurements) => void;\n /**\n * Whether the dropdown should be rendered and animated in.\n */\n shouldShowContent: boolean;\n /**\n * CSS transform data (e.g. translate offsets) to apply for positioning.\n */\n transform: DropdownTransform;\n};\n\nconst DelayedDropdownContent: FC<DelayedDropdownContentProps> = ({\n children,\n shouldShowContent,\n onMeasure,\n coordinates,\n transform,\n}) => {\n const [animationState, setAnimationState] = useState<AnimationType>(AnimationType.None);\n\n const ref = useRef<HTMLDivElement>();\n const timeoutRef = useRef<number>();\n\n const measureElement = useCallback(() => {\n if (ref.current) {\n const { height, width, x, y } = ref.current.getBoundingClientRect();\n const { scrollHeight } = ref.current;\n\n if (typeof onMeasure === 'function') {\n onMeasure({\n x,\n y,\n height,\n scrollHeight,\n width,\n element: ref.current,\n });\n }\n\n setAnimationState(AnimationType.FadeIn);\n\n timeoutRef.current = window.setTimeout(() => {\n setAnimationState(AnimationType.Visible);\n }, ANIMATION_DELAY_MS);\n }\n }, [onMeasure]);\n\n useEffect(() => {\n if (!shouldShowContent) return () => {};\n\n const observer = new ResizeObserver(() => {\n measureElement();\n });\n\n if (ref.current) {\n observer.observe(ref.current);\n }\n\n return () => observer.disconnect();\n }, [measureElement, shouldShowContent]);\n\n useEffect(() => {\n if (shouldShowContent) {\n setAnimationState(AnimationType.Hidden);\n } else {\n clearTimeout(timeoutRef.current);\n\n setAnimationState((prevState) => {\n if (prevState === AnimationType.None) {\n return prevState;\n }\n\n return AnimationType.FadeOut;\n });\n\n window.setTimeout(() => {\n setAnimationState(AnimationType.None);\n }, ANIMATION_DELAY_MS);\n }\n }, [measureElement, shouldShowContent]);\n\n const refCallback = useCallback(\n (reference: HTMLDivElement | null) => {\n ref.current = reference ?? undefined;\n measureElement();\n },\n [measureElement],\n );\n\n if (animationState === AnimationType.None) {\n return null;\n }\n\n return (\n <StyledMotionDelayedDropdownContent\n ref={refCallback}\n $coordinates={coordinates}\n $transform={transform}\n $shouldHideContent={animationState === AnimationType.Hidden}\n animate={{\n opacity: [AnimationType.FadeIn, AnimationType.Visible].includes(animationState)\n ? 1\n : 0,\n }}\n transition={{ duration: ANIMATION_DELAY_MS / 1000, type: 'tween' }}\n inert={!shouldShowContent ? 'true' : undefined}\n >\n {children}\n </StyledMotionDelayedDropdownContent>\n );\n};\n\nDelayedDropdownContent.displayName = 'DelayedDropdownContent';\n\nexport default DelayedDropdownContent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DelayedDropdownContent.js","names":["React","useCallback","useEffect","useRef","useState","StyledMotionDelayedDropdownContent","ANIMATION_DELAY_MS","AnimationType","DelayedDropdownContent","children","shouldShowContent","onMeasure","coordinates","transform","animationState","setAnimationState","None","ref","timeoutRef","measureElement","current","height","width","x","y","getBoundingClientRect","scrollHeight","element","FadeIn","window","setTimeout","Visible","observer","ResizeObserver","observe","disconnect","Hidden","clearTimeout","prevState","FadeOut","refCallback","reference","undefined","createElement","$coordinates","$transform","$shouldHideContent","animate","opacity","includes","transition","duration","type","inert","displayName"],"sources":["../../../../../src/components/dropdown-body-wrapper/delayed-dropdown-content/DelayedDropdownContent.tsx"],"sourcesContent":["import React, { FC, ReactNode, useCallback, useEffect, useRef, useState } from 'react';\nimport { StyledMotionDelayedDropdownContent } from './DelayedDropdownContent.styles';\nimport {\n DropdownCoordinates,\n DropdownMeasurements,\n DropdownTransform,\n} from '../../../types/dropdown';\n\nconst ANIMATION_DELAY_MS = 200;\n\nenum AnimationType {\n None,\n Hidden,\n Visible,\n FadeIn,\n FadeOut,\n}\n\nexport type DelayedDropdownContentProps = {\n /**\n * The content to be rendered inside the dropdown.\n */\n children: ReactNode;\n /**\n * The absolute coordinates used to position the dropdown.\n */\n coordinates: DropdownCoordinates;\n /**\n * Callback that returns the dimensions of the dropdown after measuring.\n */\n onMeasure?: (measurements: DropdownMeasurements) => void;\n /**\n * Whether the dropdown should be rendered and animated in.\n */\n shouldShowContent: boolean;\n /**\n * CSS transform data (e.g. translate offsets) to apply for positioning.\n */\n transform: DropdownTransform;\n};\n\nconst DelayedDropdownContent: FC<DelayedDropdownContentProps> = ({\n children,\n shouldShowContent,\n onMeasure,\n coordinates,\n transform,\n}) => {\n const [animationState, setAnimationState] = useState<AnimationType>(AnimationType.None);\n\n const ref = useRef<HTMLDivElement>();\n const timeoutRef = useRef<number>();\n\n const measureElement = useCallback(() => {\n if (ref.current) {\n const { height, width, x, y } = ref.current.getBoundingClientRect();\n const { scrollHeight } = ref.current;\n\n if (typeof onMeasure === 'function') {\n onMeasure({\n x,\n y,\n height,\n scrollHeight,\n width,\n element: ref.current,\n });\n }\n\n setAnimationState(AnimationType.FadeIn);\n\n timeoutRef.current = window.setTimeout(() => {\n setAnimationState(AnimationType.Visible);\n }, ANIMATION_DELAY_MS);\n }\n }, [onMeasure]);\n\n useEffect(() => {\n if (!shouldShowContent) return () => {};\n\n const observer = new ResizeObserver(() => {\n measureElement();\n });\n\n if (ref.current) {\n observer.observe(ref.current);\n }\n\n return () => observer.disconnect();\n }, [measureElement, shouldShowContent]);\n\n useEffect(() => {\n if (shouldShowContent) {\n setAnimationState(AnimationType.Hidden);\n } else {\n clearTimeout(timeoutRef.current);\n\n setAnimationState((prevState) => {\n if (prevState === AnimationType.None) {\n return prevState;\n }\n\n return AnimationType.FadeOut;\n });\n\n window.setTimeout(() => {\n setAnimationState(AnimationType.None);\n }, ANIMATION_DELAY_MS);\n }\n }, [measureElement, shouldShowContent]);\n\n const refCallback = useCallback(\n (reference: HTMLDivElement | null) => {\n ref.current = reference ?? undefined;\n measureElement();\n },\n [measureElement],\n );\n\n if (animationState === AnimationType.None) {\n return null;\n }\n\n return (\n <StyledMotionDelayedDropdownContent\n ref={refCallback}\n $coordinates={coordinates}\n $transform={transform}\n $shouldHideContent={animationState === AnimationType.Hidden}\n animate={{\n opacity: [AnimationType.FadeIn, AnimationType.Visible].includes(animationState)\n ? 1\n : 0,\n }}\n transition={{ duration: ANIMATION_DELAY_MS / 1000, type: 'tween' }}\n inert={!shouldShowContent || undefined}\n >\n {children}\n </StyledMotionDelayedDropdownContent>\n );\n};\n\nDelayedDropdownContent.displayName = 'DelayedDropdownContent';\n\nexport default DelayedDropdownContent;\n"],"mappings":"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","ignoreList":[]}
@@ -238,7 +238,7 @@ const Filter = /*#__PURE__*/forwardRef(({
238
238
  shouldEnableKeyboardHighlighting: checkboxConfig.shouldEnableKeyboardHighlighting ?? shouldEnableKeyboardHighlightingEffective
239
239
  })), type === FilterType.ONLY_COMBOBOX && comboboxElement), [FilterType.MULTIPLE, FilterType.ONLY_FILTER].includes(type) && /*#__PURE__*/React.createElement(StyledFilterContentWrapper, {
240
240
  ref: contentRef,
241
- inert: !isOpen ? 'true' : undefined,
241
+ inert: !isOpen || undefined,
242
242
  "aria-hidden": !isOpen
243
243
  }, /*#__PURE__*/React.createElement(ExpandableContent, {
244
244
  isOpen: isOpen
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.js","names":["React","forwardRef","isValidElement","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","StyledFilter","StyledFilterContentWrapper","StyledFilterHead","StyledFilterHeadline","StyledFilterHeadlineElement","StyledFilterIcon","StyledFilterIconWrapper","StyledFilterSearch","ExpandableContent","Icon","FilterContent","ComboBox","FilterType","SearchInput","ContextMenu","Checkbox","useFocusRingPortal","useKeyboardFocusHighlighting","useColorScheme","FilterIconButton","icons","onClick","isOpen","shouldEnableKeyboardHighlighting","shouldShowKeyboardHighlighting","shouldShowRoundedHoverEffect","iconRef","isEnabled","handleKeyDown","event","key","preventDefault","createElement","ref","onKeyDown","$isOpen","role","undefined","tabIndex","$shouldShowKeyboardHighlighting","$shouldShowRoundedHoverEffect","size","Filter","headline","searchConfig","sortConfig","shouldAutoFocus","filterButtonConfig","checkboxConfig","comboboxConfig","onActiveChange","rightIcons","setIsOpen","isSearchActive","setIsSearchActive","shouldFocus","setShouldFocus","contentRef","filterRef","searchRef","colorScheme","shouldEnableKeyboardHighlightingEffective","contextMenuRef","type","ONLY_FILTER","ONLY_SORT","ONLY_SEARCH","ONLY_CHECKBOX","ONLY_COMBOBOX","MULTIPLE","handleHide","current","hide","focus","window","setTimeout","handleShow","show","handleIconClick","handleIconKeyDown","iconElement","sortItems","selectedItem","onSortChange","items","map","id","text","toString","isSelected","comboboxElement","_extends","$isSearchActive","includes","rIcons","join","isActive","value","searchValue","onChange","ev","onSearchChange","target","inert","displayName"],"sources":["../../../../src/components/filter/Filter.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, react/jsx-props-no-spreading */\nimport React, {\n forwardRef,\n isValidElement,\n KeyboardEventHandler,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n StyledFilter,\n StyledFilterContentWrapper,\n StyledFilterHead,\n StyledFilterHeadline,\n StyledFilterHeadlineElement,\n StyledFilterIcon,\n StyledFilterIconWrapper,\n StyledFilterSearch,\n} from './Filter.styles';\nimport ExpandableContent from '../expandable-content/ExpandableContent';\nimport Icon from '../icon/Icon';\nimport FilterContent from './filter-content/FilterContent';\nimport ComboBox from '../combobox/ComboBox';\nimport {\n CheckboxConfig,\n ComboboxConfig,\n FilterButtonConfig,\n FilterRef,\n FilterType,\n SearchConfig,\n SortConfig,\n} from '../../types/filter';\nimport SearchInput from '../search-input/SearchInput';\nimport ContextMenu from '../context-menu/ContextMenu';\nimport type { ContextMenuItem, ContextMenuRef } from '../context-menu/ContextMenu.types';\nimport Checkbox from '../checkbox/Checkbox';\nimport { InputRef } from '../input/Input';\nimport { useFocusRingPortal } from '../../hooks/useFocusRingPortal';\nimport { useKeyboardFocusHighlighting } from '../../hooks/useKeyboardFocusHighlighting';\nimport { useColorScheme } from '../color-scheme-provider/ColorSchemeProvider';\n\nexport interface FilterRightIcon {\n icons: string[];\n onClick: VoidFunction;\n}\n\ntype FilterIconButtonProps = FilterRightIcon & {\n isOpen: boolean;\n shouldEnableKeyboardHighlighting: boolean;\n shouldShowKeyboardHighlighting: boolean;\n shouldShowRoundedHoverEffect: boolean;\n};\n\nconst FilterIconButton: React.FC<FilterIconButtonProps> = ({\n icons,\n onClick,\n isOpen,\n shouldEnableKeyboardHighlighting,\n shouldShowKeyboardHighlighting,\n shouldShowRoundedHoverEffect,\n}) => {\n const iconRef = useRef<HTMLDivElement | null>(null);\n\n useFocusRingPortal(iconRef, { isEnabled: shouldShowKeyboardHighlighting });\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLDivElement>>(\n (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onClick();\n }\n },\n [onClick],\n );\n\n return (\n <StyledFilterIcon\n ref={iconRef}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n $isOpen={isOpen}\n role={shouldEnableKeyboardHighlighting ? 'button' : undefined}\n tabIndex={shouldEnableKeyboardHighlighting ? 0 : -1}\n $shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n $shouldShowRoundedHoverEffect={shouldShowRoundedHoverEffect}\n >\n <Icon icons={icons} size={18} />\n </StyledFilterIcon>\n );\n};\n\n//\nexport type FilterProps = {\n headline: ReactNode;\n searchConfig?: SearchConfig;\n filterButtonConfig?: FilterButtonConfig;\n sortConfig?: SortConfig;\n checkboxConfig?: CheckboxConfig;\n comboboxConfig?: ComboboxConfig;\n onActiveChange?: (isActive: boolean) => void;\n shouldShowRoundedHoverEffect?: boolean;\n rightIcons?: FilterRightIcon[];\n shouldAutoFocus?: boolean;\n shouldEnableKeyboardHighlighting?: boolean;\n};\n\nconst Filter = forwardRef<FilterRef, FilterProps>(\n (\n {\n headline,\n searchConfig,\n sortConfig,\n shouldAutoFocus = false,\n shouldShowRoundedHoverEffect = false,\n filterButtonConfig,\n checkboxConfig,\n comboboxConfig,\n onActiveChange,\n rightIcons,\n shouldEnableKeyboardHighlighting,\n },\n ref,\n ) => {\n const [isOpen, setIsOpen] = useState(false);\n const [isSearchActive, setIsSearchActive] = useState(false);\n const [shouldFocus, setShouldFocus] = useState(false);\n\n const contentRef = useRef<HTMLDivElement | null>(null);\n const iconRef = useRef<HTMLDivElement | null>(null);\n const filterRef = useRef<HTMLDivElement | null>(null);\n const searchRef = useRef<InputRef | null>(null);\n\n const colorScheme = useColorScheme();\n const shouldEnableKeyboardHighlightingEffective =\n shouldEnableKeyboardHighlighting ??\n colorScheme?.shouldEnableKeyboardHighlighting ??\n false;\n\n const contextMenuRef = useRef<ContextMenuRef>(null);\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n shouldEnableKeyboardHighlightingEffective,\n );\n useFocusRingPortal(iconRef, { isEnabled: shouldShowKeyboardHighlighting });\n\n const type = useMemo(() => {\n if (\n filterButtonConfig &&\n !searchConfig &&\n !sortConfig &&\n !checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_FILTER;\n }\n\n if (\n !filterButtonConfig &&\n !searchConfig &&\n sortConfig &&\n !checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_SORT;\n }\n\n if (\n !filterButtonConfig &&\n searchConfig &&\n !sortConfig &&\n !checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_SEARCH;\n }\n\n if (\n !filterButtonConfig &&\n !searchConfig &&\n !sortConfig &&\n checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_CHECKBOX;\n }\n\n if (\n !filterButtonConfig &&\n !searchConfig &&\n !sortConfig &&\n !checkboxConfig &&\n comboboxConfig\n ) {\n return FilterType.ONLY_COMBOBOX;\n }\n\n return FilterType.MULTIPLE;\n }, [checkboxConfig, comboboxConfig, filterButtonConfig, searchConfig, sortConfig]);\n\n const icons = useMemo(() => {\n switch (type) {\n case FilterType.ONLY_FILTER:\n return ['fa fa-filter'];\n case FilterType.ONLY_SORT:\n return ['fa fa-arrow-up-arrow-down'];\n default:\n return ['fa fa-search'];\n }\n }, [type]);\n\n useEffect(() => {\n if (typeof onActiveChange === 'function') {\n onActiveChange(isOpen);\n }\n }, [isOpen, onActiveChange]);\n\n const handleHide = useCallback(() => {\n setIsOpen(false);\n\n if (type === FilterType.ONLY_SORT && contextMenuRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n contextMenuRef.current.hide();\n }\n\n if (type === FilterType.ONLY_SEARCH) {\n setIsSearchActive(false);\n }\n }, [type]);\n\n useEffect(() => {\n if (shouldFocus) {\n searchRef.current?.focus();\n\n window.setTimeout(() => {\n setShouldFocus(false);\n }, 200);\n }\n }, [shouldFocus]);\n\n const handleShow = useCallback(() => {\n setIsOpen(true);\n\n if (shouldAutoFocus) {\n setShouldFocus(true);\n }\n\n if (type === FilterType.ONLY_SORT && contextMenuRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n contextMenuRef.current.hide();\n }\n\n if (type === FilterType.ONLY_SEARCH) {\n setIsSearchActive(true);\n }\n }, [shouldAutoFocus, type]);\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n const handleIconClick = useCallback(() => {\n if (isOpen) {\n handleHide();\n } else {\n handleShow();\n }\n }, [handleHide, handleShow, isOpen]);\n\n const handleIconKeyDown = useCallback<KeyboardEventHandler<HTMLDivElement>>(\n (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleIconClick();\n }\n },\n [handleIconClick],\n );\n\n const iconElement = useMemo(\n () => (\n <StyledFilterIcon\n onClick={handleIconClick}\n onKeyDown={handleIconKeyDown}\n $isOpen={isOpen}\n ref={iconRef}\n role={shouldEnableKeyboardHighlightingEffective ? 'button' : undefined}\n tabIndex={shouldEnableKeyboardHighlightingEffective ? 0 : -1}\n $shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n $shouldShowRoundedHoverEffect={shouldShowRoundedHoverEffect}\n >\n <Icon icons={icons} size={18} />\n </StyledFilterIcon>\n ),\n [\n handleIconClick,\n handleIconKeyDown,\n icons,\n isOpen,\n shouldEnableKeyboardHighlightingEffective,\n shouldShowKeyboardHighlighting,\n shouldShowRoundedHoverEffect,\n ],\n );\n\n const sortItems: ContextMenuItem[] = useMemo(() => {\n if (!sortConfig) {\n return [];\n }\n\n const { selectedItem, onSortChange } = sortConfig;\n\n return sortConfig.items.map(({ id, text }) => ({\n text,\n key: id.toString(),\n isSelected: id === selectedItem.id,\n icons: id === selectedItem.id ? ['fas fa-circle-small'] : [],\n onClick: () => onSortChange({ text, id }),\n }));\n }, [sortConfig]);\n\n const comboboxElement = useMemo(() => {\n if (!comboboxConfig) {\n return null;\n }\n\n return (\n <ComboBox\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...comboboxConfig}\n shouldEnableKeyboardHighlighting={\n comboboxConfig.shouldEnableKeyboardHighlighting ??\n shouldEnableKeyboardHighlightingEffective\n }\n />\n );\n }, [comboboxConfig, shouldEnableKeyboardHighlightingEffective]);\n\n return useMemo(\n () => (\n <StyledFilter ref={filterRef}>\n <StyledFilterHead>\n {!isValidElement(headline) ? (\n <StyledFilterHeadline $isSearchActive={isSearchActive}>\n {headline}\n </StyledFilterHeadline>\n ) : (\n <StyledFilterHeadlineElement $isSearchActive={isSearchActive}>\n {headline}\n </StyledFilterHeadlineElement>\n )}\n {[FilterType.MULTIPLE, FilterType.ONLY_FILTER].includes(type) && (\n <StyledFilterIconWrapper>\n {rightIcons &&\n rightIcons.map(({ icons: rIcons, onClick }) => (\n <FilterIconButton\n key={rIcons.join('-')}\n icons={rIcons}\n onClick={onClick}\n isOpen={false}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n shouldShowKeyboardHighlighting={\n shouldShowKeyboardHighlighting\n }\n shouldShowRoundedHoverEffect={\n shouldShowRoundedHoverEffect\n }\n />\n ))}\n {iconElement}\n </StyledFilterIconWrapper>\n )}\n {type === FilterType.ONLY_SEARCH && searchConfig && (\n <StyledFilterSearch>\n <SearchInput\n onActiveChange={(isActive) => {\n setIsSearchActive(isActive);\n setIsOpen(isActive);\n }}\n ref={searchRef}\n isActive={isSearchActive}\n value={searchConfig.searchValue}\n onChange={(ev) => searchConfig.onSearchChange(ev.target.value)}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n />\n </StyledFilterSearch>\n )}\n {type === FilterType.ONLY_SORT && sortConfig && (\n <ContextMenu\n ref={contextMenuRef}\n items={sortItems}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n >\n {iconElement}\n </ContextMenu>\n )}\n {type === FilterType.ONLY_CHECKBOX && checkboxConfig && (\n <Checkbox\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...checkboxConfig}\n shouldEnableKeyboardHighlighting={\n checkboxConfig.shouldEnableKeyboardHighlighting ??\n shouldEnableKeyboardHighlightingEffective\n }\n />\n )}\n {type === FilterType.ONLY_COMBOBOX && comboboxElement}\n </StyledFilterHead>\n {[FilterType.MULTIPLE, FilterType.ONLY_FILTER].includes(type) && (\n <StyledFilterContentWrapper\n ref={contentRef}\n inert={!isOpen ? 'true' : undefined}\n aria-hidden={!isOpen}\n >\n <ExpandableContent isOpen={isOpen}>\n <FilterContent\n shouldAutoFocus={shouldFocus}\n searchConfig={searchConfig}\n filterButtonConfig={filterButtonConfig}\n sortConfig={sortConfig}\n checkboxConfig={checkboxConfig}\n comboboxConfig={comboboxConfig}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n />\n </ExpandableContent>\n </StyledFilterContentWrapper>\n )}\n </StyledFilter>\n ),\n [\n headline,\n isSearchActive,\n type,\n rightIcons,\n iconElement,\n searchConfig,\n sortConfig,\n sortItems,\n checkboxConfig,\n isOpen,\n shouldFocus,\n shouldEnableKeyboardHighlightingEffective,\n filterButtonConfig,\n comboboxConfig,\n comboboxElement,\n shouldShowKeyboardHighlighting,\n shouldShowRoundedHoverEffect,\n ],\n );\n },\n);\n\nFilter.displayName = 'Filter';\n\nexport default Filter;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Filter.js","names":["React","forwardRef","isValidElement","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","StyledFilter","StyledFilterContentWrapper","StyledFilterHead","StyledFilterHeadline","StyledFilterHeadlineElement","StyledFilterIcon","StyledFilterIconWrapper","StyledFilterSearch","ExpandableContent","Icon","FilterContent","ComboBox","FilterType","SearchInput","ContextMenu","Checkbox","useFocusRingPortal","useKeyboardFocusHighlighting","useColorScheme","FilterIconButton","icons","onClick","isOpen","shouldEnableKeyboardHighlighting","shouldShowKeyboardHighlighting","shouldShowRoundedHoverEffect","iconRef","isEnabled","handleKeyDown","event","key","preventDefault","createElement","ref","onKeyDown","$isOpen","role","undefined","tabIndex","$shouldShowKeyboardHighlighting","$shouldShowRoundedHoverEffect","size","Filter","headline","searchConfig","sortConfig","shouldAutoFocus","filterButtonConfig","checkboxConfig","comboboxConfig","onActiveChange","rightIcons","setIsOpen","isSearchActive","setIsSearchActive","shouldFocus","setShouldFocus","contentRef","filterRef","searchRef","colorScheme","shouldEnableKeyboardHighlightingEffective","contextMenuRef","type","ONLY_FILTER","ONLY_SORT","ONLY_SEARCH","ONLY_CHECKBOX","ONLY_COMBOBOX","MULTIPLE","handleHide","current","hide","focus","window","setTimeout","handleShow","show","handleIconClick","handleIconKeyDown","iconElement","sortItems","selectedItem","onSortChange","items","map","id","text","toString","isSelected","comboboxElement","_extends","$isSearchActive","includes","rIcons","join","isActive","value","searchValue","onChange","ev","onSearchChange","target","inert","displayName"],"sources":["../../../../src/components/filter/Filter.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, react/jsx-props-no-spreading */\nimport React, {\n forwardRef,\n isValidElement,\n KeyboardEventHandler,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n StyledFilter,\n StyledFilterContentWrapper,\n StyledFilterHead,\n StyledFilterHeadline,\n StyledFilterHeadlineElement,\n StyledFilterIcon,\n StyledFilterIconWrapper,\n StyledFilterSearch,\n} from './Filter.styles';\nimport ExpandableContent from '../expandable-content/ExpandableContent';\nimport Icon from '../icon/Icon';\nimport FilterContent from './filter-content/FilterContent';\nimport ComboBox from '../combobox/ComboBox';\nimport {\n CheckboxConfig,\n ComboboxConfig,\n FilterButtonConfig,\n FilterRef,\n FilterType,\n SearchConfig,\n SortConfig,\n} from '../../types/filter';\nimport SearchInput from '../search-input/SearchInput';\nimport ContextMenu from '../context-menu/ContextMenu';\nimport type { ContextMenuItem, ContextMenuRef } from '../context-menu/ContextMenu.types';\nimport Checkbox from '../checkbox/Checkbox';\nimport { InputRef } from '../input/Input';\nimport { useFocusRingPortal } from '../../hooks/useFocusRingPortal';\nimport { useKeyboardFocusHighlighting } from '../../hooks/useKeyboardFocusHighlighting';\nimport { useColorScheme } from '../color-scheme-provider/ColorSchemeProvider';\n\nexport interface FilterRightIcon {\n icons: string[];\n onClick: VoidFunction;\n}\n\ntype FilterIconButtonProps = FilterRightIcon & {\n isOpen: boolean;\n shouldEnableKeyboardHighlighting: boolean;\n shouldShowKeyboardHighlighting: boolean;\n shouldShowRoundedHoverEffect: boolean;\n};\n\nconst FilterIconButton: React.FC<FilterIconButtonProps> = ({\n icons,\n onClick,\n isOpen,\n shouldEnableKeyboardHighlighting,\n shouldShowKeyboardHighlighting,\n shouldShowRoundedHoverEffect,\n}) => {\n const iconRef = useRef<HTMLDivElement | null>(null);\n\n useFocusRingPortal(iconRef, { isEnabled: shouldShowKeyboardHighlighting });\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLDivElement>>(\n (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onClick();\n }\n },\n [onClick],\n );\n\n return (\n <StyledFilterIcon\n ref={iconRef}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n $isOpen={isOpen}\n role={shouldEnableKeyboardHighlighting ? 'button' : undefined}\n tabIndex={shouldEnableKeyboardHighlighting ? 0 : -1}\n $shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n $shouldShowRoundedHoverEffect={shouldShowRoundedHoverEffect}\n >\n <Icon icons={icons} size={18} />\n </StyledFilterIcon>\n );\n};\n\n//\nexport type FilterProps = {\n headline: ReactNode;\n searchConfig?: SearchConfig;\n filterButtonConfig?: FilterButtonConfig;\n sortConfig?: SortConfig;\n checkboxConfig?: CheckboxConfig;\n comboboxConfig?: ComboboxConfig;\n onActiveChange?: (isActive: boolean) => void;\n shouldShowRoundedHoverEffect?: boolean;\n rightIcons?: FilterRightIcon[];\n shouldAutoFocus?: boolean;\n shouldEnableKeyboardHighlighting?: boolean;\n};\n\nconst Filter = forwardRef<FilterRef, FilterProps>(\n (\n {\n headline,\n searchConfig,\n sortConfig,\n shouldAutoFocus = false,\n shouldShowRoundedHoverEffect = false,\n filterButtonConfig,\n checkboxConfig,\n comboboxConfig,\n onActiveChange,\n rightIcons,\n shouldEnableKeyboardHighlighting,\n },\n ref,\n ) => {\n const [isOpen, setIsOpen] = useState(false);\n const [isSearchActive, setIsSearchActive] = useState(false);\n const [shouldFocus, setShouldFocus] = useState(false);\n\n const contentRef = useRef<HTMLDivElement | null>(null);\n const iconRef = useRef<HTMLDivElement | null>(null);\n const filterRef = useRef<HTMLDivElement | null>(null);\n const searchRef = useRef<InputRef | null>(null);\n\n const colorScheme = useColorScheme();\n const shouldEnableKeyboardHighlightingEffective =\n shouldEnableKeyboardHighlighting ??\n colorScheme?.shouldEnableKeyboardHighlighting ??\n false;\n\n const contextMenuRef = useRef<ContextMenuRef>(null);\n const shouldShowKeyboardHighlighting = useKeyboardFocusHighlighting(\n shouldEnableKeyboardHighlightingEffective,\n );\n useFocusRingPortal(iconRef, { isEnabled: shouldShowKeyboardHighlighting });\n\n const type = useMemo(() => {\n if (\n filterButtonConfig &&\n !searchConfig &&\n !sortConfig &&\n !checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_FILTER;\n }\n\n if (\n !filterButtonConfig &&\n !searchConfig &&\n sortConfig &&\n !checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_SORT;\n }\n\n if (\n !filterButtonConfig &&\n searchConfig &&\n !sortConfig &&\n !checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_SEARCH;\n }\n\n if (\n !filterButtonConfig &&\n !searchConfig &&\n !sortConfig &&\n checkboxConfig &&\n !comboboxConfig\n ) {\n return FilterType.ONLY_CHECKBOX;\n }\n\n if (\n !filterButtonConfig &&\n !searchConfig &&\n !sortConfig &&\n !checkboxConfig &&\n comboboxConfig\n ) {\n return FilterType.ONLY_COMBOBOX;\n }\n\n return FilterType.MULTIPLE;\n }, [checkboxConfig, comboboxConfig, filterButtonConfig, searchConfig, sortConfig]);\n\n const icons = useMemo(() => {\n switch (type) {\n case FilterType.ONLY_FILTER:\n return ['fa fa-filter'];\n case FilterType.ONLY_SORT:\n return ['fa fa-arrow-up-arrow-down'];\n default:\n return ['fa fa-search'];\n }\n }, [type]);\n\n useEffect(() => {\n if (typeof onActiveChange === 'function') {\n onActiveChange(isOpen);\n }\n }, [isOpen, onActiveChange]);\n\n const handleHide = useCallback(() => {\n setIsOpen(false);\n\n if (type === FilterType.ONLY_SORT && contextMenuRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n contextMenuRef.current.hide();\n }\n\n if (type === FilterType.ONLY_SEARCH) {\n setIsSearchActive(false);\n }\n }, [type]);\n\n useEffect(() => {\n if (shouldFocus) {\n searchRef.current?.focus();\n\n window.setTimeout(() => {\n setShouldFocus(false);\n }, 200);\n }\n }, [shouldFocus]);\n\n const handleShow = useCallback(() => {\n setIsOpen(true);\n\n if (shouldAutoFocus) {\n setShouldFocus(true);\n }\n\n if (type === FilterType.ONLY_SORT && contextMenuRef.current) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n contextMenuRef.current.hide();\n }\n\n if (type === FilterType.ONLY_SEARCH) {\n setIsSearchActive(true);\n }\n }, [shouldAutoFocus, type]);\n\n useImperativeHandle(\n ref,\n () => ({\n hide: handleHide,\n show: handleShow,\n }),\n [handleHide, handleShow],\n );\n\n const handleIconClick = useCallback(() => {\n if (isOpen) {\n handleHide();\n } else {\n handleShow();\n }\n }, [handleHide, handleShow, isOpen]);\n\n const handleIconKeyDown = useCallback<KeyboardEventHandler<HTMLDivElement>>(\n (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleIconClick();\n }\n },\n [handleIconClick],\n );\n\n const iconElement = useMemo(\n () => (\n <StyledFilterIcon\n onClick={handleIconClick}\n onKeyDown={handleIconKeyDown}\n $isOpen={isOpen}\n ref={iconRef}\n role={shouldEnableKeyboardHighlightingEffective ? 'button' : undefined}\n tabIndex={shouldEnableKeyboardHighlightingEffective ? 0 : -1}\n $shouldShowKeyboardHighlighting={shouldShowKeyboardHighlighting}\n $shouldShowRoundedHoverEffect={shouldShowRoundedHoverEffect}\n >\n <Icon icons={icons} size={18} />\n </StyledFilterIcon>\n ),\n [\n handleIconClick,\n handleIconKeyDown,\n icons,\n isOpen,\n shouldEnableKeyboardHighlightingEffective,\n shouldShowKeyboardHighlighting,\n shouldShowRoundedHoverEffect,\n ],\n );\n\n const sortItems: ContextMenuItem[] = useMemo(() => {\n if (!sortConfig) {\n return [];\n }\n\n const { selectedItem, onSortChange } = sortConfig;\n\n return sortConfig.items.map(({ id, text }) => ({\n text,\n key: id.toString(),\n isSelected: id === selectedItem.id,\n icons: id === selectedItem.id ? ['fas fa-circle-small'] : [],\n onClick: () => onSortChange({ text, id }),\n }));\n }, [sortConfig]);\n\n const comboboxElement = useMemo(() => {\n if (!comboboxConfig) {\n return null;\n }\n\n return (\n <ComboBox\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...comboboxConfig}\n shouldEnableKeyboardHighlighting={\n comboboxConfig.shouldEnableKeyboardHighlighting ??\n shouldEnableKeyboardHighlightingEffective\n }\n />\n );\n }, [comboboxConfig, shouldEnableKeyboardHighlightingEffective]);\n\n return useMemo(\n () => (\n <StyledFilter ref={filterRef}>\n <StyledFilterHead>\n {!isValidElement(headline) ? (\n <StyledFilterHeadline $isSearchActive={isSearchActive}>\n {headline}\n </StyledFilterHeadline>\n ) : (\n <StyledFilterHeadlineElement $isSearchActive={isSearchActive}>\n {headline}\n </StyledFilterHeadlineElement>\n )}\n {[FilterType.MULTIPLE, FilterType.ONLY_FILTER].includes(type) && (\n <StyledFilterIconWrapper>\n {rightIcons &&\n rightIcons.map(({ icons: rIcons, onClick }) => (\n <FilterIconButton\n key={rIcons.join('-')}\n icons={rIcons}\n onClick={onClick}\n isOpen={false}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n shouldShowKeyboardHighlighting={\n shouldShowKeyboardHighlighting\n }\n shouldShowRoundedHoverEffect={\n shouldShowRoundedHoverEffect\n }\n />\n ))}\n {iconElement}\n </StyledFilterIconWrapper>\n )}\n {type === FilterType.ONLY_SEARCH && searchConfig && (\n <StyledFilterSearch>\n <SearchInput\n onActiveChange={(isActive) => {\n setIsSearchActive(isActive);\n setIsOpen(isActive);\n }}\n ref={searchRef}\n isActive={isSearchActive}\n value={searchConfig.searchValue}\n onChange={(ev) => searchConfig.onSearchChange(ev.target.value)}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n />\n </StyledFilterSearch>\n )}\n {type === FilterType.ONLY_SORT && sortConfig && (\n <ContextMenu\n ref={contextMenuRef}\n items={sortItems}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n >\n {iconElement}\n </ContextMenu>\n )}\n {type === FilterType.ONLY_CHECKBOX && checkboxConfig && (\n <Checkbox\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...checkboxConfig}\n shouldEnableKeyboardHighlighting={\n checkboxConfig.shouldEnableKeyboardHighlighting ??\n shouldEnableKeyboardHighlightingEffective\n }\n />\n )}\n {type === FilterType.ONLY_COMBOBOX && comboboxElement}\n </StyledFilterHead>\n {[FilterType.MULTIPLE, FilterType.ONLY_FILTER].includes(type) && (\n <StyledFilterContentWrapper\n ref={contentRef}\n inert={!isOpen || undefined}\n aria-hidden={!isOpen}\n >\n <ExpandableContent isOpen={isOpen}>\n <FilterContent\n shouldAutoFocus={shouldFocus}\n searchConfig={searchConfig}\n filterButtonConfig={filterButtonConfig}\n sortConfig={sortConfig}\n checkboxConfig={checkboxConfig}\n comboboxConfig={comboboxConfig}\n shouldEnableKeyboardHighlighting={\n shouldEnableKeyboardHighlightingEffective\n }\n />\n </ExpandableContent>\n </StyledFilterContentWrapper>\n )}\n </StyledFilter>\n ),\n [\n headline,\n isSearchActive,\n type,\n rightIcons,\n iconElement,\n searchConfig,\n sortConfig,\n sortItems,\n checkboxConfig,\n isOpen,\n shouldFocus,\n shouldEnableKeyboardHighlightingEffective,\n filterButtonConfig,\n comboboxConfig,\n comboboxElement,\n shouldShowKeyboardHighlighting,\n shouldShowRoundedHoverEffect,\n ],\n );\n },\n);\n\nFilter.displayName = 'Filter';\n\nexport default Filter;\n"],"mappings":"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","ignoreList":[]}
@@ -44,7 +44,7 @@ const SearchBoxBody = /*#__PURE__*/forwardRef(({
44
44
  return useMemo(() => /*#__PURE__*/React.createElement(StyledSearchBoxBody, {
45
45
  onClick: handlePreventDefault,
46
46
  ref: ref,
47
- inert: !shouldShow ? 'true' : undefined
47
+ inert: !shouldShow || undefined
48
48
  }, filterButtons && filterButtons?.length > 1 && /*#__PURE__*/React.createElement(StyledSearchBoxBodyHead, {
49
49
  ref: headRef,
50
50
  $hasScrolled: hasScrolled,
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBoxBody.js","names":["React","forwardRef","useCallback","useEffect","useMemo","useRef","useState","useElementSize","useUuid","getCurrentGroupName","FilterButtons","StyledSearchBoxBody","StyledSearchBoxBodyContent","StyledSearchBoxBodyHead","StyledSearchBoxBodyHeadGroupName","SearchBoxBody","filterButtons","selectedGroups","height","maxHeight","children","shouldShow","onGroupSelect","shouldHideFilterButtons","ref","hasScrolled","setHasScrolled","currentGroupName","setCurrentGroupName","headRef","headSize","uuid","headHeight","element","document","getElementById","length","handlePreventDefault","event","preventDefault","stopPropagation","handleScroll","scrollTop","target","createElement","onClick","inert","undefined","$hasScrolled","$hasGroupName","items","size","onSelect","selectedItemIds","replace","$height","$headHeight","$maxHeight","key","id","className","tabIndex","onScroll","displayName"],"sources":["../../../../../src/components/search-box/search-box-body/SearchBoxBody.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEvent,\n UIEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { useElementSize } from '../../../hooks/element';\nimport { useUuid } from '../../../hooks/uuid';\nimport type { IFilterButtonItem } from '../../../types/filterButtons';\nimport { getCurrentGroupName } from '../../../utils/searchBox';\nimport FilterButtons from '../../filter-buttons/FilterButtons';\nimport {\n StyledSearchBoxBody,\n StyledSearchBoxBodyContent,\n StyledSearchBoxBodyHead,\n StyledSearchBoxBodyHeadGroupName,\n} from './SearchBoxBody.styles';\n\nexport type SearchBoxBodyProps = {\n children: ReactNode;\n filterButtons?: IFilterButtonItem[];\n selectedGroups?: string[];\n height: number;\n maxHeight?: number;\n onGroupSelect?: (keys: string[]) => void;\n shouldHideFilterButtons?: boolean;\n shouldShow: boolean;\n};\n\nconst SearchBoxBody = forwardRef<HTMLDivElement, SearchBoxBodyProps>(\n (\n {\n filterButtons,\n selectedGroups,\n height,\n maxHeight = 300,\n children,\n shouldShow,\n onGroupSelect,\n shouldHideFilterButtons,\n },\n ref,\n ) => {\n const [hasScrolled, setHasScrolled] = useState(false);\n const [currentGroupName, setCurrentGroupName] = useState('');\n\n const headRef = useRef<HTMLDivElement>(null);\n\n const headSize = useElementSize(headRef);\n\n const uuid = useUuid();\n\n const headHeight = useMemo(\n () => (headSize?.height ? headSize.height + 15 : 0),\n [headSize?.height],\n );\n\n useEffect(() => {\n const element = document.getElementById(`searchBoxContent__${uuid}`);\n\n if (\n element &&\n ((selectedGroups?.length === 1 && selectedGroups[0] === 'all') ||\n selectedGroups?.length !== 1)\n ) {\n setCurrentGroupName(getCurrentGroupName(element));\n } else {\n setCurrentGroupName('');\n }\n }, [uuid, children, selectedGroups]);\n\n const handlePreventDefault = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n const handleScroll = useCallback(\n (event: UIEvent) => {\n const { scrollTop } = event.target as HTMLDivElement;\n\n setHasScrolled(scrollTop > 1);\n\n if (\n (selectedGroups?.length === 1 && selectedGroups[0] === 'all') ||\n selectedGroups?.length !== 1\n ) {\n setCurrentGroupName(getCurrentGroupName(event.target as HTMLDivElement));\n }\n },\n [selectedGroups],\n );\n\n return useMemo(\n () => (\n <StyledSearchBoxBody\n onClick={handlePreventDefault}\n ref={ref}\n inert={!shouldShow ? 'true' : undefined}\n >\n {filterButtons && filterButtons?.length > 1 && (\n <StyledSearchBoxBodyHead\n ref={headRef}\n $hasScrolled={hasScrolled}\n $hasGroupName={!!currentGroupName}\n >\n {!shouldHideFilterButtons && (\n <FilterButtons\n items={filterButtons}\n size={0}\n onSelect={onGroupSelect}\n selectedItemIds={selectedGroups}\n />\n )}\n <StyledSearchBoxBodyHeadGroupName>\n {currentGroupName.replace('_', '')}\n </StyledSearchBoxBodyHeadGroupName>\n </StyledSearchBoxBodyHead>\n )}\n <StyledSearchBoxBodyContent\n $height={height}\n $headHeight={headHeight}\n $maxHeight={maxHeight}\n key=\"content\"\n id={`searchBoxContent__${uuid}`}\n className=\"chayns-scrollbar\"\n tabIndex={0}\n onScroll={handleScroll}\n >\n {children}\n </StyledSearchBoxBodyContent>\n </StyledSearchBoxBody>\n ),\n [\n children,\n currentGroupName,\n filterButtons,\n handleScroll,\n hasScrolled,\n headHeight,\n height,\n onGroupSelect,\n maxHeight,\n ref,\n selectedGroups,\n shouldHideFilterButtons,\n shouldShow,\n uuid,\n ],\n );\n },\n);\n\nSearchBoxBody.displayName = 'SearchBoxBody';\n\nexport default SearchBoxBody;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SearchBoxBody.js","names":["React","forwardRef","useCallback","useEffect","useMemo","useRef","useState","useElementSize","useUuid","getCurrentGroupName","FilterButtons","StyledSearchBoxBody","StyledSearchBoxBodyContent","StyledSearchBoxBodyHead","StyledSearchBoxBodyHeadGroupName","SearchBoxBody","filterButtons","selectedGroups","height","maxHeight","children","shouldShow","onGroupSelect","shouldHideFilterButtons","ref","hasScrolled","setHasScrolled","currentGroupName","setCurrentGroupName","headRef","headSize","uuid","headHeight","element","document","getElementById","length","handlePreventDefault","event","preventDefault","stopPropagation","handleScroll","scrollTop","target","createElement","onClick","inert","undefined","$hasScrolled","$hasGroupName","items","size","onSelect","selectedItemIds","replace","$height","$headHeight","$maxHeight","key","id","className","tabIndex","onScroll","displayName"],"sources":["../../../../../src/components/search-box/search-box-body/SearchBoxBody.tsx"],"sourcesContent":["import React, {\n forwardRef,\n MouseEvent,\n UIEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactNode,\n} from 'react';\nimport { useElementSize } from '../../../hooks/element';\nimport { useUuid } from '../../../hooks/uuid';\nimport type { IFilterButtonItem } from '../../../types/filterButtons';\nimport { getCurrentGroupName } from '../../../utils/searchBox';\nimport FilterButtons from '../../filter-buttons/FilterButtons';\nimport {\n StyledSearchBoxBody,\n StyledSearchBoxBodyContent,\n StyledSearchBoxBodyHead,\n StyledSearchBoxBodyHeadGroupName,\n} from './SearchBoxBody.styles';\n\nexport type SearchBoxBodyProps = {\n children: ReactNode;\n filterButtons?: IFilterButtonItem[];\n selectedGroups?: string[];\n height: number;\n maxHeight?: number;\n onGroupSelect?: (keys: string[]) => void;\n shouldHideFilterButtons?: boolean;\n shouldShow: boolean;\n};\n\nconst SearchBoxBody = forwardRef<HTMLDivElement, SearchBoxBodyProps>(\n (\n {\n filterButtons,\n selectedGroups,\n height,\n maxHeight = 300,\n children,\n shouldShow,\n onGroupSelect,\n shouldHideFilterButtons,\n },\n ref,\n ) => {\n const [hasScrolled, setHasScrolled] = useState(false);\n const [currentGroupName, setCurrentGroupName] = useState('');\n\n const headRef = useRef<HTMLDivElement>(null);\n\n const headSize = useElementSize(headRef);\n\n const uuid = useUuid();\n\n const headHeight = useMemo(\n () => (headSize?.height ? headSize.height + 15 : 0),\n [headSize?.height],\n );\n\n useEffect(() => {\n const element = document.getElementById(`searchBoxContent__${uuid}`);\n\n if (\n element &&\n ((selectedGroups?.length === 1 && selectedGroups[0] === 'all') ||\n selectedGroups?.length !== 1)\n ) {\n setCurrentGroupName(getCurrentGroupName(element));\n } else {\n setCurrentGroupName('');\n }\n }, [uuid, children, selectedGroups]);\n\n const handlePreventDefault = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n const handleScroll = useCallback(\n (event: UIEvent) => {\n const { scrollTop } = event.target as HTMLDivElement;\n\n setHasScrolled(scrollTop > 1);\n\n if (\n (selectedGroups?.length === 1 && selectedGroups[0] === 'all') ||\n selectedGroups?.length !== 1\n ) {\n setCurrentGroupName(getCurrentGroupName(event.target as HTMLDivElement));\n }\n },\n [selectedGroups],\n );\n\n return useMemo(\n () => (\n <StyledSearchBoxBody\n onClick={handlePreventDefault}\n ref={ref}\n inert={!shouldShow || undefined}\n >\n {filterButtons && filterButtons?.length > 1 && (\n <StyledSearchBoxBodyHead\n ref={headRef}\n $hasScrolled={hasScrolled}\n $hasGroupName={!!currentGroupName}\n >\n {!shouldHideFilterButtons && (\n <FilterButtons\n items={filterButtons}\n size={0}\n onSelect={onGroupSelect}\n selectedItemIds={selectedGroups}\n />\n )}\n <StyledSearchBoxBodyHeadGroupName>\n {currentGroupName.replace('_', '')}\n </StyledSearchBoxBodyHeadGroupName>\n </StyledSearchBoxBodyHead>\n )}\n <StyledSearchBoxBodyContent\n $height={height}\n $headHeight={headHeight}\n $maxHeight={maxHeight}\n key=\"content\"\n id={`searchBoxContent__${uuid}`}\n className=\"chayns-scrollbar\"\n tabIndex={0}\n onScroll={handleScroll}\n >\n {children}\n </StyledSearchBoxBodyContent>\n </StyledSearchBoxBody>\n ),\n [\n children,\n currentGroupName,\n filterButtons,\n handleScroll,\n hasScrolled,\n headHeight,\n height,\n onGroupSelect,\n maxHeight,\n ref,\n selectedGroups,\n shouldHideFilterButtons,\n shouldShow,\n uuid,\n ],\n );\n },\n);\n\nSearchBoxBody.displayName = 'SearchBoxBody';\n\nexport default SearchBoxBody;\n"],"mappings":"AAAA,OAAOA,KAAK,IACRC,UAAU,EAGVC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QAEL,OAAO;AACd,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,OAAO,QAAQ,qBAAqB;AAE7C,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,OAAOC,aAAa,MAAM,oCAAoC;AAC9D,SACIC,mBAAmB,EACnBC,0BAA0B,EAC1BC,uBAAuB,EACvBC,gCAAgC,QAC7B,wBAAwB;AAa/B,MAAMC,aAAa,gBAAGd,UAAU,CAC5B,CACI;EACIe,aAAa;EACbC,cAAc;EACdC,MAAM;EACNC,SAAS,GAAG,GAAG;EACfC,QAAQ;EACRC,UAAU;EACVC,aAAa;EACbC;AACJ,CAAC,EACDC,GAAG,KACF;EACD,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;EACrD,MAAM,CAACqB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGtB,QAAQ,CAAC,EAAE,CAAC;EAE5D,MAAMuB,OAAO,GAAGxB,MAAM,CAAiB,IAAI,CAAC;EAE5C,MAAMyB,QAAQ,GAAGvB,cAAc,CAACsB,OAAO,CAAC;EAExC,MAAME,IAAI,GAAGvB,OAAO,CAAC,CAAC;EAEtB,MAAMwB,UAAU,GAAG5B,OAAO,CACtB,MAAO0B,QAAQ,EAAEZ,MAAM,GAAGY,QAAQ,CAACZ,MAAM,GAAG,EAAE,GAAG,CAAE,EACnD,CAACY,QAAQ,EAAEZ,MAAM,CACrB,CAAC;EAEDf,SAAS,CAAC,MAAM;IACZ,MAAM8B,OAAO,GAAGC,QAAQ,CAACC,cAAc,CAAC,qBAAqBJ,IAAI,EAAE,CAAC;IAEpE,IACIE,OAAO,KACLhB,cAAc,EAAEmB,MAAM,KAAK,CAAC,IAAInB,cAAc,CAAC,CAAC,CAAC,KAAK,KAAK,IACzDA,cAAc,EAAEmB,MAAM,KAAK,CAAC,CAAC,EACnC;MACER,mBAAmB,CAACnB,mBAAmB,CAACwB,OAAO,CAAC,CAAC;IACrD,CAAC,MAAM;MACHL,mBAAmB,CAAC,EAAE,CAAC;IAC3B;EACJ,CAAC,EAAE,CAACG,IAAI,EAAEX,QAAQ,EAAEH,cAAc,CAAC,CAAC;EAEpC,MAAMoB,oBAAoB,GAAIC,KAAiB,IAAK;IAChDA,KAAK,CAACC,cAAc,CAAC,CAAC;IACtBD,KAAK,CAACE,eAAe,CAAC,CAAC;EAC3B,CAAC;EAED,MAAMC,YAAY,GAAGvC,WAAW,CAC3BoC,KAAc,IAAK;IAChB,MAAM;MAAEI;IAAU,CAAC,GAAGJ,KAAK,CAACK,MAAwB;IAEpDjB,cAAc,CAACgB,SAAS,GAAG,CAAC,CAAC;IAE7B,IACKzB,cAAc,EAAEmB,MAAM,KAAK,CAAC,IAAInB,cAAc,CAAC,CAAC,CAAC,KAAK,KAAK,IAC5DA,cAAc,EAAEmB,MAAM,KAAK,CAAC,EAC9B;MACER,mBAAmB,CAACnB,mBAAmB,CAAC6B,KAAK,CAACK,MAAwB,CAAC,CAAC;IAC5E;EACJ,CAAC,EACD,CAAC1B,cAAc,CACnB,CAAC;EAED,OAAOb,OAAO,CACV,mBACIJ,KAAA,CAAA4C,aAAA,CAACjC,mBAAmB;IAChBkC,OAAO,EAAER,oBAAqB;IAC9Bb,GAAG,EAAEA,GAAI;IACTsB,KAAK,EAAE,CAACzB,UAAU,IAAI0B;EAAU,GAE/B/B,aAAa,IAAIA,aAAa,EAAEoB,MAAM,GAAG,CAAC,iBACvCpC,KAAA,CAAA4C,aAAA,CAAC/B,uBAAuB;IACpBW,GAAG,EAAEK,OAAQ;IACbmB,YAAY,EAAEvB,WAAY;IAC1BwB,aAAa,EAAE,CAAC,CAACtB;EAAiB,GAEjC,CAACJ,uBAAuB,iBACrBvB,KAAA,CAAA4C,aAAA,CAAClC,aAAa;IACVwC,KAAK,EAAElC,aAAc;IACrBmC,IAAI,EAAE,CAAE;IACRC,QAAQ,EAAE9B,aAAc;IACxB+B,eAAe,EAAEpC;EAAe,CACnC,CACJ,eACDjB,KAAA,CAAA4C,aAAA,CAAC9B,gCAAgC,QAC5Ba,gBAAgB,CAAC2B,OAAO,CAAC,GAAG,EAAE,EAAE,CACH,CACb,CAC5B,eACDtD,KAAA,CAAA4C,aAAA,CAAChC,0BAA0B;IACvB2C,OAAO,EAAErC,MAAO;IAChBsC,WAAW,EAAExB,UAAW;IACxByB,UAAU,EAAEtC,SAAU;IACtBuC,GAAG,EAAC,SAAS;IACbC,EAAE,EAAE,qBAAqB5B,IAAI,EAAG;IAChC6B,SAAS,EAAC,kBAAkB;IAC5BC,QAAQ,EAAE,CAAE;IACZC,QAAQ,EAAErB;EAAa,GAEtBrB,QACuB,CACX,CACxB,EACD,CACIA,QAAQ,EACRO,gBAAgB,EAChBX,aAAa,EACbyB,YAAY,EACZhB,WAAW,EACXO,UAAU,EACVd,MAAM,EACNI,aAAa,EACbH,SAAS,EACTK,GAAG,EACHP,cAAc,EACdM,uBAAuB,EACvBF,UAAU,EACVU,IAAI,CAEZ,CAAC;AACL,CACJ,CAAC;AAEDhB,aAAa,CAACgD,WAAW,GAAG,eAAe;AAE3C,eAAehD,aAAa","ignoreList":[]}
@@ -131,7 +131,7 @@ export const useMeasuredClone = ({
131
131
  width: 'auto',
132
132
  visibility: 'hidden'
133
133
  },
134
- inert: "true",
134
+ inert: true,
135
135
  tabIndex: -1
136
136
  }, clonedElement);
137
137
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","names":["React","Children","cloneElement","isValidElement","useEffect","useRef","useState","isSameRect","a","b","width","height","x","y","useElementSize","ref","shouldUseChildElement","shouldUseParentElement","size","setSize","target","current","parentElement","firstElementChild","undefined","frameId","updateSize","nextSize","window","cancelAnimationFrame","requestAnimationFrame","currentSize","getBoundingClientRect","observer","ResizeObserver","entry","contentRect","observe","disconnect","cloneWithTabIndex","node","element","type","Fragment","children","map","props","displayName","createElement","tabIndex","getClonedElement","content","preventEvents","onClick","e","stopPropagation","onMouseDown","onMouseUp","onKeyDown","onKeyUp","onFocus","onBlur","useMeasuredClone","shouldPreventTextWrapping","clonedElement","measure","offsetWidth","offsetHeight","measuredElement","style","position","opacity","pointerEvents","userSelect","zIndex","visibility","inert","useIsMeasuredClone","isClone","setIsClone","el","hasAttribute","useIsInsideDialog","isInsideDialog","setIsInsideDialog","closest"],"sources":["../../../src/hooks/element.tsx"],"sourcesContent":["import React, {\n Children,\n cloneElement,\n HTMLAttributes,\n isValidElement,\n MutableRefObject,\n ReactElement,\n ReactNode,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\ninterface UseElementSizeOptions {\n shouldUseChildElement?: boolean;\n shouldUseParentElement?: boolean;\n}\n\nconst isSameRect = (a?: DOMRectReadOnly, b?: DOMRectReadOnly) => {\n if (!a || !b) return false;\n\n return a.width === b.width && a.height === b.height && a.x === b.x && a.y === b.y;\n};\n\nexport const useElementSize = (\n ref: MutableRefObject<HTMLDivElement | HTMLLabelElement | null>,\n { shouldUseChildElement = false, shouldUseParentElement = false }: UseElementSizeOptions = {},\n): DOMRectReadOnly | undefined => {\n const [size, setSize] = useState<DOMRectReadOnly>();\n\n useEffect(() => {\n let target: HTMLElement | null = ref.current;\n\n if (shouldUseParentElement) {\n target = ref.current?.parentElement ?? null;\n }\n\n if (shouldUseChildElement) {\n target = ref.current?.firstElementChild as HTMLElement | null;\n }\n\n if (!target) return undefined;\n\n let frameId: number | undefined;\n\n const updateSize = (nextSize: DOMRectReadOnly) => {\n if (frameId) {\n window.cancelAnimationFrame(frameId);\n }\n\n frameId = window.requestAnimationFrame(() => {\n setSize((currentSize) =>\n isSameRect(currentSize, nextSize) ? currentSize : nextSize,\n );\n });\n };\n\n updateSize(target.getBoundingClientRect());\n\n const observer = new ResizeObserver(([entry]) => {\n if (!entry || entry.target !== target) return;\n\n updateSize(entry.contentRect);\n });\n\n observer.observe(target);\n\n return () => {\n if (frameId) {\n window.cancelAnimationFrame(frameId);\n }\n\n observer.disconnect();\n };\n }, [ref, shouldUseChildElement, shouldUseParentElement]);\n\n return size;\n};\n\nconst cloneWithTabIndex = (node: ReactNode): ReactNode => {\n if (!isValidElement(node)) return node;\n\n const element = node as ReactElement;\n\n if (element.type === React.Fragment) {\n const children = Children.map(element.props.children, cloneWithTabIndex);\n\n return cloneElement(element, {\n ...element.props,\n children,\n });\n }\n\n const children = element.props.children\n ? Children.map(element.props.children, cloneWithTabIndex)\n : element.props.children;\n\n if ((element.type as any).displayName === 'Button') {\n return (\n // eslint-disable-next-line react/button-has-type\n <button tabIndex={-1}>{children}</button>\n );\n }\n\n return cloneElement(element, {\n ...element.props,\n tabIndex: -1,\n children,\n });\n};\n\nconst getClonedElement = (content: ReactNode) => {\n const preventEvents: Partial<HTMLAttributes<never>> = {\n onClick: (e) => e.stopPropagation(),\n onMouseDown: (e) => e.stopPropagation(),\n onMouseUp: (e) => e.stopPropagation(),\n onKeyDown: (e) => e.stopPropagation(),\n onKeyUp: (e) => e.stopPropagation(),\n onFocus: (e) => e.stopPropagation(),\n onBlur: (e) => e.stopPropagation(),\n };\n\n if (typeof content === 'string') {\n return (\n <span tabIndex={-1} data-measured-clone>\n {content}\n </span>\n );\n }\n\n if (isValidElement(content)) {\n return cloneWithTabIndex(\n cloneElement(content, {\n ...preventEvents,\n 'data-measured-clone': true,\n }),\n );\n }\n\n return content;\n};\n\ninterface UseMeasuredCloneOptions {\n content: ReactNode;\n shouldPreventTextWrapping?: boolean;\n}\n\nexport const useMeasuredClone = ({\n content,\n shouldPreventTextWrapping = true,\n}: UseMeasuredCloneOptions) => {\n const ref = useRef<HTMLDivElement>(null);\n\n const [size, setSize] = useState({ width: 0, height: 0 });\n\n const clonedElement = getClonedElement(content);\n\n useEffect(() => {\n const measure = () => {\n if (!ref.current) return;\n\n const { offsetWidth: width, offsetHeight: height } = ref.current;\n\n setSize({ width: width + (shouldPreventTextWrapping ? 10 : 0), height });\n };\n\n measure();\n\n const observer = new ResizeObserver(measure);\n\n if (ref.current) observer.observe(ref.current);\n\n return () => observer.disconnect();\n }, [shouldPreventTextWrapping]);\n\n const measuredElement = (\n <div\n data-measured-clone=\"true\"\n ref={ref}\n style={{\n position: 'fixed',\n opacity: 0,\n pointerEvents: 'none',\n userSelect: 'none',\n zIndex: -1,\n height: 'auto',\n width: 'auto',\n visibility: 'hidden',\n }}\n inert=\"true\"\n tabIndex={-1}\n >\n {clonedElement}\n </div>\n );\n\n return {\n measuredElement,\n width: size.width,\n height: size.height,\n };\n};\n\nexport const useIsMeasuredClone = <T extends HTMLElement>() => {\n const ref = useRef<T | null>(null);\n\n const [isClone, setIsClone] = useState(false);\n\n useEffect(() => {\n if (!ref.current) return;\n\n let el: HTMLElement | null = ref.current;\n\n while (el) {\n if (el.hasAttribute('data-measured-clone')) {\n setIsClone(true);\n\n return;\n }\n\n el = el.parentElement;\n }\n\n setIsClone(false);\n }, []);\n\n return [isClone, ref] as const;\n};\n\nexport const useIsInsideDialog = <T extends HTMLElement>(ref: MutableRefObject<T | null>) => {\n const [isInsideDialog, setIsInsideDialog] = useState(false);\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n setIsInsideDialog(ref.current.closest('.dialog-inner') !== null);\n }, [ref]);\n\n return isInsideDialog;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"element.js","names":["React","Children","cloneElement","isValidElement","useEffect","useRef","useState","isSameRect","a","b","width","height","x","y","useElementSize","ref","shouldUseChildElement","shouldUseParentElement","size","setSize","target","current","parentElement","firstElementChild","undefined","frameId","updateSize","nextSize","window","cancelAnimationFrame","requestAnimationFrame","currentSize","getBoundingClientRect","observer","ResizeObserver","entry","contentRect","observe","disconnect","cloneWithTabIndex","node","element","type","Fragment","children","map","props","displayName","createElement","tabIndex","getClonedElement","content","preventEvents","onClick","e","stopPropagation","onMouseDown","onMouseUp","onKeyDown","onKeyUp","onFocus","onBlur","useMeasuredClone","shouldPreventTextWrapping","clonedElement","measure","offsetWidth","offsetHeight","measuredElement","style","position","opacity","pointerEvents","userSelect","zIndex","visibility","inert","useIsMeasuredClone","isClone","setIsClone","el","hasAttribute","useIsInsideDialog","isInsideDialog","setIsInsideDialog","closest"],"sources":["../../../src/hooks/element.tsx"],"sourcesContent":["import React, {\n Children,\n cloneElement,\n HTMLAttributes,\n isValidElement,\n MutableRefObject,\n ReactElement,\n ReactNode,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\ninterface UseElementSizeOptions {\n shouldUseChildElement?: boolean;\n shouldUseParentElement?: boolean;\n}\n\nconst isSameRect = (a?: DOMRectReadOnly, b?: DOMRectReadOnly) => {\n if (!a || !b) return false;\n\n return a.width === b.width && a.height === b.height && a.x === b.x && a.y === b.y;\n};\n\nexport const useElementSize = (\n ref: MutableRefObject<HTMLDivElement | HTMLLabelElement | null>,\n { shouldUseChildElement = false, shouldUseParentElement = false }: UseElementSizeOptions = {},\n): DOMRectReadOnly | undefined => {\n const [size, setSize] = useState<DOMRectReadOnly>();\n\n useEffect(() => {\n let target: HTMLElement | null = ref.current;\n\n if (shouldUseParentElement) {\n target = ref.current?.parentElement ?? null;\n }\n\n if (shouldUseChildElement) {\n target = ref.current?.firstElementChild as HTMLElement | null;\n }\n\n if (!target) return undefined;\n\n let frameId: number | undefined;\n\n const updateSize = (nextSize: DOMRectReadOnly) => {\n if (frameId) {\n window.cancelAnimationFrame(frameId);\n }\n\n frameId = window.requestAnimationFrame(() => {\n setSize((currentSize) =>\n isSameRect(currentSize, nextSize) ? currentSize : nextSize,\n );\n });\n };\n\n updateSize(target.getBoundingClientRect());\n\n const observer = new ResizeObserver(([entry]) => {\n if (!entry || entry.target !== target) return;\n\n updateSize(entry.contentRect);\n });\n\n observer.observe(target);\n\n return () => {\n if (frameId) {\n window.cancelAnimationFrame(frameId);\n }\n\n observer.disconnect();\n };\n }, [ref, shouldUseChildElement, shouldUseParentElement]);\n\n return size;\n};\n\nconst cloneWithTabIndex = (node: ReactNode): ReactNode => {\n if (!isValidElement(node)) return node;\n\n const element = node as ReactElement;\n\n if (element.type === React.Fragment) {\n const children = Children.map(element.props.children, cloneWithTabIndex);\n\n return cloneElement(element, {\n ...element.props,\n children,\n });\n }\n\n const children = element.props.children\n ? Children.map(element.props.children, cloneWithTabIndex)\n : element.props.children;\n\n if ((element.type as any).displayName === 'Button') {\n return (\n // eslint-disable-next-line react/button-has-type\n <button tabIndex={-1}>{children}</button>\n );\n }\n\n return cloneElement(element, {\n ...element.props,\n tabIndex: -1,\n children,\n });\n};\n\nconst getClonedElement = (content: ReactNode) => {\n const preventEvents: Partial<HTMLAttributes<never>> = {\n onClick: (e) => e.stopPropagation(),\n onMouseDown: (e) => e.stopPropagation(),\n onMouseUp: (e) => e.stopPropagation(),\n onKeyDown: (e) => e.stopPropagation(),\n onKeyUp: (e) => e.stopPropagation(),\n onFocus: (e) => e.stopPropagation(),\n onBlur: (e) => e.stopPropagation(),\n };\n\n if (typeof content === 'string') {\n return (\n <span tabIndex={-1} data-measured-clone>\n {content}\n </span>\n );\n }\n\n if (isValidElement(content)) {\n return cloneWithTabIndex(\n cloneElement(content, {\n ...preventEvents,\n 'data-measured-clone': true,\n }),\n );\n }\n\n return content;\n};\n\ninterface UseMeasuredCloneOptions {\n content: ReactNode;\n shouldPreventTextWrapping?: boolean;\n}\n\nexport const useMeasuredClone = ({\n content,\n shouldPreventTextWrapping = true,\n}: UseMeasuredCloneOptions) => {\n const ref = useRef<HTMLDivElement>(null);\n\n const [size, setSize] = useState({ width: 0, height: 0 });\n\n const clonedElement = getClonedElement(content);\n\n useEffect(() => {\n const measure = () => {\n if (!ref.current) return;\n\n const { offsetWidth: width, offsetHeight: height } = ref.current;\n\n setSize({ width: width + (shouldPreventTextWrapping ? 10 : 0), height });\n };\n\n measure();\n\n const observer = new ResizeObserver(measure);\n\n if (ref.current) observer.observe(ref.current);\n\n return () => observer.disconnect();\n }, [shouldPreventTextWrapping]);\n\n const measuredElement = (\n <div\n data-measured-clone=\"true\"\n ref={ref}\n style={{\n position: 'fixed',\n opacity: 0,\n pointerEvents: 'none',\n userSelect: 'none',\n zIndex: -1,\n height: 'auto',\n width: 'auto',\n visibility: 'hidden',\n }}\n inert={true}\n tabIndex={-1}\n >\n {clonedElement}\n </div>\n );\n\n return {\n measuredElement,\n width: size.width,\n height: size.height,\n };\n};\n\nexport const useIsMeasuredClone = <T extends HTMLElement>() => {\n const ref = useRef<T | null>(null);\n\n const [isClone, setIsClone] = useState(false);\n\n useEffect(() => {\n if (!ref.current) return;\n\n let el: HTMLElement | null = ref.current;\n\n while (el) {\n if (el.hasAttribute('data-measured-clone')) {\n setIsClone(true);\n\n return;\n }\n\n el = el.parentElement;\n }\n\n setIsClone(false);\n }, []);\n\n return [isClone, ref] as const;\n};\n\nexport const useIsInsideDialog = <T extends HTMLElement>(ref: MutableRefObject<T | null>) => {\n const [isInsideDialog, setIsInsideDialog] = useState(false);\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n setIsInsideDialog(ref.current.closest('.dialog-inner') !== null);\n }, [ref]);\n\n return isInsideDialog;\n};\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/core",
3
- "version": "5.5.52",
3
+ "version": "5.5.53",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "sideEffects": false,
6
6
  "browserslist": [
@@ -93,5 +93,5 @@
93
93
  "publishConfig": {
94
94
  "access": "public"
95
95
  },
96
- "gitHead": "39253e6054b50233279b8105e09e6319171bc4ad"
96
+ "gitHead": "c4c4ef585202346a5c6aa850c442843d851c4dd6"
97
97
  }