@bikdotai/bik-component-library 0.0.861 → 0.0.862

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 (81) hide show
  1. package/README.md +4 -0
  2. package/dist/cjs/components/bik-layout/CommonStyles.js +4 -6
  3. package/dist/cjs/components/bik-layout/CommonStyles.js.map +1 -1
  4. package/dist/cjs/components/button/themes.js +3 -3
  5. package/dist/cjs/components/button/themes.js.map +1 -1
  6. package/dist/cjs/components/datePicker/DatePicker.js +1 -1
  7. package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
  8. package/dist/cjs/components/datePicker/DatePicker.styled.js +20 -14
  9. package/dist/cjs/components/datePicker/DatePicker.styled.js.map +1 -1
  10. package/dist/cjs/components/dropdown/ChipInput.js +1 -1
  11. package/dist/cjs/components/dropdown/ChipInput.js.map +1 -1
  12. package/dist/cjs/components/dropdown/Common.styled.js +6 -5
  13. package/dist/cjs/components/dropdown/Common.styled.js.map +1 -1
  14. package/dist/cjs/components/dropdown/Dropdown.js +1 -1
  15. package/dist/cjs/components/dropdown/Dropdown.js.map +1 -1
  16. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +1 -1
  17. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  18. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js +7 -6
  19. package/dist/cjs/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js.map +1 -1
  20. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +1 -1
  21. package/dist/cjs/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
  22. package/dist/cjs/components/input/Input.js +1 -1
  23. package/dist/cjs/components/input/Input.js.map +1 -1
  24. package/dist/cjs/components/input/Input.styled.js +25 -12
  25. package/dist/cjs/components/input/Input.styled.js.map +1 -1
  26. package/dist/cjs/components/tabs/Tabs.js +1 -1
  27. package/dist/cjs/components/tabs/Tabs.js.map +1 -1
  28. package/dist/cjs/components/tabs/Tabs.styles.js +22 -8
  29. package/dist/cjs/components/tabs/Tabs.styles.js.map +1 -1
  30. package/dist/cjs/components/tag/Tag.js +1 -1
  31. package/dist/cjs/components/tag/Tag.js.map +1 -1
  32. package/dist/cjs/components/tag/Tag.styled.js +4 -0
  33. package/dist/cjs/components/tag/Tag.styled.js.map +1 -1
  34. package/dist/cjs/components/tag/model.js.map +1 -1
  35. package/dist/esm/components/bik-layout/CommonStyles.js +1 -3
  36. package/dist/esm/components/bik-layout/CommonStyles.js.map +1 -1
  37. package/dist/esm/components/button/themes.js +1 -1
  38. package/dist/esm/components/button/themes.js.map +1 -1
  39. package/dist/esm/components/datePicker/DatePicker.js +22 -21
  40. package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
  41. package/dist/esm/components/datePicker/DatePicker.styled.d.ts +10 -0
  42. package/dist/esm/components/datePicker/DatePicker.styled.js +23 -16
  43. package/dist/esm/components/datePicker/DatePicker.styled.js.map +1 -1
  44. package/dist/esm/components/dropdown/ChipInput.d.ts +1 -0
  45. package/dist/esm/components/dropdown/ChipInput.js +37 -30
  46. package/dist/esm/components/dropdown/ChipInput.js.map +1 -1
  47. package/dist/esm/components/dropdown/Common.styled.js +7 -6
  48. package/dist/esm/components/dropdown/Common.styled.js.map +1 -1
  49. package/dist/esm/components/dropdown/Dropdown.d.ts +2 -0
  50. package/dist/esm/components/dropdown/Dropdown.js +96 -89
  51. package/dist/esm/components/dropdown/Dropdown.js.map +1 -1
  52. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js +186 -175
  53. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.js.map +1 -1
  54. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.d.ts +1 -1
  55. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js +16 -15
  56. package/dist/esm/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.js.map +1 -1
  57. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.d.ts +1 -0
  58. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js +19 -18
  59. package/dist/esm/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.js.map +1 -1
  60. package/dist/esm/components/dropdown/type.d.ts +4 -0
  61. package/dist/esm/components/input/Input.js +142 -138
  62. package/dist/esm/components/input/Input.js.map +1 -1
  63. package/dist/esm/components/input/Input.model.d.ts +4 -0
  64. package/dist/esm/components/input/Input.styled.d.ts +2 -0
  65. package/dist/esm/components/input/Input.styled.js +38 -25
  66. package/dist/esm/components/input/Input.styled.js.map +1 -1
  67. package/dist/esm/components/tabs/Tabs.js +105 -81
  68. package/dist/esm/components/tabs/Tabs.js.map +1 -1
  69. package/dist/esm/components/tabs/Tabs.model.d.ts +7 -0
  70. package/dist/esm/components/tabs/Tabs.styles.d.ts +2 -0
  71. package/dist/esm/components/tabs/Tabs.styles.js +23 -9
  72. package/dist/esm/components/tabs/Tabs.styles.js.map +1 -1
  73. package/dist/esm/components/tag/Tag.d.ts +1 -1
  74. package/dist/esm/components/tag/Tag.js +17 -15
  75. package/dist/esm/components/tag/Tag.js.map +1 -1
  76. package/dist/esm/components/tag/Tag.styled.d.ts +1 -0
  77. package/dist/esm/components/tag/Tag.styled.js +10 -6
  78. package/dist/esm/components/tag/Tag.styled.js.map +1 -1
  79. package/dist/esm/components/tag/model.d.ts +5 -0
  80. package/dist/esm/components/tag/model.js.map +1 -1
  81. 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\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 && <SearchBox onSearch={search} version={version} />}\n\n\t\t\t\t{showTopLevelZeroState ? (\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\theight: 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\tminHeight={heightToUse}\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","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 { 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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"}
@@ -4,5 +4,5 @@ export declare const OpennedDropdownContainer: import('styled-components').Style
4
4
  export declare const ItemContainer: import('styled-components').StyledComponent<"div", any, {}, never>;
5
5
  export declare const MenuListContainer: import('styled-components').StyledComponent<"div", any, {
6
6
  maxHeight: number | string;
7
- minHeight: number | string;
7
+ minHeight?: string | number | undefined;
8
8
  }, never>;
@@ -1,30 +1,31 @@
1
- import e from "styled-components";
2
- import { COLORS as r } from "../../../../constants/Theme.js";
3
- const d = e.div`
4
- border-radius: ${(o) => o.version === "2.0" ? 8 : 4}px;
5
- border: ${(o) => o.version === "2.0" || o.version === "3.0" ? 0 : 1}px
6
- solid ${r.stroke.primary};
7
- box-shadow: ${(o) => o.version === "3.0" ? "0px 2px 8px 0px rgba(0, 0, 0, 0.12)" : "none"};
1
+ import o from "styled-components";
2
+ import { COLORS as e } from "../../../../constants/Theme.js";
3
+ const n = o.div`
4
+ border-radius: ${(i) => i.version === "2.0" ? 8 : 4}px;
5
+ border: ${(i) => i.version === "2.0" || i.version === "3.0" ? 0 : 1}px
6
+ solid ${e.stroke.primary};
7
+ box-shadow: ${(i) => i.version === "3.0" ? "0px 2px 8px 0px rgba(0, 0, 0, 0.12)" : "none"};
8
8
  max-height: 480px;
9
9
  overflow: hidden;
10
10
  display: flex;
11
11
  flex-direction: row;
12
12
  position: relative;
13
- padding: ${(o) => o.version === "2.0" ? 4 : 0}px;
14
- background-color: ${r.surface.standard};
13
+ padding: ${(i) => i.version === "2.0" ? 4 : 0}px;
14
+ background-color: ${e.surface.standard};
15
15
  `;
16
- e.div`
16
+ o.div`
17
17
  padding: 14px 16px 14px 18px;
18
18
  flex-direction: row;
19
19
  align-items: center;
20
20
  border-bottom-width: 1px;
21
21
  border-bottom-style: solid;
22
- border-bottom-color: ${r.stroke.primary};
22
+ border-bottom-color: ${e.stroke.primary};
23
23
  width: 100%;
24
24
  height: 100%;
25
25
  `;
26
- const n = e.div`
27
- max-height: ${(o) => typeof o.maxHeight == "number" ? `${o.maxHeight}px` : o.maxHeight};
26
+ const d = o.div`
27
+ max-height: ${(i) => typeof i.maxHeight == "number" ? `${i.maxHeight}px` : i.maxHeight};
28
+ ${(i) => i.minHeight != null ? `min-height: ${typeof i.minHeight == "number" ? `${i.minHeight}px` : i.minHeight};` : ""}
28
29
  overflow-y: auto;
29
30
  position: relative;
30
31
  &::-webkit-scrollbar-thumb {
@@ -41,7 +42,7 @@ const n = e.div`
41
42
  }
42
43
  `;
43
44
  export {
44
- n as MenuListContainer,
45
- d as OpennedDropdownContainer
45
+ d as MenuListContainer,
46
+ n as OpennedDropdownContainer
46
47
  };
47
48
  //# sourceMappingURL=OpennedDropdown.styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpennedDropdown.styled.js","sources":["../../../../../../src/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS } from '@src/constants/Theme';\n\nexport const OpennedDropdownContainer = styled.div<{\n\tversion?: '1.0' | '2.0' | '3.0';\n}>`\n\tborder-radius: ${(props) => (props.version === '2.0' ? 8 : 4)}px;\n\tborder: ${(props) =>\n\t\t\tprops.version === '2.0' || props.version === '3.0' ? 0 : 1}px\n\t\tsolid ${COLORS.stroke.primary};\n\tbox-shadow: ${(props) =>\n\t\tprops.version === '3.0' ? '0px 2px 8px 0px rgba(0, 0, 0, 0.12)' : 'none'};\n\tmax-height: 480px;\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex-direction: row;\n\tposition: relative;\n\tpadding: ${(props) => (props.version === '2.0' ? 4 : 0)}px;\n\tbackground-color: ${COLORS.surface.standard};\n`;\n\nexport const ItemContainer = styled.div`\n\tpadding: 14px 16px 14px 18px;\n\tflex-direction: row;\n\talign-items: center;\n\tborder-bottom-width: 1px;\n\tborder-bottom-style: solid;\n\tborder-bottom-color: ${COLORS.stroke.primary};\n\twidth: 100%;\n\theight: 100%;\n`;\n\nexport const MenuListContainer = styled.div<{\n\tmaxHeight: number | string;\n\tminHeight: number | string;\n}>`\n\tmax-height: ${(props) =>\n\t\ttypeof props.maxHeight === 'number'\n\t\t\t? `${props.maxHeight}px`\n\t\t\t: props.maxHeight};\n\toverflow-y: auto;\n\tposition: relative;\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground: #e0e0e0;\n\t\tborder-radius: 8px;\n\t}\n\t&::-webkit-scrollbar {\n\t\theight: 5px;\n\t\tdisplay: block;\n\t\twidth: 8px;\n\t}\n\t&::-webkit-scrollbar-thumb:horizontal {\n\t\twidth: 8px;\n\t}\n`;\n"],"names":["OpennedDropdownContainer","styled","props","COLORS","MenuListContainer"],"mappings":";;AAGO,MAAMA,IAA2BC,EAAO;AAAA,kBAG7B,CAACC,MAAWA,EAAM,YAAY,QAAQ,IAAI,CAAE;AAAA,WACnD,CAACA,MACTA,EAAM,YAAY,SAASA,EAAM,YAAY,QAAQ,IAAI,CAAC;AAAA,UACnDC,EAAO,OAAO,OAAO;AAAA,eAChB,CAACD,MACdA,EAAM,YAAY,QAAQ,wCAAwC,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAM9D,CAACA,MAAWA,EAAM,YAAY,QAAQ,IAAI,CAAE;AAAA,qBACnCC,EAAO,QAAQ,QAAQ;AAAA;AAGfF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAMZE,EAAO,OAAO,OAAO;AAAA;AAAA;AAAA;AAKtC,MAAMC,IAAoBH,EAAO;AAAA,eAIzB,CAACC,MACd,OAAOA,EAAM,aAAc,WACxB,GAAGA,EAAM,SAAS,OAClBA,EAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"OpennedDropdown.styled.js","sources":["../../../../../../src/components/dropdown/OpenedDropdown/components/OpennedDropdown.styled.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { COLORS } from '@src/constants/Theme';\n\nexport const OpennedDropdownContainer = styled.div<{\n\tversion?: '1.0' | '2.0' | '3.0';\n}>`\n\tborder-radius: ${(props) => (props.version === '2.0' ? 8 : 4)}px;\n\tborder: ${(props) =>\n\t\t\tprops.version === '2.0' || props.version === '3.0' ? 0 : 1}px\n\t\tsolid ${COLORS.stroke.primary};\n\tbox-shadow: ${(props) =>\n\t\tprops.version === '3.0' ? '0px 2px 8px 0px rgba(0, 0, 0, 0.12)' : 'none'};\n\tmax-height: 480px;\n\toverflow: hidden;\n\tdisplay: flex;\n\tflex-direction: row;\n\tposition: relative;\n\tpadding: ${(props) => (props.version === '2.0' ? 4 : 0)}px;\n\tbackground-color: ${COLORS.surface.standard};\n`;\n\nexport const ItemContainer = styled.div`\n\tpadding: 14px 16px 14px 18px;\n\tflex-direction: row;\n\talign-items: center;\n\tborder-bottom-width: 1px;\n\tborder-bottom-style: solid;\n\tborder-bottom-color: ${COLORS.stroke.primary};\n\twidth: 100%;\n\theight: 100%;\n`;\n\nexport const MenuListContainer = styled.div<{\n\tmaxHeight: number | string;\n\tminHeight?: number | string;\n}>`\n\tmax-height: ${(props) =>\n\t\ttypeof props.maxHeight === 'number'\n\t\t\t? `${props.maxHeight}px`\n\t\t\t: props.maxHeight};\n\t${(props) =>\n\t\tprops.minHeight != null\n\t\t\t? `min-height: ${\n\t\t\t\t\ttypeof props.minHeight === 'number'\n\t\t\t\t\t\t? `${props.minHeight}px`\n\t\t\t\t\t\t: props.minHeight\n\t\t\t };`\n\t\t\t: ''}\n\toverflow-y: auto;\n\tposition: relative;\n\t&::-webkit-scrollbar-thumb {\n\t\tbackground: #e0e0e0;\n\t\tborder-radius: 8px;\n\t}\n\t&::-webkit-scrollbar {\n\t\theight: 5px;\n\t\tdisplay: block;\n\t\twidth: 8px;\n\t}\n\t&::-webkit-scrollbar-thumb:horizontal {\n\t\twidth: 8px;\n\t}\n`;\n"],"names":["OpennedDropdownContainer","styled","props","COLORS","MenuListContainer"],"mappings":";;AAGO,MAAMA,IAA2BC,EAAO;AAAA,kBAG7B,CAACC,MAAWA,EAAM,YAAY,QAAQ,IAAI,CAAE;AAAA,WACnD,CAACA,MACTA,EAAM,YAAY,SAASA,EAAM,YAAY,QAAQ,IAAI,CAAC;AAAA,UACnDC,EAAO,OAAO,OAAO;AAAA,eAChB,CAACD,MACdA,EAAM,YAAY,QAAQ,wCAAwC,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAM9D,CAACA,MAAWA,EAAM,YAAY,QAAQ,IAAI,CAAE;AAAA,qBACnCC,EAAO,QAAQ,QAAQ;AAAA;AAGfF,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAMZE,EAAO,OAAO,OAAO;AAAA;AAAA;AAAA;AAKtC,MAAMC,IAAoBH,EAAO;AAAA,eAIzB,CAACC,MACd,OAAOA,EAAM,aAAc,WACxB,GAAGA,EAAM,SAAS,OAClBA,EAAM,SAAS;AAAA,GACjB,CAACA,MACFA,EAAM,aAAa,OAChB,eACA,OAAOA,EAAM,aAAc,WACxB,GAAGA,EAAM,SAAS,OAClBA,EAAM,SACT,MACA,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -2,4 +2,5 @@ import { default as React } from 'react';
2
2
  export declare const SearchBox: React.FC<{
3
3
  onSearch: (searchString: string) => void;
4
4
  version?: '1.0' | '2.0' | '3.0';
5
+ placeholder?: string;
5
6
  }>;
@@ -1,15 +1,15 @@
1
- import { jsx as o, Fragment as i } from "react/jsx-runtime";
2
- import { useState as c } from "react";
3
- import { InputStyleContext as d } from "../../../../input/context/InputStyleProvider.js";
1
+ import { jsx as o, Fragment as d } from "react/jsx-runtime";
2
+ import { useState as n } from "react";
3
+ import { InputStyleContext as h } from "../../../../input/context/InputStyleProvider.js";
4
4
  import { COLORS as r } from "../../../../../constants/Theme.js";
5
- import h from "../../../../../assets/icons/cross.svg.js";
6
- import f from "../../../../../assets/icons/search.svg.js";
7
- import { Input as u } from "../../../../input/Input.js";
8
- import { IconButton as g } from "../../../../icon-button/IconButton.js";
9
- const y = ({ onSearch: e, version: t }) => {
10
- const [l, p] = c(""), [n, a] = c(!1);
5
+ import f from "../../../../../assets/icons/cross.svg.js";
6
+ import u from "../../../../../assets/icons/search.svg.js";
7
+ import { Input as g } from "../../../../input/Input.js";
8
+ import { IconButton as x } from "../../../../icon-button/IconButton.js";
9
+ const B = ({ onSearch: e, version: t, placeholder: c = "Search" }) => {
10
+ const [l, p] = n(""), [i, a] = n(!1);
11
11
  return /* @__PURE__ */ o(
12
- d.Provider,
12
+ h.Provider,
13
13
  {
14
14
  value: {
15
15
  InputWrapper: {
@@ -27,15 +27,15 @@ const y = ({ onSearch: e, version: t }) => {
27
27
  }
28
28
  },
29
29
  children: /* @__PURE__ */ o(
30
- u,
30
+ g,
31
31
  {
32
32
  noKeyDownChange: !0,
33
33
  skipFocus: !0,
34
- placeholder: "Search",
34
+ placeholder: c,
35
35
  variant: t === "2.0" || t === "3.0" ? "small" : "default",
36
36
  leftIcon: {
37
37
  icon: () => /* @__PURE__ */ o(
38
- f,
38
+ u,
39
39
  {
40
40
  width: t === "2.0" || t === "3.0" ? 18 : 24,
41
41
  height: t === "2.0" || t === "3.0" ? 18 : 24,
@@ -45,19 +45,20 @@ const y = ({ onSearch: e, version: t }) => {
45
45
  },
46
46
  rightIcon: {
47
47
  icon: () => l ? /* @__PURE__ */ o(
48
- g,
48
+ x,
49
49
  {
50
50
  onClick: () => {
51
51
  a(!0), e(""), p("");
52
52
  },
53
- Icon: h,
53
+ Icon: f,
54
54
  width: t === "2.0" || t === "3.0" ? 18 : 24,
55
55
  height: t === "2.0" || t === "3.0" ? 18 : 24,
56
+ iconPadding: 0,
56
57
  iconColor: r.content.placeholder
57
58
  }
58
- ) : /* @__PURE__ */ o(i, {})
59
+ ) : /* @__PURE__ */ o(d, {})
59
60
  },
60
- reset: n,
61
+ reset: i,
61
62
  onChangeText: (m) => {
62
63
  a(!1), p(m), e(m);
63
64
  }
@@ -67,6 +68,6 @@ const y = ({ onSearch: e, version: t }) => {
67
68
  );
68
69
  };
69
70
  export {
70
- y as SearchBox
71
+ B as SearchBox
71
72
  };
72
73
  //# sourceMappingURL=SearchBox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBox.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { IconButton } from '@src/components/icon-button';\nimport { Input } from '@src/components/input';\nimport { InputStyleContext } from '@src/components/input/context/InputStyleProvider';\nimport { COLORS } from '@src/constants/Theme';\nimport CrossIcon from '../../../../../assets/icons/cross.svg';\nimport SearchIcon from '../../../../../assets/icons/search.svg';\n\nexport const SearchBox: React.FC<{\n\tonSearch: (searchString: string) => void;\n\tversion?: '1.0' | '2.0' | '3.0';\n}> = ({ onSearch, version }) => {\n\tconst [val, setVal] = useState('');\n\tconst [reset, setReset] = useState(false);\n\n\treturn (\n\t\t<InputStyleContext.Provider\n\t\t\tvalue={{\n\t\t\t\tInputWrapper: {\n\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\tborder: 0,\n\t\t\t\t\tborderBottom: `${\n\t\t\t\t\t\tversion === '2.0' || version === '3.0' ? 0.5 : 1\n\t\t\t\t\t}px solid ${COLORS.stroke.primary}`,\n\t\t\t\t\tpadding: `${\n\t\t\t\t\t\tversion === '2.0' || version === '3.0' ? '6px 8px' : '14px 16px'\n\t\t\t\t\t}`,\n\t\t\t\t},\n\t\t\t\tIconHolder: {\n\t\t\t\t\tmarginLeft: 0,\n\t\t\t\t},\n\t\t\t\tinput: {\n\t\t\t\t\tmarginLeft: 4,\n\t\t\t\t\tminHeight: '100%',\n\t\t\t\t},\n\t\t\t}}\n\t\t>\n\t\t\t<Input\n\t\t\t\tnoKeyDownChange\n\t\t\t\tskipFocus={true}\n\t\t\t\tplaceholder=\"Search\"\n\t\t\t\tvariant={version === '2.0' || version === '3.0' ? 'small' : 'default'}\n\t\t\t\tleftIcon={{\n\t\t\t\t\ticon: () => (\n\t\t\t\t\t\t<SearchIcon\n\t\t\t\t\t\t\twidth={version === '2.0' || version === '3.0' ? 18 : 24}\n\t\t\t\t\t\t\theight={version === '2.0' || version === '3.0' ? 18 : 24}\n\t\t\t\t\t\t\tcolor={COLORS.content.placeholder}\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t\trightIcon={{\n\t\t\t\t\ticon: () =>\n\t\t\t\t\t\t!val ? (\n\t\t\t\t\t\t\t<></>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tsetReset(true);\n\t\t\t\t\t\t\t\t\tonSearch('');\n\t\t\t\t\t\t\t\t\tsetVal('');\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tIcon={CrossIcon}\n\t\t\t\t\t\t\t\twidth={version === '2.0' || version === '3.0' ? 18 : 24}\n\t\t\t\t\t\t\t\theight={version === '2.0' || version === '3.0' ? 18 : 24}\n\t\t\t\t\t\t\t\ticonColor={COLORS.content.placeholder}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t\treset={reset}\n\t\t\t\tonChangeText={(text) => {\n\t\t\t\t\tsetReset(false);\n\t\t\t\t\tsetVal(text);\n\t\t\t\t\tonSearch(text);\n\t\t\t\t}}\n\t\t\t/>\n\t\t</InputStyleContext.Provider>\n\t);\n};\n"],"names":["SearchBox","onSearch","version","val","setVal","useState","reset","setReset","jsx","InputStyleContext","COLORS","Input","SearchIcon","IconButton","CrossIcon","text"],"mappings":";;;;;;;;AAQO,MAAMA,IAGR,CAAC,EAAE,UAAAC,GAAU,SAAAC,QAAc;AAC/B,QAAM,CAACC,GAAKC,CAAM,IAAIC,EAAS,EAAE,GAC3B,CAACC,GAAOC,CAAQ,IAAIF,EAAS,EAAK;AAExC,SACC,gBAAAG;AAAA,IAACC,EAAkB;AAAA,IAAlB;AAAA,MACA,OAAO;AAAA,QACN,cAAc;AAAA,UACb,cAAc;AAAA,UACd,QAAQ;AAAA,UACR,cAAc,GACbP,MAAY,SAASA,MAAY,QAAQ,MAAM,CAChD,YAAYQ,EAAO,OAAO,OAAO;AAAA,UACjC,SAAS,GACRR,MAAY,SAASA,MAAY,QAAQ,YAAY,WACtD;AAAA,QAAA;AAAA,QAED,YAAY;AAAA,UACX,YAAY;AAAA,QAAA;AAAA,QAEb,OAAO;AAAA,UACN,YAAY;AAAA,UACZ,WAAW;AAAA,QAAA;AAAA,MACZ;AAAA,MAGD,UAAA,gBAAAM;AAAA,QAACG;AAAA,QAAA;AAAA,UACA,iBAAe;AAAA,UACf,WAAW;AAAA,UACX,aAAY;AAAA,UACZ,SAAST,MAAY,SAASA,MAAY,QAAQ,UAAU;AAAA,UAC5D,UAAU;AAAA,YACT,MAAM,MACL,gBAAAM;AAAA,cAACI;AAAAA,cAAA;AAAA,gBACA,OAAOV,MAAY,SAASA,MAAY,QAAQ,KAAK;AAAA,gBACrD,QAAQA,MAAY,SAASA,MAAY,QAAQ,KAAK;AAAA,gBACtD,OAAOQ,EAAO,QAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UACvB;AAAA,UAGF,WAAW;AAAA,YACV,MAAM,MACJP,IAGA,gBAAAK;AAAA,cAACK;AAAA,cAAA;AAAA,gBACA,SAAS,MAAM;AACd,kBAAAN,EAAS,EAAI,GACbN,EAAS,EAAE,GACXG,EAAO,EAAE;AAAA,gBACV;AAAA,gBACA,MAAMU;AAAAA,gBACN,OAAOZ,MAAY,SAASA,MAAY,QAAQ,KAAK;AAAA,gBACrD,QAAQA,MAAY,SAASA,MAAY,QAAQ,KAAK;AAAA,gBACtD,WAAWQ,EAAO,QAAQ;AAAA,cAAA;AAAA,YAAA,2BAXzB;AAAA,UAYF;AAAA,UAGH,OAAAJ;AAAA,UACA,cAAc,CAACS,MAAS;AACvB,YAAAR,EAAS,EAAK,GACdH,EAAOW,CAAI,GACXd,EAASc,CAAI;AAAA,UACd;AAAA,QAAA;AAAA,MAAA;AAAA,IACD;AAAA,EAAA;AAGH;"}
1
+ {"version":3,"file":"SearchBox.js","sources":["../../../../../../../src/components/dropdown/OpenedDropdown/components/searchbox/SearchBox.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { IconButton } from '@src/components/icon-button';\nimport { Input } from '@src/components/input';\nimport { InputStyleContext } from '@src/components/input/context/InputStyleProvider';\nimport { COLORS } from '@src/constants/Theme';\nimport CrossIcon from '../../../../../assets/icons/cross.svg';\nimport SearchIcon from '../../../../../assets/icons/search.svg';\n\nexport const SearchBox: React.FC<{\n\tonSearch: (searchString: string) => void;\n\tversion?: '1.0' | '2.0' | '3.0';\n\tplaceholder?: string;\n}> = ({ onSearch, version, placeholder = 'Search' }) => {\n\tconst [val, setVal] = useState('');\n\tconst [reset, setReset] = useState(false);\n\n\treturn (\n\t\t<InputStyleContext.Provider\n\t\t\tvalue={{\n\t\t\t\tInputWrapper: {\n\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\tborder: 0,\n\t\t\t\t\tborderBottom: `${\n\t\t\t\t\t\tversion === '2.0' || version === '3.0' ? 0.5 : 1\n\t\t\t\t\t}px solid ${COLORS.stroke.primary}`,\n\t\t\t\t\tpadding: `${\n\t\t\t\t\t\tversion === '2.0' || version === '3.0' ? '6px 8px' : '14px 16px'\n\t\t\t\t\t}`,\n\t\t\t\t},\n\t\t\t\tIconHolder: {\n\t\t\t\t\tmarginLeft: 0,\n\t\t\t\t},\n\t\t\t\tinput: {\n\t\t\t\t\tmarginLeft: 4,\n\t\t\t\t\tminHeight: '100%',\n\t\t\t\t},\n\t\t\t}}\n\t\t>\n\t\t\t<Input\n\t\t\t\tnoKeyDownChange\n\t\t\t\tskipFocus={true}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tvariant={version === '2.0' || version === '3.0' ? 'small' : 'default'}\n\t\t\t\tleftIcon={{\n\t\t\t\t\ticon: () => (\n\t\t\t\t\t\t<SearchIcon\n\t\t\t\t\t\t\twidth={version === '2.0' || version === '3.0' ? 18 : 24}\n\t\t\t\t\t\t\theight={version === '2.0' || version === '3.0' ? 18 : 24}\n\t\t\t\t\t\t\tcolor={COLORS.content.placeholder}\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t\trightIcon={{\n\t\t\t\t\ticon: () =>\n\t\t\t\t\t\t!val ? (\n\t\t\t\t\t\t\t<></>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tsetReset(true);\n\t\t\t\t\t\t\t\t\tonSearch('');\n\t\t\t\t\t\t\t\t\tsetVal('');\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tIcon={CrossIcon}\n\t\t\t\t\t\t\t\twidth={version === '2.0' || version === '3.0' ? 18 : 24}\n\t\t\t\t\t\t\t\theight={version === '2.0' || version === '3.0' ? 18 : 24}\n\t\t\t\t\t\t\t\ticonPadding={0}\n\t\t\t\t\t\t\t\ticonColor={COLORS.content.placeholder}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t),\n\t\t\t\t}}\n\t\t\t\treset={reset}\n\t\t\t\tonChangeText={(text) => {\n\t\t\t\t\tsetReset(false);\n\t\t\t\t\tsetVal(text);\n\t\t\t\t\tonSearch(text);\n\t\t\t\t}}\n\t\t\t/>\n\t\t</InputStyleContext.Provider>\n\t);\n};\n"],"names":["SearchBox","onSearch","version","placeholder","val","setVal","useState","reset","setReset","jsx","InputStyleContext","COLORS","Input","SearchIcon","IconButton","CrossIcon","text"],"mappings":";;;;;;;;AAQO,MAAMA,IAIR,CAAC,EAAE,UAAAC,GAAU,SAAAC,GAAS,aAAAC,IAAc,eAAe;AACvD,QAAM,CAACC,GAAKC,CAAM,IAAIC,EAAS,EAAE,GAC3B,CAACC,GAAOC,CAAQ,IAAIF,EAAS,EAAK;AAExC,SACC,gBAAAG;AAAA,IAACC,EAAkB;AAAA,IAAlB;AAAA,MACA,OAAO;AAAA,QACN,cAAc;AAAA,UACb,cAAc;AAAA,UACd,QAAQ;AAAA,UACR,cAAc,GACbR,MAAY,SAASA,MAAY,QAAQ,MAAM,CAChD,YAAYS,EAAO,OAAO,OAAO;AAAA,UACjC,SAAS,GACRT,MAAY,SAASA,MAAY,QAAQ,YAAY,WACtD;AAAA,QAAA;AAAA,QAED,YAAY;AAAA,UACX,YAAY;AAAA,QAAA;AAAA,QAEb,OAAO;AAAA,UACN,YAAY;AAAA,UACZ,WAAW;AAAA,QAAA;AAAA,MACZ;AAAA,MAGD,UAAA,gBAAAO;AAAA,QAACG;AAAA,QAAA;AAAA,UACA,iBAAe;AAAA,UACf,WAAW;AAAA,UACX,aAAAT;AAAA,UACA,SAASD,MAAY,SAASA,MAAY,QAAQ,UAAU;AAAA,UAC5D,UAAU;AAAA,YACT,MAAM,MACL,gBAAAO;AAAA,cAACI;AAAAA,cAAA;AAAA,gBACA,OAAOX,MAAY,SAASA,MAAY,QAAQ,KAAK;AAAA,gBACrD,QAAQA,MAAY,SAASA,MAAY,QAAQ,KAAK;AAAA,gBACtD,OAAOS,EAAO,QAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UACvB;AAAA,UAGF,WAAW;AAAA,YACV,MAAM,MACJP,IAGA,gBAAAK;AAAA,cAACK;AAAA,cAAA;AAAA,gBACA,SAAS,MAAM;AACd,kBAAAN,EAAS,EAAI,GACbP,EAAS,EAAE,GACXI,EAAO,EAAE;AAAA,gBACV;AAAA,gBACA,MAAMU;AAAAA,gBACN,OAAOb,MAAY,SAASA,MAAY,QAAQ,KAAK;AAAA,gBACrD,QAAQA,MAAY,SAASA,MAAY,QAAQ,KAAK;AAAA,gBACtD,aAAa;AAAA,gBACb,WAAWS,EAAO,QAAQ;AAAA,cAAA;AAAA,YAAA,2BAZzB;AAAA,UAaF;AAAA,UAGH,OAAAJ;AAAA,UACA,cAAc,CAACS,MAAS;AACvB,YAAAR,EAAS,EAAK,GACdH,EAAOW,CAAI,GACXf,EAASe,CAAI;AAAA,UACd;AAAA,QAAA;AAAA,MAAA;AAAA,IACD;AAAA,EAAA;AAGH;"}
@@ -4,6 +4,10 @@ export interface OpenDropdownProps {
4
4
  defaultOptions?: DropdownOption[];
5
5
  options: DropdownOption[];
6
6
  isSearchable?: boolean;
7
+ /** Placeholder for the search input when isSearchable is set. Defaults to 'Search'. */
8
+ searchPlaceholder?: string;
9
+ /** Keeps the options area at a fixed height across loading, zero and filtered states. */
10
+ staticMenuHeight?: boolean;
7
11
  error?: string;
8
12
  isMultiSelect?: boolean;
9
13
  maxSelections?: number;