@ultraviolet/ui 3.0.0-beta.27 → 3.0.0-beta.28

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 (319) hide show
  1. package/dist/components/ActionBar/index.js +19 -7
  2. package/dist/components/Alert/index.d.ts +2 -1
  3. package/dist/components/Alert/index.js +98 -20
  4. package/dist/components/Alert/styles.css.d.ts +10 -1
  5. package/dist/components/Alert/styles.css.js +7 -5
  6. package/dist/components/Avatar/index.d.ts +1 -1
  7. package/dist/components/Avatar/index.js +46 -36
  8. package/dist/components/Badge/index.d.ts +1 -1
  9. package/dist/components/Badge/index.js +19 -8
  10. package/dist/components/Banner/index.d.ts +1 -1
  11. package/dist/components/Banner/index.js +87 -28
  12. package/dist/components/BarChart/Tooltip.d.ts +1 -1
  13. package/dist/components/BarChart/Tooltip.js +23 -10
  14. package/dist/components/BarChart/index.d.ts +1 -1
  15. package/dist/components/BarChart/index.js +51 -31
  16. package/dist/components/BarStack/index.d.ts +1 -1
  17. package/dist/components/BarStack/index.js +64 -19
  18. package/dist/components/Breadcrumbs/components/Item.d.ts +1 -1
  19. package/dist/components/Breadcrumbs/components/Item.js +48 -12
  20. package/dist/components/Breadcrumbs/index.js +11 -2
  21. package/dist/components/Bullet/index.d.ts +1 -1
  22. package/dist/components/Bullet/index.js +10 -7
  23. package/dist/components/Button/index.js +122 -72
  24. package/dist/components/Card/index.js +80 -20
  25. package/dist/components/Carousel/index.d.ts +3 -3
  26. package/dist/components/Carousel/index.js +72 -26
  27. package/dist/components/Checkbox/index.js +139 -43
  28. package/dist/components/CheckboxGroup/index.d.ts +3 -3
  29. package/dist/components/CheckboxGroup/index.js +77 -24
  30. package/dist/components/Chip/ChipIcon.d.ts +1 -1
  31. package/dist/components/Chip/ChipIcon.js +46 -12
  32. package/dist/components/Chip/index.d.ts +3 -3
  33. package/dist/components/Chip/index.js +36 -11
  34. package/dist/components/CopyButton/index.d.ts +1 -1
  35. package/dist/components/CopyButton/index.js +23 -8
  36. package/dist/components/DateInput/components/CalendarContent.d.ts +1 -1
  37. package/dist/components/DateInput/components/CalendarContent.js +61 -26
  38. package/dist/components/DateInput/components/CalendarDaily.d.ts +1 -1
  39. package/dist/components/DateInput/components/CalendarDaily.js +105 -62
  40. package/dist/components/DateInput/components/CalendarMonthly.d.ts +1 -1
  41. package/dist/components/DateInput/components/CalendarMonthly.js +62 -39
  42. package/dist/components/DateInput/components/Popup.d.ts +1 -1
  43. package/dist/components/DateInput/components/Popup.js +27 -4
  44. package/dist/components/DateInput/helpers.js +9 -2
  45. package/dist/components/DateInput/helpersLocale.js +3 -9
  46. package/dist/components/DateInput/index.d.ts +1 -1
  47. package/dist/components/DateInput/index.js +193 -62
  48. package/dist/components/Dialog/Context.js +3 -1
  49. package/dist/components/Dialog/components/Button.d.ts +1 -1
  50. package/dist/components/Dialog/components/Button.js +12 -2
  51. package/dist/components/Dialog/components/Buttons.d.ts +1 -1
  52. package/dist/components/Dialog/components/Buttons.js +1 -1
  53. package/dist/components/Dialog/components/CancelButton.d.ts +1 -1
  54. package/dist/components/Dialog/components/CancelButton.js +12 -2
  55. package/dist/components/Dialog/components/Stack.d.ts +1 -1
  56. package/dist/components/Dialog/components/Stack.js +2 -5
  57. package/dist/components/Dialog/components/Text.d.ts +1 -1
  58. package/dist/components/Dialog/components/Text.js +2 -5
  59. package/dist/components/Dialog/index.d.ts +7 -7
  60. package/dist/components/Dialog/index.js +43 -12
  61. package/dist/components/Drawer/index.d.ts +4 -4
  62. package/dist/components/Drawer/index.js +53 -15
  63. package/dist/components/EmptyState/index.d.ts +1 -1
  64. package/dist/components/EmptyState/index.js +63 -21
  65. package/dist/components/Expandable/index.d.ts +2 -2
  66. package/dist/components/Expandable/index.js +52 -15
  67. package/dist/components/ExpandableCard/components/Title.d.ts +1 -1
  68. package/dist/components/ExpandableCard/components/Title.js +12 -2
  69. package/dist/components/ExpandableCard/index.d.ts +1 -1
  70. package/dist/components/ExpandableCard/index.js +197 -96
  71. package/dist/components/GlobalAlert/GlobalAlertLink.d.ts +1 -1
  72. package/dist/components/GlobalAlert/GlobalAlertLink.js +21 -5
  73. package/dist/components/GlobalAlert/index.d.ts +2 -2
  74. package/dist/components/GlobalAlert/index.js +51 -11
  75. package/dist/components/InfiniteScroll/index.d.ts +1 -1
  76. package/dist/components/InfiniteScroll/index.js +40 -33
  77. package/dist/components/Key/index.d.ts +1 -1
  78. package/dist/components/Key/index.js +29 -8
  79. package/dist/components/Label/index.d.ts +1 -1
  80. package/dist/components/Label/index.js +67 -6
  81. package/dist/components/LineChart/CustomLegend.d.ts +1 -1
  82. package/dist/components/LineChart/CustomLegend.js +69 -45
  83. package/dist/components/LineChart/Tooltip.d.ts +1 -1
  84. package/dist/components/LineChart/Tooltip.js +31 -9
  85. package/dist/components/LineChart/helpers.js +13 -12
  86. package/dist/components/LineChart/index.d.ts +1 -1
  87. package/dist/components/LineChart/index.js +56 -40
  88. package/dist/components/Link/index.js +74 -57
  89. package/dist/components/List/Cell.js +24 -22
  90. package/dist/components/List/ColumnProvider.d.ts +1 -1
  91. package/dist/components/List/ColumnProvider.js +12 -6
  92. package/dist/components/List/HeaderCell.d.ts +1 -1
  93. package/dist/components/List/HeaderCell.js +36 -19
  94. package/dist/components/List/HeaderRow.d.ts +1 -1
  95. package/dist/components/List/HeaderRow.js +14 -12
  96. package/dist/components/List/ListContext.d.ts +1 -1
  97. package/dist/components/List/ListContext.js +128 -78
  98. package/dist/components/List/Row.js +166 -90
  99. package/dist/components/List/SelectBar.d.ts +1 -1
  100. package/dist/components/List/SelectBar.js +20 -10
  101. package/dist/components/List/SkeletonRows.d.ts +1 -1
  102. package/dist/components/List/SkeletonRows.js +26 -16
  103. package/dist/components/List/index.d.ts +1 -1
  104. package/dist/components/List/index.js +60 -22
  105. package/dist/components/Loader/index.d.ts +1 -1
  106. package/dist/components/Loader/index.js +47 -23
  107. package/dist/components/Menu/MenuContent.d.ts +1 -1
  108. package/dist/components/Menu/MenuContent.js +216 -162
  109. package/dist/components/Menu/MenuProvider.d.ts +1 -1
  110. package/dist/components/Menu/MenuProvider.js +26 -13
  111. package/dist/components/Menu/components/Group.d.ts +1 -1
  112. package/dist/components/Menu/components/Group.js +11 -2
  113. package/dist/components/Menu/components/Item.js +144 -82
  114. package/dist/components/Menu/helpers.js +3 -1
  115. package/dist/components/Menu/index.d.ts +2 -2
  116. package/dist/components/Menu/index.js +5 -11
  117. package/dist/components/Menu/types.d.ts +2 -2
  118. package/dist/components/Meter/index.d.ts +1 -1
  119. package/dist/components/Meter/index.js +43 -12
  120. package/dist/components/Modal/ModalContent.d.ts +1 -1
  121. package/dist/components/Modal/ModalContent.js +41 -11
  122. package/dist/components/Modal/ModalProvider.d.ts +1 -1
  123. package/dist/components/Modal/ModalProvider.js +14 -11
  124. package/dist/components/Modal/components/Dialog.js +91 -47
  125. package/dist/components/Modal/index.d.ts +1 -1
  126. package/dist/components/Modal/index.js +60 -3
  127. package/dist/components/Notice/index.d.ts +1 -1
  128. package/dist/components/Notice/index.js +24 -5
  129. package/dist/components/Notification/Notification.js +12 -2
  130. package/dist/components/Notification/NotificationContainer.d.ts +1 -1
  131. package/dist/components/Notification/NotificationContainer.js +18 -2
  132. package/dist/components/NumberInput/index.d.ts +1 -1
  133. package/dist/components/NumberInput/index.js +239 -130
  134. package/dist/components/Pagination/PaginationButtons.d.ts +1 -1
  135. package/dist/components/Pagination/PaginationButtons.js +75 -10
  136. package/dist/components/Pagination/PerPage.d.ts +1 -1
  137. package/dist/components/Pagination/PerPage.js +32 -17
  138. package/dist/components/Pagination/getPageNumbers.js +12 -13
  139. package/dist/components/Pagination/index.d.ts +1 -1
  140. package/dist/components/Pagination/index.js +26 -3
  141. package/dist/components/PasswordCheck/index.d.ts +1 -1
  142. package/dist/components/PasswordCheck/index.js +27 -5
  143. package/dist/components/PieChart/Legends.d.ts +1 -1
  144. package/dist/components/PieChart/Legends.js +52 -20
  145. package/dist/components/PieChart/Tooltip.d.ts +1 -1
  146. package/dist/components/PieChart/Tooltip.js +2 -4
  147. package/dist/components/PieChart/index.d.ts +1 -1
  148. package/dist/components/PieChart/index.js +80 -40
  149. package/dist/components/Popover/index.js +104 -46
  150. package/dist/components/Popup/helpers.d.ts +5 -1
  151. package/dist/components/Popup/helpers.js +49 -35
  152. package/dist/components/Popup/index.js +344 -254
  153. package/dist/components/Popup/styles.css.js +0 -1
  154. package/dist/components/Popup/variables.css.js +1 -0
  155. package/dist/components/ProgressBar/index.d.ts +1 -1
  156. package/dist/components/ProgressBar/index.js +74 -20
  157. package/dist/components/ProgressBar/styles.css.js +1 -0
  158. package/dist/components/ProgressBar/variables.css.js +0 -1
  159. package/dist/components/Radio/index.js +83 -51
  160. package/dist/components/RadioGroup/index.d.ts +2 -2
  161. package/dist/components/RadioGroup/index.js +74 -20
  162. package/dist/components/Row/index.d.ts +1 -1
  163. package/dist/components/Row/index.js +38 -27
  164. package/dist/components/SearchInput/KeyGroup.d.ts +1 -1
  165. package/dist/components/SearchInput/KeyGroup.js +2 -6
  166. package/dist/components/SearchInput/index.js +232 -164
  167. package/dist/components/SelectInput/SelectInputProvider.d.ts +1 -1
  168. package/dist/components/SelectInput/SelectInputProvider.js +91 -55
  169. package/dist/components/SelectInput/components/Dropdown.d.ts +1 -1
  170. package/dist/components/SelectInput/components/Dropdown.js +408 -95
  171. package/dist/components/SelectInput/components/DropdownOption.d.ts +1 -1
  172. package/dist/components/SelectInput/components/DropdownOption.js +176 -27
  173. package/dist/components/SelectInput/components/SearchBarDropdown.d.ts +1 -1
  174. package/dist/components/SelectInput/components/SearchBarDropdown.js +40 -14
  175. package/dist/components/SelectInput/components/SelectBar.d.ts +1 -1
  176. package/dist/components/SelectInput/components/SelectBar.js +252 -97
  177. package/dist/components/SelectInput/index.d.ts +1 -1
  178. package/dist/components/SelectInput/index.js +102 -10
  179. package/dist/components/SelectableCard/index.js +200 -114
  180. package/dist/components/SelectableCardGroup/index.d.ts +2 -2
  181. package/dist/components/SelectableCardGroup/index.js +67 -25
  182. package/dist/components/SelectableCardOptionGroup/Provider.js +3 -1
  183. package/dist/components/SelectableCardOptionGroup/components/Image.d.ts +1 -1
  184. package/dist/components/SelectableCardOptionGroup/components/Image.js +12 -8
  185. package/dist/components/SelectableCardOptionGroup/components/Option.d.ts +1 -1
  186. package/dist/components/SelectableCardOptionGroup/components/Option.js +96 -19
  187. package/dist/components/SelectableCardOptionGroup/index.d.ts +2 -2
  188. package/dist/components/SelectableCardOptionGroup/index.js +53 -17
  189. package/dist/components/Separator/index.d.ts +1 -1
  190. package/dist/components/Separator/index.js +43 -26
  191. package/dist/components/Skeleton/Block.d.ts +1 -1
  192. package/dist/components/Skeleton/Block.js +2 -6
  193. package/dist/components/Skeleton/Blocks.d.ts +1 -1
  194. package/dist/components/Skeleton/Blocks.js +14 -9
  195. package/dist/components/Skeleton/BoxWithIcon.d.ts +1 -1
  196. package/dist/components/Skeleton/BoxWithIcon.js +14 -9
  197. package/dist/components/Skeleton/Donut.d.ts +1 -1
  198. package/dist/components/Skeleton/Donut.js +10 -2
  199. package/dist/components/Skeleton/IconSkeleton.d.ts +1 -1
  200. package/dist/components/Skeleton/IconSkeleton.js +1 -1
  201. package/dist/components/Skeleton/Line.d.ts +1 -1
  202. package/dist/components/Skeleton/Line.js +10 -4
  203. package/dist/components/Skeleton/List.d.ts +1 -1
  204. package/dist/components/Skeleton/List.js +3 -9
  205. package/dist/components/Skeleton/Slider.d.ts +1 -1
  206. package/dist/components/Skeleton/Slider.js +11 -8
  207. package/dist/components/Skeleton/Square.d.ts +1 -1
  208. package/dist/components/Skeleton/Square.js +1 -1
  209. package/dist/components/Skeleton/index.d.ts +9 -9
  210. package/dist/components/Skeleton/index.js +16 -5
  211. package/dist/components/Slider/components/DoubleSlider.d.ts +1 -1
  212. package/dist/components/Slider/components/DoubleSlider.js +191 -88
  213. package/dist/components/Slider/components/Options.d.ts +1 -1
  214. package/dist/components/Slider/components/Options.js +44 -28
  215. package/dist/components/Slider/components/SingleSlider.d.ts +1 -1
  216. package/dist/components/Slider/components/SingleSlider.js +133 -53
  217. package/dist/components/Slider/index.d.ts +1 -1
  218. package/dist/components/Slider/index.js +82 -12
  219. package/dist/components/Snippet/index.d.ts +1 -1
  220. package/dist/components/Snippet/index.js +103 -19
  221. package/dist/components/Stack/index.d.ts +1 -1
  222. package/dist/components/Stack/index.js +20 -24
  223. package/dist/components/Status/index.d.ts +1 -1
  224. package/dist/components/Status/index.js +13 -11
  225. package/dist/components/StepList/index.d.ts +2 -2
  226. package/dist/components/StepList/index.js +31 -10
  227. package/dist/components/Stepper/Step.d.ts +1 -1
  228. package/dist/components/Stepper/Step.js +65 -30
  229. package/dist/components/Stepper/StepperProvider.d.ts +1 -1
  230. package/dist/components/Stepper/StepperProvider.js +13 -10
  231. package/dist/components/Stepper/index.d.ts +2 -2
  232. package/dist/components/Stepper/index.js +46 -26
  233. package/dist/components/SwitchButton/FocusOverlay.d.ts +1 -1
  234. package/dist/components/SwitchButton/FocusOverlay.js +11 -5
  235. package/dist/components/SwitchButton/Option.d.ts +1 -1
  236. package/dist/components/SwitchButton/Option.js +20 -2
  237. package/dist/components/SwitchButton/index.d.ts +2 -2
  238. package/dist/components/SwitchButton/index.js +95 -48
  239. package/dist/components/Table/Body.d.ts +1 -1
  240. package/dist/components/Table/Body.js +2 -4
  241. package/dist/components/Table/Cell.d.ts +1 -1
  242. package/dist/components/Table/Cell.js +20 -17
  243. package/dist/components/Table/Header.d.ts +1 -1
  244. package/dist/components/Table/Header.js +2 -4
  245. package/dist/components/Table/HeaderCell.d.ts +1 -1
  246. package/dist/components/Table/HeaderCell.js +46 -22
  247. package/dist/components/Table/HeaderRow.d.ts +1 -1
  248. package/dist/components/Table/HeaderRow.js +21 -12
  249. package/dist/components/Table/Row.d.ts +1 -1
  250. package/dist/components/Table/Row.js +70 -14
  251. package/dist/components/Table/SelectBar.d.ts +1 -1
  252. package/dist/components/Table/SelectBar.js +20 -10
  253. package/dist/components/Table/SkeletonRows.d.ts +1 -1
  254. package/dist/components/Table/SkeletonRows.js +17 -16
  255. package/dist/components/Table/TableContext.d.ts +1 -1
  256. package/dist/components/Table/TableContext.js +22 -13
  257. package/dist/components/Table/index.d.ts +6 -6
  258. package/dist/components/Table/index.js +64 -23
  259. package/dist/components/Tabs/Tab.js +79 -41
  260. package/dist/components/Tabs/TabMenu.js +39 -23
  261. package/dist/components/Tabs/TabMenuItem.d.ts +1 -1
  262. package/dist/components/Tabs/TabMenuItem.js +20 -11
  263. package/dist/components/Tabs/TabsContext.js +3 -1
  264. package/dist/components/Tabs/index.d.ts +3 -3
  265. package/dist/components/Tabs/index.js +34 -14
  266. package/dist/components/Tag/index.d.ts +1 -1
  267. package/dist/components/Tag/index.js +45 -12
  268. package/dist/components/TagInput/index.d.ts +1 -1
  269. package/dist/components/TagInput/index.js +131 -52
  270. package/dist/components/TagInput/styles.css.d.ts +3 -0
  271. package/dist/components/TagList/index.d.ts +1 -1
  272. package/dist/components/TagList/index.js +132 -59
  273. package/dist/components/Text/index.d.ts +1 -1
  274. package/dist/components/Text/index.js +21 -17
  275. package/dist/components/Text/style.css.js +0 -1
  276. package/dist/components/Text/variables.css.js +1 -0
  277. package/dist/components/TextArea/index.js +178 -103
  278. package/dist/components/TextInput/index.d.ts +1 -1
  279. package/dist/components/TextInput/index.js +286 -106
  280. package/dist/components/TimeInput/constants.js +1 -5
  281. package/dist/components/TimeInput/index.d.ts +1 -1
  282. package/dist/components/TimeInput/index.js +207 -118
  283. package/dist/components/Toaster/Toaster.js +1 -1
  284. package/dist/components/Toaster/ToasterContainer.d.ts +1 -1
  285. package/dist/components/Toaster/ToasterContainer.js +21 -2
  286. package/dist/components/Toaster/components/Button.d.ts +1 -1
  287. package/dist/components/Toaster/components/CloseButton.d.ts +1 -1
  288. package/dist/components/Toaster/components/CloseButton.js +12 -2
  289. package/dist/components/Toaster/components/Content.d.ts +1 -1
  290. package/dist/components/Toaster/components/Content.js +2 -4
  291. package/dist/components/Toaster/components/Link.d.ts +1 -1
  292. package/dist/components/Toaster/index.d.ts +2 -2
  293. package/dist/components/Toggle/index.js +101 -40
  294. package/dist/components/ToggleGroup/index.d.ts +3 -3
  295. package/dist/components/ToggleGroup/index.js +61 -22
  296. package/dist/components/Tooltip/index.js +42 -19
  297. package/dist/components/TreeMapChart/Tooltip.d.ts +1 -1
  298. package/dist/components/TreeMapChart/Tooltip.js +1 -1
  299. package/dist/components/TreeMapChart/index.d.ts +1 -1
  300. package/dist/components/TreeMapChart/index.js +33 -27
  301. package/dist/components/UnitInput/index.d.ts +1 -1
  302. package/dist/components/UnitInput/index.js +110 -29
  303. package/dist/components/VerificationCode/index.d.ts +1 -1
  304. package/dist/components/VerificationCode/index.js +80 -21
  305. package/dist/helpers/legend.js +4 -4
  306. package/dist/helpers/treeMap.d.ts +2 -1
  307. package/dist/index.d.ts +1 -1
  308. package/dist/index.js +2 -4
  309. package/dist/theme/ThemeProvider.d.ts +1 -1
  310. package/dist/theme/ThemeProvider.js +4 -2
  311. package/dist/theme/index.js +1 -8
  312. package/dist/ui.css +1 -1
  313. package/dist/utils/ids.js +1 -3
  314. package/dist/utils/index.d.ts +1 -1
  315. package/dist/utils/responsive/index.d.ts +0 -1
  316. package/dist/utils/responsive/style.css.d.ts +3 -0
  317. package/package.json +2 -7
  318. package/dist/utils/responsive/Breakpoint.d.ts +0 -9
  319. package/dist/utils/responsive/Breakpoint.js +0 -14
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { jsx, jsxs, Fragment } from "@emotion/react/jsx-runtime";
2
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
3
  import { useTheme } from "@ultraviolet/themes";
4
4
  import { useState, useRef, useContext, useEffect, useCallback, useMemo } from "react";
5
5
  import { Checkbox } from "../../Checkbox/index.js";
@@ -14,9 +14,22 @@ import { DisplayOption } from "./DropdownOption.js";
14
14
  import { footer, dropdown, dropdownEmptyState, dropdownContainer, dropdownItem, dropdownCheckbox, dropdownGroupWrapper, dropdownGroupSelectable, dropdownGroup, dropdownLoadMore, dropdownContainerUnGrouped } from "./dropdown.css.js";
15
15
  import { SearchBarDropdown } from "./SearchBarDropdown.js";
16
16
  const DROPDOWN_MAX_HEIGHT = 256;
17
- const NON_SEARCHABLE_KEYS = ["Tab", " ", "Enter", "CapsLock", "Shift", "ArrowDown", "ArrowUp", "ArrowLeft", "ArrowRight", "Escape"];
17
+ const NON_SEARCHABLE_KEYS = [
18
+ "Tab",
19
+ " ",
20
+ "Enter",
21
+ "CapsLock",
22
+ "Shift",
23
+ "ArrowDown",
24
+ "ArrowUp",
25
+ "ArrowLeft",
26
+ "ArrowRight",
27
+ "Escape"
28
+ ];
18
29
  const moveFocusDown = () => {
19
- const options = document.querySelectorAll('#items > div[role="option"]:not([disabled])');
30
+ const options = document.querySelectorAll(
31
+ '#items > div[role="option"]:not([disabled])'
32
+ );
20
33
  const activeItem = document.activeElement;
21
34
  if (options) {
22
35
  for (let i = 0; i < options?.length; i += 1) {
@@ -28,7 +41,9 @@ const moveFocusDown = () => {
28
41
  }
29
42
  };
30
43
  const moveFocusUp = () => {
31
- const options = document.querySelectorAll('#items > div[role="option"]:not([disabled])');
44
+ const options = document.querySelectorAll(
45
+ '#items > div[role="option"]:not([disabled])'
46
+ );
32
47
  const activeItem = document.activeElement;
33
48
  if (options) {
34
49
  for (let i = 0; i < options.length; i += 1) {
@@ -57,11 +72,11 @@ const handleKeyDown = (event, ref, options, searchBarActive, setSearch, setDefau
57
72
  setSearch(currentSearch);
58
73
  ref.current.focus();
59
74
  if (!Array.isArray(options)) {
60
- const closestOptions = {
61
- ...options
62
- };
75
+ const closestOptions = { ...options };
63
76
  Object.keys(closestOptions).map((group) => {
64
- closestOptions[group] = closestOptions[group].filter((option) => option.searchText ? option.searchText.toLocaleLowerCase().startsWith(currentSearch) : option.value.toLocaleLowerCase().startsWith(currentSearch));
77
+ closestOptions[group] = closestOptions[group].filter(
78
+ (option) => option.searchText ? option.searchText.toLocaleLowerCase().startsWith(currentSearch) : option.value.toLocaleLowerCase().startsWith(currentSearch)
79
+ );
65
80
  return null;
66
81
  });
67
82
  const closestOption = closestOptions[Object.keys(closestOptions)[0]][0];
@@ -71,7 +86,9 @@ const handleKeyDown = (event, ref, options, searchBarActive, setSearch, setDefau
71
86
  setDefaultSearch(null);
72
87
  }
73
88
  } else {
74
- const closestOption = [...options].find((option) => option.searchText ? option.searchText.toLocaleLowerCase().startsWith(currentSearch) : option.value.toLocaleLowerCase().startsWith(currentSearch));
89
+ const closestOption = [...options].find(
90
+ (option) => option.searchText ? option.searchText.toLocaleLowerCase().startsWith(currentSearch) : option.value.toLocaleLowerCase().startsWith(currentSearch)
91
+ );
75
92
  if (closestOption) {
76
93
  setDefaultSearch(closestOption.searchText ?? closestOption.value);
77
94
  } else {
@@ -110,14 +127,14 @@ const CreateDropdown = ({
110
127
  return /* @__PURE__ */ jsx(Stack, { alignItems: "center", className: dropdownEmptyState, gap: 2, children: emptyState ?? /* @__PURE__ */ jsx(Text, { as: "p", variant: "bodyStrong", children: "No options" }) });
111
128
  }
112
129
  const handleClick = (clickedOption, group) => {
113
- setSelectedData({
114
- clickedOption,
115
- group,
116
- type: "selectOption"
117
- });
130
+ setSelectedData({ clickedOption, group, type: "selectOption" });
118
131
  if (multiselect) {
119
132
  if (selectedData.selectedValues.includes(clickedOption.value)) {
120
- onChange?.(selectedData.selectedValues.filter((val) => val !== clickedOption.value));
133
+ onChange?.(
134
+ selectedData.selectedValues.filter(
135
+ (val) => val !== clickedOption.value
136
+ )
137
+ );
121
138
  } else {
122
139
  onChange?.([...selectedData.selectedValues, clickedOption.value]);
123
140
  }
@@ -128,20 +145,20 @@ const CreateDropdown = ({
128
145
  };
129
146
  const selectAllOptions = () => {
130
147
  if (multiselect) {
131
- setSelectedData({
132
- type: "selectAll"
133
- });
148
+ setSelectedData({ type: "selectAll" });
134
149
  if (selectedData.allSelected && onChange) {
135
150
  onChange([]);
136
151
  } else {
137
152
  const allValues = [];
138
153
  if (!Array.isArray(options)) {
139
- Object.keys(options).map((group) => options[group].map((option) => {
140
- if (!option.disabled) {
141
- allValues.push(option);
142
- }
143
- return null;
144
- }));
154
+ Object.keys(options).map(
155
+ (group) => options[group].map((option) => {
156
+ if (!option.disabled) {
157
+ allValues.push(option);
158
+ }
159
+ return null;
160
+ })
161
+ );
145
162
  } else {
146
163
  options.map((option) => allValues.push(option));
147
164
  }
@@ -151,75 +168,300 @@ const CreateDropdown = ({
151
168
  };
152
169
  const handleSelectGroup = (group) => {
153
170
  if (multiselect) {
154
- setSelectedData({
155
- selectedGroup: group,
156
- type: "selectGroup"
157
- });
171
+ setSelectedData({ selectedGroup: group, type: "selectGroup" });
158
172
  if (!Array.isArray(options)) {
159
173
  if (selectedData.selectedGroups.includes(group)) {
160
- const newSelectedValues = [...selectedData.selectedValues].filter((selectedValue) => !options[group].find((option) => option.value === selectedValue));
174
+ const newSelectedValues = [...selectedData.selectedValues].filter(
175
+ (selectedValue) => !options[group].find((option) => option.value === selectedValue)
176
+ );
161
177
  onChange?.(newSelectedValues);
162
178
  } else {
163
179
  const newSelectedValues = [...selectedData.selectedValues];
164
- options[group].map((option) => newSelectedValues.includes(option.value) || option.disabled ? null : newSelectedValues.push(option.value));
180
+ options[group].map(
181
+ (option) => newSelectedValues.includes(option.value) || option.disabled ? null : newSelectedValues.push(option.value)
182
+ );
165
183
  onChange?.(newSelectedValues);
166
184
  }
167
185
  }
168
186
  }
169
187
  };
170
- return !Array.isArray(displayedOptions) ? /* @__PURE__ */ jsxs(Stack, { className: dropdownContainer, "data-grouped": true, id: "select-dropdown", onKeyDown: handleKeyDownSelect, role: "listbox", children: [
171
- isLoading ? /* @__PURE__ */ jsx(Skeleton, { variant: "block" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
172
- selectAll && multiselect ? /* @__PURE__ */ jsx(Stack, { id: "items", children: /* @__PURE__ */ jsx("div", { "aria-disabled": false, "aria-label": "select-all", "aria-selected": selectedData.allSelected, className: dropdownItem({
173
- selected: selectedData.allSelected
174
- }), "data-testid": "select-all", id: "select-all", onClick: selectAllOptions, onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? selectAllOptions() : null, role: "option", tabIndex: 0, children: /* @__PURE__ */ jsx(Checkbox, { checked: selectedData.allSelected, className: dropdownCheckbox, "data-testid": "select-all-checkbox", disabled: false, onChange: selectAllOptions, tabIndex: -1, value: "select-all", children: /* @__PURE__ */ jsxs(Stack, { direction: "column", children: [
175
- /* @__PURE__ */ jsx(Text, { as: "span", placement: "left", variant: "body", children: selectAll.label }),
176
- /* @__PURE__ */ jsx(Text, { as: "span", placement: "left", prominence: "weak", sentiment: "neutral", variant: "bodySmall", children: selectAll.description })
177
- ] }) }) }) }) : null,
178
- Object.keys(displayedOptions).map((group, index) => /* @__PURE__ */ jsxs(Stack, { gap: 0.25, children: [
179
- displayedOptions[group].length > 0 ? /* @__PURE__ */ jsx("div", { className: dropdownGroupWrapper, id: selectAllGroup ? "items" : void 0, children: group ? /* @__PURE__ */ jsx("button", { className: `${selectAllGroup ? dropdownGroupSelectable : ""} ${dropdownGroup}`, "data-selectgroup": selectAllGroup, "data-testid": `group-${index}`, onClick: () => selectAllGroup ? handleSelectGroup(group) : null, onKeyDown: (event) => {
180
- if ([" ", "Enter"].includes(event.key)) {
181
- event.preventDefault();
182
- handleSelectGroup(group);
183
- }
184
- }, role: "group", tabIndex: selectAllGroup ? 0 : -1, type: "button", children: selectAllGroup ? /* @__PURE__ */ jsx(Checkbox, { checked: selectedData.selectedGroups.includes(group), className: dropdownCheckbox, "data-testid": "select-group", disabled: false, onChange: () => selectAllGroup ? handleSelectGroup(group) : null, tabIndex: -1, value: group, children: /* @__PURE__ */ jsx(Text, { as: "span", placement: "left", sentiment: "neutral", variant: "caption", children: group.toUpperCase() }) }) : /* @__PURE__ */ jsx(Text, { as: "span", placement: "left", sentiment: "neutral", variant: "caption", children: group.toUpperCase() }) }, group) : null }) : null,
185
- /* @__PURE__ */ jsx(Stack, { gap: "0.25", id: "items", children: displayedOptions[group].map((option, indexOption) => /* @__PURE__ */ jsx("div", { "aria-disabled": !!option.disabled, "aria-label": option.value, "aria-selected": selectedData.selectedValues.includes(option.value) && !option.disabled, className: dropdownItem({
186
- disabled: !!option.disabled,
187
- selected: selectedData.selectedValues.includes(option.value) && !option.disabled
188
- }), "data-testid": `option-${option.value}`, id: `option-${indexOption}`, onClick: () => {
189
- if (!option.disabled) {
190
- handleClick(option, group);
191
- }
192
- }, onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? handleClick(option, group) : null, ref: option.value === defaultSearchValue || option.searchText === defaultSearchValue ? focusedItemRef : null, role: "option", tabIndex: !option.disabled ? 0 : -1, children: multiselect ? /* @__PURE__ */ jsx(Checkbox, { checked: selectedData.selectedValues.includes(option.value) && !option.disabled, className: dropdownCheckbox, disabled: option.disabled, onChange: () => {
193
- if (!option.disabled) {
194
- handleClick(option, group);
188
+ return !Array.isArray(displayedOptions) ? /* @__PURE__ */ jsxs(
189
+ Stack,
190
+ {
191
+ className: dropdownContainer,
192
+ "data-grouped": true,
193
+ id: "select-dropdown",
194
+ onKeyDown: handleKeyDownSelect,
195
+ role: "listbox",
196
+ children: [
197
+ isLoading ? /* @__PURE__ */ jsx(Skeleton, { variant: "block" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
198
+ selectAll && multiselect ? /* @__PURE__ */ jsx(Stack, { id: "items", children: /* @__PURE__ */ jsx(
199
+ "div",
200
+ {
201
+ "aria-disabled": false,
202
+ "aria-label": "select-all",
203
+ "aria-selected": selectedData.allSelected,
204
+ className: dropdownItem({ selected: selectedData.allSelected }),
205
+ "data-testid": "select-all",
206
+ id: "select-all",
207
+ onClick: selectAllOptions,
208
+ onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? selectAllOptions() : null,
209
+ role: "option",
210
+ tabIndex: 0,
211
+ children: /* @__PURE__ */ jsx(
212
+ Checkbox,
213
+ {
214
+ checked: selectedData.allSelected,
215
+ className: dropdownCheckbox,
216
+ "data-testid": "select-all-checkbox",
217
+ disabled: false,
218
+ onChange: selectAllOptions,
219
+ tabIndex: -1,
220
+ value: "select-all",
221
+ children: /* @__PURE__ */ jsxs(Stack, { direction: "column", children: [
222
+ /* @__PURE__ */ jsx(Text, { as: "span", placement: "left", variant: "body", children: selectAll.label }),
223
+ /* @__PURE__ */ jsx(
224
+ Text,
225
+ {
226
+ as: "span",
227
+ placement: "left",
228
+ prominence: "weak",
229
+ sentiment: "neutral",
230
+ variant: "bodySmall",
231
+ children: selectAll.description
232
+ }
233
+ )
234
+ ] })
235
+ }
236
+ )
237
+ }
238
+ ) }) : null,
239
+ Object.keys(displayedOptions).map((group, index) => /* @__PURE__ */ jsxs(Stack, { gap: 0.25, children: [
240
+ displayedOptions[group].length > 0 ? /* @__PURE__ */ jsx(
241
+ "div",
242
+ {
243
+ className: dropdownGroupWrapper,
244
+ id: selectAllGroup ? "items" : void 0,
245
+ children: group ? /* @__PURE__ */ jsx(
246
+ "button",
247
+ {
248
+ className: `${selectAllGroup ? dropdownGroupSelectable : ""} ${dropdownGroup}`,
249
+ "data-selectgroup": selectAllGroup,
250
+ "data-testid": `group-${index}`,
251
+ onClick: () => selectAllGroup ? handleSelectGroup(group) : null,
252
+ onKeyDown: (event) => {
253
+ if ([" ", "Enter"].includes(event.key)) {
254
+ event.preventDefault();
255
+ handleSelectGroup(group);
256
+ }
257
+ },
258
+ role: "group",
259
+ tabIndex: selectAllGroup ? 0 : -1,
260
+ type: "button",
261
+ children: selectAllGroup ? /* @__PURE__ */ jsx(
262
+ Checkbox,
263
+ {
264
+ checked: selectedData.selectedGroups.includes(group),
265
+ className: dropdownCheckbox,
266
+ "data-testid": "select-group",
267
+ disabled: false,
268
+ onChange: () => selectAllGroup ? handleSelectGroup(group) : null,
269
+ tabIndex: -1,
270
+ value: group,
271
+ children: /* @__PURE__ */ jsx(
272
+ Text,
273
+ {
274
+ as: "span",
275
+ placement: "left",
276
+ sentiment: "neutral",
277
+ variant: "caption",
278
+ children: group.toUpperCase()
279
+ }
280
+ )
281
+ }
282
+ ) : /* @__PURE__ */ jsx(
283
+ Text,
284
+ {
285
+ as: "span",
286
+ placement: "left",
287
+ sentiment: "neutral",
288
+ variant: "caption",
289
+ children: group.toUpperCase()
290
+ }
291
+ )
292
+ },
293
+ group
294
+ ) : null
295
+ }
296
+ ) : null,
297
+ /* @__PURE__ */ jsx(Stack, { gap: "0.25", id: "items", children: displayedOptions[group].map((option, indexOption) => /* @__PURE__ */ jsx(
298
+ "div",
299
+ {
300
+ "aria-disabled": !!option.disabled,
301
+ "aria-label": option.value,
302
+ "aria-selected": selectedData.selectedValues.includes(option.value) && !option.disabled,
303
+ className: dropdownItem({
304
+ disabled: !!option.disabled,
305
+ selected: selectedData.selectedValues.includes(option.value) && !option.disabled
306
+ }),
307
+ "data-testid": `option-${option.value}`,
308
+ id: `option-${indexOption}`,
309
+ onClick: () => {
310
+ if (!option.disabled) {
311
+ handleClick(option, group);
312
+ }
313
+ },
314
+ onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? handleClick(option, group) : null,
315
+ ref: option.value === defaultSearchValue || option.searchText === defaultSearchValue ? focusedItemRef : null,
316
+ role: "option",
317
+ tabIndex: !option.disabled ? 0 : -1,
318
+ children: multiselect ? /* @__PURE__ */ jsx(
319
+ Checkbox,
320
+ {
321
+ checked: selectedData.selectedValues.includes(option.value) && !option.disabled,
322
+ className: dropdownCheckbox,
323
+ disabled: option.disabled,
324
+ onChange: () => {
325
+ if (!option.disabled) {
326
+ handleClick(option, group);
327
+ }
328
+ },
329
+ tabIndex: -1,
330
+ value: option.value,
331
+ children: /* @__PURE__ */ jsx(
332
+ DisplayOption,
333
+ {
334
+ descriptionDirection,
335
+ option,
336
+ optionalInfoPlacement
337
+ }
338
+ )
339
+ }
340
+ ) : /* @__PURE__ */ jsx(
341
+ DisplayOption,
342
+ {
343
+ descriptionDirection,
344
+ option,
345
+ optionalInfoPlacement
346
+ }
347
+ )
348
+ },
349
+ option.value
350
+ )) })
351
+ ] }, group))
352
+ ] }),
353
+ loadMore ? /* @__PURE__ */ jsx(Stack, { className: dropdownLoadMore, children: loadMore }) : null
354
+ ]
355
+ }
356
+ ) : /* @__PURE__ */ jsxs(
357
+ Stack,
358
+ {
359
+ className: `${dropdownContainer} ${dropdownContainerUnGrouped}`,
360
+ gap: 0.25,
361
+ id: "select-dropdown",
362
+ onKeyDown: handleKeyDownSelect,
363
+ role: "listbox",
364
+ children: [
365
+ selectAll && multiselect ? /* @__PURE__ */ jsx(Stack, { gap: 0.25, id: "items", tabIndex: -1, children: /* @__PURE__ */ jsx(
366
+ "div",
367
+ {
368
+ "aria-disabled": false,
369
+ "aria-label": "select-all",
370
+ "aria-selected": selectedData.allSelected,
371
+ className: dropdownItem({ selected: selectedData.allSelected }),
372
+ "data-testid": "select-all",
373
+ onClick: selectAllOptions,
374
+ onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? selectAllOptions() : null,
375
+ role: "option",
376
+ tabIndex: 0,
377
+ children: /* @__PURE__ */ jsx(
378
+ Checkbox,
379
+ {
380
+ checked: selectedData.allSelected,
381
+ className: dropdownCheckbox,
382
+ "data-testid": "select-all-checkbox",
383
+ disabled: false,
384
+ onChange: selectAllOptions,
385
+ tabIndex: -1,
386
+ value: "select-all",
387
+ children: /* @__PURE__ */ jsxs(Stack, { direction: "column", children: [
388
+ /* @__PURE__ */ jsx(Text, { as: "span", placement: "left", variant: "body", children: selectAll.label }),
389
+ /* @__PURE__ */ jsx(
390
+ Text,
391
+ {
392
+ as: "span",
393
+ placement: "left",
394
+ prominence: "weak",
395
+ sentiment: "neutral",
396
+ variant: "bodySmall",
397
+ children: selectAll.description
398
+ }
399
+ )
400
+ ] })
401
+ }
402
+ )
195
403
  }
196
- }, tabIndex: -1, value: option.value, children: /* @__PURE__ */ jsx(DisplayOption, { descriptionDirection, option, optionalInfoPlacement }) }) : /* @__PURE__ */ jsx(DisplayOption, { descriptionDirection, option, optionalInfoPlacement }) }, option.value)) })
197
- ] }, group))
198
- ] }),
199
- loadMore ? /* @__PURE__ */ jsx(Stack, { className: dropdownLoadMore, children: loadMore }) : null
200
- ] }) : /* @__PURE__ */ jsxs(Stack, { className: `${dropdownContainer} ${dropdownContainerUnGrouped}`, gap: 0.25, id: "select-dropdown", onKeyDown: handleKeyDownSelect, role: "listbox", children: [
201
- selectAll && multiselect ? /* @__PURE__ */ jsx(Stack, { gap: 0.25, id: "items", tabIndex: -1, children: /* @__PURE__ */ jsx("div", { "aria-disabled": false, "aria-label": "select-all", "aria-selected": selectedData.allSelected, className: dropdownItem({
202
- selected: selectedData.allSelected
203
- }), "data-testid": "select-all", onClick: selectAllOptions, onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? selectAllOptions() : null, role: "option", tabIndex: 0, children: /* @__PURE__ */ jsx(Checkbox, { checked: selectedData.allSelected, className: dropdownCheckbox, "data-testid": "select-all-checkbox", disabled: false, onChange: selectAllOptions, tabIndex: -1, value: "select-all", children: /* @__PURE__ */ jsxs(Stack, { direction: "column", children: [
204
- /* @__PURE__ */ jsx(Text, { as: "span", placement: "left", variant: "body", children: selectAll.label }),
205
- /* @__PURE__ */ jsx(Text, { as: "span", placement: "left", prominence: "weak", sentiment: "neutral", variant: "bodySmall", children: selectAll.description })
206
- ] }) }) }) }) : null,
207
- /* @__PURE__ */ jsxs(Stack, { gap: 0.25, id: "items", children: [
208
- isLoading ? /* @__PURE__ */ jsx(Skeleton, { variant: "block" }) : displayedOptions.map((option, index) => /* @__PURE__ */ jsx("div", { "aria-disabled": !!option.disabled, "aria-label": option.value, "aria-selected": selectedData.selectedValues.includes(option.value) && !option.disabled, className: dropdownItem({
209
- disabled: !!option.disabled,
210
- selected: selectedData.selectedValues.includes(option.value) && !option.disabled
211
- }), "data-testid": `option-${option.value}`, id: `option-${index}`, onClick: () => {
212
- if (!option.disabled) {
213
- handleClick(option);
214
- }
215
- }, onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? handleClick(option) : null, ref: option.value === defaultSearchValue || option.searchText === defaultSearchValue ? focusedItemRef : null, role: "option", tabIndex: !option.disabled ? 0 : -1, children: multiselect ? /* @__PURE__ */ jsx(Checkbox, { checked: selectedData.selectedValues.includes(option.value) && !option.disabled, className: dropdownCheckbox, disabled: option.disabled, onChange: () => {
216
- if (!option.disabled) {
217
- handleClick(option);
218
- }
219
- }, tabIndex: -1, value: option.value, children: /* @__PURE__ */ jsx(DisplayOption, { descriptionDirection, option, optionalInfoPlacement }) }) : /* @__PURE__ */ jsx(DisplayOption, { descriptionDirection, option, optionalInfoPlacement }) }, option.value)),
220
- loadMore ? /* @__PURE__ */ jsx(Stack, { className: dropdownLoadMore, children: loadMore }) : null
221
- ] })
222
- ] });
404
+ ) }) : null,
405
+ /* @__PURE__ */ jsxs(Stack, { gap: 0.25, id: "items", children: [
406
+ isLoading ? /* @__PURE__ */ jsx(Skeleton, { variant: "block" }) : displayedOptions.map((option, index) => /* @__PURE__ */ jsx(
407
+ "div",
408
+ {
409
+ "aria-disabled": !!option.disabled,
410
+ "aria-label": option.value,
411
+ "aria-selected": selectedData.selectedValues.includes(option.value) && !option.disabled,
412
+ className: dropdownItem({
413
+ disabled: !!option.disabled,
414
+ selected: selectedData.selectedValues.includes(option.value) && !option.disabled
415
+ }),
416
+ "data-testid": `option-${option.value}`,
417
+ id: `option-${index}`,
418
+ onClick: () => {
419
+ if (!option.disabled) {
420
+ handleClick(option);
421
+ }
422
+ },
423
+ onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? handleClick(option) : null,
424
+ ref: option.value === defaultSearchValue || option.searchText === defaultSearchValue ? focusedItemRef : null,
425
+ role: "option",
426
+ tabIndex: !option.disabled ? 0 : -1,
427
+ children: multiselect ? /* @__PURE__ */ jsx(
428
+ Checkbox,
429
+ {
430
+ checked: selectedData.selectedValues.includes(option.value) && !option.disabled,
431
+ className: dropdownCheckbox,
432
+ disabled: option.disabled,
433
+ onChange: () => {
434
+ if (!option.disabled) {
435
+ handleClick(option);
436
+ }
437
+ },
438
+ tabIndex: -1,
439
+ value: option.value,
440
+ children: /* @__PURE__ */ jsx(
441
+ DisplayOption,
442
+ {
443
+ descriptionDirection,
444
+ option,
445
+ optionalInfoPlacement
446
+ }
447
+ )
448
+ }
449
+ ) : /* @__PURE__ */ jsx(
450
+ DisplayOption,
451
+ {
452
+ descriptionDirection,
453
+ option,
454
+ optionalInfoPlacement
455
+ }
456
+ )
457
+ },
458
+ option.value
459
+ )),
460
+ loadMore ? /* @__PURE__ */ jsx(Stack, { className: dropdownLoadMore, children: loadMore }) : null
461
+ ] })
462
+ ]
463
+ }
464
+ );
223
465
  };
224
466
  const Dropdown = ({
225
467
  children,
@@ -251,7 +493,9 @@ const Dropdown = ({
251
493
  const [defaultSearchValue, setDefaultSearch] = useState(null);
252
494
  const ref = useRef(null);
253
495
  const [search, setSearch] = useState("");
254
- const [maxWidth, setWidth] = useState(refSelect.current?.offsetWidth ?? "100%");
496
+ const [maxWidth, setWidth] = useState(
497
+ refSelect.current?.offsetWidth ?? "100%"
498
+ );
255
499
  const modalContext = useContext(ModalContext);
256
500
  useEffect(() => {
257
501
  if (refSelect.current && isDropdownVisible) {
@@ -269,10 +513,7 @@ const Dropdown = ({
269
513
  });
270
514
  }
271
515
  } else {
272
- window.scrollBy({
273
- behavior: "smooth",
274
- top: overflow
275
- });
516
+ window.scrollBy({ behavior: "smooth", top: overflow });
276
517
  }
277
518
  }
278
519
  }
@@ -298,14 +539,46 @@ const Dropdown = ({
298
539
  setSearch("");
299
540
  }
300
541
  if (!searchable) {
301
- document.addEventListener("keydown", (event) => handleKeyDown(event, ref, options, searchBarActive, setSearch, setDefaultSearch, search));
542
+ document.addEventListener(
543
+ "keydown",
544
+ (event) => handleKeyDown(
545
+ event,
546
+ ref,
547
+ options,
548
+ searchBarActive,
549
+ setSearch,
550
+ setDefaultSearch,
551
+ search
552
+ )
553
+ );
302
554
  }
303
555
  return () => {
304
556
  if (!searchable) {
305
- document.removeEventListener("keydown", (event) => handleKeyDown(event, ref, options, searchBarActive, setSearch, setDefaultSearch, search));
557
+ document.removeEventListener(
558
+ "keydown",
559
+ (event) => handleKeyDown(
560
+ event,
561
+ ref,
562
+ options,
563
+ searchBarActive,
564
+ setSearch,
565
+ setDefaultSearch,
566
+ search
567
+ )
568
+ );
306
569
  }
307
570
  };
308
- }, [isDropdownVisible, searchBarActive, options, onSearch, search, refSelect, setDefaultSearch, setIsDropdownVisible, searchable]);
571
+ }, [
572
+ isDropdownVisible,
573
+ searchBarActive,
574
+ options,
575
+ onSearch,
576
+ search,
577
+ refSelect,
578
+ setDefaultSearch,
579
+ setIsDropdownVisible,
580
+ searchable
581
+ ]);
309
582
  const isEmpty = useMemo(() => {
310
583
  if (numberOfOptions === 0) {
311
584
  return true;
@@ -330,11 +603,51 @@ const Dropdown = ({
330
603
  }
331
604
  return null;
332
605
  }, [isEmpty, footer$1, setIsDropdownVisible]);
333
- return /* @__PURE__ */ jsx(Popup, { align: dropdownAlign ?? "start", className: dropdown, containerFullWidth: true, debounceDelay: 0, disableAnimation: true, hasArrow: false, hideOnClickOutside: true, id, maxWidth: maxWidth ?? refSelect.current?.offsetWidth, onClose: () => setIsDropdownVisible(false), placement: "bottom", portalTarget, ref, role: "dialog", tabIndex: -1, text: /* @__PURE__ */ jsxs(Stack, { children: [
334
- searchable && !isLoading && numberOfOptions >= 6 ? /* @__PURE__ */ jsx(SearchBarDropdown, { displayedOptions, placeholder, setSearchBarActive }) : null,
335
- /* @__PURE__ */ jsx(CreateDropdown, { defaultSearchValue, descriptionDirection, emptyState, isEmpty, isLoading, loadMore, optionalInfoPlacement }),
336
- computedFooter
337
- ] }), visible: isDropdownVisible, children });
606
+ return /* @__PURE__ */ jsx(
607
+ Popup,
608
+ {
609
+ align: dropdownAlign ?? "start",
610
+ className: dropdown,
611
+ containerFullWidth: true,
612
+ debounceDelay: 0,
613
+ disableAnimation: true,
614
+ hasArrow: false,
615
+ hideOnClickOutside: true,
616
+ id,
617
+ maxWidth: maxWidth ?? refSelect.current?.offsetWidth,
618
+ onClose: () => setIsDropdownVisible(false),
619
+ placement: "bottom",
620
+ portalTarget,
621
+ ref,
622
+ role: "dialog",
623
+ tabIndex: -1,
624
+ text: /* @__PURE__ */ jsxs(Stack, { children: [
625
+ searchable && !isLoading && numberOfOptions >= 6 ? /* @__PURE__ */ jsx(
626
+ SearchBarDropdown,
627
+ {
628
+ displayedOptions,
629
+ placeholder,
630
+ setSearchBarActive
631
+ }
632
+ ) : null,
633
+ /* @__PURE__ */ jsx(
634
+ CreateDropdown,
635
+ {
636
+ defaultSearchValue,
637
+ descriptionDirection,
638
+ emptyState,
639
+ isEmpty,
640
+ isLoading,
641
+ loadMore,
642
+ optionalInfoPlacement
643
+ }
644
+ ),
645
+ computedFooter
646
+ ] }),
647
+ visible: isDropdownVisible,
648
+ children
649
+ }
650
+ );
338
651
  };
339
652
  export {
340
653
  Dropdown
@@ -4,5 +4,5 @@ type DisplayOptionProps = {
4
4
  descriptionDirection: 'row' | 'column';
5
5
  optionalInfoPlacement: 'left' | 'right';
6
6
  };
7
- export declare const DisplayOption: ({ option, optionalInfoPlacement, descriptionDirection, }: DisplayOptionProps) => import("@emotion/react/jsx-runtime").JSX.Element;
7
+ export declare const DisplayOption: ({ option, optionalInfoPlacement, descriptionDirection, }: DisplayOptionProps) => import("react/jsx-runtime").JSX.Element;
8
8
  export {};