@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
@@ -0,0 +1,669 @@
1
+ import { jsx, jsxs, Fragment } from "@emotion/react/jsx-runtime";
2
+ import styled from "@emotion/styled";
3
+ import { useState, useRef, useEffect, useMemo } from "react";
4
+ import { Checkbox } from "../Checkbox/index.js";
5
+ import { Popup } from "../Popup/index.js";
6
+ import { Skeleton } from "../Skeleton/index.js";
7
+ import { Stack } from "../Stack/index.js";
8
+ import { Text } from "../Text/index.js";
9
+ import { DisplayOption } from "./DropdownOption.js";
10
+ import { SearchBarDropdown } from "./SearchBarDropdown.js";
11
+ import { useSelectInput } from "./SelectInputProvider.js";
12
+ const NON_SEARCHABLE_KEYS = [
13
+ "Tab",
14
+ " ",
15
+ "Enter",
16
+ "CapsLock",
17
+ "Shift",
18
+ "ArrowDown",
19
+ "ArrowUp",
20
+ "ArrowLeft",
21
+ "ArrowRight",
22
+ "Escape"
23
+ ];
24
+ const StyledPopup = styled(Popup)`
25
+ width: 100%;
26
+ background-color: ${({ theme }) => theme.colors.neutral.background};
27
+ color: ${({ theme }) => theme.colors.neutral.text};
28
+ box-shadow: ${({ theme }) => theme.shadows.dropdown};
29
+ padding: ${({ theme }) => theme.space[0]};
30
+ `;
31
+ const DropdownContainer = styled(Stack)`
32
+ max-height: 256px;
33
+ overflow-y: scroll;
34
+ padding: ${({ theme }) => theme.space[0]};
35
+ padding-bottom: ${({ theme }) => theme.space[0.5]};
36
+ padding-top: ${({ theme }) => theme.space[0.5]};
37
+
38
+ &[data-grouped='true'] {
39
+ padding-top: ${({ theme }) => theme.space[0]};
40
+ }
41
+ `;
42
+ const DropdownGroup = styled.button`
43
+ display: flex;
44
+ width: 100%;
45
+ justify-content: left;
46
+ align-items: center;
47
+ border: none;
48
+ background-color: ${({ theme }) => theme.colors.neutral.backgroundWeak};
49
+ position: sticky;
50
+ top: 0px;
51
+ padding-right: ${({ theme }) => theme.space[2]};
52
+ padding-left: ${({ theme }) => theme.space[2]};
53
+ height: ${({ theme }) => theme.space[4]};
54
+ text-align: left;
55
+ margin-bottom: ${({ theme }) => theme.space["0.25"]};
56
+
57
+ &:focus {
58
+ background-color: ${({ theme }) => theme.colors.neutral.backgroundWeak};
59
+ outline: none;
60
+ }
61
+
62
+ &[data-selectgroup='true'] {
63
+ padding-left: ${({ theme }) => theme.space[2]};
64
+ border-left: ${({ theme }) => theme.space[0.5]} solid ${({ theme }) => theme.colors.neutral.backgroundWeak};
65
+ }
66
+
67
+ &[data-selectgroup='true']:focus {
68
+ background-color: ${({ theme }) => theme.colors.neutral.backgroundHover};
69
+ }
70
+ }
71
+ `;
72
+ const DropdownGroupWrapper = styled.div`
73
+ position: sticky;
74
+ top: 0px;
75
+ `;
76
+ const DropdownItem = styled.button`
77
+ text-align:left;
78
+ border: none;
79
+ background-color: ${({ theme }) => theme.colors.neutral.background};
80
+
81
+ padding: ${({ theme }) => theme.space["1.5"]} ${({ theme }) => theme.space["2"]} ${({ theme }) => theme.space["1.5"]} ${({ theme }) => theme.space["2"]};
82
+ margin-left: ${({ theme }) => theme.space["0.5"]};
83
+ margin-right: ${({ theme }) => theme.space["0.5"]};
84
+
85
+ color: ${({ theme }) => theme.colors.neutral.text};
86
+ border-radius: ${({ theme }) => theme.radii.default};
87
+
88
+ &:hover, :focus {
89
+ background-color: ${({ theme }) => theme.colors.primary.background};
90
+ color: ${({ theme }) => theme.colors.primary.text};
91
+ cursor: pointer;
92
+ outline: none;
93
+ }
94
+
95
+ &[data-selected='true'] {
96
+ background-color: ${({ theme }) => theme.colors.primary.background};
97
+ }
98
+
99
+ &[disabled] {
100
+ background-color: ${({ theme }) => theme.colors.neutral.backgroundDisabled};
101
+ color: ${({ theme }) => theme.colors.neutral.textDisabled};
102
+
103
+ }
104
+
105
+ &[disabled]:hover, [disabled]:focus {
106
+ background-color: ${({ theme }) => theme.colors.neutral.backgroundStrongDisabled};
107
+ color: ${({ theme }) => theme.colors.neutral.textStrongDisabled};
108
+ cursor: not-allowed;
109
+ outline: none;
110
+ }
111
+
112
+ }
113
+ `;
114
+ const PopupFooter = styled.div`
115
+ width: 100%;
116
+ padding: ${({ theme }) => theme.space[1.5]} ${({ theme }) => theme.space[2]}
117
+ ${({ theme }) => theme.space[1.5]} ${({ theme }) => theme.space[2]};
118
+ box-shadow: ${({ theme }) => theme.shadows.dropdown};
119
+ `;
120
+ const StyledCheckbox = styled(Checkbox)`
121
+ width: 100%;
122
+ position: static;
123
+ text-align: left;
124
+ align-items: center;
125
+ pointer-events: none;
126
+ `;
127
+ const EmptyState = styled(Stack)`
128
+ padding: ${({ theme }) => theme.space[2]};
129
+ `;
130
+ const LoadMore = styled(Stack)`
131
+ padding: ${({ theme }) => theme.space[0.5]};
132
+ `;
133
+ const moveFocusDown = () => {
134
+ const options = document.querySelectorAll(
135
+ '#items > button[role="option"]:not([disabled])'
136
+ );
137
+ const activeItem = document.activeElement;
138
+ if (options) {
139
+ for (let i = 0; i < options?.length; i += 1) {
140
+ const listLength = options.length;
141
+ if (activeItem === options[i] && activeItem !== options[listLength - 1]) {
142
+ options[i + 1].focus();
143
+ }
144
+ }
145
+ }
146
+ };
147
+ const moveFocusUp = () => {
148
+ const options = document.querySelectorAll(
149
+ '#items > button[role="option"]:not([disabled])'
150
+ );
151
+ const activeItem = document.activeElement;
152
+ if (options) {
153
+ for (let i = 0; i < options.length; i += 1) {
154
+ if (activeItem === options[i] && activeItem !== options[0]) {
155
+ options[i - 1].focus();
156
+ }
157
+ }
158
+ }
159
+ };
160
+ const handleKeyDownSelect = (key) => {
161
+ if (key === "ArrowDown") {
162
+ moveFocusDown();
163
+ }
164
+ if (key === "ArrowUp") {
165
+ moveFocusUp();
166
+ }
167
+ };
168
+ const handleClickOutside = (event, ref, setIsDropdownVisibile, refSelect, onSearch, options) => {
169
+ if (ref.current && !ref.current.contains(event.target) && !refSelect.current?.contains(event.target)) {
170
+ setIsDropdownVisibile(false);
171
+ onSearch(options);
172
+ }
173
+ };
174
+ const handleKeyDown = (event, ref, options, searchBarActive, setSearch, setDefaultSearch, search) => {
175
+ if (ref.current && !searchBarActive && !NON_SEARCHABLE_KEYS.includes(event.key) && document.activeElement?.ariaLabel !== "search-bar") {
176
+ const currentSearch = search + event.key;
177
+ setSearch(currentSearch);
178
+ ref.current.focus();
179
+ if (!Array.isArray(options)) {
180
+ const closestOptions = { ...options };
181
+ Object.keys(closestOptions).map((group) => {
182
+ closestOptions[group] = closestOptions[group].filter(
183
+ (option) => option.searchText ? option.searchText.toLocaleLowerCase().startsWith(currentSearch) : option.value.toLocaleLowerCase().startsWith(currentSearch)
184
+ );
185
+ return null;
186
+ });
187
+ const closestOption = closestOptions[Object.keys(closestOptions)[0]][0];
188
+ if (closestOption) {
189
+ setDefaultSearch(closestOption.searchText ?? closestOption.value);
190
+ } else {
191
+ setDefaultSearch(null);
192
+ }
193
+ } else {
194
+ const closestOption = [...options].filter(
195
+ (option) => option.searchText ? option.searchText.toLocaleLowerCase().startsWith(currentSearch) : option.value.toLocaleLowerCase().startsWith(currentSearch)
196
+ )[0];
197
+ if (closestOption) {
198
+ setDefaultSearch(closestOption.searchText ?? closestOption.value);
199
+ } else {
200
+ setDefaultSearch(null);
201
+ }
202
+ }
203
+ }
204
+ };
205
+ const CreateDropdown = ({
206
+ isEmpty,
207
+ emptyState,
208
+ descriptionDirection,
209
+ loadMore,
210
+ optionalInfoPlacement,
211
+ defaultSearchValue,
212
+ isLoading
213
+ }) => {
214
+ const {
215
+ setIsDropdownVisible,
216
+ onChange,
217
+ options,
218
+ multiselect,
219
+ selectAll,
220
+ selectAllGroup,
221
+ displayedOptions,
222
+ setSelectedData,
223
+ selectedData
224
+ } = useSelectInput();
225
+ const focusedItemRef = useRef(null);
226
+ useEffect(() => {
227
+ if (defaultSearchValue && focusedItemRef?.current) {
228
+ focusedItemRef.current.focus();
229
+ }
230
+ }, [defaultSearchValue]);
231
+ if (isEmpty) {
232
+ return /* @__PURE__ */ jsx(EmptyState, { gap: 2, alignItems: "center", children: emptyState ?? /* @__PURE__ */ jsx(Text, { variant: "bodyStrong", as: "p", children: "No options" }) });
233
+ }
234
+ const handleClick = (clickedOption, group) => {
235
+ setSelectedData({ type: "selectOption", clickedOption, group });
236
+ if (multiselect) {
237
+ if (selectedData.selectedValues.includes(clickedOption.value)) {
238
+ onChange?.(
239
+ selectedData.selectedValues.filter(
240
+ (val) => val !== clickedOption.value
241
+ )
242
+ );
243
+ } else {
244
+ onChange?.([...selectedData.selectedValues, clickedOption.value]);
245
+ }
246
+ } else {
247
+ onChange?.(clickedOption.value);
248
+ }
249
+ setIsDropdownVisible(multiselect);
250
+ };
251
+ const selectAllOptions = () => {
252
+ if (multiselect) {
253
+ setSelectedData({ type: "selectAll" });
254
+ if (selectedData.allSelected && onChange) {
255
+ onChange([]);
256
+ } else {
257
+ const allValues = [];
258
+ if (!Array.isArray(options)) {
259
+ Object.keys(options).map(
260
+ (group) => options[group].map((option) => {
261
+ if (!option.disabled) {
262
+ allValues.push(option);
263
+ }
264
+ return null;
265
+ })
266
+ );
267
+ } else {
268
+ options.map((option) => allValues.push(option));
269
+ }
270
+ onChange?.(allValues.map((value) => value.value));
271
+ }
272
+ }
273
+ };
274
+ const handleSelectGroup = (group) => {
275
+ if (multiselect) {
276
+ setSelectedData({ type: "selectGroup", selectedGroup: group });
277
+ if (!Array.isArray(options)) {
278
+ if (selectedData.selectedGroups.includes(group)) {
279
+ const newSelectedValues = [...selectedData.selectedValues].filter(
280
+ (selectedValue) => !options[group].find((option) => option.value === selectedValue)
281
+ );
282
+ onChange?.(newSelectedValues);
283
+ } else {
284
+ const newSelectedValues = [...selectedData.selectedValues];
285
+ options[group].map(
286
+ (option) => newSelectedValues.includes(option.value) || option.disabled ? null : newSelectedValues.push(option.value)
287
+ );
288
+ onChange?.(newSelectedValues);
289
+ }
290
+ }
291
+ }
292
+ };
293
+ return !Array.isArray(displayedOptions) ? /* @__PURE__ */ jsx(
294
+ DropdownContainer,
295
+ {
296
+ role: "listbox",
297
+ id: "select-dropdown",
298
+ onKeyDown: (event) => {
299
+ event.preventDefault();
300
+ handleKeyDownSelect(event.key);
301
+ },
302
+ "data-grouped": true,
303
+ children: isLoading ? /* @__PURE__ */ jsx(Skeleton, { variant: "block" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
304
+ selectAll && multiselect ? /* @__PURE__ */ jsx(Stack, { id: "items", children: /* @__PURE__ */ jsx(
305
+ DropdownItem,
306
+ {
307
+ disabled: false,
308
+ "data-selected": selectedData.allSelected,
309
+ "aria-label": "select-all",
310
+ "data-testid": "select-all",
311
+ id: "select-all",
312
+ role: "option",
313
+ onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? selectAllOptions() : null,
314
+ onClick: selectAllOptions,
315
+ children: /* @__PURE__ */ jsx(
316
+ StyledCheckbox,
317
+ {
318
+ checked: selectedData.allSelected,
319
+ disabled: false,
320
+ value: "select-all",
321
+ "data-testid": "select-all-checkbox",
322
+ tabIndex: -1,
323
+ children: /* @__PURE__ */ jsxs(Stack, { direction: "column", children: [
324
+ /* @__PURE__ */ jsx(Text, { as: "span", variant: "body", placement: "left", children: selectAll.label }),
325
+ /* @__PURE__ */ jsx(
326
+ Text,
327
+ {
328
+ as: "span",
329
+ variant: "bodySmall",
330
+ sentiment: "neutral",
331
+ placement: "left",
332
+ prominence: "weak",
333
+ children: selectAll.description
334
+ }
335
+ )
336
+ ] })
337
+ }
338
+ )
339
+ }
340
+ ) }) : null,
341
+ Object.keys(displayedOptions).map((group, index) => /* @__PURE__ */ jsxs(Stack, { gap: 0.25, children: [
342
+ displayedOptions[group].length > 0 ? /* @__PURE__ */ jsx(DropdownGroupWrapper, { id: selectAllGroup ? "items" : void 0, children: /* @__PURE__ */ jsx(
343
+ DropdownGroup,
344
+ {
345
+ tabIndex: selectAllGroup ? 0 : -1,
346
+ onKeyDown: (event) => {
347
+ if ([" ", "Enter"].includes(event.key)) {
348
+ event.preventDefault();
349
+ handleSelectGroup(group);
350
+ }
351
+ },
352
+ "data-selectgroup": selectAllGroup,
353
+ role: "group",
354
+ "data-testid": `group-${index}`,
355
+ onClick: () => selectAllGroup ? handleSelectGroup(group) : null,
356
+ children: selectAllGroup ? /* @__PURE__ */ jsx(
357
+ StyledCheckbox,
358
+ {
359
+ checked: selectedData.selectedGroups.includes(group),
360
+ disabled: false,
361
+ value: group,
362
+ "data-testid": "select-group",
363
+ tabIndex: -1,
364
+ children: /* @__PURE__ */ jsx(Text, { variant: "caption", as: "span", placement: "left", children: group.toUpperCase() })
365
+ }
366
+ ) : /* @__PURE__ */ jsx(Text, { variant: "caption", as: "span", placement: "left", children: group.toUpperCase() })
367
+ },
368
+ group
369
+ ) }) : null,
370
+ /* @__PURE__ */ jsxs(Stack, { id: "items", gap: "0.25", children: [
371
+ displayedOptions[group].map((option, indexOption) => /* @__PURE__ */ jsx(
372
+ DropdownItem,
373
+ {
374
+ disabled: option.disabled,
375
+ "data-selected": selectedData.selectedValues.includes(option.value) && !option.disabled,
376
+ "aria-label": option.value,
377
+ "data-testid": `option-${option.value}`,
378
+ id: `option-${indexOption}`,
379
+ role: "option",
380
+ onClick: () => {
381
+ if (!option.disabled) {
382
+ handleClick(option, group);
383
+ }
384
+ },
385
+ onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? handleClick(option, group) : null,
386
+ ref: option.value === defaultSearchValue || option.searchText === defaultSearchValue ? focusedItemRef : null,
387
+ children: multiselect ? /* @__PURE__ */ jsx(
388
+ StyledCheckbox,
389
+ {
390
+ checked: selectedData.selectedValues.includes(option.value) && !option.disabled,
391
+ disabled: option.disabled,
392
+ value: option.value,
393
+ tabIndex: -1,
394
+ children: /* @__PURE__ */ jsx(
395
+ DisplayOption,
396
+ {
397
+ option,
398
+ descriptionDirection,
399
+ optionalInfoPlacement
400
+ }
401
+ )
402
+ }
403
+ ) : /* @__PURE__ */ jsx(
404
+ DisplayOption,
405
+ {
406
+ option,
407
+ descriptionDirection,
408
+ optionalInfoPlacement
409
+ }
410
+ )
411
+ },
412
+ option.value
413
+ )),
414
+ loadMore ? /* @__PURE__ */ jsx(LoadMore, { children: loadMore }) : null
415
+ ] })
416
+ ] }, group))
417
+ ] })
418
+ }
419
+ ) : /* @__PURE__ */ jsxs(
420
+ DropdownContainer,
421
+ {
422
+ role: "listbox",
423
+ id: "select-dropdown",
424
+ onKeyDown: (event) => {
425
+ event.preventDefault();
426
+ handleKeyDownSelect(event.key);
427
+ },
428
+ gap: 0.25,
429
+ "data-grouped": false,
430
+ children: [
431
+ selectAll && multiselect ? /* @__PURE__ */ jsx(Stack, { id: "items", gap: 0.25, children: /* @__PURE__ */ jsx(
432
+ DropdownItem,
433
+ {
434
+ disabled: false,
435
+ "data-selected": selectedData.allSelected,
436
+ "aria-label": "select-all",
437
+ "data-testid": "select-all",
438
+ role: "option",
439
+ onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? selectAllOptions() : null,
440
+ onClick: selectAllOptions,
441
+ children: /* @__PURE__ */ jsx(
442
+ StyledCheckbox,
443
+ {
444
+ checked: selectedData.allSelected,
445
+ disabled: false,
446
+ value: "select-all",
447
+ "data-testid": "select-all-checkbox",
448
+ tabIndex: -1,
449
+ children: /* @__PURE__ */ jsxs(Stack, { direction: "column", children: [
450
+ /* @__PURE__ */ jsx(Text, { as: "span", variant: "body", placement: "left", children: selectAll.label }),
451
+ /* @__PURE__ */ jsx(
452
+ Text,
453
+ {
454
+ as: "span",
455
+ variant: "bodySmall",
456
+ sentiment: "neutral",
457
+ placement: "left",
458
+ prominence: "weak",
459
+ children: selectAll.description
460
+ }
461
+ )
462
+ ] })
463
+ }
464
+ )
465
+ }
466
+ ) }) : null,
467
+ /* @__PURE__ */ jsxs(Stack, { id: "items", gap: 0.25, children: [
468
+ isLoading ? /* @__PURE__ */ jsx(Skeleton, { variant: "block" }) : displayedOptions.map((option, index) => /* @__PURE__ */ jsx(
469
+ DropdownItem,
470
+ {
471
+ disabled: option.disabled,
472
+ "data-selected": selectedData.selectedValues.includes(option.value) && !option.disabled,
473
+ onClick: () => {
474
+ if (!option.disabled) {
475
+ handleClick(option);
476
+ }
477
+ },
478
+ "aria-label": option.value,
479
+ "data-testid": `option-${option.value}`,
480
+ id: `option-${index}`,
481
+ role: "option",
482
+ ref: option.value === defaultSearchValue || option.searchText === defaultSearchValue ? focusedItemRef : null,
483
+ onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? handleClick(option) : null,
484
+ children: multiselect ? /* @__PURE__ */ jsx(
485
+ StyledCheckbox,
486
+ {
487
+ checked: selectedData.selectedValues.includes(option.value) && !option.disabled,
488
+ disabled: option.disabled,
489
+ value: option.value,
490
+ tabIndex: -1,
491
+ children: /* @__PURE__ */ jsx(
492
+ DisplayOption,
493
+ {
494
+ option,
495
+ descriptionDirection,
496
+ optionalInfoPlacement
497
+ }
498
+ )
499
+ }
500
+ ) : /* @__PURE__ */ jsx(
501
+ DisplayOption,
502
+ {
503
+ option,
504
+ descriptionDirection,
505
+ optionalInfoPlacement
506
+ }
507
+ )
508
+ },
509
+ option.value
510
+ )),
511
+ loadMore ? /* @__PURE__ */ jsx(LoadMore, { children: loadMore }) : null
512
+ ] })
513
+ ]
514
+ }
515
+ );
516
+ };
517
+ const Dropdown = ({
518
+ children,
519
+ emptyState,
520
+ descriptionDirection,
521
+ searchable,
522
+ placeholder,
523
+ footer,
524
+ refSelect,
525
+ loadMore,
526
+ optionalInfoPlacement,
527
+ isLoading
528
+ }) => {
529
+ const {
530
+ setIsDropdownVisible,
531
+ isDropdownVisible,
532
+ onSearch,
533
+ searchInput,
534
+ options,
535
+ displayedOptions
536
+ } = useSelectInput();
537
+ const [searchBarActive, setSearchBarActive] = useState(false);
538
+ const [defaultSearchValue, setDefaultSearch] = useState(null);
539
+ const maxWidth = refSelect.current?.offsetWidth;
540
+ const ref = useRef(null);
541
+ const [search, setSearch] = useState("");
542
+ useEffect(() => {
543
+ if (!searchInput) {
544
+ onSearch(options);
545
+ }
546
+ }, [onSearch, options, searchInput]);
547
+ useEffect(() => {
548
+ if (!isDropdownVisible) {
549
+ setDefaultSearch(null);
550
+ setSearch("");
551
+ }
552
+ document.addEventListener(
553
+ "mousedown",
554
+ (event) => handleClickOutside(
555
+ event,
556
+ ref,
557
+ setIsDropdownVisible,
558
+ refSelect,
559
+ onSearch,
560
+ options
561
+ )
562
+ );
563
+ if (!searchable) {
564
+ document.addEventListener(
565
+ "keydown",
566
+ (event) => handleKeyDown(
567
+ event,
568
+ ref,
569
+ options,
570
+ searchBarActive,
571
+ setSearch,
572
+ setDefaultSearch,
573
+ search
574
+ )
575
+ );
576
+ }
577
+ return () => {
578
+ document.removeEventListener(
579
+ "mousedown",
580
+ (event) => handleClickOutside(
581
+ event,
582
+ ref,
583
+ setIsDropdownVisible,
584
+ refSelect,
585
+ onSearch,
586
+ options
587
+ )
588
+ );
589
+ if (!searchable) {
590
+ document.removeEventListener(
591
+ "keydown",
592
+ (event) => handleKeyDown(
593
+ event,
594
+ ref,
595
+ options,
596
+ searchBarActive,
597
+ setSearch,
598
+ setDefaultSearch,
599
+ search
600
+ )
601
+ );
602
+ }
603
+ };
604
+ }, [
605
+ isDropdownVisible,
606
+ searchBarActive,
607
+ options,
608
+ onSearch,
609
+ search,
610
+ refSelect,
611
+ setDefaultSearch,
612
+ setIsDropdownVisible,
613
+ searchable
614
+ ]);
615
+ const isEmpty = useMemo(() => {
616
+ if (Array.isArray(displayedOptions)) {
617
+ return !(displayedOptions.length > 0);
618
+ }
619
+ const groups = Object.keys(displayedOptions);
620
+ for (const group of groups) {
621
+ if (displayedOptions[group].length !== 0) {
622
+ return false;
623
+ }
624
+ }
625
+ return true;
626
+ }, [displayedOptions]);
627
+ return /* @__PURE__ */ jsx(
628
+ StyledPopup,
629
+ {
630
+ visible: isDropdownVisible,
631
+ text: /* @__PURE__ */ jsxs(Stack, { children: [
632
+ searchable && !isLoading ? /* @__PURE__ */ jsx(
633
+ SearchBarDropdown,
634
+ {
635
+ placeholder,
636
+ displayedOptions,
637
+ setSearchBarActive
638
+ }
639
+ ) : null,
640
+ /* @__PURE__ */ jsx(
641
+ CreateDropdown,
642
+ {
643
+ isEmpty,
644
+ emptyState,
645
+ descriptionDirection,
646
+ loadMore,
647
+ optionalInfoPlacement,
648
+ defaultSearchValue,
649
+ isLoading
650
+ }
651
+ ),
652
+ footer ? /* @__PURE__ */ jsx(PopupFooter, { children: footer }) : null
653
+ ] }),
654
+ placement: "bottom",
655
+ containerFullWidth: true,
656
+ disableAnimation: true,
657
+ maxWidth,
658
+ hasArrow: false,
659
+ ref,
660
+ tabIndex: 0,
661
+ role: "dialog",
662
+ debounceDelay: 0,
663
+ children
664
+ }
665
+ );
666
+ };
667
+ export {
668
+ Dropdown
669
+ };
@@ -0,0 +1,8 @@
1
+ import type { OptionType } from './types';
2
+ type DisplayOptionProps = {
3
+ option: OptionType;
4
+ descriptionDirection: 'row' | 'column';
5
+ optionalInfoPlacement: 'left' | 'right';
6
+ };
7
+ export declare const DisplayOption: ({ option, optionalInfoPlacement, descriptionDirection, }: DisplayOptionProps) => import("@emotion/react/jsx-runtime").JSX.Element;
8
+ export {};