@ultraviolet/ui 1.51.0 → 1.51.2

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 (440) hide show
  1. package/dist/components/ActionBar/index.d.ts +20 -0
  2. package/dist/components/ActionBar/index.js +40 -0
  3. package/dist/components/Alert/index.d.ts +27 -0
  4. package/dist/components/Alert/index.js +126 -0
  5. package/dist/components/Avatar/index.d.ts +43 -0
  6. package/dist/components/Avatar/index.js +54 -0
  7. package/dist/components/Badge/index.d.ts +31 -0
  8. package/dist/components/Badge/index.js +115 -0
  9. package/dist/components/Banner/assets/default-image-small.svg.js +4 -0
  10. package/dist/components/Banner/assets/default-image.svg.js +4 -0
  11. package/dist/components/Banner/index.d.ts +24 -0
  12. package/dist/components/Banner/index.js +191 -0
  13. package/dist/components/BarChart/Tooltip.d.ts +9 -0
  14. package/dist/components/BarChart/Tooltip.js +36 -0
  15. package/dist/components/BarChart/index.d.ts +27 -0
  16. package/dist/components/BarChart/index.js +82 -0
  17. package/dist/components/BarStack/index.d.ts +36 -0
  18. package/dist/components/BarStack/index.js +188 -0
  19. package/dist/components/Breadcrumbs/index.d.ts +30 -0
  20. package/dist/components/Breadcrumbs/index.js +76 -0
  21. package/dist/components/Bullet/index.d.ts +39 -0
  22. package/dist/components/Bullet/index.js +88 -0
  23. package/dist/components/Button/index.d.ts +120 -0
  24. package/dist/components/Button/index.js +291 -0
  25. package/dist/components/Card/index.d.ts +20 -0
  26. package/dist/components/Card/index.js +59 -0
  27. package/dist/components/Carousel/index.d.ts +19 -0
  28. package/dist/components/Carousel/index.js +147 -0
  29. package/dist/components/Checkbox/index.d.ts +36 -0
  30. package/dist/components/Checkbox/index.js +359 -0
  31. package/dist/components/CheckboxGroup/index.d.ts +24 -0
  32. package/dist/components/CheckboxGroup/index.js +112 -0
  33. package/dist/components/CopyButton/index.d.ts +19 -0
  34. package/dist/components/CopyButton/index.js +37 -0
  35. package/dist/components/DateInput/datepicker.css.js +4 -0
  36. package/dist/components/DateInput/index.d.ts +38 -0
  37. package/dist/components/DateInput/index.js +301 -0
  38. package/dist/components/Dialog/Context.d.ts +7 -0
  39. package/dist/components/Dialog/Context.js +15 -0
  40. package/dist/components/Dialog/constants.d.ts +2 -0
  41. package/dist/components/Dialog/index.d.ts +87 -0
  42. package/dist/components/Dialog/index.js +87 -0
  43. package/dist/components/Dialog/subComponents/Button.d.ts +7 -0
  44. package/dist/components/Dialog/subComponents/Button.js +24 -0
  45. package/dist/components/Dialog/subComponents/Buttons.d.ts +7 -0
  46. package/dist/components/Dialog/subComponents/Buttons.js +12 -0
  47. package/dist/components/Dialog/subComponents/CancelButton.d.ts +8 -0
  48. package/dist/components/Dialog/subComponents/CancelButton.js +9 -0
  49. package/dist/components/Dialog/subComponents/Stack.d.ts +6 -0
  50. package/dist/components/Dialog/subComponents/Stack.js +6 -0
  51. package/dist/components/Dialog/subComponents/Text.d.ts +6 -0
  52. package/dist/components/Dialog/subComponents/Text.js +6 -0
  53. package/dist/components/EmptyState/index.d.ts +38 -0
  54. package/dist/components/EmptyState/index.js +82 -0
  55. package/dist/components/Expandable/index.d.ts +33 -0
  56. package/dist/components/Expandable/index.js +79 -0
  57. package/dist/components/GlobalAlert/GlobalAlertLink.d.ts +3 -0
  58. package/dist/components/GlobalAlert/GlobalAlertLink.js +39 -0
  59. package/dist/components/GlobalAlert/index.d.ts +40 -0
  60. package/dist/components/GlobalAlert/index.js +112 -0
  61. package/dist/components/LineChart/CustomLegend.d.ts +13 -0
  62. package/dist/components/LineChart/CustomLegend.js +109 -0
  63. package/dist/components/LineChart/Tooltip.d.ts +6 -0
  64. package/dist/components/LineChart/Tooltip.js +46 -0
  65. package/dist/components/LineChart/helpers.d.ts +8 -0
  66. package/dist/components/LineChart/helpers.js +50 -0
  67. package/dist/components/LineChart/index.d.ts +25 -0
  68. package/dist/components/LineChart/index.js +118 -0
  69. package/dist/components/Link/index.d.ts +33 -0
  70. package/dist/components/Link/index.js +167 -0
  71. package/dist/components/List/Body.d.ts +6 -0
  72. package/dist/components/List/Body.js +11 -0
  73. package/dist/components/List/Cell.d.ts +12 -0
  74. package/dist/components/List/Cell.js +38 -0
  75. package/dist/components/List/HeaderCell.d.ts +11 -0
  76. package/dist/components/List/HeaderCell.js +96 -0
  77. package/dist/components/List/HeaderRow.d.ts +7 -0
  78. package/dist/components/List/HeaderRow.js +38 -0
  79. package/dist/components/List/ListContext.d.ts +34 -0
  80. package/dist/components/List/ListContext.js +155 -0
  81. package/dist/components/List/Row.d.ts +23 -0
  82. package/dist/components/List/Row.js +194 -0
  83. package/dist/components/List/SelectBar.d.ts +15 -0
  84. package/dist/components/List/SelectBar.js +35 -0
  85. package/dist/components/List/SkeletonRows.d.ts +7 -0
  86. package/dist/components/List/SkeletonRows.js +36 -0
  87. package/dist/components/List/constants.d.ts +2 -0
  88. package/dist/{src/components → components}/List/constants.js +4 -2
  89. package/dist/components/List/index.d.ts +68 -0
  90. package/dist/components/List/index.js +80 -0
  91. package/dist/components/Loader/index.d.ts +22 -0
  92. package/dist/components/Loader/index.js +98 -0
  93. package/dist/components/Menu/Item.d.ts +15 -0
  94. package/dist/components/Menu/Item.js +101 -0
  95. package/dist/components/Menu/index.d.ts +49 -0
  96. package/dist/components/Menu/index.js +182 -0
  97. package/dist/components/MenuV2/Group.d.ts +7 -0
  98. package/dist/components/MenuV2/Group.js +23 -0
  99. package/dist/components/MenuV2/Item.d.ts +16 -0
  100. package/dist/components/MenuV2/Item.js +120 -0
  101. package/dist/components/MenuV2/index.d.ts +90 -0
  102. package/dist/components/MenuV2/index.js +124 -0
  103. package/dist/components/Meter/index.d.ts +26 -0
  104. package/dist/components/Meter/index.js +76 -0
  105. package/dist/components/Modal/Dialog.d.ts +3 -0
  106. package/dist/components/Modal/Dialog.js +197 -0
  107. package/dist/components/Modal/Disclosure.d.ts +3 -0
  108. package/dist/{src/components → components}/Modal/Disclosure.js +12 -12
  109. package/dist/components/Modal/constants.d.ts +3 -0
  110. package/dist/{src/components → components}/Modal/constants.js +8 -6
  111. package/dist/components/Modal/index.d.ts +42 -0
  112. package/dist/components/Modal/index.js +114 -0
  113. package/dist/components/Modal/types.d.ts +48 -0
  114. package/dist/components/Notice/index.d.ts +11 -0
  115. package/dist/components/Notice/index.js +39 -0
  116. package/dist/components/Notification/index.d.ts +36 -0
  117. package/dist/components/Notification/index.js +88 -0
  118. package/dist/components/Notification/react-toastify.css.js +4 -0
  119. package/dist/components/NumberInput/helpers.d.ts +4 -0
  120. package/dist/{src/components → components}/NumberInput/helpers.js +6 -2
  121. package/dist/components/NumberInput/index.d.ts +41 -0
  122. package/dist/components/NumberInput/index.js +349 -0
  123. package/dist/components/NumberInputV2/index.d.ts +27 -0
  124. package/dist/components/NumberInputV2/index.js +370 -0
  125. package/dist/components/Pagination/getPageNumbers.d.ts +8 -0
  126. package/dist/{src/components → components}/Pagination/getPageNumbers.js +4 -12
  127. package/dist/components/Pagination/index.d.ts +30 -0
  128. package/dist/components/Pagination/index.js +124 -0
  129. package/dist/components/PasswordCheck/index.d.ts +20 -0
  130. package/dist/components/PasswordCheck/index.js +29 -0
  131. package/dist/components/PasswordStrengthMeter/index.d.ts +39 -0
  132. package/dist/components/PasswordStrengthMeter/index.js +98 -0
  133. package/dist/components/PieChart/Legends.d.ts +9 -0
  134. package/dist/components/PieChart/Legends.js +120 -0
  135. package/dist/components/PieChart/Tooltip.d.ts +12 -0
  136. package/dist/components/PieChart/Tooltip.js +29 -0
  137. package/dist/components/PieChart/index.d.ts +20 -0
  138. package/dist/components/PieChart/index.js +120 -0
  139. package/dist/components/PieChart/types.d.ts +7 -0
  140. package/dist/components/Popover/index.d.ts +55 -0
  141. package/dist/components/Popover/index.js +149 -0
  142. package/dist/components/Popup/animations.d.ts +11 -0
  143. package/dist/{src/components → components}/Popup/animations.js +7 -6
  144. package/dist/components/Popup/helpers.d.ts +31 -0
  145. package/dist/components/Popup/helpers.js +204 -0
  146. package/dist/components/Popup/index.d.ts +72 -0
  147. package/dist/components/Popup/index.js +385 -0
  148. package/dist/components/ProgressBar/index.d.ts +14 -0
  149. package/dist/components/ProgressBar/index.js +71 -0
  150. package/dist/components/Radio/index.d.ts +21 -0
  151. package/dist/components/Radio/index.js +202 -0
  152. package/dist/components/RadioGroup/index.d.ts +25 -0
  153. package/dist/components/RadioGroup/index.js +104 -0
  154. package/dist/components/Row/index.d.ts +22 -0
  155. package/dist/components/Row/index.js +43 -0
  156. package/dist/components/SelectInput/index.d.ts +75 -0
  157. package/dist/components/SelectInput/index.js +563 -0
  158. package/dist/components/SelectInputV2/Dropdown.d.ts +23 -0
  159. package/dist/components/SelectInputV2/Dropdown.js +669 -0
  160. package/dist/components/SelectInputV2/DropdownOption.d.ts +8 -0
  161. package/dist/components/SelectInputV2/DropdownOption.js +133 -0
  162. package/dist/components/SelectInputV2/SearchBarDropdown.d.ts +9 -0
  163. package/dist/components/SelectInputV2/SearchBarDropdown.js +123 -0
  164. package/dist/components/SelectInputV2/SelectBar.d.ts +14 -0
  165. package/dist/components/SelectInputV2/SelectBar.js +327 -0
  166. package/dist/components/SelectInputV2/SelectInputProvider.d.ts +41 -0
  167. package/dist/components/SelectInputV2/SelectInputProvider.js +203 -0
  168. package/dist/components/SelectInputV2/findOptionInOptions.d.ts +2 -0
  169. package/dist/components/SelectInputV2/findOptionInOptions.js +12 -0
  170. package/dist/components/SelectInputV2/index.d.ts +115 -0
  171. package/dist/components/SelectInputV2/index.js +146 -0
  172. package/dist/components/SelectInputV2/types.d.ts +38 -0
  173. package/dist/{src/components → components}/SelectInputV2/types.js +4 -2
  174. package/dist/components/SelectableCard/index.d.ts +25 -0
  175. package/dist/components/SelectableCard/index.js +193 -0
  176. package/dist/components/SelectableCardGroup/index.d.ts +23 -0
  177. package/dist/components/SelectableCardGroup/index.js +112 -0
  178. package/dist/components/Separator/index.d.ts +17 -0
  179. package/dist/components/Separator/index.js +76 -0
  180. package/dist/components/Skeleton/Block.d.ts +3 -0
  181. package/dist/components/Skeleton/Block.js +30 -0
  182. package/dist/components/Skeleton/Blocks.d.ts +4 -0
  183. package/dist/components/Skeleton/Blocks.js +28 -0
  184. package/dist/components/Skeleton/BoxWithIcon.d.ts +4 -0
  185. package/dist/components/Skeleton/BoxWithIcon.js +29 -0
  186. package/dist/components/Skeleton/Donut.d.ts +1 -0
  187. package/dist/components/Skeleton/Donut.js +36 -0
  188. package/dist/components/Skeleton/IconSkeleton.d.ts +5 -0
  189. package/dist/components/Skeleton/IconSkeleton.js +12 -0
  190. package/dist/components/Skeleton/Line.d.ts +5 -0
  191. package/dist/components/Skeleton/Line.js +13 -0
  192. package/dist/components/Skeleton/List.d.ts +4 -0
  193. package/dist/components/Skeleton/List.js +29 -0
  194. package/dist/components/Skeleton/Slider.d.ts +3 -0
  195. package/dist/components/Skeleton/Slider.js +26 -0
  196. package/dist/components/Skeleton/Square.d.ts +5 -0
  197. package/dist/components/Skeleton/Square.js +10 -0
  198. package/dist/components/Skeleton/index.d.ts +47 -0
  199. package/dist/components/Skeleton/index.js +86 -0
  200. package/dist/components/Snippet/index.d.ts +23 -0
  201. package/dist/components/Snippet/index.js +171 -0
  202. package/dist/components/Stack/index.d.ts +23 -0
  203. package/dist/components/Stack/index.js +36 -0
  204. package/dist/components/Status/index.d.ts +32 -0
  205. package/dist/components/Status/index.js +57 -0
  206. package/dist/components/StepList/index.d.ts +33 -0
  207. package/dist/components/StepList/index.js +69 -0
  208. package/dist/components/Stepper/index.d.ts +15 -0
  209. package/dist/components/Stepper/index.js +153 -0
  210. package/dist/components/SwitchButton/FocusOverlay.d.ts +8 -0
  211. package/dist/components/SwitchButton/FocusOverlay.js +47 -0
  212. package/dist/components/SwitchButton/index.d.ts +26 -0
  213. package/dist/components/SwitchButton/index.js +140 -0
  214. package/dist/components/Table/Body.d.ts +6 -0
  215. package/dist/components/Table/Body.js +5 -0
  216. package/dist/components/Table/Cell.d.ts +9 -0
  217. package/dist/components/Table/Cell.js +10 -0
  218. package/dist/components/Table/Header.d.ts +6 -0
  219. package/dist/components/Table/Header.js +9 -0
  220. package/dist/components/Table/HeaderCell.d.ts +14 -0
  221. package/dist/components/Table/HeaderCell.js +123 -0
  222. package/dist/components/Table/HeaderRow.d.ts +7 -0
  223. package/dist/components/Table/HeaderRow.js +25 -0
  224. package/dist/components/Table/Row.d.ts +14 -0
  225. package/dist/components/Table/Row.js +85 -0
  226. package/dist/components/Table/SelectBar.d.ts +15 -0
  227. package/dist/components/Table/SelectBar.js +35 -0
  228. package/dist/components/Table/SkeletonRows.d.ts +7 -0
  229. package/dist/components/Table/SkeletonRows.js +22 -0
  230. package/dist/components/Table/TableContext.d.ts +27 -0
  231. package/dist/components/Table/TableContext.js +103 -0
  232. package/dist/components/Table/index.d.ts +60 -0
  233. package/dist/components/Table/index.js +81 -0
  234. package/dist/components/Tabs/Tab.d.ts +20 -0
  235. package/dist/components/Tabs/Tab.js +170 -0
  236. package/dist/components/Tabs/TabMenu.d.ts +8 -0
  237. package/dist/components/Tabs/TabMenu.js +63 -0
  238. package/dist/components/Tabs/TabMenuItem.d.ts +20 -0
  239. package/dist/components/Tabs/TabMenuItem.js +39 -0
  240. package/dist/components/Tabs/TabsContext.d.ts +8 -0
  241. package/dist/components/Tabs/TabsContext.js +9 -0
  242. package/dist/components/Tabs/index.d.ts +50 -0
  243. package/dist/components/Tabs/index.js +137 -0
  244. package/dist/components/Tag/index.d.ts +26 -0
  245. package/dist/components/Tag/index.js +153 -0
  246. package/dist/components/TagInput/index.d.ts +55 -0
  247. package/dist/components/TagInput/index.js +316 -0
  248. package/dist/components/TagList/index.d.ts +37 -0
  249. package/dist/components/TagList/index.js +103 -0
  250. package/dist/components/Text/index.d.ts +40 -0
  251. package/dist/components/Text/index.js +107 -0
  252. package/dist/components/TextArea/index.d.ts +50 -0
  253. package/dist/components/TextArea/index.js +226 -0
  254. package/dist/components/TextInput/index.d.ts +75 -0
  255. package/dist/components/TextInput/index.js +472 -0
  256. package/dist/components/TextInputV2/index.d.ts +30 -0
  257. package/dist/components/TextInputV2/index.js +314 -0
  258. package/dist/components/TimeInput/index.d.ts +25 -0
  259. package/dist/components/TimeInput/index.js +199 -0
  260. package/dist/components/Toaster/index.d.ts +46 -0
  261. package/dist/components/Toaster/index.js +131 -0
  262. package/dist/components/Toaster/react-toastify.css.js +4 -0
  263. package/dist/components/Toggle/index.d.ts +34 -0
  264. package/dist/components/Toggle/index.js +196 -0
  265. package/dist/components/ToggleGroup/index.d.ts +24 -0
  266. package/dist/components/ToggleGroup/index.js +87 -0
  267. package/dist/components/Tooltip/index.d.ts +9 -0
  268. package/dist/components/Tooltip/index.js +47 -0
  269. package/dist/components/VerificationCode/index.d.ts +36 -0
  270. package/dist/components/VerificationCode/index.js +222 -0
  271. package/dist/components/index.d.ts +75 -0
  272. package/dist/helpers/isJSON.d.ts +2 -0
  273. package/dist/{src/helpers → helpers}/isJSON.js +4 -3
  274. package/dist/helpers/jestMockMatchMedia.d.ts +6 -0
  275. package/dist/helpers/keycode.d.ts +3 -0
  276. package/dist/helpers/legend.d.ts +2 -0
  277. package/dist/helpers/legend.js +14 -0
  278. package/dist/helpers/numbers.d.ts +2 -0
  279. package/dist/helpers/recursivelyGetChildrenString.d.ts +3 -0
  280. package/dist/helpers/recursivelyGetChildrenString.js +15 -0
  281. package/dist/hooks/useIsOverflowing.d.ts +5 -0
  282. package/dist/hooks/useIsOverflowing.js +23 -0
  283. package/dist/index.d.ts +4 -3693
  284. package/dist/index.js +187 -0
  285. package/dist/mocks/list.d.ts +12 -0
  286. package/dist/theme/index.d.ts +1573 -0
  287. package/dist/theme/index.js +30 -0
  288. package/dist/types.d.ts +6 -0
  289. package/dist/utils/animations.d.ts +27 -0
  290. package/dist/{src/utils → utils}/animations.js +30 -4
  291. package/dist/utils/capitalize.d.ts +2 -0
  292. package/dist/utils/capitalize.js +4 -0
  293. package/dist/utils/ids.d.ts +1 -0
  294. package/dist/utils/ids.js +6 -0
  295. package/dist/utils/index.d.ts +6 -0
  296. package/dist/utils/normalize.d.ts +2 -0
  297. package/dist/{src/utils → utils}/normalize.js +4 -3
  298. package/dist/utils/orderBy.d.ts +2 -0
  299. package/dist/utils/responsive/Breakpoint.d.ts +9 -0
  300. package/dist/utils/responsive/Breakpoint.js +13 -0
  301. package/dist/utils/responsive/index.d.ts +2 -0
  302. package/dist/utils/responsive/utilities.d.ts +3 -0
  303. package/dist/{src/utils → utils}/responsive/utilities.js +9 -6
  304. package/package.json +23 -13
  305. package/dist/react-datepicker/dist/react-datepicker.min.css.js +0 -3
  306. package/dist/react-toastify/dist/ReactToastify.min.css.js +0 -3
  307. package/dist/src/components/ActionBar/index.js +0 -40
  308. package/dist/src/components/Alert/index.js +0 -133
  309. package/dist/src/components/Avatar/index.js +0 -74
  310. package/dist/src/components/Badge/index.js +0 -116
  311. package/dist/src/components/Banner/assets/default-image-small.svg.js +0 -5
  312. package/dist/src/components/Banner/assets/default-image.svg.js +0 -5
  313. package/dist/src/components/Banner/index.js +0 -159
  314. package/dist/src/components/BarChart/Tooltip.js +0 -48
  315. package/dist/src/components/BarChart/index.js +0 -95
  316. package/dist/src/components/BarStack/index.js +0 -136
  317. package/dist/src/components/Breadcrumbs/index.js +0 -82
  318. package/dist/src/components/Bullet/index.js +0 -98
  319. package/dist/src/components/Button/index.js +0 -311
  320. package/dist/src/components/Card/index.js +0 -67
  321. package/dist/src/components/Carousel/index.js +0 -128
  322. package/dist/src/components/Checkbox/index.js +0 -316
  323. package/dist/src/components/CheckboxGroup/index.js +0 -143
  324. package/dist/src/components/CopyButton/index.js +0 -37
  325. package/dist/src/components/DateInput/index.js +0 -242
  326. package/dist/src/components/Dialog/Context.js +0 -12
  327. package/dist/src/components/Dialog/index.js +0 -88
  328. package/dist/src/components/Dialog/subComponents/Button.js +0 -21
  329. package/dist/src/components/Dialog/subComponents/Buttons.js +0 -14
  330. package/dist/src/components/Dialog/subComponents/CancelButton.js +0 -14
  331. package/dist/src/components/Dialog/subComponents/Stack.js +0 -11
  332. package/dist/src/components/Dialog/subComponents/Text.js +0 -12
  333. package/dist/src/components/EmptyState/index.js +0 -112
  334. package/dist/src/components/Expandable/index.js +0 -96
  335. package/dist/src/components/GlobalAlert/GlobalAlertLink.js +0 -38
  336. package/dist/src/components/GlobalAlert/index.js +0 -82
  337. package/dist/src/components/LineChart/CustomLegend.js +0 -138
  338. package/dist/src/components/LineChart/Tooltip.js +0 -43
  339. package/dist/src/components/LineChart/helpers.js +0 -40
  340. package/dist/src/components/LineChart/index.js +0 -131
  341. package/dist/src/components/Link/index.js +0 -147
  342. package/dist/src/components/List/Body.js +0 -16
  343. package/dist/src/components/List/Cell.js +0 -43
  344. package/dist/src/components/List/HeaderCell.js +0 -90
  345. package/dist/src/components/List/HeaderRow.js +0 -43
  346. package/dist/src/components/List/ListContext.js +0 -138
  347. package/dist/src/components/List/Row.js +0 -185
  348. package/dist/src/components/List/SelectBar.js +0 -48
  349. package/dist/src/components/List/SkeletonRows.js +0 -53
  350. package/dist/src/components/List/index.js +0 -75
  351. package/dist/src/components/Loader/index.js +0 -100
  352. package/dist/src/components/Menu/Item.js +0 -112
  353. package/dist/src/components/Menu/index.js +0 -129
  354. package/dist/src/components/MenuV2/Group.js +0 -25
  355. package/dist/src/components/MenuV2/Item.js +0 -139
  356. package/dist/src/components/MenuV2/index.js +0 -116
  357. package/dist/src/components/Meter/index.js +0 -76
  358. package/dist/src/components/Modal/Dialog.js +0 -182
  359. package/dist/src/components/Modal/index.js +0 -113
  360. package/dist/src/components/Notice/index.js +0 -34
  361. package/dist/src/components/Notification/index.js +0 -77
  362. package/dist/src/components/NumberInput/index.js +0 -299
  363. package/dist/src/components/NumberInputV2/index.js +0 -284
  364. package/dist/src/components/Pagination/index.js +0 -117
  365. package/dist/src/components/PasswordCheck/index.js +0 -41
  366. package/dist/src/components/PasswordStrengthMeter/index.js +0 -102
  367. package/dist/src/components/PieChart/Legends.js +0 -138
  368. package/dist/src/components/PieChart/Tooltip.js +0 -61
  369. package/dist/src/components/PieChart/index.js +0 -125
  370. package/dist/src/components/Popover/index.js +0 -144
  371. package/dist/src/components/Popup/helpers.js +0 -252
  372. package/dist/src/components/Popup/index.js +0 -363
  373. package/dist/src/components/ProgressBar/index.js +0 -57
  374. package/dist/src/components/Radio/index.js +0 -157
  375. package/dist/src/components/RadioGroup/index.js +0 -131
  376. package/dist/src/components/Row/index.js +0 -41
  377. package/dist/src/components/SelectInput/index.js +0 -610
  378. package/dist/src/components/SelectInputV2/Dropdown.js +0 -594
  379. package/dist/src/components/SelectInputV2/DropdownOption.js +0 -130
  380. package/dist/src/components/SelectInputV2/SearchBarDropdown.js +0 -128
  381. package/dist/src/components/SelectInputV2/SelectBar.js +0 -282
  382. package/dist/src/components/SelectInputV2/SelectInputProvider.js +0 -169
  383. package/dist/src/components/SelectInputV2/findOptionInOptions.js +0 -11
  384. package/dist/src/components/SelectInputV2/index.js +0 -137
  385. package/dist/src/components/SelectableCard/index.js +0 -175
  386. package/dist/src/components/SelectableCardGroup/index.js +0 -141
  387. package/dist/src/components/Separator/index.js +0 -73
  388. package/dist/src/components/Skeleton/Block.js +0 -35
  389. package/dist/src/components/Skeleton/Blocks.js +0 -34
  390. package/dist/src/components/Skeleton/BoxWithIcon.js +0 -32
  391. package/dist/src/components/Skeleton/Donut.js +0 -55
  392. package/dist/src/components/Skeleton/IconSkeleton.js +0 -19
  393. package/dist/src/components/Skeleton/Line.js +0 -13
  394. package/dist/src/components/Skeleton/List.js +0 -51
  395. package/dist/src/components/Skeleton/Slider.js +0 -36
  396. package/dist/src/components/Skeleton/Square.js +0 -9
  397. package/dist/src/components/Skeleton/index.js +0 -82
  398. package/dist/src/components/Snippet/index.js +0 -200
  399. package/dist/src/components/Stack/index.js +0 -29
  400. package/dist/src/components/Status/index.js +0 -74
  401. package/dist/src/components/StepList/index.js +0 -69
  402. package/dist/src/components/Stepper/index.js +0 -150
  403. package/dist/src/components/SwitchButton/FocusOverlay.js +0 -37
  404. package/dist/src/components/SwitchButton/index.js +0 -108
  405. package/dist/src/components/Table/Body.js +0 -9
  406. package/dist/src/components/Table/Cell.js +0 -21
  407. package/dist/src/components/Table/Header.js +0 -15
  408. package/dist/src/components/Table/HeaderCell.js +0 -103
  409. package/dist/src/components/Table/HeaderRow.js +0 -32
  410. package/dist/src/components/Table/Row.js +0 -89
  411. package/dist/src/components/Table/SelectBar.js +0 -48
  412. package/dist/src/components/Table/SkeletonRows.js +0 -51
  413. package/dist/src/components/Table/TableContext.js +0 -90
  414. package/dist/src/components/Table/index.js +0 -82
  415. package/dist/src/components/Tabs/Tab.js +0 -138
  416. package/dist/src/components/Tabs/TabMenu.js +0 -59
  417. package/dist/src/components/Tabs/TabMenuItem.js +0 -36
  418. package/dist/src/components/Tabs/TabsContext.js +0 -6
  419. package/dist/src/components/Tabs/index.js +0 -117
  420. package/dist/src/components/Tag/index.js +0 -169
  421. package/dist/src/components/TagInput/index.js +0 -309
  422. package/dist/src/components/TagList/index.js +0 -106
  423. package/dist/src/components/Text/index.js +0 -107
  424. package/dist/src/components/TextArea/index.js +0 -210
  425. package/dist/src/components/TextInput/index.js +0 -451
  426. package/dist/src/components/TextInputV2/index.js +0 -289
  427. package/dist/src/components/TimeInput/index.js +0 -37
  428. package/dist/src/components/Toaster/index.js +0 -131
  429. package/dist/src/components/Toggle/index.js +0 -160
  430. package/dist/src/components/ToggleGroup/index.js +0 -122
  431. package/dist/src/components/Tooltip/index.js +0 -55
  432. package/dist/src/components/VerificationCode/index.js +0 -222
  433. package/dist/src/helpers/legend.js +0 -13
  434. package/dist/src/helpers/recursivelyGetChildrenString.js +0 -11
  435. package/dist/src/hooks/useIsOverflowing.js +0 -34
  436. package/dist/src/index.js +0 -77
  437. package/dist/src/theme/index.js +0 -29
  438. package/dist/src/utils/capitalize.js +0 -3
  439. package/dist/src/utils/ids.js +0 -7
  440. package/dist/src/utils/responsive/Breakpoint.js +0 -12
@@ -1,594 +0,0 @@
1
- import _styled from '@emotion/styled/base';
2
- import { useState, useRef, useEffect, useMemo } from 'react';
3
- import { Checkbox } from '../Checkbox/index.js';
4
- import { Popup } from '../Popup/index.js';
5
- import { Skeleton } from '../Skeleton/index.js';
6
- import { Stack } from '../Stack/index.js';
7
- import { Text } from '../Text/index.js';
8
- import { DisplayOption } from './DropdownOption.js';
9
- import { SearchBarDropdown } from './SearchBarDropdown.js';
10
- import { useSelectInput } from './SelectInputProvider.js';
11
- import { jsx, jsxs, Fragment } from '@emotion/react/jsx-runtime';
12
-
13
- function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
14
- const NON_SEARCHABLE_KEYS = ['Tab', ' ', 'Enter', 'CapsLock', 'Shift', 'ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight', 'Escape'];
15
- const StyledPopup = /*#__PURE__*/_styled(Popup, {
16
- target: "eeucz6c8"
17
- })("width:100%;background-color:", ({
18
- theme
19
- }) => theme.colors.neutral.background, ";color:", ({
20
- theme
21
- }) => theme.colors.neutral.text, ";box-shadow:", ({
22
- theme
23
- }) => theme.shadows.dropdown, ";padding:", ({
24
- theme
25
- }) => theme.space[0], ";");
26
- const DropdownContainer = /*#__PURE__*/_styled(Stack, {
27
- target: "eeucz6c7"
28
- })("max-height:256px;overflow-y:scroll;padding:", ({
29
- theme
30
- }) => theme.space[0], ";padding-bottom:", ({
31
- theme
32
- }) => theme.space[0.5], ";padding-top:", ({
33
- theme
34
- }) => theme.space[0.5], ";&[data-grouped='true']{padding-top:", ({
35
- theme
36
- }) => theme.space[0], ";}");
37
- const DropdownGroup = /*#__PURE__*/_styled("button", {
38
- target: "eeucz6c6"
39
- })("display:flex;width:100%;justify-content:left;align-items:center;border:none;background-color:", ({
40
- theme
41
- }) => theme.colors.neutral.backgroundWeak, ";position:sticky;top:0px;padding-right:", ({
42
- theme
43
- }) => theme.space[2], ";padding-left:", ({
44
- theme
45
- }) => theme.space[2], ";height:", ({
46
- theme
47
- }) => theme.space[4], ";text-align:left;margin-bottom:", ({
48
- theme
49
- }) => theme.space['0.25'], ";&:focus{background-color:", ({
50
- theme
51
- }) => theme.colors.neutral.backgroundWeak, ";outline:none;}&[data-selectgroup='true']{padding-left:", ({
52
- theme
53
- }) => theme.space[2], ";border-left:", ({
54
- theme
55
- }) => theme.space[0.5], " solid ", ({
56
- theme
57
- }) => theme.colors.neutral.backgroundWeak, ";}&[data-selectgroup='true']:focus{background-color:", ({
58
- theme
59
- }) => theme.colors.neutral.backgroundHover, ";}");
60
- const DropdownGroupWrapper = /*#__PURE__*/_styled("div", {
61
- target: "eeucz6c5"
62
- })(process.env.NODE_ENV === "production" ? {
63
- name: "vkf8h3",
64
- styles: "position:sticky;top:0px"
65
- } : {
66
- name: "vkf8h3",
67
- styles: "position:sticky;top:0px",
68
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
69
- });
70
- const DropdownItem = /*#__PURE__*/_styled("button", {
71
- target: "eeucz6c4"
72
- })("text-align:left;border:none;background-color:", ({
73
- theme
74
- }) => theme.colors.neutral.background, ";padding:", ({
75
- theme
76
- }) => theme.space['1.5'], " ", ({
77
- theme
78
- }) => theme.space['2'], " ", ({
79
- theme
80
- }) => theme.space['1.5'], " ", ({
81
- theme
82
- }) => theme.space['2'], ";margin-left:", ({
83
- theme
84
- }) => theme.space['0.5'], ";margin-right:", ({
85
- theme
86
- }) => theme.space['0.5'], ";color:", ({
87
- theme
88
- }) => theme.colors.neutral.text, ";border-radius:", ({
89
- theme
90
- }) => theme.radii.default, ";&:hover,:focus{background-color:", ({
91
- theme
92
- }) => theme.colors.primary.background, ";color:", ({
93
- theme
94
- }) => theme.colors.primary.text, ";cursor:pointer;outline:none;}&[data-selected='true']{background-color:", ({
95
- theme
96
- }) => theme.colors.primary.background, ";}&[disabled]{background-color:", ({
97
- theme
98
- }) => theme.colors.neutral.backgroundDisabled, ";color:", ({
99
- theme
100
- }) => theme.colors.neutral.textDisabled, ";}&[disabled]:hover,[disabled]:focus{background-color:", ({
101
- theme
102
- }) => theme.colors.neutral.backgroundStrongDisabled, ";color:", ({
103
- theme
104
- }) => theme.colors.neutral.textStrongDisabled, ";cursor:not-allowed;outline:none;}");
105
- const PopupFooter = /*#__PURE__*/_styled("div", {
106
- target: "eeucz6c3"
107
- })("width:100%;padding:", ({
108
- theme
109
- }) => theme.space[1.5], " ", ({
110
- theme
111
- }) => theme.space[2], " ", ({
112
- theme
113
- }) => theme.space[1.5], " ", ({
114
- theme
115
- }) => theme.space[2], ";box-shadow:", ({
116
- theme
117
- }) => theme.shadows.dropdown, ";");
118
- const StyledCheckbox = /*#__PURE__*/_styled(Checkbox, {
119
- target: "eeucz6c2"
120
- })(process.env.NODE_ENV === "production" ? {
121
- name: "1l9xw77",
122
- styles: "width:100%;position:static;text-align:left;align-items:center;pointer-events:none"
123
- } : {
124
- name: "1l9xw77",
125
- styles: "width:100%;position:static;text-align:left;align-items:center;pointer-events:none",
126
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
127
- }); // pointer-events: none prevents any error when using the checkbox in a form since it is an unnamed input
128
-
129
- const EmptyState = /*#__PURE__*/_styled(Stack, {
130
- target: "eeucz6c1"
131
- })("padding:", ({
132
- theme
133
- }) => theme.space[2], ";");
134
- const LoadMore = /*#__PURE__*/_styled(Stack, {
135
- target: "eeucz6c0"
136
- })("padding:", ({
137
- theme
138
- }) => theme.space[0.5], ";");
139
- const moveFocusDown = () => {
140
- const options = document.querySelectorAll('#items > button[role="option"]:not([disabled])');
141
- const activeItem = document.activeElement;
142
- if (options) {
143
- for (let i = 0; i < options?.length; i += 1) {
144
- const listLength = options.length;
145
- if (activeItem === options[i] && activeItem !== options[listLength - 1]) {
146
- options[i + 1].focus();
147
- }
148
- }
149
- }
150
- };
151
- const moveFocusUp = () => {
152
- const options = document.querySelectorAll('#items > button[role="option"]:not([disabled])');
153
- const activeItem = document.activeElement;
154
- if (options) {
155
- for (let i = 0; i < options.length; i += 1) {
156
- if (activeItem === options[i] && activeItem !== options[0]) {
157
- options[i - 1].focus();
158
- }
159
- }
160
- }
161
- };
162
- const handleKeyDownSelect = key => {
163
- if (key === 'ArrowDown') {
164
- moveFocusDown();
165
- }
166
- if (key === 'ArrowUp') {
167
- moveFocusUp();
168
- }
169
- };
170
- const handleClickOutside = (event, ref, setIsDropdownVisibile, refSelect, onSearch, options) => {
171
- if (ref.current && !ref.current.contains(event.target) && !refSelect.current?.contains(event.target)) {
172
- setIsDropdownVisibile(false); // hide dropdown when clicking outside of the dropdown
173
- onSearch(options); // reset displayed options to default when dropdown is hidden
174
- }
175
- };
176
- const handleKeyDown = (event, ref, options, searchBarActive, setSearch, setDefaultSearch, search) => {
177
- // Deals with default search
178
- if (ref.current && !searchBarActive && !NON_SEARCHABLE_KEYS.includes(event.key) && document.activeElement?.ariaLabel !== 'search-bar') {
179
- const currentSearch = search + event.key;
180
- setSearch(currentSearch);
181
- ref.current.focus();
182
- if (!Array.isArray(options)) {
183
- const closestOptions = {
184
- ...options
185
- };
186
- Object.keys(closestOptions).map(group => {
187
- closestOptions[group] = closestOptions[group].filter(option => option.searchText ? option.searchText.toLocaleLowerCase().startsWith(currentSearch) : option.value.toLocaleLowerCase().startsWith(currentSearch));
188
- return null;
189
- });
190
- const closestOption = closestOptions[Object.keys(closestOptions)[0]][0];
191
- if (closestOption) {
192
- setDefaultSearch(closestOption.searchText ?? closestOption.value);
193
- } else {
194
- setDefaultSearch(null);
195
- }
196
- } else {
197
- const closestOption = [...options].filter(option => option.searchText ? option.searchText.toLocaleLowerCase().startsWith(currentSearch) : option.value.toLocaleLowerCase().startsWith(currentSearch))[0];
198
- if (closestOption) {
199
- setDefaultSearch(closestOption.searchText ?? closestOption.value);
200
- } else {
201
- setDefaultSearch(null);
202
- }
203
- }
204
- }
205
- };
206
- const CreateDropdown = ({
207
- isEmpty,
208
- emptyState,
209
- descriptionDirection,
210
- loadMore,
211
- optionalInfoPlacement,
212
- defaultSearchValue,
213
- isLoading
214
- }) => {
215
- const {
216
- setIsDropdownVisible,
217
- onChange,
218
- options,
219
- multiselect,
220
- selectAll,
221
- selectAllGroup,
222
- displayedOptions,
223
- setSelectedData,
224
- selectedData
225
- } = useSelectInput();
226
- const focusedItemRef = useRef(null);
227
- useEffect(() => {
228
- if (defaultSearchValue && focusedItemRef?.current) {
229
- focusedItemRef.current.focus();
230
- }
231
- }, [defaultSearchValue]);
232
- if (isEmpty) {
233
- return jsx(EmptyState, {
234
- gap: 2,
235
- alignItems: "center",
236
- children: emptyState ?? jsx(Text, {
237
- variant: "bodyStrong",
238
- as: "p",
239
- children: "No options"
240
- })
241
- });
242
- }
243
- const handleClick = (clickedOption, group) => {
244
- setSelectedData({
245
- type: 'selectOption',
246
- clickedOption,
247
- group
248
- });
249
- if (multiselect) {
250
- if (selectedData.selectedValues.includes(clickedOption.value)) {
251
- onChange?.(selectedData.selectedValues.filter(val => val !== clickedOption.value));
252
- } else {
253
- onChange?.([...selectedData.selectedValues, clickedOption.value]);
254
- }
255
- } else {
256
- onChange?.(clickedOption.value);
257
- }
258
- setIsDropdownVisible(multiselect); // hide the dropdown on click when single select only
259
- };
260
- const selectAllOptions = () => {
261
- if (multiselect) {
262
- setSelectedData({
263
- type: 'selectAll'
264
- });
265
- if (selectedData.allSelected && onChange) {
266
- onChange([]);
267
- } else {
268
- const allValues = [];
269
- if (!Array.isArray(options)) {
270
- Object.keys(options).map(group => options[group].map(option => {
271
- if (!option.disabled) {
272
- allValues.push(option);
273
- }
274
- return null;
275
- }));
276
- } else {
277
- options.map(option => allValues.push(option));
278
- }
279
- onChange?.(allValues.map(value => value.value));
280
- }
281
- }
282
- };
283
- const handleSelectGroup = group => {
284
- if (multiselect) {
285
- setSelectedData({
286
- type: 'selectGroup',
287
- selectedGroup: group
288
- });
289
- if (!Array.isArray(options)) {
290
- if (selectedData.selectedGroups.includes(group)) {
291
- const newSelectedValues = [...selectedData.selectedValues].filter(selectedValue => !options[group].find(option => option.value === selectedValue));
292
- onChange?.(newSelectedValues);
293
- } else {
294
- const newSelectedValues = [...selectedData.selectedValues];
295
- options[group].map(option => newSelectedValues.includes(option.value) || option.disabled ? null : newSelectedValues.push(option.value));
296
- onChange?.(newSelectedValues);
297
- }
298
- }
299
- }
300
- };
301
- return !Array.isArray(displayedOptions) ? jsx(DropdownContainer, {
302
- role: "listbox",
303
- id: "select-dropdown",
304
- onKeyDown: event => {
305
- event.preventDefault();
306
- handleKeyDownSelect(event.key);
307
- },
308
- "data-grouped": true,
309
- children: isLoading ? jsx(Skeleton, {
310
- variant: "block"
311
- }) : jsxs(Fragment, {
312
- children: [selectAll && multiselect ? jsx(Stack, {
313
- id: "items",
314
- children: jsx(DropdownItem, {
315
- disabled: false,
316
- "data-selected": selectedData.allSelected,
317
- "aria-label": "select-all",
318
- "data-testid": "select-all",
319
- id: "select-all",
320
- role: "option",
321
- onKeyDown: event => [' ', 'Enter'].includes(event.key) ? selectAllOptions() : null,
322
- onClick: selectAllOptions,
323
- children: jsx(StyledCheckbox, {
324
- checked: selectedData.allSelected,
325
- disabled: false,
326
- value: "select-all",
327
- "data-testid": "select-all-checkbox",
328
- tabIndex: -1,
329
- children: jsxs(Stack, {
330
- direction: "column",
331
- children: [jsx(Text, {
332
- as: "span",
333
- variant: "body",
334
- placement: "left",
335
- children: selectAll.label
336
- }), jsx(Text, {
337
- as: "span",
338
- variant: "bodySmall",
339
- sentiment: "neutral",
340
- placement: "left",
341
- prominence: "weak",
342
- children: selectAll.description
343
- })]
344
- })
345
- })
346
- })
347
- }) : null, Object.keys(displayedOptions).map((group, index) => jsxs(Stack, {
348
- gap: 0.25,
349
- children: [displayedOptions[group].length > 0 ? jsx(DropdownGroupWrapper, {
350
- id: selectAllGroup ? 'items' : undefined,
351
- children: jsx(DropdownGroup, {
352
- tabIndex: selectAllGroup ? 0 : -1,
353
- onKeyDown: event => {
354
- if ([' ', 'Enter'].includes(event.key)) {
355
- event.preventDefault();
356
- handleSelectGroup(group);
357
- }
358
- },
359
- "data-selectgroup": selectAllGroup,
360
- role: "group",
361
- "data-testid": `group-${index}`,
362
- onClick: () => selectAllGroup ? handleSelectGroup(group) : null,
363
- children: selectAllGroup ? jsx(StyledCheckbox, {
364
- checked: selectedData.selectedGroups.includes(group),
365
- disabled: false,
366
- value: group,
367
- "data-testid": "select-group",
368
- tabIndex: -1,
369
- children: jsx(Text, {
370
- variant: "caption",
371
- as: "span",
372
- placement: "left",
373
- children: group.toUpperCase()
374
- })
375
- }) : jsx(Text, {
376
- variant: "caption",
377
- as: "span",
378
- placement: "left",
379
- children: group.toUpperCase()
380
- })
381
- }, group)
382
- }) : null, jsxs(Stack, {
383
- id: "items",
384
- gap: "0.25",
385
- children: [displayedOptions[group].map((option, indexOption) => jsx(DropdownItem, {
386
- disabled: option.disabled,
387
- "data-selected": selectedData.selectedValues.includes(option.value) && !option.disabled,
388
- "aria-label": option.value,
389
- "data-testid": `option-${option.value}`,
390
- id: `option-${indexOption}`,
391
- role: "option",
392
- onClick: () => {
393
- if (!option.disabled) {
394
- handleClick(option, group);
395
- }
396
- },
397
- onKeyDown: event => [' ', 'Enter'].includes(event.key) ? handleClick(option, group) : null,
398
- ref: option.value === defaultSearchValue || option.searchText === defaultSearchValue ? focusedItemRef : null,
399
- children: multiselect ? jsx(StyledCheckbox, {
400
- checked: selectedData.selectedValues.includes(option.value) && !option.disabled,
401
- disabled: option.disabled,
402
- value: option.value,
403
- tabIndex: -1,
404
- children: jsx(DisplayOption, {
405
- option: option,
406
- descriptionDirection: descriptionDirection,
407
- optionalInfoPlacement: optionalInfoPlacement
408
- })
409
- }) : jsx(DisplayOption, {
410
- option: option,
411
- descriptionDirection: descriptionDirection,
412
- optionalInfoPlacement: optionalInfoPlacement
413
- })
414
- }, option.value)), loadMore ? jsx(LoadMore, {
415
- children: loadMore
416
- }) : null]
417
- })]
418
- }, group))]
419
- })
420
- }) : jsxs(DropdownContainer, {
421
- role: "listbox",
422
- id: "select-dropdown",
423
- onKeyDown: event => {
424
- event.preventDefault();
425
- handleKeyDownSelect(event.key);
426
- },
427
- gap: 0.25,
428
- "data-grouped": false,
429
- children: [selectAll && multiselect ? jsx(Stack, {
430
- id: "items",
431
- gap: 0.25,
432
- children: jsx(DropdownItem, {
433
- disabled: false,
434
- "data-selected": selectedData.allSelected,
435
- "aria-label": "select-all",
436
- "data-testid": "select-all",
437
- role: "option",
438
- onKeyDown: event => [' ', 'Enter'].includes(event.key) ? selectAllOptions() : null,
439
- onClick: selectAllOptions,
440
- children: jsx(StyledCheckbox, {
441
- checked: selectedData.allSelected,
442
- disabled: false,
443
- value: "select-all",
444
- "data-testid": "select-all-checkbox",
445
- tabIndex: -1,
446
- children: jsxs(Stack, {
447
- direction: "column",
448
- children: [jsx(Text, {
449
- as: "span",
450
- variant: "body",
451
- placement: "left",
452
- children: selectAll.label
453
- }), jsx(Text, {
454
- as: "span",
455
- variant: "bodySmall",
456
- sentiment: "neutral",
457
- placement: "left",
458
- prominence: "weak",
459
- children: selectAll.description
460
- })]
461
- })
462
- })
463
- })
464
- }) : null, jsxs(Stack, {
465
- id: "items",
466
- gap: 0.25,
467
- children: [isLoading ? jsx(Skeleton, {
468
- variant: "block"
469
- }) : displayedOptions.map((option, index) => jsx(DropdownItem, {
470
- disabled: option.disabled,
471
- "data-selected": selectedData.selectedValues.includes(option.value) && !option.disabled,
472
- onClick: () => {
473
- if (!option.disabled) {
474
- handleClick(option);
475
- }
476
- },
477
- "aria-label": option.value,
478
- "data-testid": `option-${option.value}`,
479
- id: `option-${index}`,
480
- role: "option",
481
- ref: option.value === defaultSearchValue || option.searchText === defaultSearchValue ? focusedItemRef : null,
482
- onKeyDown: event => [' ', 'Enter'].includes(event.key) ? handleClick(option) : null,
483
- children: multiselect ? jsx(StyledCheckbox, {
484
- checked: selectedData.selectedValues.includes(option.value) && !option.disabled,
485
- disabled: option.disabled,
486
- value: option.value,
487
- tabIndex: -1,
488
- children: jsx(DisplayOption, {
489
- option: option,
490
- descriptionDirection: descriptionDirection,
491
- optionalInfoPlacement: optionalInfoPlacement
492
- })
493
- }) : jsx(DisplayOption, {
494
- option: option,
495
- descriptionDirection: descriptionDirection,
496
- optionalInfoPlacement: optionalInfoPlacement
497
- })
498
- }, option.value)), loadMore ? jsx(LoadMore, {
499
- children: loadMore
500
- }) : null]
501
- })]
502
- });
503
- };
504
- const Dropdown = ({
505
- children,
506
- emptyState,
507
- descriptionDirection,
508
- searchable,
509
- placeholder,
510
- footer,
511
- refSelect,
512
- loadMore,
513
- optionalInfoPlacement,
514
- isLoading
515
- }) => {
516
- const {
517
- setIsDropdownVisible,
518
- isDropdownVisible,
519
- onSearch,
520
- searchInput,
521
- options,
522
- displayedOptions
523
- } = useSelectInput();
524
- const [searchBarActive, setSearchBarActive] = useState(false);
525
- const [defaultSearchValue, setDefaultSearch] = useState(null);
526
- const maxWidth = refSelect.current?.offsetWidth;
527
- const ref = useRef(null);
528
- const [search, setSearch] = useState('');
529
- useEffect(() => {
530
- if (!searchInput) {
531
- onSearch(options);
532
- }
533
- }, [onSearch, options, searchInput]);
534
- useEffect(() => {
535
- if (!isDropdownVisible) {
536
- setDefaultSearch(null);
537
- setSearch('');
538
- }
539
- document.addEventListener('mousedown', event => handleClickOutside(event, ref, setIsDropdownVisible, refSelect, onSearch, options));
540
- if (!searchable) {
541
- document.addEventListener('keydown', event => handleKeyDown(event, ref, options, searchBarActive, setSearch, setDefaultSearch, search));
542
- }
543
- return () => {
544
- document.removeEventListener('mousedown', event => handleClickOutside(event, ref, setIsDropdownVisible, refSelect, onSearch, options));
545
- if (!searchable) {
546
- document.removeEventListener('keydown', event => handleKeyDown(event, ref, options, searchBarActive, setSearch, setDefaultSearch, search));
547
- }
548
- };
549
- }, [isDropdownVisible, searchBarActive, options, onSearch, search, refSelect, setDefaultSearch, setIsDropdownVisible, searchable]);
550
- const isEmpty = useMemo(() => {
551
- if (Array.isArray(displayedOptions)) {
552
- return !(displayedOptions.length > 0);
553
- }
554
- const groups = Object.keys(displayedOptions);
555
- for (const group of groups) {
556
- if (displayedOptions[group].length !== 0) {
557
- return false;
558
- }
559
- }
560
- return true;
561
- }, [displayedOptions]);
562
- return jsx(StyledPopup, {
563
- visible: isDropdownVisible,
564
- text: jsxs(Stack, {
565
- children: [searchable && !isLoading ? jsx(SearchBarDropdown, {
566
- placeholder: placeholder,
567
- displayedOptions: displayedOptions,
568
- setSearchBarActive: setSearchBarActive
569
- }) : null, jsx(CreateDropdown, {
570
- isEmpty: isEmpty,
571
- emptyState: emptyState,
572
- descriptionDirection: descriptionDirection,
573
- loadMore: loadMore,
574
- optionalInfoPlacement: optionalInfoPlacement,
575
- defaultSearchValue: defaultSearchValue,
576
- isLoading: isLoading
577
- }), footer ? jsx(PopupFooter, {
578
- children: footer
579
- }) : null]
580
- }),
581
- placement: "bottom",
582
- containerFullWidth: true,
583
- disableAnimation: true,
584
- maxWidth: maxWidth,
585
- hasArrow: false,
586
- ref: ref,
587
- tabIndex: 0,
588
- role: "dialog",
589
- debounceDelay: 0,
590
- children: children
591
- });
592
- };
593
-
594
- export { Dropdown };