@bikdotai/bik-component-library 0.0.875-beta.1 → 0.0.875-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js +11 -11
  2. package/dist/cjs/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
  3. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js +2 -2
  4. package/dist/cjs/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  5. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js +4 -4
  6. package/dist/cjs/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  7. package/dist/cjs/components/agent-builder/utils/sourceIcons.js +1 -1
  8. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
  9. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  10. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +27 -10
  11. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
  12. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js +1 -1
  13. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
  14. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +1 -1
  15. package/dist/cjs/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
  16. package/dist/cjs/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js +1 -1
  17. package/dist/cjs/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js.map +1 -1
  18. package/dist/cjs/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js +1 -1
  19. package/dist/cjs/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js.map +1 -1
  20. package/dist/cjs/components/dropdown/hooks/useDropdown.js +1 -1
  21. package/dist/cjs/components/dropdown/hooks/useDropdown.js.map +1 -1
  22. package/dist/cjs/index.js +1 -1
  23. package/dist/esm/components/agent-builder/components/ConfigToolPanel.d.ts +0 -6
  24. package/dist/esm/components/agent-builder/components/ConfigToolPanel.js +141 -143
  25. package/dist/esm/components/agent-builder/components/ConfigToolPanel.js.map +1 -1
  26. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.d.ts +0 -6
  27. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js +81 -83
  28. package/dist/esm/components/agent-builder/components/CreateSubAgentPanel.js.map +1 -1
  29. package/dist/esm/components/agent-builder/components/MentionPicker.js +5 -5
  30. package/dist/esm/components/agent-builder/components/RestApiToolPanel.d.ts +0 -6
  31. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js +48 -50
  32. package/dist/esm/components/agent-builder/components/RestApiToolPanel.js.map +1 -1
  33. package/dist/esm/components/agent-builder/index.d.ts +2 -18
  34. package/dist/esm/components/agent-builder/utils/sourceIcons.js +43 -43
  35. package/dist/esm/components/agent-builder/utils/toolActions.js +3 -3
  36. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +300 -278
  37. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  38. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.d.ts +8 -0
  39. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js +170 -126
  40. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuItem.js.map +1 -1
  41. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.d.ts +4 -0
  42. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js +144 -112
  43. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/MenuList.js.map +1 -1
  44. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.d.ts +1 -0
  45. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js +32 -31
  46. package/dist/esm/components/dropdown/OpenedDropdown/components/menu/SelectAllMenu.js.map +1 -1
  47. package/dist/esm/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.d.ts +2 -0
  48. package/dist/esm/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js +54 -39
  49. package/dist/esm/components/dropdown/OpenedDropdown/components/multiSelect/MultiSelectDropdownBottomBar.js.map +1 -1
  50. package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.d.ts +18 -16
  51. package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js +73 -27
  52. package/dist/esm/components/dropdown/OpenedDropdown/utils/iterationOnOptions.js.map +1 -1
  53. package/dist/esm/components/dropdown/hooks/useDropdown.d.ts +4 -17
  54. package/dist/esm/components/dropdown/hooks/useDropdown.js +176 -163
  55. package/dist/esm/components/dropdown/hooks/useDropdown.js.map +1 -1
  56. package/dist/esm/components/dropdown/type.d.ts +22 -0
  57. package/dist/esm/index.js +772 -816
  58. package/dist/esm/index.js.map +1 -1
  59. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"OpennedDropdown.js","sources":["../../../../../../src/components/dropdown/OpenedDropdown/components/OpennedDropdown.tsx"],"sourcesContent":["import ErrorInfoIcon from '@src/assets/icons/errorInfo.svg';\nimport RetryIcon from '@src/assets/icons/refresh-purple.svg';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\nimport { useOutside } from '@src/hooks/useOutside';\nimport { COLORS } from '@src/constants/Theme';\nimport { useDropdown } from '../../hooks/useDropdown';\nimport {\n\tDropdownOption,\n\tGroupedOption,\n\tMultiSelectOption,\n\tOpenDropdownProps,\n\tSingleOption,\n} from '../../type';\nimport { Description } from './description/Description';\nimport { FreeFormMenu } from './menu/FreeFormMenu';\nimport { MenuList } from './menu/MenuList';\nimport { SelectAllMenu } from './menu/SelectAllMenu';\nimport MultiSelectDropdownBottomBar from './multiSelect/MultiSelectDropdownBottomBar';\nimport {\n\tMenuListContainer,\n\tOpennedDropdownContainer,\n} from './OpennedDropdown.styled';\nimport { SearchBox } from './searchbox/SearchBox';\nimport { SearchZeroState } from './searchbox/SearchZeroState';\n\n/** CONSTANTS */\nconst defaults = {\n\theight: 304,\n\twidth: 290,\n};\n\nexport const OpenedDropdown: React.FC<OpenDropdownProps> = ({\n\toptions,\n\tisSearchable,\n\tsearchPlaceholder,\n\tstaticMenuHeight,\n\tisMultiSelect,\n\tmaxSelections,\n\twidth,\n\tallowFreeForm,\n\theight,\n\tonClose,\n\tonSelect,\n\tonSearch,\n\tversion,\n\tskipSorting,\n\theaderRef,\n\thideSelectAll,\n\tprimaryButtonText,\n\tonInfiniteScroll,\n\tonMultiSelectClear: onMultiSelectClearProp,\n\tonDropdownItemClick,\n\tbuttonOptions,\n\tisSearchLoading,\n\tisOptionsLoading,\n\toptionsErrorState,\n\tdisableSearchOptions,\n\tdisableSearchedOptionExcept,\n\tuseDefaultCursor,\n\tcontainerStyle = {},\n\tzeroState = undefined,\n\tisDraggable = false,\n\tonOptionsReorder,\n\thideClearButton = false,\n\tshowCheckboxForCustomElement = false,\n\tcheckboxActiveColor,\n\tbrandSelectedRow,\n}) => {\n\t// Sort options with selected at top, unselected at bottom, maintaining order within groups\n\tconst sortOptionsWithSelectedOnTop = useCallback(\n\t\t(opts: DropdownOption[]): DropdownOption[] => {\n\t\t\tif (!isDraggable || !isMultiSelect) return opts;\n\n\t\t\tconst selected: DropdownOption[] = [];\n\t\t\tconst unselected: DropdownOption[] = [];\n\n\t\t\topts.forEach((option) => {\n\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t// Handle grouped options - maintain grouping\n\t\t\t\t\tunselected.push(option);\n\t\t\t\t} else {\n\t\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\t\tif (singleOption.selected) {\n\t\t\t\t\t\tselected.push(option);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tunselected.push(option);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn [...selected, ...unselected];\n\t\t},\n\t\t[isDraggable, isMultiSelect],\n\t);\n\n\tconst [localOptions, setLocalOptions] = useState<DropdownOption[]>(() =>\n\t\tsortOptionsWithSelectedOnTop(options),\n\t);\n\tconst localOptionsRef = useRef<DropdownOption[]>(localOptions);\n\tconst hasReorderedRef = useRef(false);\n\tconst onOptionsReorderRef = useRef(onOptionsReorder);\n\n\tuseEffect(() => {\n\t\tsetLocalOptions(sortOptionsWithSelectedOnTop(options));\n\t}, [options, sortOptionsWithSelectedOnTop]);\n\n\tuseEffect(() => {\n\t\tlocalOptionsRef.current = localOptions;\n\t}, [localOptions]);\n\n\tuseEffect(() => {\n\t\tonOptionsReorderRef.current = onOptionsReorder;\n\t}, [onOptionsReorder]);\n\n\t// Fire onOptionsReorder on unmount (dropdown close from Apply or click-outside)\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (hasReorderedRef.current && onOptionsReorderRef.current) {\n\t\t\t\tonOptionsReorderRef.current(localOptionsRef.current);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tconst handleOptionsReorder = useCallback(\n\t\t(reorderedOptions: DropdownOption[]) => {\n\t\t\tsetLocalOptions(reorderedOptions);\n\t\t\t// For version 2.0 (no Apply button), apply reorder immediately\n\t\t\tif (version === '2.0') {\n\t\t\t\tonOptionsReorder?.(reorderedOptions);\n\t\t\t} else {\n\t\t\t\t// For version 1.0, defer until Apply/close (handled by unmount cleanup)\n\t\t\t\thasReorderedRef.current = true;\n\t\t\t}\n\t\t},\n\t\t[onOptionsReorder, version],\n\t);\n\n\tconst optionsToUse = isDraggable ? localOptions : options;\n\tconst {\n\t\tdropdownOptions,\n\t\tsearch,\n\t\tsearchedString,\n\t\tsearchedOptions,\n\t\tsearchError,\n\t\tretrySearch,\n\t\tonApplyHandler,\n\t\tselectAllHandler,\n\t\tonMultiSelectClear,\n\t\tonFreeFormSelect,\n\t\tonMultiSelectApply,\n\t\tlatestDropdownOptionsRef,\n\t\tgetSelectedOptions,\n\t\tgetCurrentSelectionCount,\n\t} = useDropdown(\n\t\tversion,\n\t\toptionsToUse,\n\t\tonSelect,\n\t\tskipSorting || isDraggable,\n\t\tisMultiSelect,\n\t\tonSearch,\n\t\tdisableSearchOptions,\n\t\tdisableSearchedOptionExcept,\n\t\tmaxSelections,\n\t);\n\tconst [widthState, setWidthState] = useState(width ?? defaults.width);\n\tconst [descriptionInfo, setDescription] = useState<{\n\t\ttitle: string;\n\t\tdescription: string;\n\t} | null>(null);\n\tconst [focusedIndex, setFocusedIndex] = useState<number>(-1);\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst childRefs = useRef([]);\n\tconst menuListRef = useRef<HTMLDivElement>(null);\n\tuseOutside(\n\t\tref,\n\t\t() => {\n\t\t\tsetDescription(null);\n\t\t\tif (isMultiSelect && version === '2.0') {\n\t\t\t\tconst optionsToSend = getSelectedOptions(\n\t\t\t\t\tlatestDropdownOptionsRef.current,\n\t\t\t\t);\n\t\t\t\tonClose?.(optionsToSend);\n\t\t\t} else {\n\t\t\t\tonClose?.(dropdownOptions);\n\t\t\t}\n\t\t},\n\t\t[headerRef, childRefs],\n\t);\n\n\t// Auto-focus dropdown when it opens for keyboard navigation while preventing scroll to maintain popper positioning\n\tuseEffect(() => {\n\t\tconst timer = setTimeout(() => {\n\t\t\tif (ref.current) {\n\t\t\t\tref.current.focus({ preventScroll: true });\n\t\t\t}\n\t\t}, 0);\n\t\treturn () => clearTimeout(timer);\n\t}, []);\n\n\t// Get flattened selectable options\n\tconst getFlattenedOptions = (opts: DropdownOption[]): SingleOption[] => {\n\t\tconst flattened: SingleOption[] = [];\n\t\topts.forEach((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\tconst groupedOption = option as GroupedOption;\n\t\t\t\tgroupedOption.options.forEach((nestedOption) => {\n\t\t\t\t\tif (!nestedOption.disabled) {\n\t\t\t\t\t\tflattened.push(nestedOption);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\tif (!singleOption.disabled) {\n\t\t\t\t\tflattened.push(singleOption);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn flattened;\n\t};\n\n\t/** Keyboard navigation handler */\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\tconst currentOptions =\n\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions;\n\t\t\tconst flattenedOptions = getFlattenedOptions(currentOptions);\n\n\t\t\tif (flattenedOptions.length === 0) return;\n\n\t\t\tif (e.key === 'ArrowDown') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetFocusedIndex((prev) => {\n\t\t\t\t\tconst newIndex = prev < flattenedOptions.length - 1 ? prev + 1 : 0;\n\t\t\t\t\t// Scroll to the focused item\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst focusedElement = menuListRef.current?.querySelector(\n\t\t\t\t\t\t\t`[data-option-index=\"${newIndex}\"]`,\n\t\t\t\t\t\t) as HTMLElement;\n\t\t\t\t\t\tif (focusedElement) {\n\t\t\t\t\t\t\tfocusedElement.scrollIntoView({\n\t\t\t\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t\treturn newIndex;\n\t\t\t\t});\n\t\t\t} else if (e.key === 'ArrowUp') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetFocusedIndex((prev) => {\n\t\t\t\t\tconst newIndex = prev > 0 ? prev - 1 : flattenedOptions.length - 1;\n\t\t\t\t\t// Scroll to the focused item\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst focusedElement = menuListRef.current?.querySelector(\n\t\t\t\t\t\t\t`[data-option-index=\"${newIndex}\"]`,\n\t\t\t\t\t\t) as HTMLElement;\n\t\t\t\t\t\tif (focusedElement) {\n\t\t\t\t\t\t\tfocusedElement.scrollIntoView({\n\t\t\t\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t\treturn newIndex;\n\t\t\t\t});\n\t\t\t} else if (e.key === 'Enter' && focusedIndex >= 0) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst focusedOption = flattenedOptions[focusedIndex];\n\t\t\t\tif (focusedOption) {\n\t\t\t\t\t// onApplyHandler handles the selection state and calls onSelect internally\n\t\t\t\t\tonApplyHandler({\n\t\t\t\t\t\t...focusedOption,\n\t\t\t\t\t\tselected: !focusedOption.selected,\n\t\t\t\t\t});\n\t\t\t\t\t// Also trigger onDropdownItemClick if provided\n\t\t\t\t\tif (onDropdownItemClick) {\n\t\t\t\t\t\tonDropdownItemClick(focusedOption);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst dropdownElement = ref.current;\n\t\tif (dropdownElement) {\n\t\t\tdropdownElement.addEventListener('keydown', handleKeyDown);\n\t\t\treturn () => {\n\t\t\t\tdropdownElement.removeEventListener('keydown', handleKeyDown);\n\t\t\t};\n\t\t}\n\t}, [\n\t\tfocusedIndex,\n\t\tsearchedString,\n\t\tsearchedOptions,\n\t\tdropdownOptions,\n\t\tonSearch,\n\t\tonApplyHandler,\n\t\tonDropdownItemClick,\n\t]);\n\n\t// LOCAL CONSTANTS\n\tconst heightToUse = height ?? defaults.height;\n\tconst menuListMaxHeight =\n\t\ttypeof heightToUse === 'number'\n\t\t\t? isSearchable && isMultiSelect\n\t\t\t\t? heightToUse - 96\n\t\t\t\t: (isSearchable && !isMultiSelect) || (!isSearchable && isMultiSelect)\n\t\t\t\t? heightToUse - 48\n\t\t\t\t: heightToUse\n\t\t\t: heightToUse;\n\n\tfunction showDescription(title?: string, description?: string) {\n\t\tif (title && description) {\n\t\t\tsetDescription({\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t});\n\t\t} else {\n\t\t\tsetDescription(null);\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tconst widthToUse = width ?? defaults.width;\n\t\tif (descriptionInfo === null) {\n\t\t\tsetWidthState(widthToUse);\n\t\t} else if (typeof widthToUse === 'number') {\n\t\t\tsetWidthState(widthToUse * 2);\n\t\t} else if (typeof widthToUse === 'string') {\n\t\t\tif (widthToUse.endsWith('px')) {\n\t\t\t\tconst newWidth = parseInt(widthToUse.replace('px', '')) * 2;\n\t\t\t\tsetWidthState(newWidth);\n\t\t\t}\n\t\t}\n\t}, [descriptionInfo]);\n\n\t/**\n\t * This is to show the search result in a stateless way\n\t */\n\n\tconst exactMatchFound: boolean[] = [];\n\n\tconst processOptionsWithMaxSelections = (\n\t\toptionsToProcess: DropdownOption[],\n\t) => {\n\t\tif (!isMultiSelect || (!maxSelections && maxSelections !== 0)) {\n\t\t\treturn optionsToProcess;\n\t\t}\n\n\t\t// Count from the full options list (not the filtered subset) so selections\n\t\t// hidden by a search query are still included in the limit check.\n\t\tconst currentSelectionCount = getCurrentSelectionCount(dropdownOptions);\n\t\tconst maxSelectionsReached = currentSelectionCount >= maxSelections;\n\n\t\tif (!maxSelectionsReached) {\n\t\t\treturn optionsToProcess;\n\t\t}\n\n\t\t// Disable unselected options when max selections is reached\n\t\treturn optionsToProcess.map((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\treturn {\n\t\t\t\t\t...option,\n\t\t\t\t\toptions: (option as GroupedOption).options.map((nestedOption) => ({\n\t\t\t\t\t\t...nestedOption,\n\t\t\t\t\t\tdisabled:\n\t\t\t\t\t\t\tnestedOption.disabled ||\n\t\t\t\t\t\t\t(!nestedOption.selected && maxSelectionsReached),\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\treturn {\n\t\t\t\t\t...singleOption,\n\t\t\t\t\tdisabled:\n\t\t\t\t\t\tsingleOption.disabled ||\n\t\t\t\t\t\t(!singleOption.selected && maxSelectionsReached),\n\t\t\t\t};\n\t\t\t}\n\t\t});\n\t};\n\n\tconst optionsToShow = processOptionsWithMaxSelections(\n\t\t(searchedString && onSearch ? searchedOptions : dropdownOptions)\n\t\t\t.map((option) => {\n\t\t\t\tif (searchedString && !onSearch) {\n\t\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t\tconst groupedOption = { ...option } as GroupedOption;\n\t\t\t\t\t\tgroupedOption.options = groupedOption.options.filter((op) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\top.label?.toLowerCase().includes(searchedString.toLowerCase())\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\texactMatchFound.push(\n\t\t\t\t\t\t\t\t\t!searchedString || op.label === searchedString,\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn groupedOption.options.length > 0 ? groupedOption : null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toption.label\n\t\t\t\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(searchedString.toLowerCase()) ||\n\t\t\t\t\t\t\t(option as SingleOption | MultiSelectOption).searchKey\n\t\t\t\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(searchedString.toLowerCase())\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\texactMatchFound.push(\n\t\t\t\t\t\t\t\t!searchedString || option.label === searchedString,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn option;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn option;\n\t\t\t})\n\t\t\t.filter((option) => option !== null) as DropdownOption[],\n\t);\n\n\tconst noResultForSearch =\n\t\t!!isSearchable && searchedString && optionsToShow.length === 0;\n\tconst showLoadingState = !searchedString && !!isOptionsLoading;\n\tconst showErrorState =\n\t\t!searchedString && !!optionsErrorState && !showLoadingState;\n\tconst showEmptyState =\n\t\t!searchedString &&\n\t\t!optionsToShow.length &&\n\t\t!showLoadingState &&\n\t\t!showErrorState;\n\tconst showTopLevelZeroState =\n\t\tshowLoadingState || showErrorState || showEmptyState;\n\n\tconst emptyStateTitle = zeroState?.title || 'No results found';\n\tconst emptyStateSubTitle =\n\t\tzeroState?.subTitle ||\n\t\t`Please try again later or contact us at support@bik.ai if you require further assistance.`;\n\tconst errorStateTitle = optionsErrorState?.title || 'Failed to load options';\n\tconst errorStateSubTitle =\n\t\toptionsErrorState?.subTitle ||\n\t\t'Something went wrong while fetching the list. Please try again';\n\tconst defaultErrorActionButton = {\n\t\tbuttonText: 'Try again',\n\t\tbuttonType: 'text' as const,\n\t\tsize: 'small' as const,\n\t\tbuttonTextColor: COLORS.background.inverseLight,\n\t\tcustomIconColor: COLORS.background.inverseLight,\n\t\tLeadingIcon: RetryIcon,\n\t};\n\n\tconst mergedErrorState = {\n\t\tIconHolderStyle: {\n\t\t\tbackground: COLORS.background.negative.light,\n\t\t},\n\t\tIcon: (\n\t\t\t<ErrorInfoIcon color={COLORS.content.negative} width={24} height={24} />\n\t\t),\n\t\t...optionsErrorState,\n\t};\n\tmergedErrorState.actionButton = {\n\t\t...defaultErrorActionButton,\n\t\t...(optionsErrorState?.actionButton ?? {}),\n\t};\n\tconst zeroStateProps = showLoadingState\n\t\t? undefined\n\t\t: showErrorState\n\t\t? mergedErrorState\n\t\t: zeroState;\n\n\treturn (\n\t\t<OpennedDropdownContainer\n\t\t\tversion={version}\n\t\t\tref={ref}\n\t\t\ttabIndex={-1}\n\t\t\tstyle={{\n\t\t\t\t// maxWidth: descriptionInfo ? 800 : 400,\n\t\t\t\twidth: widthState,\n\t\t\t\t...containerStyle,\n\t\t\t\toutline: 'none',\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: descriptionInfo ? '50%' : '100%',\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tbackground: 'white',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{!!isSearchable && (\n\t\t\t\t\t<SearchBox\n\t\t\t\t\t\tonSearch={search}\n\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\tplaceholder={searchPlaceholder}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{showTopLevelZeroState ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tdata-testid=\"dropdown-options-zero-state\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: staticMenuHeight ? menuListMaxHeight : heightToUse,\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tbackground: COLORS.background.base,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZeroState\n\t\t\t\t\t\t\t{...(zeroStateProps ?? {})}\n\t\t\t\t\t\t\tisLoading={showLoadingState}\n\t\t\t\t\t\t\ttitle={showErrorState ? errorStateTitle : emptyStateTitle}\n\t\t\t\t\t\t\tsubTitle={\n\t\t\t\t\t\t\t\tshowErrorState ? errorStateSubTitle : emptyStateSubTitle\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<MenuListContainer\n\t\t\t\t\t\tdata-testid=\"dropdown-menu-list\"\n\t\t\t\t\t\tminHeight={staticMenuHeight ? menuListMaxHeight : undefined}\n\t\t\t\t\t\tmaxHeight={menuListMaxHeight}\n\t\t\t\t\t\tref={menuListRef}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!isMultiSelect && !noResultForSearch && !hideSelectAll && (\n\t\t\t\t\t\t\t<SelectAllMenu\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\toptions={\n\t\t\t\t\t\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={selectAllHandler}\n\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{!allowFreeForm && noResultForSearch && (\n\t\t\t\t\t\t\t<SearchZeroState\n\t\t\t\t\t\t\t\tisLoading={isSearchLoading}\n\t\t\t\t\t\t\t\terrorMessage={searchError}\n\t\t\t\t\t\t\t\tonRetry={retrySearch}\n\t\t\t\t\t\t\t\theight={menuListMaxHeight as number}\n\t\t\t\t\t\t\t\tsearchedString={searchedString}\n\t\t\t\t\t\t\t\tcontainerWidth={width}\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{allowFreeForm &&\n\t\t\t\t\t\t\t(noResultForSearch ||\n\t\t\t\t\t\t\t\t(!!exactMatchFound.length &&\n\t\t\t\t\t\t\t\t\texactMatchFound.every((val) => val === false))) && (\n\t\t\t\t\t\t\t\t<FreeFormMenu\n\t\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\t\t\tonSelect={onFreeFormSelect}\n\t\t\t\t\t\t\t\t\tsearchedString={searchedString}\n\t\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<MenuList\n\t\t\t\t\t\t\tonInfiniteScroll={onInfiniteScroll}\n\t\t\t\t\t\t\tonDropdownItemClick={onDropdownItemClick}\n\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\tonSelect={onApplyHandler}\n\t\t\t\t\t\t\tshowDescription={showDescription}\n\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\toptions={optionsToShow}\n\t\t\t\t\t\t\tuseDefaultCursor={useDefaultCursor}\n\t\t\t\t\t\t\tref={childRefs}\n\t\t\t\t\t\t\tfocusedIndex={focusedIndex}\n\t\t\t\t\t\t\tisDraggable={isDraggable}\n\t\t\t\t\t\t\tonOptionsReorder={handleOptionsReorder}\n\t\t\t\t\t\t\tshowCheckboxForCustomElement={showCheckboxForCustomElement}\n\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuListContainer>\n\t\t\t\t)}\n\t\t\t\t{!!isMultiSelect && !showTopLevelZeroState && version !== '2.0' && (\n\t\t\t\t\t<MultiSelectDropdownBottomBar\n\t\t\t\t\t\tonClear={() => {\n\t\t\t\t\t\t\tonMultiSelectClear();\n\t\t\t\t\t\t\tonMultiSelectClearProp?.();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonApply={onMultiSelectApply}\n\t\t\t\t\t\tlist={\n\t\t\t\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbuttonText={primaryButtonText}\n\t\t\t\t\t\tbuttonOptions={buttonOptions}\n\t\t\t\t\t\thideClearButton={hideClearButton}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!descriptionInfo && (\n\t\t\t\t<Description\n\t\t\t\t\ttitle={descriptionInfo.title}\n\t\t\t\t\tdescription={descriptionInfo.description}\n\t\t\t\t\tversion={version}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</OpennedDropdownContainer>\n\t);\n};\n"],"names":["defaults","OpenedDropdown","options","isSearchable","searchPlaceholder","staticMenuHeight","isMultiSelect","maxSelections","width","allowFreeForm","height","onClose","onSelect","onSearch","version","skipSorting","headerRef","hideSelectAll","primaryButtonText","onInfiniteScroll","onMultiSelectClearProp","onDropdownItemClick","buttonOptions","isSearchLoading","isOptionsLoading","optionsErrorState","disableSearchOptions","disableSearchedOptionExcept","useDefaultCursor","containerStyle","zeroState","isDraggable","onOptionsReorder","hideClearButton","showCheckboxForCustomElement","checkboxActiveColor","brandSelectedRow","sortOptionsWithSelectedOnTop","useCallback","opts","selected","unselected","option","localOptions","setLocalOptions","useState","localOptionsRef","useRef","hasReorderedRef","onOptionsReorderRef","useEffect","handleOptionsReorder","reorderedOptions","optionsToUse","dropdownOptions","search","searchedString","searchedOptions","searchError","retrySearch","onApplyHandler","selectAllHandler","onMultiSelectClear","onFreeFormSelect","onMultiSelectApply","latestDropdownOptionsRef","getSelectedOptions","getCurrentSelectionCount","useDropdown","widthState","setWidthState","descriptionInfo","setDescription","focusedIndex","setFocusedIndex","ref","childRefs","menuListRef","useOutside","optionsToSend","timer","getFlattenedOptions","flattened","nestedOption","singleOption","handleKeyDown","e","flattenedOptions","prev","newIndex","focusedElement","focusedOption","dropdownElement","heightToUse","menuListMaxHeight","showDescription","title","description","widthToUse","newWidth","exactMatchFound","optionsToShow","optionsToProcess","maxSelectionsReached","groupedOption","op","noResultForSearch","showLoadingState","showErrorState","showEmptyState","showTopLevelZeroState","emptyStateTitle","emptyStateSubTitle","errorStateTitle","errorStateSubTitle","defaultErrorActionButton","COLORS","RetryIcon","mergedErrorState","jsx","ErrorInfoIcon","zeroStateProps","jsxs","OpennedDropdownContainer","SearchBox","ZeroState","MenuListContainer","SelectAllMenu","SearchZeroState","val","FreeFormMenu","MenuList","MultiSelectDropdownBottomBar","Description"],"mappings":"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"}
1
+ {"version":3,"file":"OpennedDropdown.js","sources":["../../../../../../src/components/dropdown/OpenedDropdown/components/OpennedDropdown.tsx"],"sourcesContent":["import ErrorInfoIcon from '@src/assets/icons/errorInfo.svg';\nimport RetryIcon from '@src/assets/icons/refresh-purple.svg';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { ZeroState } from '@src/components/zeroState/ZeroState';\nimport { useOutside } from '@src/hooks/useOutside';\nimport { COLORS } from '@src/constants/Theme';\nimport { useDropdown } from '../../hooks/useDropdown';\nimport {\n\tDropdownOption,\n\tGroupedOption,\n\tMultiSelectOption,\n\tOpenDropdownProps,\n\tSingleOption,\n} from '../../type';\nimport {\n\tflattenSelectableOptions,\n\tgetNestedParentValues,\n} from '../utils/iterationOnOptions';\nimport { Description } from './description/Description';\nimport { FreeFormMenu } from './menu/FreeFormMenu';\nimport { MenuList } from './menu/MenuList';\nimport { SelectAllMenu } from './menu/SelectAllMenu';\nimport MultiSelectDropdownBottomBar from './multiSelect/MultiSelectDropdownBottomBar';\nimport {\n\tMenuListContainer,\n\tOpennedDropdownContainer,\n} from './OpennedDropdown.styled';\nimport { SearchBox } from './searchbox/SearchBox';\nimport { SearchZeroState } from './searchbox/SearchZeroState';\n\n/** CONSTANTS */\nconst defaults = {\n\theight: 304,\n\twidth: 290,\n};\n\nexport const OpenedDropdown: React.FC<OpenDropdownProps> = ({\n\toptions,\n\tisSearchable,\n\tsearchPlaceholder,\n\tstaticMenuHeight,\n\tisMultiSelect,\n\tmaxSelections,\n\twidth,\n\tallowFreeForm,\n\theight,\n\tonClose,\n\tonSelect,\n\tonSearch,\n\tversion,\n\tskipSorting,\n\theaderRef,\n\thideSelectAll,\n\tprimaryButtonText,\n\tonInfiniteScroll,\n\tonMultiSelectClear: onMultiSelectClearProp,\n\tonDropdownItemClick,\n\tbuttonOptions,\n\tisSearchLoading,\n\tisOptionsLoading,\n\toptionsErrorState,\n\tdisableSearchOptions,\n\tdisableSearchedOptionExcept,\n\tuseDefaultCursor,\n\tcontainerStyle = {},\n\tzeroState = undefined,\n\tisDraggable = false,\n\tonOptionsReorder,\n\thideClearButton = false,\n\tshowCheckboxForCustomElement = false,\n\tcheckboxActiveColor,\n\tbrandSelectedRow,\n\tchildrenLayout,\n\tcollapsibleChildren,\n\tdefaultCollapsed,\n\thideSelectedCount,\n}) => {\n\t// Sort options with selected at top, unselected at bottom, maintaining order within groups\n\tconst sortOptionsWithSelectedOnTop = useCallback(\n\t\t(opts: DropdownOption[]): DropdownOption[] => {\n\t\t\tif (!isDraggable || !isMultiSelect) return opts;\n\n\t\t\tconst selected: DropdownOption[] = [];\n\t\t\tconst unselected: DropdownOption[] = [];\n\n\t\t\topts.forEach((option) => {\n\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t// Handle grouped options - maintain grouping\n\t\t\t\t\tunselected.push(option);\n\t\t\t\t} else {\n\t\t\t\t\tconst singleOption = option as SingleOption;\n\t\t\t\t\tif (singleOption.selected) {\n\t\t\t\t\t\tselected.push(option);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tunselected.push(option);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn [...selected, ...unselected];\n\t\t},\n\t\t[isDraggable, isMultiSelect],\n\t);\n\n\tconst [localOptions, setLocalOptions] = useState<DropdownOption[]>(() =>\n\t\tsortOptionsWithSelectedOnTop(options),\n\t);\n\tconst localOptionsRef = useRef<DropdownOption[]>(localOptions);\n\tconst hasReorderedRef = useRef(false);\n\tconst onOptionsReorderRef = useRef(onOptionsReorder);\n\n\tuseEffect(() => {\n\t\tsetLocalOptions(sortOptionsWithSelectedOnTop(options));\n\t}, [options, sortOptionsWithSelectedOnTop]);\n\n\tuseEffect(() => {\n\t\tlocalOptionsRef.current = localOptions;\n\t}, [localOptions]);\n\n\tuseEffect(() => {\n\t\tonOptionsReorderRef.current = onOptionsReorder;\n\t}, [onOptionsReorder]);\n\n\t// Fire onOptionsReorder on unmount (dropdown close from Apply or click-outside)\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tif (hasReorderedRef.current && onOptionsReorderRef.current) {\n\t\t\t\tonOptionsReorderRef.current(localOptionsRef.current);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tconst handleOptionsReorder = useCallback(\n\t\t(reorderedOptions: DropdownOption[]) => {\n\t\t\tsetLocalOptions(reorderedOptions);\n\t\t\t// For version 2.0 (no Apply button), apply reorder immediately\n\t\t\tif (version === '2.0') {\n\t\t\t\tonOptionsReorder?.(reorderedOptions);\n\t\t\t} else {\n\t\t\t\t// For version 1.0, defer until Apply/close (handled by unmount cleanup)\n\t\t\t\thasReorderedRef.current = true;\n\t\t\t}\n\t\t},\n\t\t[onOptionsReorder, version],\n\t);\n\n\tconst optionsToUse = isDraggable ? localOptions : options;\n\tconst {\n\t\tdropdownOptions,\n\t\tsearch,\n\t\tsearchedString,\n\t\tsearchedOptions,\n\t\tsearchError,\n\t\tretrySearch,\n\t\tonApplyHandler,\n\t\tselectAllHandler,\n\t\tonMultiSelectClear,\n\t\tonFreeFormSelect,\n\t\tonMultiSelectApply,\n\t\tlatestDropdownOptionsRef,\n\t\tgetSelectedOptions,\n\t\tgetCurrentSelectionCount,\n\t} = useDropdown(\n\t\tversion,\n\t\toptionsToUse,\n\t\tonSelect,\n\t\tskipSorting || isDraggable,\n\t\tisMultiSelect,\n\t\tonSearch,\n\t\tdisableSearchOptions,\n\t\tdisableSearchedOptionExcept,\n\t\tmaxSelections,\n\t\tchildrenLayout,\n\t);\n\tconst [widthState, setWidthState] = useState(width ?? defaults.width);\n\tconst [descriptionInfo, setDescription] = useState<{\n\t\ttitle: string;\n\t\tdescription: string;\n\t} | null>(null);\n\tconst [focusedIndex, setFocusedIndex] = useState<number>(-1);\n\tconst [collapsedParents, setCollapsedParents] = useState<string[]>(() =>\n\t\tcollapsibleChildren && defaultCollapsed\n\t\t\t? getNestedParentValues(options)\n\t\t\t: [],\n\t);\n\n\t// Options can arrive after mount, so parents seen later start collapsed too -\n\t// without re-collapsing groups the user has since expanded.\n\tconst seededCollapsedParents = useRef<string[]>(collapsedParents);\n\tuseEffect(() => {\n\t\tif (!collapsibleChildren || !defaultCollapsed) return;\n\t\tconst unseen = getNestedParentValues(options).filter(\n\t\t\t(value) => !seededCollapsedParents.current.includes(value),\n\t\t);\n\t\tif (!unseen.length) return;\n\t\tseededCollapsedParents.current = [\n\t\t\t...seededCollapsedParents.current,\n\t\t\t...unseen,\n\t\t];\n\t\tsetCollapsedParents((previous) => [...previous, ...unseen]);\n\t}, [options, collapsibleChildren, defaultCollapsed]);\n\n\tconst handleToggleCollapsed = (value: string) => {\n\t\tsetCollapsedParents((previous) =>\n\t\t\tprevious.includes(value)\n\t\t\t\t? previous.filter((entry) => entry !== value)\n\t\t\t\t: [...previous, value],\n\t\t);\n\t\tsetFocusedIndex(-1);\n\t};\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst childRefs = useRef([]);\n\tconst menuListRef = useRef<HTMLDivElement>(null);\n\tuseOutside(\n\t\tref,\n\t\t() => {\n\t\t\tsetDescription(null);\n\t\t\tif (isMultiSelect && version === '2.0') {\n\t\t\t\tconst optionsToSend = getSelectedOptions(\n\t\t\t\t\tlatestDropdownOptionsRef.current,\n\t\t\t\t);\n\t\t\t\tonClose?.(optionsToSend);\n\t\t\t} else {\n\t\t\t\tonClose?.(dropdownOptions);\n\t\t\t}\n\t\t},\n\t\t[headerRef, childRefs],\n\t);\n\n\t// Auto-focus dropdown when it opens for keyboard navigation while preventing scroll to maintain popper positioning\n\tuseEffect(() => {\n\t\tconst timer = setTimeout(() => {\n\t\t\tif (ref.current) {\n\t\t\t\tref.current.focus({ preventScroll: true });\n\t\t\t}\n\t\t}, 0);\n\t\treturn () => clearTimeout(timer);\n\t}, []);\n\n\t/** Keyboard navigation handler */\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\tconst currentOptions =\n\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions;\n\t\t\tconst flattenedOptions = flattenSelectableOptions(\n\t\t\t\tcurrentOptions,\n\t\t\t\tchildrenLayout === 'nested' ? { collapsedParents } : undefined,\n\t\t\t);\n\n\t\t\tif (flattenedOptions.length === 0) return;\n\n\t\t\tif (e.key === 'ArrowDown') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetFocusedIndex((prev) => {\n\t\t\t\t\tconst newIndex = prev < flattenedOptions.length - 1 ? prev + 1 : 0;\n\t\t\t\t\t// Scroll to the focused item\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst focusedElement = menuListRef.current?.querySelector(\n\t\t\t\t\t\t\t`[data-option-index=\"${newIndex}\"]`,\n\t\t\t\t\t\t) as HTMLElement;\n\t\t\t\t\t\tif (focusedElement) {\n\t\t\t\t\t\t\tfocusedElement.scrollIntoView({\n\t\t\t\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t\treturn newIndex;\n\t\t\t\t});\n\t\t\t} else if (e.key === 'ArrowUp') {\n\t\t\t\te.preventDefault();\n\t\t\t\tsetFocusedIndex((prev) => {\n\t\t\t\t\tconst newIndex = prev > 0 ? prev - 1 : flattenedOptions.length - 1;\n\t\t\t\t\t// Scroll to the focused item\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst focusedElement = menuListRef.current?.querySelector(\n\t\t\t\t\t\t\t`[data-option-index=\"${newIndex}\"]`,\n\t\t\t\t\t\t) as HTMLElement;\n\t\t\t\t\t\tif (focusedElement) {\n\t\t\t\t\t\t\tfocusedElement.scrollIntoView({\n\t\t\t\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t\treturn newIndex;\n\t\t\t\t});\n\t\t\t} else if (e.key === 'Enter' && focusedIndex >= 0) {\n\t\t\t\te.preventDefault();\n\t\t\t\tconst focusedOption = flattenedOptions[focusedIndex];\n\t\t\t\tif (focusedOption) {\n\t\t\t\t\t// onApplyHandler handles the selection state and calls onSelect internally\n\t\t\t\t\tonApplyHandler({\n\t\t\t\t\t\t...focusedOption,\n\t\t\t\t\t\tselected: !focusedOption.selected,\n\t\t\t\t\t});\n\t\t\t\t\t// Also trigger onDropdownItemClick if provided\n\t\t\t\t\tif (onDropdownItemClick) {\n\t\t\t\t\t\tonDropdownItemClick(focusedOption);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst dropdownElement = ref.current;\n\t\tif (dropdownElement) {\n\t\t\tdropdownElement.addEventListener('keydown', handleKeyDown);\n\t\t\treturn () => {\n\t\t\t\tdropdownElement.removeEventListener('keydown', handleKeyDown);\n\t\t\t};\n\t\t}\n\t}, [\n\t\tfocusedIndex,\n\t\tsearchedString,\n\t\tsearchedOptions,\n\t\tdropdownOptions,\n\t\tonSearch,\n\t\tonApplyHandler,\n\t\tonDropdownItemClick,\n\t\tchildrenLayout,\n\t\tcollapsedParents,\n\t]);\n\n\t// LOCAL CONSTANTS\n\tconst heightToUse = height ?? defaults.height;\n\tconst menuListMaxHeight =\n\t\ttypeof heightToUse === 'number'\n\t\t\t? isSearchable && isMultiSelect\n\t\t\t\t? heightToUse - 96\n\t\t\t\t: (isSearchable && !isMultiSelect) || (!isSearchable && isMultiSelect)\n\t\t\t\t? heightToUse - 48\n\t\t\t\t: heightToUse\n\t\t\t: heightToUse;\n\n\tfunction showDescription(title?: string, description?: string) {\n\t\tif (title && description) {\n\t\t\tsetDescription({\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t});\n\t\t} else {\n\t\t\tsetDescription(null);\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tconst widthToUse = width ?? defaults.width;\n\t\tif (descriptionInfo === null) {\n\t\t\tsetWidthState(widthToUse);\n\t\t} else if (typeof widthToUse === 'number') {\n\t\t\tsetWidthState(widthToUse * 2);\n\t\t} else if (typeof widthToUse === 'string') {\n\t\t\tif (widthToUse.endsWith('px')) {\n\t\t\t\tconst newWidth = parseInt(widthToUse.replace('px', '')) * 2;\n\t\t\t\tsetWidthState(newWidth);\n\t\t\t}\n\t\t}\n\t}, [descriptionInfo]);\n\n\t/**\n\t * This is to show the search result in a stateless way\n\t */\n\n\tconst exactMatchFound: boolean[] = [];\n\n\tconst processOptionsWithMaxSelections = (\n\t\toptionsToProcess: DropdownOption[],\n\t) => {\n\t\tif (!isMultiSelect || (!maxSelections && maxSelections !== 0)) {\n\t\t\treturn optionsToProcess;\n\t\t}\n\n\t\t// Count from the full options list (not the filtered subset) so selections\n\t\t// hidden by a search query are still included in the limit check.\n\t\tconst currentSelectionCount = getCurrentSelectionCount(dropdownOptions);\n\t\tconst maxSelectionsReached = currentSelectionCount >= maxSelections;\n\n\t\tif (!maxSelectionsReached) {\n\t\t\treturn optionsToProcess;\n\t\t}\n\n\t\t// Disable unselected options when max selections is reached\n\t\treturn optionsToProcess.map((option) => {\n\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\treturn {\n\t\t\t\t\t...option,\n\t\t\t\t\toptions: (option as GroupedOption).options.map((nestedOption) => ({\n\t\t\t\t\t\t...nestedOption,\n\t\t\t\t\t\tdisabled:\n\t\t\t\t\t\t\tnestedOption.disabled ||\n\t\t\t\t\t\t\t(!nestedOption.selected && maxSelectionsReached),\n\t\t\t\t\t})),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst disableUnselected = (row: SingleOption) => ({\n\t\t\t\t...row,\n\t\t\t\tdisabled: row.disabled || !row.selected,\n\t\t\t});\n\t\t\tconst singleOption = disableUnselected(option as SingleOption);\n\n\t\t\treturn childrenLayout === 'nested' && singleOption.children?.length\n\t\t\t\t? {\n\t\t\t\t\t\t...singleOption,\n\t\t\t\t\t\tchildren: singleOption.children.map(disableUnselected),\n\t\t\t\t }\n\t\t\t\t: singleOption;\n\t\t});\n\t};\n\n\tconst optionsToShow = processOptionsWithMaxSelections(\n\t\t(searchedString && onSearch ? searchedOptions : dropdownOptions)\n\t\t\t.map((option) => {\n\t\t\t\tif (searchedString && !onSearch) {\n\t\t\t\t\tif ((option as GroupedOption).options) {\n\t\t\t\t\t\tconst groupedOption = { ...option } as GroupedOption;\n\t\t\t\t\t\tgroupedOption.options = groupedOption.options.filter((op) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\top.label?.toLowerCase().includes(searchedString.toLowerCase())\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\texactMatchFound.push(\n\t\t\t\t\t\t\t\t\t!searchedString || op.label === searchedString,\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn groupedOption.options.length > 0 ? groupedOption : null;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toption.label\n\t\t\t\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(searchedString.toLowerCase()) ||\n\t\t\t\t\t\t\t(option as SingleOption | MultiSelectOption).searchKey\n\t\t\t\t\t\t\t\t?.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(searchedString.toLowerCase())\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\texactMatchFound.push(\n\t\t\t\t\t\t\t\t!searchedString || option.label === searchedString,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn option;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn option;\n\t\t\t})\n\t\t\t.filter((option) => option !== null) as DropdownOption[],\n\t);\n\n\tconst noResultForSearch =\n\t\t!!isSearchable && searchedString && optionsToShow.length === 0;\n\tconst showLoadingState = !searchedString && !!isOptionsLoading;\n\tconst showErrorState =\n\t\t!searchedString && !!optionsErrorState && !showLoadingState;\n\tconst showEmptyState =\n\t\t!searchedString &&\n\t\t!optionsToShow.length &&\n\t\t!showLoadingState &&\n\t\t!showErrorState;\n\tconst showTopLevelZeroState =\n\t\tshowLoadingState || showErrorState || showEmptyState;\n\n\tconst emptyStateTitle = zeroState?.title || 'No results found';\n\tconst emptyStateSubTitle =\n\t\tzeroState?.subTitle ||\n\t\t`Please try again later or contact us at support@bik.ai if you require further assistance.`;\n\tconst errorStateTitle = optionsErrorState?.title || 'Failed to load options';\n\tconst errorStateSubTitle =\n\t\toptionsErrorState?.subTitle ||\n\t\t'Something went wrong while fetching the list. Please try again';\n\tconst defaultErrorActionButton = {\n\t\tbuttonText: 'Try again',\n\t\tbuttonType: 'text' as const,\n\t\tsize: 'small' as const,\n\t\tbuttonTextColor: COLORS.background.inverseLight,\n\t\tcustomIconColor: COLORS.background.inverseLight,\n\t\tLeadingIcon: RetryIcon,\n\t};\n\n\tconst mergedErrorState = {\n\t\tIconHolderStyle: {\n\t\t\tbackground: COLORS.background.negative.light,\n\t\t},\n\t\tIcon: (\n\t\t\t<ErrorInfoIcon color={COLORS.content.negative} width={24} height={24} />\n\t\t),\n\t\t...optionsErrorState,\n\t};\n\tmergedErrorState.actionButton = {\n\t\t...defaultErrorActionButton,\n\t\t...(optionsErrorState?.actionButton ?? {}),\n\t};\n\tconst zeroStateProps = showLoadingState\n\t\t? undefined\n\t\t: showErrorState\n\t\t? mergedErrorState\n\t\t: zeroState;\n\n\treturn (\n\t\t<OpennedDropdownContainer\n\t\t\tversion={version}\n\t\t\tref={ref}\n\t\t\ttabIndex={-1}\n\t\t\tstyle={{\n\t\t\t\t// maxWidth: descriptionInfo ? 800 : 400,\n\t\t\t\twidth: widthState,\n\t\t\t\t...containerStyle,\n\t\t\t\toutline: 'none',\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: descriptionInfo ? '50%' : '100%',\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tbackground: 'white',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{!!isSearchable && (\n\t\t\t\t\t<SearchBox\n\t\t\t\t\t\tonSearch={search}\n\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\tplaceholder={searchPlaceholder}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{showTopLevelZeroState ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tdata-testid=\"dropdown-options-zero-state\"\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: staticMenuHeight ? menuListMaxHeight : heightToUse,\n\t\t\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\t\t\tbackground: COLORS.background.base,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ZeroState\n\t\t\t\t\t\t\t{...(zeroStateProps ?? {})}\n\t\t\t\t\t\t\tisLoading={showLoadingState}\n\t\t\t\t\t\t\ttitle={showErrorState ? errorStateTitle : emptyStateTitle}\n\t\t\t\t\t\t\tsubTitle={\n\t\t\t\t\t\t\t\tshowErrorState ? errorStateSubTitle : emptyStateSubTitle\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<MenuListContainer\n\t\t\t\t\t\tdata-testid=\"dropdown-menu-list\"\n\t\t\t\t\t\tminHeight={staticMenuHeight ? menuListMaxHeight : undefined}\n\t\t\t\t\t\tmaxHeight={menuListMaxHeight}\n\t\t\t\t\t\tref={menuListRef}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!isMultiSelect && !noResultForSearch && !hideSelectAll && (\n\t\t\t\t\t\t\t<SelectAllMenu\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\toptions={\n\t\t\t\t\t\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={selectAllHandler}\n\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\tchildrenLayout={childrenLayout}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{!allowFreeForm && noResultForSearch && (\n\t\t\t\t\t\t\t<SearchZeroState\n\t\t\t\t\t\t\t\tisLoading={isSearchLoading}\n\t\t\t\t\t\t\t\terrorMessage={searchError}\n\t\t\t\t\t\t\t\tonRetry={retrySearch}\n\t\t\t\t\t\t\t\theight={menuListMaxHeight as number}\n\t\t\t\t\t\t\t\tsearchedString={searchedString}\n\t\t\t\t\t\t\t\tcontainerWidth={width}\n\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{allowFreeForm &&\n\t\t\t\t\t\t\t(noResultForSearch ||\n\t\t\t\t\t\t\t\t(!!exactMatchFound.length &&\n\t\t\t\t\t\t\t\t\texactMatchFound.every((val) => val === false))) && (\n\t\t\t\t\t\t\t\t<FreeFormMenu\n\t\t\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\t\t\tonSelect={onFreeFormSelect}\n\t\t\t\t\t\t\t\t\tsearchedString={searchedString}\n\t\t\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<MenuList\n\t\t\t\t\t\t\tonInfiniteScroll={onInfiniteScroll}\n\t\t\t\t\t\t\tonDropdownItemClick={onDropdownItemClick}\n\t\t\t\t\t\t\tversion={version}\n\t\t\t\t\t\t\tonSelect={onApplyHandler}\n\t\t\t\t\t\t\tshowDescription={showDescription}\n\t\t\t\t\t\t\tisMultiSelect={isMultiSelect}\n\t\t\t\t\t\t\toptions={optionsToShow}\n\t\t\t\t\t\t\tuseDefaultCursor={useDefaultCursor}\n\t\t\t\t\t\t\tref={childRefs}\n\t\t\t\t\t\t\tfocusedIndex={focusedIndex}\n\t\t\t\t\t\t\tisDraggable={isDraggable}\n\t\t\t\t\t\t\tonOptionsReorder={handleOptionsReorder}\n\t\t\t\t\t\t\tshowCheckboxForCustomElement={showCheckboxForCustomElement}\n\t\t\t\t\t\t\tcheckboxActiveColor={checkboxActiveColor}\n\t\t\t\t\t\t\tbrandSelectedRow={brandSelectedRow}\n\t\t\t\t\t\t\tchildrenLayout={childrenLayout}\n\t\t\t\t\t\t\tcollapsibleChildren={collapsibleChildren}\n\t\t\t\t\t\t\tcollapsedParents={collapsedParents}\n\t\t\t\t\t\t\tonToggleCollapsed={handleToggleCollapsed}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuListContainer>\n\t\t\t\t)}\n\t\t\t\t{!!isMultiSelect && !showTopLevelZeroState && version !== '2.0' && (\n\t\t\t\t\t<MultiSelectDropdownBottomBar\n\t\t\t\t\t\tonClear={() => {\n\t\t\t\t\t\t\tonMultiSelectClear();\n\t\t\t\t\t\t\tonMultiSelectClearProp?.();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonApply={onMultiSelectApply}\n\t\t\t\t\t\tlist={\n\t\t\t\t\t\t\tsearchedString && onSearch ? searchedOptions : dropdownOptions\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbuttonText={primaryButtonText}\n\t\t\t\t\t\tbuttonOptions={buttonOptions}\n\t\t\t\t\t\thideClearButton={hideClearButton}\n\t\t\t\t\t\thideSelectedCount={hideSelectedCount}\n\t\t\t\t\t\tchildrenLayout={childrenLayout}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{!!descriptionInfo && (\n\t\t\t\t<Description\n\t\t\t\t\ttitle={descriptionInfo.title}\n\t\t\t\t\tdescription={descriptionInfo.description}\n\t\t\t\t\tversion={version}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</OpennedDropdownContainer>\n\t);\n};\n"],"names":["defaults","OpenedDropdown","options","isSearchable","searchPlaceholder","staticMenuHeight","isMultiSelect","maxSelections","width","allowFreeForm","height","onClose","onSelect","onSearch","version","skipSorting","headerRef","hideSelectAll","primaryButtonText","onInfiniteScroll","onMultiSelectClearProp","onDropdownItemClick","buttonOptions","isSearchLoading","isOptionsLoading","optionsErrorState","disableSearchOptions","disableSearchedOptionExcept","useDefaultCursor","containerStyle","zeroState","isDraggable","onOptionsReorder","hideClearButton","showCheckboxForCustomElement","checkboxActiveColor","brandSelectedRow","childrenLayout","collapsibleChildren","defaultCollapsed","hideSelectedCount","sortOptionsWithSelectedOnTop","useCallback","opts","selected","unselected","option","localOptions","setLocalOptions","useState","localOptionsRef","useRef","hasReorderedRef","onOptionsReorderRef","useEffect","handleOptionsReorder","reorderedOptions","optionsToUse","dropdownOptions","search","searchedString","searchedOptions","searchError","retrySearch","onApplyHandler","selectAllHandler","onMultiSelectClear","onFreeFormSelect","onMultiSelectApply","latestDropdownOptionsRef","getSelectedOptions","getCurrentSelectionCount","useDropdown","widthState","setWidthState","descriptionInfo","setDescription","focusedIndex","setFocusedIndex","collapsedParents","setCollapsedParents","getNestedParentValues","seededCollapsedParents","unseen","value","previous","handleToggleCollapsed","entry","ref","childRefs","menuListRef","useOutside","optionsToSend","timer","handleKeyDown","e","flattenedOptions","flattenSelectableOptions","prev","newIndex","focusedElement","focusedOption","dropdownElement","heightToUse","menuListMaxHeight","showDescription","title","description","widthToUse","newWidth","exactMatchFound","optionsToShow","optionsToProcess","maxSelectionsReached","nestedOption","disableUnselected","row","singleOption","groupedOption","op","noResultForSearch","showLoadingState","showErrorState","showEmptyState","showTopLevelZeroState","emptyStateTitle","emptyStateSubTitle","errorStateTitle","errorStateSubTitle","defaultErrorActionButton","COLORS","RetryIcon","mergedErrorState","jsx","ErrorInfoIcon","zeroStateProps","jsxs","OpennedDropdownContainer","SearchBox","ZeroState","MenuListContainer","SelectAllMenu","SearchZeroState","val","FreeFormMenu","MenuList","MultiSelectDropdownBottomBar","Description"],"mappings":"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"}
@@ -19,6 +19,14 @@ interface MenuItemProps {
19
19
  showCheckboxForCustomElement?: boolean;
20
20
  checkboxActiveColor?: string;
21
21
  brandSelectedRow?: boolean;
22
+ childrenLayout?: 'flyout' | 'nested';
23
+ /** Indents the row under its parent and draws the elbow connector. */
24
+ isChildRow?: boolean;
25
+ /** Renders the parent checkbox in its indeterminate state. */
26
+ isPartiallyChecked?: boolean;
27
+ isCollapsible?: boolean;
28
+ isCollapsed?: boolean;
29
+ onToggleCollapse?: () => void;
22
30
  }
23
31
  export declare const MenuItem: import('react').ForwardRefExoticComponent<MenuItemProps & import('react').RefAttributes<HTMLDivElement>>;
24
32
  export {};
@@ -1,26 +1,32 @@
1
- import { jsx as r, Fragment as c, jsxs as s } from "react/jsx-runtime";
2
- import U from "../../../../../assets/icons/chevronRight.svg.js";
3
- import { forwardRef as z, useState as W } from "react";
4
- import t from "styled-components";
5
- import { BodyCaption as _ } from "../../../../TypographyStyle.js";
6
- import { COLORS as m, DEFAULT_THEME as F } from "../../../../../constants/Theme.js";
7
- import { FreeFormContainer as q } from "./FreeFormMenu.styled.js";
8
- import { Tooltip as G } from "../../../../tooltips/Tooltip.js";
9
- import { CheckBox as k } from "../../../../checkBox/CheckBox.js";
10
- import { ListItem as J } from "../../../../list-item/ListItem.js";
11
- const $ = t(J)`
1
+ import { jsx as r, Fragment as m, jsxs as o } from "react/jsx-runtime";
2
+ import P from "../../../../../assets/icons/chevronDownOutline.svg.js";
3
+ import Q from "../../../../../assets/icons/chevronRight.svg.js";
4
+ import X from "../../../../../assets/icons/chevronUpOutline.svg.js";
5
+ import { forwardRef as Y, useState as Z } from "react";
6
+ import n from "styled-components";
7
+ import { BodyCaption as ee } from "../../../../TypographyStyle.js";
8
+ import { COLORS as i, DEFAULT_THEME as A } from "../../../../../constants/Theme.js";
9
+ import { FreeFormContainer as re } from "./FreeFormMenu.styled.js";
10
+ import { Tooltip as te } from "../../../../tooltips/Tooltip.js";
11
+ import { CheckBox as D } from "../../../../checkBox/CheckBox.js";
12
+ import { ListItem as ne } from "../../../../list-item/ListItem.js";
13
+ const b = n(ne)`
12
14
  padding: ${(e) => e.version === "3.0" ? "8px" : e.version === "2.0" ? "8px 12px" : "14px 16px"} !important;
13
15
  cursor: pointer;
14
16
  margin-top: ${(e) => e.brandSelectedRow ? "0" : e.version === "2.0" ? "2px" : "0"};
15
- `, K = t.div`
17
+ `, le = n(b)`
18
+ padding: 8px !important;
19
+ margin-top: 0;
20
+ border-radius: 0;
21
+ `, de = n.div`
16
22
  box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.12);
17
23
  border-radius: ${({ version: e }) => e === "1.0" ? "0" : "8px"};
18
24
  padding: ${({ version: e }) => e === "1.0" ? "0" : "4px"};
19
25
  min-width: 148px;
20
- border: ${({ version: e }) => e === "1.0" ? `1px solid ${F.colorsV2.stroke.primary}` : "none"};
26
+ border: ${({ version: e }) => e === "1.0" ? `1px solid ${A.colorsV2.stroke.primary}` : "none"};
21
27
  max-height: 248px;
22
28
  overflow-y: auto;
23
- `, N = t.div`
29
+ `, oe = n.div`
24
30
  display: grid;
25
31
  grid-template-columns: repeat(2, 2.86px);
26
32
  grid-template-rows: repeat(3, 2.86px);
@@ -32,191 +38,229 @@ const $ = t(J)`
32
38
  align-self: center;
33
39
  height: fit-content;
34
40
  min-height: 18px;
35
- `, l = t.div`
41
+ `, d = n.div`
36
42
  width: 2.86px;
37
43
  height: 2.86px;
38
44
  border-radius: 50%;
39
- background-color: ${m.content.inactive};
45
+ background-color: ${i.content.inactive};
40
46
  flex-shrink: 0;
41
- `, w = t.div`
47
+ `, x = n.div`
42
48
  display: flex;
43
49
  align-content: center;
44
50
  justify-content: center;
45
51
  gap: 8px;
46
- `, P = t.div`
52
+ `, H = n.span`
53
+ align-self: flex-start;
54
+ flex-shrink: 0;
55
+ width: 11px;
56
+ height: 9px;
57
+ margin-left: 4px;
58
+ border-left: 1px solid ${i.content.placeholder};
59
+ border-bottom: 1px solid ${i.content.placeholder};
60
+ border-bottom-left-radius: 4px;
61
+ `, ie = n.span`
62
+ display: flex;
63
+ align-items: center;
64
+ cursor: pointer;
65
+ `, ae = n.div`
47
66
  margin-right: -4px;
48
- `, Q = t.div`
67
+ `, se = n.div`
49
68
  display: flex;
50
69
  align-items: center;
51
70
  flex-direction: column;
52
71
  flex: 1;
53
- `, g = ({ onDragStart: e, onDragEnd: i }) => /* @__PURE__ */ s(
54
- N,
72
+ `, v = ({ onDragStart: e, onDragEnd: a }) => /* @__PURE__ */ o(
73
+ oe,
55
74
  {
56
75
  draggable: !0,
57
76
  onDragStart: e,
58
- onDragEnd: i,
77
+ onDragEnd: a,
59
78
  children: [
60
- /* @__PURE__ */ r(l, {}),
61
- /* @__PURE__ */ r(l, {}),
62
- /* @__PURE__ */ r(l, {}),
63
- /* @__PURE__ */ r(l, {}),
64
- /* @__PURE__ */ r(l, {}),
65
- /* @__PURE__ */ r(l, {})
79
+ /* @__PURE__ */ r(d, {}),
80
+ /* @__PURE__ */ r(d, {}),
81
+ /* @__PURE__ */ r(d, {}),
82
+ /* @__PURE__ */ r(d, {}),
83
+ /* @__PURE__ */ r(d, {}),
84
+ /* @__PURE__ */ r(d, {})
66
85
  ]
67
86
  }
68
- ), oe = z(
87
+ ), ye = Y(
69
88
  ({
70
89
  option: e,
71
- isMultiSelect: i,
72
- showDescription: x,
73
- onSelect: H,
74
- last: O,
75
- version: d,
76
- onDropdownItemClick: M,
77
- useDefaultCursor: S,
78
- isFocused: A = !1,
79
- dataIndex: h = -1,
80
- isDraggable: o = !1,
81
- onDragStart: u,
82
- onDragOver: D,
83
- onDrop: B,
84
- onDragEnd: p,
85
- isDraggedOver: v = !1,
86
- showCheckboxForCustomElement: C = !1,
87
- checkboxActiveColor: b,
88
- brandSelectedRow: I
89
- }, V) => {
90
- const [j, y] = W(
90
+ isMultiSelect: a,
91
+ showDescription: C,
92
+ onSelect: M,
93
+ last: B,
94
+ version: l,
95
+ onDropdownItemClick: E,
96
+ useDefaultCursor: R,
97
+ isFocused: U = !1,
98
+ dataIndex: I = -1,
99
+ isDraggable: s = !1,
100
+ onDragStart: f,
101
+ onDragOver: V,
102
+ onDrop: j,
103
+ onDragEnd: g,
104
+ isDraggedOver: y = !1,
105
+ showCheckboxForCustomElement: L = !1,
106
+ checkboxActiveColor: w,
107
+ brandSelectedRow: $,
108
+ childrenLayout: z = "flyout",
109
+ isChildRow: T = !1,
110
+ isPartiallyChecked: k = !1,
111
+ isCollapsible: N = !1,
112
+ isCollapsed: h = !1,
113
+ onToggleCollapse: W
114
+ }, _) => {
115
+ const [q, O] = Z(
91
116
  e.selected
92
- ), L = (n, a) => {
93
- if (!n.children) {
94
- f(!n.selected);
95
- const R = a ? { ...n, parent: a } : n;
96
- M?.(R);
117
+ ), c = z === "nested", G = c ? le : b, F = (t, p) => {
118
+ if (!t.children || c) {
119
+ u(!t.selected);
120
+ const K = p ? { ...t, parent: p } : t;
121
+ E?.(K);
97
122
  }
98
- }, f = (n) => {
99
- e.disabled || H({ ...e, selected: n });
100
- }, E = () => {
101
- e.description ? x(e.label, e.description) : x();
102
- }, T = S ? { cursor: "default" } : {};
103
- return /* @__PURE__ */ r(c, { children: /* @__PURE__ */ r(
104
- G,
123
+ }, u = (t) => {
124
+ e.disabled || M({ ...e, selected: t });
125
+ }, J = () => {
126
+ e.description ? C(e.label, e.description) : C();
127
+ }, S = R ? { cursor: "default" } : {};
128
+ return /* @__PURE__ */ r(m, { children: /* @__PURE__ */ r(
129
+ te,
105
130
  {
106
131
  body: "",
107
- tooltipContent: e.children ? /* @__PURE__ */ r(
132
+ tooltipContent: e.children && !c ? /* @__PURE__ */ r(
108
133
  "div",
109
134
  {
110
135
  style: {
111
- backgroundColor: F.colorsV2.surface.standard
136
+ backgroundColor: A.colorsV2.surface.standard
112
137
  },
113
- ref: V,
114
- onMouseEnter: () => y(!0),
115
- onMouseLeave: () => y(!1),
116
- children: /* @__PURE__ */ r(K, { version: d ?? "2.0", children: e.children.map((n) => /* @__PURE__ */ r(
117
- $,
138
+ ref: _,
139
+ onMouseEnter: () => O(!0),
140
+ onMouseLeave: () => O(!1),
141
+ children: /* @__PURE__ */ r(de, { version: l ?? "2.0", children: e.children.map((t) => /* @__PURE__ */ r(
142
+ b,
118
143
  {
119
- version: d,
120
- brandSelectedRow: I,
121
- style: d !== "1.0" && (e?.children ?? []).length - 1 ? { borderBottom: 0 } : {},
122
- onClick: (a) => {
123
- a.preventDefault(), L(n, e);
144
+ version: l,
145
+ brandSelectedRow: $,
146
+ style: l !== "1.0" && (e?.children ?? []).length - 1 ? { borderBottom: 0 } : {},
147
+ onClick: (p) => {
148
+ p.preventDefault(), F(t, e);
124
149
  },
125
- listItem: { value: n.value, label: n.label },
126
- subText: n.subText,
127
- leadingIcon: n.leadingIcon || void 0,
128
- customComponent: n.customComponent,
129
- trailingIcon: n.trailingIcon || void 0,
130
- variant: e.disabled ? "inactive" : n.selected ? "selected" : "default"
150
+ listItem: { value: t.value, label: t.label },
151
+ subText: t.subText,
152
+ leadingIcon: t.leadingIcon || void 0,
153
+ customComponent: t.customComponent,
154
+ trailingIcon: t.trailingIcon || void 0,
155
+ variant: e.disabled ? "inactive" : t.selected ? "selected" : "default"
131
156
  },
132
- n.value
157
+ t.value
133
158
  )) })
134
159
  }
135
- ) : /* @__PURE__ */ r(c, {}),
160
+ ) : /* @__PURE__ */ r(m, {}),
136
161
  placement: "right-start",
137
162
  hideArrow: !0,
138
163
  children: /* @__PURE__ */ r(
139
- $,
164
+ G,
140
165
  {
141
- version: d,
142
- brandSelectedRow: I,
143
- style: O ? {
166
+ version: l,
167
+ brandSelectedRow: $,
168
+ style: B ? {
144
169
  borderBottom: 0,
145
- ...T,
146
- ...v ? {
147
- borderTop: `2px solid ${m.content.brand}`,
170
+ ...S,
171
+ ...y ? {
172
+ borderTop: `2px solid ${i.content.brand}`,
148
173
  opacity: 0.5
149
174
  } : {}
150
175
  } : {
151
- ...T,
152
- ...v ? {
153
- borderTop: `2px solid ${m.content.brand}`,
176
+ ...S,
177
+ ...y ? {
178
+ borderTop: `2px solid ${i.content.brand}`,
154
179
  opacity: 0.5
155
180
  } : {}
156
181
  },
157
- onClick: (n) => {
158
- n.preventDefault(), L(e);
182
+ onClick: (t) => {
183
+ t.preventDefault(), F(e);
159
184
  },
160
- onMouseOver: E,
185
+ onMouseOver: J,
161
186
  listItem: { value: e.value, label: e.label },
162
187
  subText: e.subText,
163
- "data-option-index": h,
188
+ "data-option-index": I,
164
189
  role: "option",
165
- id: `dropdown-option-${h}`,
190
+ id: `dropdown-option-${I}`,
166
191
  "aria-selected": !!e.selected,
167
- onDragOver: o ? D : void 0,
168
- onDrop: o ? B : void 0,
169
- leadingIcon: i && !(C && e.customComponent) ? /* @__PURE__ */ s(w, { children: [
170
- o && /* @__PURE__ */ r(
171
- g,
192
+ onDragOver: s ? V : void 0,
193
+ onDrop: s ? j : void 0,
194
+ leadingIcon: a && !(L && e.customComponent) ? /* @__PURE__ */ o(x, { children: [
195
+ T && /* @__PURE__ */ r(H, {}),
196
+ s && /* @__PURE__ */ r(
197
+ v,
172
198
  {
173
- onDragStart: u,
174
- onDragEnd: p
199
+ onDragStart: f,
200
+ onDragEnd: g
175
201
  }
176
202
  ),
177
203
  /* @__PURE__ */ r(
178
- k,
204
+ D,
179
205
  {
180
- size: d === "2.0" ? "SMALL" : "DEFAULT",
206
+ size: !c && l === "2.0" ? "SMALL" : "DEFAULT",
181
207
  isDisabled: e.disabled ?? !1,
182
- isChecked: !!e.selected,
183
- onValueChange: f,
184
- activeColor: b
208
+ isChecked: !!e.selected || k,
209
+ isPartiallyChecked: k,
210
+ onValueChange: () => u(!e.selected),
211
+ activeColor: w
185
212
  }
186
213
  ),
187
- /* @__PURE__ */ r(P, { children: e.leadingIcon })
188
- ] }) : o ? /* @__PURE__ */ s(Q, { children: [
214
+ /* @__PURE__ */ r(ae, { children: e.leadingIcon })
215
+ ] }) : T ? /* @__PURE__ */ o(x, { children: [
216
+ /* @__PURE__ */ r(H, {}),
217
+ e.leadingIcon
218
+ ] }) : s ? /* @__PURE__ */ o(se, { children: [
189
219
  /* @__PURE__ */ r(
190
- g,
220
+ v,
191
221
  {
192
- onDragStart: u,
193
- onDragEnd: p
222
+ onDragStart: f,
223
+ onDragEnd: g
194
224
  }
195
225
  ),
196
226
  e.leadingIcon && /* @__PURE__ */ r("div", { children: e.leadingIcon })
197
- ] }) : e.leadingIcon ? /* @__PURE__ */ r(c, { children: e.leadingIcon }) : void 0,
198
- customComponent: i && C && e.customComponent ? /* @__PURE__ */ s(w, { children: [
199
- o && /* @__PURE__ */ r(
200
- g,
227
+ ] }) : e.leadingIcon ? /* @__PURE__ */ r(m, { children: e.leadingIcon }) : void 0,
228
+ customComponent: a && L && e.customComponent ? /* @__PURE__ */ o(x, { children: [
229
+ s && /* @__PURE__ */ r(
230
+ v,
201
231
  {
202
- onDragStart: u,
203
- onDragEnd: p
232
+ onDragStart: f,
233
+ onDragEnd: g
204
234
  }
205
235
  ),
206
236
  /* @__PURE__ */ r(
207
- k,
237
+ D,
208
238
  {
209
- size: d === "2.0" ? "SMALL" : "DEFAULT",
239
+ size: l === "2.0" ? "SMALL" : "DEFAULT",
210
240
  isDisabled: e.disabled ?? !1,
211
241
  isChecked: !!e.selected,
212
- onValueChange: f,
213
- activeColor: b
242
+ onValueChange: u,
243
+ activeColor: w
214
244
  }
215
245
  ),
216
246
  e.customComponent
217
247
  ] }) : e.customComponent,
218
- trailingIcon: e.isFreeForm ? /* @__PURE__ */ r(q, { children: /* @__PURE__ */ r(_, { style: { color: m.content.secondary }, children: "Freeform" }) }) : e.children ? /* @__PURE__ */ r(U, { width: 12, height: 12 }) : e.trailingIcon ? /* @__PURE__ */ r(c, { children: e.trailingIcon }) : void 0,
219
- variant: e.disabled ? "inactive" : e.selected || !i && j ? "selected" : A ? "focused" : "default"
248
+ trailingIcon: e.isFreeForm ? /* @__PURE__ */ r(re, { children: /* @__PURE__ */ r(ee, { style: { color: i.content.secondary }, children: "Freeform" }) }) : N ? /* @__PURE__ */ o(m, { children: [
249
+ e.trailingIcon,
250
+ /* @__PURE__ */ r(
251
+ ie,
252
+ {
253
+ role: "button",
254
+ "aria-expanded": !h,
255
+ "aria-label": `${h ? "Expand" : "Collapse"} ${e.label}`,
256
+ onClick: (t) => {
257
+ t.preventDefault(), t.stopPropagation(), W?.();
258
+ },
259
+ children: h ? /* @__PURE__ */ r(P, { width: 16, height: 16 }) : /* @__PURE__ */ r(X, { width: 16, height: 16 })
260
+ }
261
+ )
262
+ ] }) : e.children && !c ? /* @__PURE__ */ r(Q, { width: 12, height: 12 }) : e.trailingIcon ? /* @__PURE__ */ r(m, { children: e.trailingIcon }) : void 0,
263
+ variant: e.disabled ? "inactive" : e.selected || !a && q ? "selected" : U ? "focused" : "default"
220
264
  }
221
265
  )
222
266
  }
@@ -224,6 +268,6 @@ const $ = t(J)`
224
268
  }
225
269
  );
226
270
  export {
227
- oe as MenuItem
271
+ ye as MenuItem
228
272
  };
229
273
  //# sourceMappingURL=MenuItem.js.map