@ultraviolet/ui 3.8.2 → 3.10.0

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 (722) hide show
  1. package/dist/.vite/license.md +3 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.113.0/helpers/asyncToGenerator.js +32 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.113.0/helpers/defineProperty.js +15 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.113.0/helpers/objectSpread2.js +28 -0
  5. package/dist/_virtual/_@oxc-project_runtime@0.113.0/helpers/objectWithoutProperties.js +18 -0
  6. package/dist/_virtual/_@oxc-project_runtime@0.113.0/helpers/objectWithoutPropertiesLoose.js +15 -0
  7. package/dist/_virtual/_@oxc-project_runtime@0.113.0/helpers/toPrimitive.js +17 -0
  8. package/dist/_virtual/_@oxc-project_runtime@0.113.0/helpers/toPropertyKey.js +12 -0
  9. package/dist/_virtual/_@oxc-project_runtime@0.113.0/helpers/typeof.js +14 -0
  10. package/dist/_virtual/_rolldown/runtime.js +9 -0
  11. package/dist/components/ActionBar/index.d.ts +1 -1
  12. package/dist/components/ActionBar/index.d.ts.map +1 -1
  13. package/dist/components/ActionBar/index.js +29 -32
  14. package/dist/components/ActionBar/styles.css.js +7 -7
  15. package/dist/components/Alert/index.d.ts +1 -1
  16. package/dist/components/Alert/index.d.ts.map +1 -1
  17. package/dist/components/Alert/index.js +94 -132
  18. package/dist/components/Alert/styles.css.d.ts +1 -1
  19. package/dist/components/Alert/styles.css.js +31 -11
  20. package/dist/components/Avatar/constants.d.ts +751 -2
  21. package/dist/components/Avatar/constants.d.ts.map +1 -1
  22. package/dist/components/Avatar/constants.js +14 -14
  23. package/dist/components/Avatar/index.d.ts +1 -1
  24. package/dist/components/Avatar/index.d.ts.map +1 -1
  25. package/dist/components/Avatar/index.js +88 -78
  26. package/dist/components/Avatar/styles.css.d.ts +24 -24
  27. package/dist/components/Avatar/styles.css.js +165 -16
  28. package/dist/components/Avatar/variables.css.js +4 -5
  29. package/dist/components/Badge/constant.js +8 -7
  30. package/dist/components/Badge/index.d.ts +1 -1
  31. package/dist/components/Badge/index.d.ts.map +1 -1
  32. package/dist/components/Badge/index.js +34 -38
  33. package/dist/components/Badge/styles.css.js +111 -5
  34. package/dist/components/Banner/assets/default-image-small.js +5 -0
  35. package/dist/components/Banner/assets/{default-image.svg.js → default-image.js} +5 -4
  36. package/dist/components/Banner/index.d.ts +1 -1
  37. package/dist/components/Banner/index.d.ts.map +1 -1
  38. package/dist/components/Banner/index.js +116 -131
  39. package/dist/components/Banner/styles.css.d.ts +1 -1
  40. package/dist/components/Banner/styles.css.js +45 -8
  41. package/dist/components/BarChart/Tooltip.d.ts +1 -1
  42. package/dist/components/BarChart/Tooltip.d.ts.map +1 -1
  43. package/dist/components/BarChart/Tooltip.js +27 -28
  44. package/dist/components/BarChart/index.d.ts +1 -1
  45. package/dist/components/BarChart/index.d.ts.map +1 -1
  46. package/dist/components/BarChart/index.js +61 -73
  47. package/dist/components/BarChart/styles.css.js +6 -6
  48. package/dist/components/BarStack/index.d.ts +1 -1
  49. package/dist/components/BarStack/index.d.ts.map +1 -1
  50. package/dist/components/BarStack/index.js +115 -154
  51. package/dist/components/BarStack/styles.css.js +31 -11
  52. package/dist/components/Breadcrumbs/components/Item.d.ts +1 -1
  53. package/dist/components/Breadcrumbs/components/Item.d.ts.map +1 -1
  54. package/dist/components/Breadcrumbs/components/Item.js +59 -79
  55. package/dist/components/Breadcrumbs/components/styles.css.js +12 -11
  56. package/dist/components/Breadcrumbs/index.js +21 -20
  57. package/dist/components/Breadcrumbs/styles.css.js +6 -4
  58. package/dist/components/Bullet/index.d.ts +1 -1
  59. package/dist/components/Bullet/index.d.ts.map +1 -1
  60. package/dist/components/Bullet/index.js +27 -29
  61. package/dist/components/Bullet/styles.css.js +109 -5
  62. package/dist/components/Button/constants.js +8 -4
  63. package/dist/components/Button/index.js +121 -147
  64. package/dist/components/Button/styles.css.js +158 -5
  65. package/dist/components/Card/index.js +60 -86
  66. package/dist/components/Card/styles.css.js +6 -5
  67. package/dist/components/Carousel/index.d.ts +4 -8
  68. package/dist/components/Carousel/index.d.ts.map +1 -1
  69. package/dist/components/Carousel/index.js +103 -110
  70. package/dist/components/Carousel/styles.css.js +6 -9
  71. package/dist/components/Checkbox/index.js +133 -158
  72. package/dist/components/Checkbox/styles.css.js +9 -15
  73. package/dist/components/CheckboxGroup/index.d.ts +5 -9
  74. package/dist/components/CheckboxGroup/index.d.ts.map +1 -1
  75. package/dist/components/CheckboxGroup/index.js +101 -119
  76. package/dist/components/CheckboxGroup/styles.css.js +6 -5
  77. package/dist/components/Chip/ChipContext.js +6 -4
  78. package/dist/components/Chip/ChipIcon.d.ts +1 -1
  79. package/dist/components/Chip/ChipIcon.d.ts.map +1 -1
  80. package/dist/components/Chip/ChipIcon.js +49 -69
  81. package/dist/components/Chip/index.d.ts +7 -11
  82. package/dist/components/Chip/index.d.ts.map +1 -1
  83. package/dist/components/Chip/index.js +69 -80
  84. package/dist/components/Chip/styles.css.js +6 -5
  85. package/dist/components/CopyButton/index.d.ts +1 -1
  86. package/dist/components/CopyButton/index.d.ts.map +1 -1
  87. package/dist/components/CopyButton/index.js +31 -45
  88. package/dist/components/DateInput/Context.js +23 -20
  89. package/dist/components/DateInput/components/CalendarContent.js +69 -90
  90. package/dist/components/DateInput/components/CalendarDaily.js +141 -206
  91. package/dist/components/DateInput/components/CalendarMonthly.js +88 -124
  92. package/dist/components/DateInput/components/Popup.d.ts.map +1 -1
  93. package/dist/components/DateInput/components/Popup.js +36 -45
  94. package/dist/components/DateInput/components/styles.css.js +7 -8
  95. package/dist/components/DateInput/constants.js +4 -5
  96. package/dist/components/DateInput/helpers.d.ts +1 -1
  97. package/dist/components/DateInput/helpers.d.ts.map +1 -1
  98. package/dist/components/DateInput/helpers.js +43 -59
  99. package/dist/components/DateInput/helpersLocale.d.ts +3 -3
  100. package/dist/components/DateInput/helpersLocale.d.ts.map +1 -1
  101. package/dist/components/DateInput/helpersLocale.js +45 -51
  102. package/dist/components/DateInput/index.d.ts +1 -1
  103. package/dist/components/DateInput/index.d.ts.map +1 -1
  104. package/dist/components/DateInput/index.js +241 -316
  105. package/dist/components/DateInput/styles.css.js +12 -6
  106. package/dist/components/Dialog/Context.js +11 -13
  107. package/dist/components/Dialog/components/Button.d.ts.map +1 -1
  108. package/dist/components/Dialog/components/Button.js +17 -24
  109. package/dist/components/Dialog/components/Buttons.d.ts.map +1 -1
  110. package/dist/components/Dialog/components/Buttons.js +14 -12
  111. package/dist/components/Dialog/components/CancelButton.d.ts.map +1 -1
  112. package/dist/components/Dialog/components/CancelButton.js +16 -21
  113. package/dist/components/Dialog/components/Stack.d.ts.map +1 -1
  114. package/dist/components/Dialog/components/Stack.js +13 -6
  115. package/dist/components/Dialog/components/Text.d.ts.map +1 -1
  116. package/dist/components/Dialog/components/Text.js +15 -6
  117. package/dist/components/Dialog/constants.d.ts +1 -1
  118. package/dist/components/Dialog/index.d.ts +50 -50
  119. package/dist/components/Dialog/index.d.ts.map +1 -1
  120. package/dist/components/Dialog/index.js +59 -82
  121. package/dist/components/Dialog/styles.css.js +6 -5
  122. package/dist/components/Drawer/DrawerContent.d.ts +5 -0
  123. package/dist/components/Drawer/DrawerContent.d.ts.map +1 -0
  124. package/dist/components/Drawer/DrawerContent.js +12 -0
  125. package/dist/components/Drawer/index.d.ts +5 -7
  126. package/dist/components/Drawer/index.d.ts.map +1 -1
  127. package/dist/components/Drawer/index.js +105 -92
  128. package/dist/components/Drawer/styles.css.d.ts +11 -4
  129. package/dist/components/Drawer/styles.css.d.ts.map +1 -1
  130. package/dist/components/Drawer/styles.css.js +13 -11
  131. package/dist/components/EmptyState/index.d.ts +1 -1
  132. package/dist/components/EmptyState/index.d.ts.map +1 -1
  133. package/dist/components/EmptyState/index.js +81 -94
  134. package/dist/components/EmptyState/styles.css.d.ts +1 -1
  135. package/dist/components/EmptyState/styles.css.js +26 -7
  136. package/dist/components/Expandable/index.d.ts +2 -2
  137. package/dist/components/Expandable/index.d.ts.map +1 -1
  138. package/dist/components/Expandable/index.js +117 -141
  139. package/dist/components/Expandable/styles.css.js +6 -5
  140. package/dist/components/ExpandableCard/components/Title.d.ts.map +1 -1
  141. package/dist/components/ExpandableCard/components/Title.js +16 -22
  142. package/dist/components/ExpandableCard/index.d.ts +5 -5
  143. package/dist/components/ExpandableCard/index.d.ts.map +1 -1
  144. package/dist/components/ExpandableCard/index.js +151 -221
  145. package/dist/components/ExpandableCard/styles.css.js +6 -10
  146. package/dist/components/FileInput/FileInputProvider.d.ts +2 -2
  147. package/dist/components/FileInput/FileInputProvider.d.ts.map +1 -1
  148. package/dist/components/FileInput/FileInputProvider.js +9 -11
  149. package/dist/components/FileInput/components/Button.d.ts +57 -3
  150. package/dist/components/FileInput/components/Button.d.ts.map +1 -1
  151. package/dist/components/FileInput/components/Button.js +23 -20
  152. package/dist/components/FileInput/components/List.d.ts.map +1 -1
  153. package/dist/components/FileInput/components/List.js +137 -127
  154. package/dist/components/FileInput/helpers.d.ts +1 -0
  155. package/dist/components/FileInput/helpers.d.ts.map +1 -1
  156. package/dist/components/FileInput/helpers.js +34 -16
  157. package/dist/components/FileInput/index.d.ts +58 -2
  158. package/dist/components/FileInput/index.d.ts.map +1 -1
  159. package/dist/components/FileInput/index.js +245 -291
  160. package/dist/components/FileInput/styles.css.d.ts +3 -3
  161. package/dist/components/FileInput/styles.css.js +53 -18
  162. package/dist/components/GlobalAlert/GlobalAlertLink.d.ts +1 -1
  163. package/dist/components/GlobalAlert/GlobalAlertLink.d.ts.map +1 -1
  164. package/dist/components/GlobalAlert/GlobalAlertLink.js +26 -38
  165. package/dist/components/GlobalAlert/index.d.ts +43 -48
  166. package/dist/components/GlobalAlert/index.d.ts.map +1 -1
  167. package/dist/components/GlobalAlert/index.js +56 -74
  168. package/dist/components/GlobalAlert/styles.css.js +10 -5
  169. package/dist/components/InfiniteScroll/index.d.ts +1 -1
  170. package/dist/components/InfiniteScroll/index.d.ts.map +1 -1
  171. package/dist/components/InfiniteScroll/index.js +75 -95
  172. package/dist/components/Key/constants.js +10 -9
  173. package/dist/components/Key/index.d.ts +1 -1
  174. package/dist/components/Key/index.d.ts.map +1 -1
  175. package/dist/components/Key/index.js +43 -58
  176. package/dist/components/Key/styles.css.js +58 -5
  177. package/dist/components/Label/index.d.ts.map +1 -1
  178. package/dist/components/Label/index.js +86 -123
  179. package/dist/components/Label/styles.css.js +10 -4
  180. package/dist/components/LineChart/CustomLegend.d.ts +1 -1
  181. package/dist/components/LineChart/CustomLegend.d.ts.map +1 -1
  182. package/dist/components/LineChart/CustomLegend.js +99 -88
  183. package/dist/components/LineChart/Tooltip.d.ts.map +1 -1
  184. package/dist/components/LineChart/Tooltip.js +29 -44
  185. package/dist/components/LineChart/helpers.d.ts +6 -6
  186. package/dist/components/LineChart/helpers.d.ts.map +1 -1
  187. package/dist/components/LineChart/helpers.js +24 -46
  188. package/dist/components/LineChart/index.d.ts +1 -1
  189. package/dist/components/LineChart/index.d.ts.map +1 -1
  190. package/dist/components/LineChart/index.js +92 -110
  191. package/dist/components/LineChart/styles.css.js +6 -17
  192. package/dist/components/Link/index.js +93 -105
  193. package/dist/components/Link/styles.css.js +75 -9
  194. package/dist/components/List/Cell.js +39 -46
  195. package/dist/components/List/ColumnProvider.d.ts.map +1 -1
  196. package/dist/components/List/ColumnProvider.js +15 -21
  197. package/dist/components/List/HeaderCell.d.ts.map +1 -1
  198. package/dist/components/List/HeaderCell.js +58 -65
  199. package/dist/components/List/HeaderRow.d.ts.map +1 -1
  200. package/dist/components/List/HeaderRow.js +33 -24
  201. package/dist/components/List/ListContext.d.ts.map +1 -1
  202. package/dist/components/List/ListContext.js +210 -258
  203. package/dist/components/List/Row.js +156 -201
  204. package/dist/components/List/SelectBar.d.ts.map +1 -1
  205. package/dist/components/List/SelectBar.js +33 -36
  206. package/dist/components/List/SkeletonRows.d.ts.map +1 -1
  207. package/dist/components/List/SkeletonRows.js +29 -38
  208. package/dist/components/List/index.js +58 -72
  209. package/dist/components/List/styles.css.js +31 -22
  210. package/dist/components/List/variables.css.js +4 -13
  211. package/dist/components/Loader/constants.js +10 -9
  212. package/dist/components/Loader/index.d.ts.map +1 -1
  213. package/dist/components/Loader/index.js +53 -65
  214. package/dist/components/Loader/styles.css.js +6 -6
  215. package/dist/components/Menu/MenuContent.d.ts +45 -46
  216. package/dist/components/Menu/MenuContent.d.ts.map +1 -1
  217. package/dist/components/Menu/MenuContent.js +199 -239
  218. package/dist/components/Menu/MenuProvider.d.ts.map +1 -1
  219. package/dist/components/Menu/MenuProvider.js +41 -50
  220. package/dist/components/Menu/components/Group.d.ts.map +1 -1
  221. package/dist/components/Menu/components/Group.js +27 -30
  222. package/dist/components/Menu/components/Item.js +132 -168
  223. package/dist/components/Menu/helpers.d.ts.map +1 -1
  224. package/dist/components/Menu/helpers.js +32 -46
  225. package/dist/components/Menu/index.d.ts +55 -55
  226. package/dist/components/Menu/index.d.ts.map +1 -1
  227. package/dist/components/Menu/index.js +32 -11
  228. package/dist/components/Menu/styles.css.js +70 -16
  229. package/dist/components/Meter/index.d.ts +1 -1
  230. package/dist/components/Meter/index.d.ts.map +1 -1
  231. package/dist/components/Meter/index.js +56 -66
  232. package/dist/components/Meter/styles.css.js +6 -7
  233. package/dist/components/Modal/ModalContent.d.ts +1 -1
  234. package/dist/components/Modal/ModalContent.d.ts.map +1 -1
  235. package/dist/components/Modal/ModalContent.js +45 -67
  236. package/dist/components/Modal/ModalProvider.d.ts.map +1 -1
  237. package/dist/components/Modal/ModalProvider.js +41 -39
  238. package/dist/components/Modal/components/Dialog.d.ts +1 -1
  239. package/dist/components/Modal/components/Dialog.d.ts.map +1 -1
  240. package/dist/components/Modal/components/Dialog.js +166 -208
  241. package/dist/components/Modal/components/Disclosure.d.ts.map +1 -1
  242. package/dist/components/Modal/components/Disclosure.js +43 -41
  243. package/dist/components/Modal/index.d.ts +4 -2
  244. package/dist/components/Modal/index.d.ts.map +1 -1
  245. package/dist/components/Modal/index.js +90 -112
  246. package/dist/components/Modal/styles.css.d.ts.map +1 -1
  247. package/dist/components/Modal/styles.css.js +72 -15
  248. package/dist/components/Modal/types.d.ts +1 -0
  249. package/dist/components/Modal/types.d.ts.map +1 -1
  250. package/dist/components/Notice/index.d.ts +1 -1
  251. package/dist/components/Notice/index.d.ts.map +1 -1
  252. package/dist/components/Notice/index.js +27 -35
  253. package/dist/components/Notice/styles.css.js +6 -4
  254. package/dist/components/Notification/Notification.d.ts +1 -1
  255. package/dist/components/Notification/Notification.d.ts.map +1 -1
  256. package/dist/components/Notification/Notification.js +38 -30
  257. package/dist/components/Notification/NotificationContainer.d.ts +1 -1
  258. package/dist/components/Notification/NotificationContainer.d.ts.map +1 -1
  259. package/dist/components/Notification/NotificationContainer.js +24 -33
  260. package/dist/components/Notification/styles.css.js +6 -4
  261. package/dist/components/NumberInput/index.d.ts +14 -17
  262. package/dist/components/NumberInput/index.d.ts.map +1 -1
  263. package/dist/components/NumberInput/index.js +205 -252
  264. package/dist/components/NumberInput/styles.css.d.ts +1 -1
  265. package/dist/components/NumberInput/styles.css.js +74 -12
  266. package/dist/components/Pagination/PaginationButtons.d.ts +1 -1
  267. package/dist/components/Pagination/PaginationButtons.d.ts.map +1 -1
  268. package/dist/components/Pagination/PaginationButtons.js +93 -111
  269. package/dist/components/Pagination/PerPage.d.ts.map +1 -1
  270. package/dist/components/Pagination/PerPage.js +67 -61
  271. package/dist/components/Pagination/getPageNumbers.d.ts.map +1 -1
  272. package/dist/components/Pagination/getPageNumbers.js +24 -19
  273. package/dist/components/Pagination/index.d.ts +1 -1
  274. package/dist/components/Pagination/index.d.ts.map +1 -1
  275. package/dist/components/Pagination/index.js +50 -64
  276. package/dist/components/Pagination/styles.css.d.ts +2 -2
  277. package/dist/components/Pagination/styles.css.js +13 -7
  278. package/dist/components/PasswordCheck/index.d.ts +1 -1
  279. package/dist/components/PasswordCheck/index.d.ts.map +1 -1
  280. package/dist/components/PasswordCheck/index.js +38 -25
  281. package/dist/components/PasswordCheck/styles.css.js +6 -4
  282. package/dist/components/PieChart/Legends.d.ts.map +1 -1
  283. package/dist/components/PieChart/Legends.js +55 -67
  284. package/dist/components/PieChart/Tooltip.d.ts.map +1 -1
  285. package/dist/components/PieChart/Tooltip.js +45 -15
  286. package/dist/components/PieChart/index.d.ts.map +1 -1
  287. package/dist/components/PieChart/index.js +97 -105
  288. package/dist/components/PieChart/styles.css.js +43 -24
  289. package/dist/components/Popover/index.d.ts +38 -40
  290. package/dist/components/Popover/index.d.ts.map +1 -1
  291. package/dist/components/Popover/index.js +92 -123
  292. package/dist/components/Popover/styles.css.js +22 -6
  293. package/dist/components/Popup/helpers.d.ts.map +1 -1
  294. package/dist/components/Popup/helpers.js +264 -264
  295. package/dist/components/Popup/index.d.ts.map +1 -1
  296. package/dist/components/Popup/index.js +343 -410
  297. package/dist/components/Popup/styles.css.d.ts +1 -1
  298. package/dist/components/Popup/styles.css.js +37 -11
  299. package/dist/components/Popup/variables.css.js +4 -10
  300. package/dist/components/ProgressBar/index.d.ts +1 -1
  301. package/dist/components/ProgressBar/index.d.ts.map +1 -1
  302. package/dist/components/ProgressBar/index.js +78 -98
  303. package/dist/components/ProgressBar/styles.css.d.ts +2 -2
  304. package/dist/components/ProgressBar/styles.css.d.ts.map +1 -1
  305. package/dist/components/ProgressBar/styles.css.js +19 -10
  306. package/dist/components/ProgressBar/variables.css.js +4 -3
  307. package/dist/components/Radio/index.js +97 -108
  308. package/dist/components/Radio/styles.css.js +9 -16
  309. package/dist/components/RadioGroup/index.d.ts +1 -1
  310. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  311. package/dist/components/RadioGroup/index.js +100 -128
  312. package/dist/components/RadioGroup/styles.css.js +6 -4
  313. package/dist/components/Row/index.d.ts +1 -1
  314. package/dist/components/Row/index.d.ts.map +1 -1
  315. package/dist/components/Row/index.js +26 -60
  316. package/dist/components/Row/styles.css.d.ts +79 -79
  317. package/dist/components/Row/styles.css.js +491 -14
  318. package/dist/components/Row/variables.css.js +21 -6
  319. package/dist/components/SearchInput/KeyGroup.d.ts.map +1 -1
  320. package/dist/components/SearchInput/KeyGroup.js +20 -7
  321. package/dist/components/SearchInput/index.d.ts.map +1 -1
  322. package/dist/components/SearchInput/index.js +207 -250
  323. package/dist/components/SearchInput/styles.css.js +6 -6
  324. package/dist/components/SearchInput/types.d.ts +1 -1
  325. package/dist/components/SearchInput/types.d.ts.map +1 -1
  326. package/dist/components/SelectInput/SelectInputProvider.d.ts +4 -1
  327. package/dist/components/SelectInput/SelectInputProvider.d.ts.map +1 -1
  328. package/dist/components/SelectInput/SelectInputProvider.js +174 -234
  329. package/dist/components/SelectInput/components/Dropdown.d.ts.map +1 -1
  330. package/dist/components/SelectInput/components/Dropdown.js +706 -853
  331. package/dist/components/SelectInput/components/DropdownOption.d.ts +2 -1
  332. package/dist/components/SelectInput/components/DropdownOption.d.ts.map +1 -1
  333. package/dist/components/SelectInput/components/DropdownOption.js +152 -183
  334. package/dist/components/SelectInput/components/SearchBarDropdown.d.ts.map +1 -1
  335. package/dist/components/SelectInput/components/SearchBarDropdown.js +98 -141
  336. package/dist/components/SelectInput/components/SelectBar.d.ts +1 -1
  337. package/dist/components/SelectInput/components/SelectBar.d.ts.map +1 -1
  338. package/dist/components/SelectInput/components/SelectBar.js +285 -392
  339. package/dist/components/SelectInput/components/dropdown.css.d.ts +14 -1
  340. package/dist/components/SelectInput/components/dropdown.css.d.ts.map +1 -1
  341. package/dist/components/SelectInput/components/dropdown.css.js +43 -34
  342. package/dist/components/SelectInput/components/selectBar.css.d.ts +1 -1
  343. package/dist/components/SelectInput/components/selectBar.css.d.ts.map +1 -1
  344. package/dist/components/SelectInput/components/selectBar.css.js +55 -17
  345. package/dist/components/SelectInput/constants.js +11 -14
  346. package/dist/components/SelectInput/findOptionInOptions.d.ts.map +1 -1
  347. package/dist/components/SelectInput/findOptionInOptions.js +10 -10
  348. package/dist/components/SelectInput/index.d.ts +1 -1
  349. package/dist/components/SelectInput/index.d.ts.map +1 -1
  350. package/dist/components/SelectInput/index.js +106 -162
  351. package/dist/components/SelectInput/styles.css.js +6 -5
  352. package/dist/components/SelectableCard/IllustrationContainer.d.ts +3 -4
  353. package/dist/components/SelectableCard/IllustrationContainer.d.ts.map +1 -1
  354. package/dist/components/SelectableCard/IllustrationContainer.js +60 -64
  355. package/dist/components/SelectableCard/MultiStateInput.d.ts +1 -1
  356. package/dist/components/SelectableCard/MultiStateInput.d.ts.map +1 -1
  357. package/dist/components/SelectableCard/MultiStateInput.js +69 -90
  358. package/dist/components/SelectableCard/SelectableCard.js +113 -161
  359. package/dist/components/SelectableCard/styles.css.js +25 -13
  360. package/dist/components/SelectableCard/types.d.ts +1 -1
  361. package/dist/components/SelectableCard/types.d.ts.map +1 -1
  362. package/dist/components/SelectableCard/variables.css.js +4 -5
  363. package/dist/components/SelectableCardGroup/index.d.ts +1 -1
  364. package/dist/components/SelectableCardGroup/index.d.ts.map +1 -1
  365. package/dist/components/SelectableCardGroup/index.js +95 -111
  366. package/dist/components/SelectableCardGroup/styles.css.js +6 -4
  367. package/dist/components/SelectableCardOptionGroup/Provider.js +17 -21
  368. package/dist/components/SelectableCardOptionGroup/SelectableCardOptionGroup.d.ts.map +1 -1
  369. package/dist/components/SelectableCardOptionGroup/SelectableCardOptionGroup.js +71 -79
  370. package/dist/components/SelectableCardOptionGroup/components/Image.d.ts.map +1 -1
  371. package/dist/components/SelectableCardOptionGroup/components/Image.js +19 -19
  372. package/dist/components/SelectableCardOptionGroup/components/Option.d.ts +1 -1
  373. package/dist/components/SelectableCardOptionGroup/components/Option.d.ts.map +1 -1
  374. package/dist/components/SelectableCardOptionGroup/components/Option.js +83 -136
  375. package/dist/components/SelectableCardOptionGroup/styles.css.js +6 -11
  376. package/dist/components/Separator/index.d.ts +1 -1
  377. package/dist/components/Separator/index.d.ts.map +1 -1
  378. package/dist/components/Separator/index.js +49 -59
  379. package/dist/components/Separator/styles.css.d.ts +18 -12
  380. package/dist/components/Separator/styles.css.d.ts.map +1 -1
  381. package/dist/components/Separator/styles.css.js +54 -8
  382. package/dist/components/Skeleton/Block.d.ts +1 -1
  383. package/dist/components/Skeleton/Block.d.ts.map +1 -1
  384. package/dist/components/Skeleton/Block.js +17 -14
  385. package/dist/components/Skeleton/Blocks.d.ts +2 -2
  386. package/dist/components/Skeleton/Blocks.d.ts.map +1 -1
  387. package/dist/components/Skeleton/Blocks.js +18 -26
  388. package/dist/components/Skeleton/BoxWithIcon.d.ts +2 -2
  389. package/dist/components/Skeleton/BoxWithIcon.d.ts.map +1 -1
  390. package/dist/components/Skeleton/BoxWithIcon.js +18 -26
  391. package/dist/components/Skeleton/Donut.js +29 -26
  392. package/dist/components/Skeleton/IconSkeleton.js +8 -5
  393. package/dist/components/Skeleton/Line.js +19 -16
  394. package/dist/components/Skeleton/List.d.ts +2 -2
  395. package/dist/components/Skeleton/List.d.ts.map +1 -1
  396. package/dist/components/Skeleton/List.js +20 -17
  397. package/dist/components/Skeleton/Slider.d.ts +1 -1
  398. package/dist/components/Skeleton/Slider.d.ts.map +1 -1
  399. package/dist/components/Skeleton/Slider.js +17 -19
  400. package/dist/components/Skeleton/Square.js +8 -5
  401. package/dist/components/Skeleton/index.d.ts +10 -10
  402. package/dist/components/Skeleton/index.d.ts.map +1 -1
  403. package/dist/components/Skeleton/index.js +39 -44
  404. package/dist/components/Skeleton/styles.css.js +6 -5
  405. package/dist/components/Skeleton/stylesVariants.css.js +6 -25
  406. package/dist/components/Slider/components/DoubleSlider.d.ts +1 -1
  407. package/dist/components/Slider/components/DoubleSlider.d.ts.map +1 -1
  408. package/dist/components/Slider/components/DoubleSlider.js +286 -365
  409. package/dist/components/Slider/components/Options.d.ts.map +1 -1
  410. package/dist/components/Slider/components/Options.js +40 -50
  411. package/dist/components/Slider/components/SingleSlider.d.ts +1 -1
  412. package/dist/components/Slider/components/SingleSlider.d.ts.map +1 -1
  413. package/dist/components/Slider/components/SingleSlider.js +204 -249
  414. package/dist/components/Slider/index.d.ts +1 -1
  415. package/dist/components/Slider/index.d.ts.map +1 -1
  416. package/dist/components/Slider/index.js +102 -132
  417. package/dist/components/Slider/styles.css.js +96 -26
  418. package/dist/components/Snippet/index.d.ts +1 -1
  419. package/dist/components/Snippet/index.d.ts.map +1 -1
  420. package/dist/components/Snippet/index.js +123 -159
  421. package/dist/components/Snippet/styles.css.d.ts +2 -2
  422. package/dist/components/Snippet/styles.css.js +52 -20
  423. package/dist/components/Stack/index.d.ts +1 -1
  424. package/dist/components/Stack/index.d.ts.map +1 -1
  425. package/dist/components/Stack/index.js +67 -80
  426. package/dist/components/Stack/styles.css.d.ts +90 -90
  427. package/dist/components/Stack/styles.css.js +579 -16
  428. package/dist/components/Stack/variables.css.d.ts.map +1 -1
  429. package/dist/components/Stack/variables.css.js +6 -7
  430. package/dist/components/Status/index.d.ts +1 -1
  431. package/dist/components/Status/index.d.ts.map +1 -1
  432. package/dist/components/Status/index.js +21 -26
  433. package/dist/components/Status/styles.css.js +37 -10
  434. package/dist/components/StepList/index.d.ts +4 -9
  435. package/dist/components/StepList/index.d.ts.map +1 -1
  436. package/dist/components/StepList/index.js +35 -44
  437. package/dist/components/StepList/styles.css.js +24 -8
  438. package/dist/components/Stepper/Step.d.ts +1 -1
  439. package/dist/components/Stepper/Step.d.ts.map +1 -1
  440. package/dist/components/Stepper/Step.js +81 -117
  441. package/dist/components/Stepper/StepperProvider.d.ts.map +1 -1
  442. package/dist/components/Stepper/StepperProvider.js +41 -39
  443. package/dist/components/Stepper/index.d.ts +10 -11
  444. package/dist/components/Stepper/index.d.ts.map +1 -1
  445. package/dist/components/Stepper/index.js +48 -73
  446. package/dist/components/Stepper/styles.css.d.ts +1 -1
  447. package/dist/components/Stepper/styles.css.js +134 -17
  448. package/dist/components/SwitchButton/FocusOverlay.d.ts.map +1 -1
  449. package/dist/components/SwitchButton/FocusOverlay.js +15 -21
  450. package/dist/components/SwitchButton/Option.d.ts +1 -1
  451. package/dist/components/SwitchButton/Option.d.ts.map +1 -1
  452. package/dist/components/SwitchButton/Option.js +45 -60
  453. package/dist/components/SwitchButton/SwitchButtonContext.js +9 -9
  454. package/dist/components/SwitchButton/index.d.ts +8 -12
  455. package/dist/components/SwitchButton/index.d.ts.map +1 -1
  456. package/dist/components/SwitchButton/index.js +134 -154
  457. package/dist/components/SwitchButton/styles.css.d.ts +1 -1
  458. package/dist/components/SwitchButton/styles.css.js +13 -9
  459. package/dist/components/Table/Body.d.ts.map +1 -1
  460. package/dist/components/Table/Body.js +7 -4
  461. package/dist/components/Table/Cell.d.ts.map +1 -1
  462. package/dist/components/Table/Cell.js +31 -35
  463. package/dist/components/Table/Header.d.ts.map +1 -1
  464. package/dist/components/Table/Header.js +12 -6
  465. package/dist/components/Table/HeaderCell.d.ts.map +1 -1
  466. package/dist/components/Table/HeaderCell.js +67 -78
  467. package/dist/components/Table/HeaderRow.d.ts.map +1 -1
  468. package/dist/components/Table/HeaderRow.js +28 -32
  469. package/dist/components/Table/Row.d.ts +1 -1
  470. package/dist/components/Table/Row.d.ts.map +1 -1
  471. package/dist/components/Table/Row.js +122 -145
  472. package/dist/components/Table/SelectBar.d.ts.map +1 -1
  473. package/dist/components/Table/SelectBar.js +32 -35
  474. package/dist/components/Table/SkeletonRows.d.ts.map +1 -1
  475. package/dist/components/Table/SkeletonRows.js +19 -12
  476. package/dist/components/Table/TableContext.d.ts.map +1 -1
  477. package/dist/components/Table/TableContext.js +51 -47
  478. package/dist/components/Table/index.d.ts +32 -32
  479. package/dist/components/Table/index.d.ts.map +1 -1
  480. package/dist/components/Table/index.js +64 -88
  481. package/dist/components/Table/styles.css.js +41 -19
  482. package/dist/components/Table/variables.css.js +4 -8
  483. package/dist/components/Tabs/Tab.js +89 -88
  484. package/dist/components/Tabs/TabMenu.d.ts +3 -4
  485. package/dist/components/Tabs/TabMenu.d.ts.map +1 -1
  486. package/dist/components/Tabs/TabMenu.js +46 -47
  487. package/dist/components/Tabs/TabMenuItem.d.ts.map +1 -1
  488. package/dist/components/Tabs/TabMenuItem.js +29 -32
  489. package/dist/components/Tabs/TabsContext.js +7 -7
  490. package/dist/components/Tabs/index.d.ts +33 -33
  491. package/dist/components/Tabs/index.d.ts.map +1 -1
  492. package/dist/components/Tabs/index.js +77 -87
  493. package/dist/components/Tabs/styles.css.js +10 -13
  494. package/dist/components/Tag/index.d.ts +1 -1
  495. package/dist/components/Tag/index.d.ts.map +1 -1
  496. package/dist/components/Tag/index.js +88 -120
  497. package/dist/components/Tag/styles.css.js +57 -7
  498. package/dist/components/TagInput/index.d.ts +1 -1
  499. package/dist/components/TagInput/index.d.ts.map +1 -1
  500. package/dist/components/TagInput/index.js +196 -237
  501. package/dist/components/TagInput/styles.css.js +16 -8
  502. package/dist/components/TagList/constant.js +5 -3
  503. package/dist/components/TagList/index.d.ts +1 -1
  504. package/dist/components/TagList/index.d.ts.map +1 -1
  505. package/dist/components/TagList/index.js +172 -234
  506. package/dist/components/TagList/styles.css.js +12 -10
  507. package/dist/components/Text/index.d.ts +1 -1
  508. package/dist/components/Text/index.d.ts.map +1 -1
  509. package/dist/components/Text/index.js +46 -65
  510. package/dist/components/Text/style.css.js +450 -5
  511. package/dist/components/Text/variables.css.js +9 -4
  512. package/dist/components/TextArea/index.js +160 -203
  513. package/dist/components/TextArea/styles.css.js +18 -8
  514. package/dist/components/TextInput/index.d.ts +17 -18
  515. package/dist/components/TextInput/index.d.ts.map +1 -1
  516. package/dist/components/TextInput/index.js +212 -299
  517. package/dist/components/TextInput/styles.css.d.ts +1 -1
  518. package/dist/components/TextInput/styles.css.js +12 -12
  519. package/dist/components/TimeInput/constants.js +14 -7
  520. package/dist/components/TimeInput/helpers.d.ts +5 -6
  521. package/dist/components/TimeInput/helpers.d.ts.map +1 -1
  522. package/dist/components/TimeInput/helpers.js +31 -52
  523. package/dist/components/TimeInput/index.d.ts +1 -1
  524. package/dist/components/TimeInput/index.d.ts.map +1 -1
  525. package/dist/components/TimeInput/index.js +309 -366
  526. package/dist/components/TimeInput/styles.css.js +30 -8
  527. package/dist/components/Toaster/Toaster.d.ts +3 -3
  528. package/dist/components/Toaster/Toaster.d.ts.map +1 -1
  529. package/dist/components/Toaster/Toaster.js +35 -22
  530. package/dist/components/Toaster/ToasterContainer.d.ts +1 -1
  531. package/dist/components/Toaster/ToasterContainer.d.ts.map +1 -1
  532. package/dist/components/Toaster/ToasterContainer.js +36 -37
  533. package/dist/components/Toaster/components/Button.d.ts +57 -3
  534. package/dist/components/Toaster/components/Button.d.ts.map +1 -1
  535. package/dist/components/Toaster/components/CloseButton.d.ts.map +1 -1
  536. package/dist/components/Toaster/components/CloseButton.js +17 -20
  537. package/dist/components/Toaster/components/Content.d.ts +2 -1
  538. package/dist/components/Toaster/components/Content.d.ts.map +1 -1
  539. package/dist/components/Toaster/components/Content.js +18 -6
  540. package/dist/components/Toaster/components/Link.d.ts +31 -3
  541. package/dist/components/Toaster/components/Link.d.ts.map +1 -1
  542. package/dist/components/Toaster/constants.js +4 -3
  543. package/dist/components/Toaster/index.d.ts +88 -2
  544. package/dist/components/Toaster/index.d.ts.map +1 -1
  545. package/dist/components/Toaster/styles.css.js +6 -5
  546. package/dist/components/Toggle/index.d.ts +9 -9
  547. package/dist/components/Toggle/index.d.ts.map +1 -1
  548. package/dist/components/Toggle/index.js +94 -125
  549. package/dist/components/Toggle/styles.css.js +50 -8
  550. package/dist/components/ToggleGroup/index.d.ts +1 -1
  551. package/dist/components/ToggleGroup/index.d.ts.map +1 -1
  552. package/dist/components/ToggleGroup/index.js +95 -104
  553. package/dist/components/ToggleGroup/styles.css.js +6 -4
  554. package/dist/components/Tooltip/index.d.ts +29 -30
  555. package/dist/components/Tooltip/index.d.ts.map +1 -1
  556. package/dist/components/Tooltip/index.js +34 -50
  557. package/dist/components/Tooltip/styles.css.js +6 -4
  558. package/dist/components/TreeMapChart/Tooltip.d.ts +1 -1
  559. package/dist/components/TreeMapChart/Tooltip.d.ts.map +1 -1
  560. package/dist/components/TreeMapChart/Tooltip.js +23 -13
  561. package/dist/components/TreeMapChart/index.d.ts +1 -1
  562. package/dist/components/TreeMapChart/index.d.ts.map +1 -1
  563. package/dist/components/TreeMapChart/index.js +56 -67
  564. package/dist/components/TreeMapChart/styles.css.js +6 -5
  565. package/dist/components/UnitInput/index.d.ts +1 -1
  566. package/dist/components/UnitInput/index.d.ts.map +1 -1
  567. package/dist/components/UnitInput/index.js +132 -191
  568. package/dist/components/UnitInput/styles.css.d.ts +3 -3
  569. package/dist/components/UnitInput/styles.css.js +23 -13
  570. package/dist/components/VerificationCode/index.d.ts +1 -1
  571. package/dist/components/VerificationCode/index.d.ts.map +1 -1
  572. package/dist/components/VerificationCode/index.js +156 -208
  573. package/dist/components/VerificationCode/styles.css.d.ts +1 -1
  574. package/dist/components/VerificationCode/styles.css.js +12 -7
  575. package/dist/components/compositions/OfferList/OfferListProvider.d.ts +30 -0
  576. package/dist/components/compositions/OfferList/OfferListProvider.d.ts.map +1 -0
  577. package/dist/components/compositions/OfferList/OfferListProvider.js +29 -0
  578. package/dist/components/compositions/OfferList/components/Banner.d.ts +13 -0
  579. package/dist/components/compositions/OfferList/components/Banner.d.ts.map +1 -0
  580. package/dist/components/compositions/OfferList/components/Banner.js +41 -0
  581. package/dist/components/compositions/OfferList/components/Cell.d.ts +8 -0
  582. package/dist/components/compositions/OfferList/components/Cell.d.ts.map +1 -0
  583. package/dist/components/compositions/OfferList/components/Cell.js +32 -0
  584. package/dist/components/compositions/OfferList/components/OfferListRowProvider.d.ts +9 -0
  585. package/dist/components/compositions/OfferList/components/OfferListRowProvider.d.ts.map +1 -0
  586. package/dist/components/compositions/OfferList/components/OfferListRowProvider.js +12 -0
  587. package/dist/components/compositions/OfferList/components/Row.d.ts +19 -0
  588. package/dist/components/compositions/OfferList/components/Row.d.ts.map +1 -0
  589. package/dist/components/compositions/OfferList/components/Row.js +175 -0
  590. package/dist/components/compositions/OfferList/index.d.ts +59 -0
  591. package/dist/components/compositions/OfferList/index.d.ts.map +1 -0
  592. package/dist/components/compositions/OfferList/index.js +53 -0
  593. package/dist/components/compositions/OfferList/styles.css.d.ts +44 -0
  594. package/dist/components/compositions/OfferList/styles.css.d.ts.map +1 -0
  595. package/dist/components/compositions/OfferList/styles.css.js +124 -0
  596. package/dist/components/compositions/OptionSelector/__mock__/resources.d.ts +1 -1
  597. package/dist/components/compositions/OptionSelector/components/ArrowIcon.d.ts +5 -0
  598. package/dist/components/compositions/OptionSelector/components/ArrowIcon.d.ts.map +1 -0
  599. package/dist/components/compositions/OptionSelector/components/ArrowIcon.js +21 -0
  600. package/dist/components/compositions/OptionSelector/components/IconWithContent.d.ts +6 -0
  601. package/dist/components/compositions/OptionSelector/components/IconWithContent.d.ts.map +1 -0
  602. package/dist/components/compositions/OptionSelector/components/IconWithContent.js +14 -0
  603. package/dist/components/compositions/OptionSelector/components/RevealOnHover.d.ts.map +1 -0
  604. package/dist/components/compositions/OptionSelector/components/RevealOnHover.js +17 -0
  605. package/dist/components/compositions/OptionSelector/components/Selector.d.ts +10 -0
  606. package/dist/components/compositions/OptionSelector/components/Selector.d.ts.map +1 -0
  607. package/dist/components/compositions/OptionSelector/components/Selector.js +33 -0
  608. package/dist/components/compositions/OptionSelector/components/SelectorLabel.d.ts +8 -0
  609. package/dist/components/compositions/OptionSelector/components/SelectorLabel.d.ts.map +1 -0
  610. package/dist/components/compositions/OptionSelector/components/SelectorLabel.js +17 -0
  611. package/dist/components/compositions/OptionSelector/index.d.ts +1 -1
  612. package/dist/components/compositions/OptionSelector/index.d.ts.map +1 -1
  613. package/dist/components/compositions/OptionSelector/index.js +154 -176
  614. package/dist/components/compositions/OptionSelector/styles.css.d.ts +19 -4
  615. package/dist/components/compositions/OptionSelector/styles.css.d.ts.map +1 -1
  616. package/dist/components/compositions/OptionSelector/styles.css.js +34 -22
  617. package/dist/components/compositions/OptionSelector/types.d.ts +6 -1
  618. package/dist/components/compositions/OptionSelector/types.d.ts.map +1 -1
  619. package/dist/components/compositions/OrderSummary/NonScrollableContent.d.ts +20 -0
  620. package/dist/components/compositions/OrderSummary/NonScrollableContent.d.ts.map +1 -0
  621. package/dist/components/compositions/OrderSummary/NonScrollableContent.js +110 -0
  622. package/dist/components/compositions/OrderSummary/Provider.d.ts +15 -0
  623. package/dist/components/compositions/OrderSummary/Provider.d.ts.map +1 -0
  624. package/dist/components/compositions/OrderSummary/Provider.js +20 -0
  625. package/dist/components/compositions/OrderSummary/ScrollableContent.d.ts +2 -0
  626. package/dist/components/compositions/OrderSummary/ScrollableContent.d.ts.map +1 -0
  627. package/dist/components/compositions/OrderSummary/ScrollableContent.js +248 -0
  628. package/dist/components/compositions/OrderSummary/constants.d.ts +3 -0
  629. package/dist/components/compositions/OrderSummary/constants.d.ts.map +1 -0
  630. package/dist/components/compositions/OrderSummary/constants.js +18 -0
  631. package/dist/components/compositions/OrderSummary/helpers.d.ts +28 -0
  632. package/dist/components/compositions/OrderSummary/helpers.d.ts.map +1 -0
  633. package/dist/components/compositions/OrderSummary/helpers.js +126 -0
  634. package/dist/components/compositions/OrderSummary/index.d.ts +3 -0
  635. package/dist/components/compositions/OrderSummary/index.d.ts.map +1 -0
  636. package/dist/components/compositions/OrderSummary/index.js +151 -0
  637. package/dist/components/compositions/OrderSummary/locales/en.d.ts +11 -0
  638. package/dist/components/compositions/OrderSummary/locales/en.d.ts.map +1 -0
  639. package/dist/components/compositions/OrderSummary/locales/en.js +13 -0
  640. package/dist/components/compositions/OrderSummary/styles.css.d.ts +21 -0
  641. package/dist/components/compositions/OrderSummary/styles.css.d.ts.map +1 -0
  642. package/dist/components/compositions/OrderSummary/styles.css.js +32 -0
  643. package/dist/components/compositions/OrderSummary/types.d.ts +125 -0
  644. package/dist/components/compositions/OrderSummary/types.d.ts.map +1 -0
  645. package/dist/components/compositions/Plans/FeatureHint.d.ts +7 -0
  646. package/dist/components/compositions/Plans/FeatureHint.d.ts.map +1 -0
  647. package/dist/components/compositions/Plans/FeatureHint.js +43 -0
  648. package/dist/components/compositions/Plans/PlanHeader.d.ts +14 -0
  649. package/dist/components/compositions/Plans/PlanHeader.d.ts.map +1 -0
  650. package/dist/components/compositions/Plans/PlanHeader.js +103 -0
  651. package/dist/components/compositions/Plans/index.d.ts +22 -0
  652. package/dist/components/compositions/Plans/index.d.ts.map +1 -0
  653. package/dist/components/compositions/Plans/index.js +177 -0
  654. package/dist/components/compositions/Plans/locales/en.d.ts +7 -0
  655. package/dist/components/compositions/Plans/locales/en.d.ts.map +1 -0
  656. package/dist/components/compositions/Plans/locales/en.js +9 -0
  657. package/dist/components/compositions/Plans/styles.css.d.ts +67 -0
  658. package/dist/components/compositions/Plans/styles.css.d.ts.map +1 -0
  659. package/dist/components/compositions/Plans/styles.css.js +39 -0
  660. package/dist/components/compositions/Plans/types.d.ts +38 -0
  661. package/dist/components/compositions/Plans/types.d.ts.map +1 -0
  662. package/dist/components/compositions/SteppedListCard/Step.d.ts +23 -0
  663. package/dist/components/compositions/SteppedListCard/Step.d.ts.map +1 -0
  664. package/dist/components/compositions/SteppedListCard/Step.js +47 -0
  665. package/dist/components/compositions/SteppedListCard/SteppedListContent.d.ts +12 -0
  666. package/dist/components/compositions/SteppedListCard/SteppedListContent.d.ts.map +1 -0
  667. package/dist/components/compositions/SteppedListCard/SteppedListContent.js +56 -0
  668. package/dist/components/compositions/SteppedListCard/helper.d.ts +27 -0
  669. package/dist/components/compositions/SteppedListCard/helper.d.ts.map +1 -0
  670. package/dist/components/compositions/SteppedListCard/helper.js +33 -0
  671. package/dist/components/compositions/SteppedListCard/index.d.ts +65 -0
  672. package/dist/components/compositions/SteppedListCard/index.d.ts.map +1 -0
  673. package/dist/components/compositions/SteppedListCard/index.js +96 -0
  674. package/dist/components/compositions/SteppedListCard/styles.css.d.ts +9 -0
  675. package/dist/components/compositions/SteppedListCard/styles.css.d.ts.map +1 -0
  676. package/dist/components/compositions/SteppedListCard/styles.css.js +14 -0
  677. package/dist/components/compositions/index.d.ts +4 -0
  678. package/dist/components/compositions/index.d.ts.map +1 -1
  679. package/dist/components/compositions/index.js +6 -3
  680. package/dist/helpers/isClientSide.js +9 -4
  681. package/dist/helpers/isJSON.d.ts.map +1 -1
  682. package/dist/helpers/legend.d.ts +751 -2
  683. package/dist/helpers/legend.d.ts.map +1 -1
  684. package/dist/helpers/legend.js +11 -12
  685. package/dist/helpers/nivoTheme.d.ts +751 -2
  686. package/dist/helpers/nivoTheme.d.ts.map +1 -1
  687. package/dist/helpers/nivoTheme.js +19 -20
  688. package/dist/helpers/numbers.d.ts.map +1 -1
  689. package/dist/helpers/recursivelyGetChildrenString.d.ts.map +1 -1
  690. package/dist/helpers/recursivelyGetChildrenString.js +14 -16
  691. package/dist/helpers/treeMap.d.ts +751 -4
  692. package/dist/helpers/treeMap.d.ts.map +1 -1
  693. package/dist/helpers/treeMap.js +99 -36
  694. package/dist/hooks/useIsOverflowing.d.ts +1 -1
  695. package/dist/hooks/useIsOverflowing.d.ts.map +1 -1
  696. package/dist/hooks/useIsOverflowing.js +27 -22
  697. package/dist/index.js +39 -182
  698. package/dist/mocks/list.d.ts +2 -2
  699. package/dist/mocks/list.d.ts.map +1 -1
  700. package/dist/theme/ThemeProvider.d.ts +46 -46
  701. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  702. package/dist/theme/ThemeProvider.js +60 -55
  703. package/dist/theme/index.d.ts +1514 -14
  704. package/dist/theme/index.d.ts.map +1 -1
  705. package/dist/theme/index.js +24 -14
  706. package/dist/ui.css +2 -1
  707. package/dist/utils/animations/{animations.js → animations2.js} +4 -29
  708. package/dist/utils/animations/animationsVE.css.js +6 -30
  709. package/dist/utils/index.js +7 -0
  710. package/dist/utils/normalize.js +6 -3
  711. package/dist/utils/responsive/utilities.d.ts +2 -3
  712. package/dist/utils/responsive/utilities.d.ts.map +1 -1
  713. package/dist/utils/responsive/utilities.js +11 -13
  714. package/package.json +14 -13
  715. package/LICENSE +0 -189
  716. package/dist/components/Banner/assets/default-image-small.svg.js +0 -4
  717. package/dist/components/Slider/constant.js +0 -4
  718. package/dist/components/SwitchButton/constant.js +0 -4
  719. package/dist/components/Table/constants.js +0 -4
  720. package/dist/components/compositions/OptionSelector/RevealOnHover.d.ts.map +0 -1
  721. package/dist/components/compositions/OptionSelector/RevealOnHover.js +0 -12
  722. /package/dist/components/compositions/OptionSelector/{RevealOnHover.d.ts → components/RevealOnHover.d.ts} +0 -0
@@ -1,870 +1,723 @@
1
- "use client";
2
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
- import { PlusIcon } from "@ultraviolet/icons/PlusIcon";
4
- import { useTheme } from "@ultraviolet/themes";
5
- import { cn } from "@ultraviolet/utils";
6
- import { assignInlineVars } from "@vanilla-extract/dynamic";
7
- import { useState, useRef, useContext, useCallback, useLayoutEffect, useEffect, useMemo } from "react";
8
- import { Checkbox } from "../../Checkbox/index.js";
9
- import { ModalContext } from "../../Modal/ModalProvider.js";
10
- import { Popup } from "../../Popup/index.js";
11
- import { Skeleton } from "../../Skeleton/index.js";
1
+ 'use client';
2
+ import { __name } from "../../../_virtual/_rolldown/runtime.js";
3
+ import { _objectSpread2 } from "../../../_virtual/_@oxc-project_runtime@0.113.0/helpers/objectSpread2.js";
12
4
  import { Stack } from "../../Stack/index.js";
5
+ import { Popup } from "../../Popup/index.js";
13
6
  import { Text } from "../../Text/index.js";
14
- import { DROPDOWN_MAX_HEIGHT, INPUT_SIZE_HEIGHT, OPTION_SELECTOR } from "../constants.js";
7
+ import { Checkbox } from "../../Checkbox/index.js";
8
+ import { Skeleton } from "../../Skeleton/index.js";
9
+ import { ModalContext } from "../../Modal/ModalProvider.js";
10
+ import { INPUT_SIZE_HEIGHT, OPTION_SELECTOR } from "../constants.js";
15
11
  import { useSelectInput } from "../SelectInputProvider.js";
12
+ import { comboboxCreate, dropdown, dropdownCheckbox, dropdownContainer, dropdownContainerUnGrouped, dropdownEmptyState, dropdownGroup, dropdownGroupSelectable, dropdownGroupWrapper, dropdownItem, dropdownLoadMore, dropdownWidth, emptyStateGroupStyle, footer } from "./dropdown.css.js";
16
13
  import { DisplayOption } from "./DropdownOption.js";
17
- import { footer, dropdown, dropdownWidth, dropdownEmptyState, comboboxCreate, dropdownCheckbox, dropdownItem, dropdownLoadMore, dropdownContainer, dropdownContainerUnGrouped, dropdownGroupWrapper, dropdownGroupSelectable, dropdownGroup, emptyStateGroupStyle } from "./dropdown.css.js";
18
14
  import { SearchBarDropdown } from "./SearchBarDropdown.js";
15
+ import { cn } from "@ultraviolet/utils";
16
+ import { useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
17
+ import { assignInlineVars } from "@vanilla-extract/dynamic";
18
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
19
+ import { useTheme } from "@ultraviolet/themes";
20
+ import { PlusIcon } from "@ultraviolet/icons/PlusIcon";
21
+
22
+ //#region src/components/SelectInput/components/Dropdown.tsx
19
23
  const NON_SEARCHABLE_KEYS = [
20
- "Tab",
21
- " ",
22
- "Enter",
23
- "CapsLock",
24
- "Shift",
25
- "ArrowDown",
26
- "ArrowUp",
27
- "ArrowLeft",
28
- "ArrowRight",
29
- "Escape"
24
+ "Tab",
25
+ " ",
26
+ "Enter",
27
+ "CapsLock",
28
+ "Shift",
29
+ "ArrowDown",
30
+ "ArrowUp",
31
+ "ArrowLeft",
32
+ "ArrowRight",
33
+ "Escape"
30
34
  ];
31
35
  const moveFocusDown = () => {
32
- const options = document.querySelectorAll(OPTION_SELECTOR);
33
- const activeItem = document.activeElement;
34
- if (options) {
35
- for (let i = 0; i < options?.length; i += 1) {
36
- const listLength = options.length;
37
- if (activeItem === options[i] && activeItem !== options[listLength - 1]) {
38
- options[i + 1].focus();
39
- }
40
- }
41
- }
36
+ const options = document.querySelectorAll(OPTION_SELECTOR);
37
+ const activeItem = document.activeElement;
38
+ if (options) for (let i = 0; i < (options === null || options === void 0 ? void 0 : options.length); i += 1) {
39
+ const listLength = options.length;
40
+ if (activeItem === options[i] && activeItem !== options[listLength - 1]) options[i + 1].focus();
41
+ }
42
42
  };
43
43
  const moveFocusUp = () => {
44
- const options = document.querySelectorAll(OPTION_SELECTOR);
45
- const activeItem = document.activeElement;
46
- if (options) {
47
- for (let i = 0; i < options.length; i += 1) {
48
- if (activeItem === options[i] && activeItem !== options[0]) {
49
- options[i - 1].focus();
50
- }
51
- }
52
- }
44
+ const options = document.querySelectorAll(OPTION_SELECTOR);
45
+ const activeItem = document.activeElement;
46
+ if (options) {
47
+ for (let i = 0; i < options.length; i += 1) if (activeItem === options[i] && activeItem !== options[0]) options[i - 1].focus();
48
+ }
53
49
  };
54
50
  const handleKeyDownSelect = (event) => {
55
- if (event.key === "ArrowDown") {
56
- event.preventDefault();
57
- moveFocusDown();
58
- }
59
- if (event.key === "ArrowUp") {
60
- event.preventDefault();
61
- moveFocusUp();
62
- }
63
- if (event.key === " ") {
64
- event.preventDefault();
65
- }
51
+ if (event.key === "ArrowDown") {
52
+ event.preventDefault();
53
+ moveFocusDown();
54
+ }
55
+ if (event.key === "ArrowUp") {
56
+ event.preventDefault();
57
+ moveFocusUp();
58
+ }
59
+ if (event.key === " ") event.preventDefault();
66
60
  };
67
61
  const handleKeyDown = (event, ref, options, searchBarActive, setSearch, setDefaultSearch, search) => {
68
- if (ref.current && !searchBarActive && !NON_SEARCHABLE_KEYS.includes(event.key) && document.activeElement?.ariaLabel !== "search-bar") {
69
- const currentSearch = search + event.key;
70
- setSearch(currentSearch);
71
- ref.current.focus();
72
- if (Array.isArray(options)) {
73
- const closestOption = [...options].find(
74
- (option) => option.searchText ? option.searchText.toLocaleLowerCase().startsWith(currentSearch) : option.value.toLocaleLowerCase().startsWith(currentSearch)
75
- );
76
- if (closestOption) {
77
- setDefaultSearch(closestOption.searchText ?? closestOption.value);
78
- } else {
79
- setDefaultSearch(null);
80
- }
81
- } else {
82
- const closestOptions = { ...options };
83
- Object.keys(closestOptions).map((group) => {
84
- closestOptions[group] = closestOptions[group].filter(
85
- (option) => option.searchText ? option.searchText.toLocaleLowerCase().startsWith(currentSearch) : option.value.toLocaleLowerCase().startsWith(currentSearch)
86
- );
87
- return null;
88
- });
89
- const closestOption = closestOptions[Object.keys(closestOptions)[0]][0];
90
- if (closestOption) {
91
- setDefaultSearch(closestOption.searchText ?? closestOption.value);
92
- } else {
93
- setDefaultSearch(null);
94
- }
95
- }
96
- }
97
- };
98
- const CreateDropdown = ({
99
- isEmpty,
100
- emptyState,
101
- descriptionDirection,
102
- loadMore,
103
- optionalInfoPlacement,
104
- defaultSearchValue,
105
- isLoading,
106
- groupEmptyState,
107
- groupError,
108
- addOption,
109
- searchable
110
- }) => {
111
- const {
112
- setIsDropdownVisible,
113
- onChange,
114
- options,
115
- multiselect,
116
- selectAll,
117
- selectAllGroup,
118
- displayedOptions,
119
- onSearch,
120
- setSelectedData,
121
- selectedData,
122
- searchInput,
123
- setSearchInput
124
- } = useSelectInput();
125
- const focusedItemRef = useRef(null);
126
- useEffect(() => {
127
- if (defaultSearchValue && focusedItemRef?.current) {
128
- focusedItemRef.current.focus();
129
- }
130
- }, [defaultSearchValue]);
131
- const handleClickCustomValue = () => {
132
- const newOption = { label: searchInput, value: searchInput };
133
- addOption?.onClick(searchInput);
134
- onSearch([newOption]);
135
- setIsDropdownVisible(multiselect);
136
- setSearchInput("");
137
- };
138
- if (isEmpty && !addOption) {
139
- return /* @__PURE__ */ jsx(Stack, { alignItems: "center", className: dropdownEmptyState, gap: 2, children: emptyState ?? /* @__PURE__ */ jsx(Text, { as: "p", variant: "bodyStrong", children: "No options" }) });
140
- }
141
- if (isEmpty && addOption && searchable) {
142
- const text = /* @__PURE__ */ jsxs(Stack, { alignItems: "center", direction: "row", gap: "1", children: [
143
- /* @__PURE__ */ jsx(PlusIcon, { sentiment: "primary", size: "small" }),
144
- /* @__PURE__ */ jsxs(Text, { as: "span", sentiment: "primary", variant: "bodySmallStrong", children: [
145
- addOption.text,
146
- " ",
147
- searchInput
148
- ] })
149
- ] });
150
- const option = {
151
- label: text,
152
- searchText: searchInput,
153
- value: `${addOption.text} ${searchInput}`
154
- };
155
- return /* @__PURE__ */ jsx(
156
- "div",
157
- {
158
- "aria-selected": "false",
159
- className: comboboxCreate,
160
- "data-testid": "add-option",
161
- id: "add-option",
162
- onClick: handleClickCustomValue,
163
- onKeyDown: (event) => {
164
- if (["Enter", " "].includes(event.key)) {
165
- handleClickCustomValue();
166
- }
167
- },
168
- role: "option",
169
- tabIndex: -1,
170
- children: /* @__PURE__ */ jsx(
171
- DisplayOption,
172
- {
173
- descriptionDirection: "row",
174
- option,
175
- optionalInfoPlacement: "left"
176
- }
177
- )
178
- }
179
- );
180
- }
181
- const handleClick = ({
182
- clickedOption,
183
- group,
184
- event
185
- }) => {
186
- event.stopPropagation();
187
- setSelectedData({ clickedOption, group, type: "selectOption" });
188
- if (multiselect) {
189
- if (selectedData.selectedValues.includes(clickedOption.value)) {
190
- onChange?.(
191
- selectedData.selectedValues.filter(
192
- (value) => value !== clickedOption.value
193
- )
194
- );
195
- } else {
196
- onChange?.([...selectedData.selectedValues, clickedOption.value]);
197
- }
198
- } else {
199
- onChange?.(clickedOption.value);
200
- }
201
- setIsDropdownVisible(multiselect);
202
- };
203
- const selectAllOptions = () => {
204
- if (multiselect) {
205
- setSelectedData({ type: "selectAll" });
206
- if (selectedData.allSelected && onChange) {
207
- onChange([]);
208
- } else {
209
- const allValues = [];
210
- if (Array.isArray(options)) {
211
- options.map((option) => allValues.push(option));
212
- } else {
213
- Object.keys(options).map(
214
- (group) => options[group].map((option) => {
215
- if (!option.disabled) {
216
- allValues.push(option);
217
- }
218
- return null;
219
- })
220
- );
221
- }
222
- onChange?.(allValues.map((value) => value.value));
223
- }
224
- }
225
- };
226
- const handleSelectGroup = (group) => {
227
- if (multiselect) {
228
- setSelectedData({ selectedGroup: group, type: "selectGroup" });
229
- if (!Array.isArray(options)) {
230
- if (selectedData.selectedGroups.includes(group)) {
231
- const newSelectedValues = [...selectedData.selectedValues].filter(
232
- (selectedValue) => !options[group].find((option) => option.value === selectedValue)
233
- );
234
- onChange?.(newSelectedValues);
235
- } else {
236
- const newSelectedValues = [...selectedData.selectedValues];
237
- options[group].map(
238
- (option) => newSelectedValues.includes(option.value) || option.disabled ? null : newSelectedValues.push(option.value)
239
- );
240
- onChange?.(newSelectedValues);
241
- }
242
- }
243
- }
244
- };
245
- return Array.isArray(displayedOptions) ? /* @__PURE__ */ jsxs(
246
- Stack,
247
- {
248
- className: cn(dropdownContainer, dropdownContainerUnGrouped),
249
- gap: 0.25,
250
- id: "select-dropdown",
251
- onKeyDown: handleKeyDownSelect,
252
- role: "listbox",
253
- children: [
254
- addOption && searchInput && searchable ? /* @__PURE__ */ jsx(
255
- "div",
256
- {
257
- "aria-selected": "false",
258
- className: comboboxCreate,
259
- "data-testid": "add-option",
260
- id: "add-option",
261
- onClick: handleClickCustomValue,
262
- onKeyDown: (event) => {
263
- if (["Enter", " "].includes(event.key)) {
264
- handleClickCustomValue();
265
- }
266
- },
267
- role: "option",
268
- tabIndex: -1,
269
- children: /* @__PURE__ */ jsx(
270
- DisplayOption,
271
- {
272
- descriptionDirection: "row",
273
- option: {
274
- label: /* @__PURE__ */ jsxs(Stack, { alignItems: "center", direction: "row", gap: "1", children: [
275
- /* @__PURE__ */ jsx(PlusIcon, { sentiment: "primary", size: "small" }),
276
- /* @__PURE__ */ jsxs(Text, { as: "span", sentiment: "primary", variant: "bodySmallStrong", children: [
277
- addOption.text,
278
- " ",
279
- searchInput
280
- ] })
281
- ] }),
282
- searchText: searchInput,
283
- value: `${addOption.text} ${searchInput}`
284
- },
285
- optionalInfoPlacement: "left"
286
- }
287
- )
288
- }
289
- ) : null,
290
- selectAll && multiselect ? /* @__PURE__ */ jsx(Stack, { gap: 0.25, id: "items", tabIndex: -1, children: /* @__PURE__ */ jsx(
291
- "div",
292
- {
293
- "aria-disabled": false,
294
- "aria-label": "select-all",
295
- "aria-selected": selectedData.allSelected,
296
- className: cn(dropdownItem({ selected: selectedData.allSelected })),
297
- "data-testid": "select-all",
298
- onClick: selectAllOptions,
299
- onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? selectAllOptions() : null,
300
- role: "option",
301
- tabIndex: 0,
302
- children: /* @__PURE__ */ jsx(
303
- Checkbox,
304
- {
305
- checked: selectedData.allSelected,
306
- className: dropdownCheckbox,
307
- "data-testid": "select-all-checkbox",
308
- disabled: false,
309
- onChange: selectAllOptions,
310
- tabIndex: -1,
311
- value: "select-all",
312
- children: /* @__PURE__ */ jsxs(Stack, { direction: "column", children: [
313
- /* @__PURE__ */ jsx(Text, { as: "span", placement: "left", variant: "body", children: selectAll.label }),
314
- /* @__PURE__ */ jsx(
315
- Text,
316
- {
317
- as: "span",
318
- placement: "left",
319
- prominence: "weak",
320
- sentiment: "neutral",
321
- variant: "bodySmall",
322
- children: selectAll.description
323
- }
324
- )
325
- ] })
326
- }
327
- )
328
- }
329
- ) }) : null,
330
- /* @__PURE__ */ jsxs(Stack, { gap: 0.25, id: "items", children: [
331
- isLoading ? /* @__PURE__ */ jsx(Skeleton, { variant: "block" }) : displayedOptions.map((option, index) => /* @__PURE__ */ jsx(
332
- "div",
333
- {
334
- "aria-disabled": !!option.disabled,
335
- "aria-label": option.value,
336
- "aria-selected": selectedData.selectedValues.includes(option.value) && !option.disabled,
337
- className: cn(
338
- dropdownItem({
339
- disabled: !!option.disabled,
340
- selected: selectedData.selectedValues.includes(option.value) && !option.disabled
341
- })
342
- ),
343
- "data-testid": `option-${option.value}`,
344
- id: `option-${index}`,
345
- onClick: (event) => {
346
- if (!option.disabled) {
347
- handleClick({
348
- clickedOption: option,
349
- event
350
- });
351
- }
352
- },
353
- onKeyDown: (event) => {
354
- const shouldClick = [" ", "Enter"].includes(event.key);
355
- if (shouldClick) {
356
- handleClick({
357
- clickedOption: option,
358
- event
359
- });
360
- }
361
- },
362
- ref: option.value === defaultSearchValue || option.searchText === defaultSearchValue ? focusedItemRef : null,
363
- role: "option",
364
- tabIndex: option.disabled ? -1 : 0,
365
- children: multiselect ? /* @__PURE__ */ jsx(
366
- Checkbox,
367
- {
368
- checked: selectedData.selectedValues.includes(option.value) && !option.disabled,
369
- className: dropdownCheckbox,
370
- disabled: option.disabled,
371
- onChange: (event) => {
372
- if (!option.disabled) {
373
- handleClick({
374
- clickedOption: option,
375
- event
376
- });
377
- }
378
- },
379
- tabIndex: -1,
380
- value: option.value,
381
- children: /* @__PURE__ */ jsx(
382
- DisplayOption,
383
- {
384
- descriptionDirection,
385
- option,
386
- optionalInfoPlacement
387
- }
388
- )
389
- }
390
- ) : /* @__PURE__ */ jsx(
391
- DisplayOption,
392
- {
393
- descriptionDirection,
394
- option,
395
- optionalInfoPlacement
396
- }
397
- )
398
- },
399
- option.value
400
- )),
401
- loadMore ? /* @__PURE__ */ jsx(Stack, { className: dropdownLoadMore, children: loadMore }) : null
402
- ] })
403
- ]
404
- }
405
- ) : /* @__PURE__ */ jsxs(
406
- Stack,
407
- {
408
- className: dropdownContainer,
409
- "data-grouped": true,
410
- id: "select-dropdown",
411
- onKeyDown: handleKeyDownSelect,
412
- role: "listbox",
413
- children: [
414
- isLoading ? /* @__PURE__ */ jsx(Skeleton, { variant: "block" }) : /* @__PURE__ */ jsxs(Fragment, { children: [
415
- addOption && searchInput && searchable ? /* @__PURE__ */ jsx(
416
- "div",
417
- {
418
- "aria-selected": "false",
419
- className: comboboxCreate,
420
- "data-testid": "add-option",
421
- id: "add-option",
422
- onClick: handleClickCustomValue,
423
- onKeyDown: (event) => {
424
- if (["Enter", " "].includes(event.key)) {
425
- handleClickCustomValue();
426
- }
427
- },
428
- role: "option",
429
- tabIndex: -1,
430
- children: /* @__PURE__ */ jsx(
431
- DisplayOption,
432
- {
433
- descriptionDirection: "row",
434
- option: {
435
- label: /* @__PURE__ */ jsxs(Stack, { alignItems: "center", direction: "row", gap: "1", children: [
436
- /* @__PURE__ */ jsx(PlusIcon, { sentiment: "primary", size: "small" }),
437
- /* @__PURE__ */ jsxs(
438
- Text,
439
- {
440
- as: "span",
441
- sentiment: "primary",
442
- variant: "bodySmallStrong",
443
- children: [
444
- addOption.text,
445
- " ",
446
- searchInput
447
- ]
448
- }
449
- )
450
- ] }),
451
- searchText: searchInput,
452
- value: `${addOption.text} ${searchInput}`
453
- },
454
- optionalInfoPlacement: "left"
455
- }
456
- )
457
- }
458
- ) : null,
459
- selectAll && multiselect ? /* @__PURE__ */ jsx(Stack, { id: "items", children: /* @__PURE__ */ jsx(
460
- "div",
461
- {
462
- "aria-disabled": false,
463
- "aria-label": "select-all",
464
- "aria-selected": selectedData.allSelected,
465
- className: cn(
466
- dropdownItem({ selected: selectedData.allSelected })
467
- ),
468
- "data-testid": "select-all",
469
- id: "select-all",
470
- onClick: selectAllOptions,
471
- onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? selectAllOptions() : null,
472
- role: "option",
473
- tabIndex: 0,
474
- children: /* @__PURE__ */ jsx(
475
- Checkbox,
476
- {
477
- checked: selectedData.allSelected,
478
- className: dropdownCheckbox,
479
- "data-testid": "select-all-checkbox",
480
- disabled: false,
481
- name: "select-all",
482
- onChange: selectAllOptions,
483
- tabIndex: -1,
484
- value: "select-all",
485
- children: /* @__PURE__ */ jsxs(Stack, { direction: "column", children: [
486
- /* @__PURE__ */ jsx(Text, { as: "span", placement: "left", variant: "body", children: selectAll.label }),
487
- /* @__PURE__ */ jsx(
488
- Text,
489
- {
490
- as: "span",
491
- placement: "left",
492
- prominence: "weak",
493
- sentiment: "neutral",
494
- variant: "bodySmall",
495
- children: selectAll.description
496
- }
497
- )
498
- ] })
499
- }
500
- )
501
- }
502
- ) }) : null,
503
- Object.keys(displayedOptions).map((group, index) => {
504
- const hasElements = displayedOptions[group].length > 0;
505
- const emptyStateGroup = groupEmptyState?.[group] ?? null;
506
- const errorGroup = groupError?.[group] ?? null;
507
- return /* @__PURE__ */ jsxs(Stack, { gap: 0.25, children: [
508
- hasElements || emptyStateGroup ? /* @__PURE__ */ jsx(
509
- "div",
510
- {
511
- className: dropdownGroupWrapper,
512
- id: selectAllGroup ? "items" : void 0,
513
- children: group ? /* @__PURE__ */ jsx(
514
- "button",
515
- {
516
- className: cn(
517
- selectAllGroup ? dropdownGroupSelectable : "",
518
- dropdownGroup
519
- ),
520
- "data-selectgroup": selectAllGroup,
521
- "data-testid": `group-${index}`,
522
- onClick: () => selectAllGroup ? handleSelectGroup(group) : null,
523
- onKeyDown: (event) => {
524
- if ([" ", "Enter"].includes(event.key)) {
525
- event.preventDefault();
526
- handleSelectGroup(group);
527
- }
528
- },
529
- tabIndex: selectAllGroup ? 0 : -1,
530
- type: "button",
531
- children: selectAllGroup ? /* @__PURE__ */ jsx(
532
- Checkbox,
533
- {
534
- checked: selectedData.selectedGroups.includes(
535
- group
536
- ),
537
- className: dropdownCheckbox,
538
- "data-testid": "select-group",
539
- disabled: false,
540
- onChange: () => selectAllGroup ? handleSelectGroup(group) : null,
541
- tabIndex: -1,
542
- value: group,
543
- children: /* @__PURE__ */ jsx(
544
- Text,
545
- {
546
- as: "span",
547
- placement: "left",
548
- sentiment: "neutral",
549
- variant: "caption",
550
- children: group.toUpperCase()
551
- }
552
- )
553
- }
554
- ) : /* @__PURE__ */ jsx(
555
- Text,
556
- {
557
- as: "span",
558
- placement: "left",
559
- sentiment: "neutral",
560
- variant: "caption",
561
- children: group.toUpperCase()
562
- }
563
- )
564
- },
565
- group
566
- ) : null
567
- }
568
- ) : null,
569
- /* @__PURE__ */ jsxs(Stack, { gap: "0.25", id: "items", children: [
570
- hasElements ? null : /* @__PURE__ */ jsx(
571
- Text,
572
- {
573
- as: "span",
574
- className: emptyStateGroupStyle,
575
- prominence: "weak",
576
- sentiment: "neutral",
577
- variant: "body",
578
- children: emptyStateGroup
579
- }
580
- ),
581
- errorGroup ? /* @__PURE__ */ jsx(
582
- Text,
583
- {
584
- as: "span",
585
- className: emptyStateGroupStyle,
586
- sentiment: "danger",
587
- variant: "body",
588
- children: errorGroup
589
- }
590
- ) : null,
591
- displayedOptions[group].map(
592
- (option, indexOption) => errorGroup ? null : /* @__PURE__ */ jsx(
593
- "div",
594
- {
595
- "aria-disabled": !!option.disabled,
596
- "aria-label": option.value,
597
- "aria-selected": selectedData.selectedValues.includes(option.value) && !option.disabled,
598
- className: cn(
599
- dropdownItem({
600
- disabled: !!option.disabled,
601
- selected: selectedData.selectedValues.includes(
602
- option.value
603
- ) && !option.disabled
604
- })
605
- ),
606
- "data-testid": `option-${option.value}`,
607
- id: `option-${indexOption}`,
608
- onClick: (event) => {
609
- if (!option.disabled) {
610
- handleClick({
611
- clickedOption: option,
612
- event,
613
- group
614
- });
615
- }
616
- },
617
- onKeyDown: (event) => {
618
- const shouldClick = [" ", "Enter"].includes(event.key);
619
- if (shouldClick) {
620
- handleClick({
621
- clickedOption: option,
622
- event,
623
- group
624
- });
625
- }
626
- },
627
- ref: option.value === defaultSearchValue || option.searchText === defaultSearchValue ? focusedItemRef : null,
628
- role: "option",
629
- tabIndex: option.disabled ? -1 : 0,
630
- children: multiselect ? /* @__PURE__ */ jsx(
631
- Checkbox,
632
- {
633
- checked: selectedData.selectedValues.includes(
634
- option.value
635
- ) && !option.disabled,
636
- className: dropdownCheckbox,
637
- disabled: option.disabled,
638
- onChange: (event) => {
639
- if (!option.disabled) {
640
- handleClick({
641
- clickedOption: option,
642
- event,
643
- group
644
- });
645
- }
646
- },
647
- tabIndex: -1,
648
- value: option.value,
649
- children: /* @__PURE__ */ jsx(
650
- DisplayOption,
651
- {
652
- descriptionDirection,
653
- option,
654
- optionalInfoPlacement
655
- }
656
- )
657
- }
658
- ) : /* @__PURE__ */ jsx(
659
- DisplayOption,
660
- {
661
- descriptionDirection,
662
- option,
663
- optionalInfoPlacement
664
- }
665
- )
666
- },
667
- option.value
668
- )
669
- )
670
- ] })
671
- ] }, group);
672
- })
673
- ] }),
674
- loadMore ? /* @__PURE__ */ jsx(Stack, { className: dropdownLoadMore, children: loadMore }) : null
675
- ]
676
- }
677
- );
62
+ var _document$activeEleme;
63
+ if (ref.current && !searchBarActive && !NON_SEARCHABLE_KEYS.includes(event.key) && ((_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.ariaLabel) !== "search-bar") {
64
+ const currentSearch = search + event.key;
65
+ setSearch(currentSearch);
66
+ ref.current.focus();
67
+ if (Array.isArray(options)) {
68
+ const closestOption = [...options].find((option) => option.searchText ? option.searchText.toLocaleLowerCase().startsWith(currentSearch) : option.value.toLocaleLowerCase().startsWith(currentSearch));
69
+ if (closestOption) {
70
+ var _closestOption$search;
71
+ setDefaultSearch((_closestOption$search = closestOption.searchText) !== null && _closestOption$search !== void 0 ? _closestOption$search : closestOption.value);
72
+ } else setDefaultSearch(null);
73
+ } else {
74
+ const closestOptions = _objectSpread2({}, options);
75
+ Object.keys(closestOptions).map((group) => {
76
+ closestOptions[group] = closestOptions[group].filter((option) => option.searchText ? option.searchText.toLocaleLowerCase().startsWith(currentSearch) : option.value.toLocaleLowerCase().startsWith(currentSearch));
77
+ return null;
78
+ });
79
+ const closestOption = closestOptions[Object.keys(closestOptions)[0]][0];
80
+ if (closestOption) {
81
+ var _closestOption$search2;
82
+ setDefaultSearch((_closestOption$search2 = closestOption.searchText) !== null && _closestOption$search2 !== void 0 ? _closestOption$search2 : closestOption.value);
83
+ } else setDefaultSearch(null);
84
+ }
85
+ }
678
86
  };
679
- const Dropdown = ({
680
- children,
681
- emptyState,
682
- descriptionDirection,
683
- searchable,
684
- placeholder,
685
- footer: footer$1,
686
- refSelect,
687
- loadMore,
688
- optionalInfoPlacement,
689
- isLoading,
690
- size,
691
- dropdownAlign,
692
- portalTarget,
693
- id,
694
- groupError,
695
- groupEmptyState,
696
- addOption
697
- }) => {
698
- const {
699
- setIsDropdownVisible,
700
- isDropdownVisible,
701
- onSearch,
702
- searchInput,
703
- options,
704
- displayedOptions,
705
- numberOfOptions
706
- } = useSelectInput();
707
- const theme = useTheme();
708
- const [searchBarActive, setSearchBarActive] = useState(false);
709
- const [defaultSearchValue, setDefaultSearch] = useState(null);
710
- const ref = useRef(null);
711
- const [search, setSearch] = useState("");
712
- const [maxWidth, setWidth] = useState(
713
- refSelect.current?.offsetWidth ?? "100%"
714
- );
715
- const modalContext = useContext(ModalContext);
716
- const resizeDropdown = useCallback(() => {
717
- if (refSelect.current && refSelect.current.getBoundingClientRect().width > 0 && refSelect.current.getBoundingClientRect().width !== maxWidth) {
718
- setWidth(refSelect.current.getBoundingClientRect().width);
719
- }
720
- }, [refSelect, maxWidth]);
721
- useLayoutEffect(() => {
722
- if (refSelect.current && isDropdownVisible) {
723
- const position = refSelect.current.getBoundingClientRect().bottom + DROPDOWN_MAX_HEIGHT + Number(theme.sizing[INPUT_SIZE_HEIGHT[size]].replace("rem", "")) * 16 + Number.parseInt(theme.space["5"], 10);
724
- const overflow = position - window.innerHeight + 32;
725
- if (overflow > 0 && modalContext) {
726
- const currentModal = modalContext.openedModals[0];
727
- const modalElement = currentModal?.ref.current;
728
- if (modalElement) {
729
- const parentElement = modalElement.parentNode;
730
- if (parentElement instanceof HTMLElement) {
731
- parentElement.scrollBy({
732
- behavior: "smooth",
733
- top: overflow
734
- });
735
- } else {
736
- modalElement.scrollBy({
737
- behavior: "smooth",
738
- top: overflow
739
- });
740
- }
741
- resizeDropdown();
742
- } else {
743
- window.scrollBy({ behavior: "smooth", top: overflow });
744
- }
745
- }
746
- }
747
- }, [isDropdownVisible, refSelect, size, modalContext, theme, resizeDropdown]);
748
- useEffect(() => {
749
- resizeDropdown();
750
- window.addEventListener("resize", resizeDropdown);
751
- return () => window.removeEventListener("resize", resizeDropdown);
752
- }, [resizeDropdown]);
753
- useEffect(() => {
754
- if (!searchInput) {
755
- onSearch(options);
756
- }
757
- }, [onSearch, options, searchInput]);
758
- useEffect(() => {
759
- if (!isDropdownVisible) {
760
- setDefaultSearch(null);
761
- setSearch("");
762
- }
763
- const eventKeydown = (event) => handleKeyDown(
764
- event,
765
- ref,
766
- options,
767
- searchBarActive,
768
- setSearch,
769
- setDefaultSearch,
770
- search
771
- );
772
- if (!searchable) {
773
- document.addEventListener("keydown", eventKeydown);
774
- }
775
- return () => {
776
- if (!searchable) {
777
- document.removeEventListener("keydown", eventKeydown);
778
- }
779
- };
780
- }, [
781
- isDropdownVisible,
782
- searchBarActive,
783
- options,
784
- onSearch,
785
- search,
786
- refSelect,
787
- setDefaultSearch,
788
- setIsDropdownVisible,
789
- searchable
790
- ]);
791
- const isEmpty = useMemo(() => {
792
- if (numberOfOptions === 0) {
793
- return true;
794
- }
795
- if (Array.isArray(displayedOptions)) {
796
- return displayedOptions.length === 0;
797
- }
798
- const groups = Object.keys(displayedOptions);
799
- for (const group of groups) {
800
- if (displayedOptions[group].length > 0) {
801
- return false;
802
- }
803
- }
804
- return true;
805
- }, [displayedOptions, numberOfOptions]);
806
- const computedFooter = useMemo(() => {
807
- if (footer$1 && !isEmpty) {
808
- if (typeof footer$1 === "function") {
809
- return /* @__PURE__ */ jsx("div", { className: footer, children: footer$1(() => setIsDropdownVisible(false)) });
810
- }
811
- return /* @__PURE__ */ jsx("div", { className: footer, children: footer$1 });
812
- }
813
- return null;
814
- }, [isEmpty, footer$1, setIsDropdownVisible]);
815
- return /* @__PURE__ */ jsx(
816
- Popup,
817
- {
818
- align: dropdownAlign ?? "start",
819
- className: dropdown,
820
- containerFullWidth: true,
821
- debounceDelay: 0,
822
- disableAnimation: true,
823
- hasArrow: false,
824
- hideOnClickOutside: true,
825
- id,
826
- maxWidth: maxWidth ?? refSelect.current?.offsetWidth,
827
- onClose: () => setIsDropdownVisible(false),
828
- placement: "bottom",
829
- portalTarget,
830
- ref,
831
- role: "dialog",
832
- style: assignInlineVars({
833
- [dropdownWidth]: typeof maxWidth === "number" ? `${maxWidth}px` : maxWidth
834
- }),
835
- tabIndex: -1,
836
- text: /* @__PURE__ */ jsxs(Stack, { children: [
837
- searchable && !isLoading && (numberOfOptions >= 6 || addOption) ? /* @__PURE__ */ jsx(
838
- SearchBarDropdown,
839
- {
840
- displayedOptions,
841
- placeholder,
842
- setSearchBarActive
843
- }
844
- ) : null,
845
- /* @__PURE__ */ jsx(
846
- CreateDropdown,
847
- {
848
- addOption,
849
- defaultSearchValue,
850
- descriptionDirection,
851
- emptyState,
852
- groupEmptyState,
853
- groupError,
854
- isEmpty,
855
- isLoading,
856
- loadMore,
857
- optionalInfoPlacement,
858
- searchable
859
- }
860
- ),
861
- computedFooter
862
- ] }),
863
- visible: isDropdownVisible,
864
- children
865
- }
866
- );
87
+ const CreateDropdown = ({ isEmpty, emptyState, descriptionDirection, loadMore, optionalInfoPlacement, defaultSearchValue, isLoading, groupEmptyState, groupError, addOption, searchable }) => {
88
+ const { setIsDropdownVisible, onChange, options, multiselect, selectAll, selectAllGroup, displayedOptions, onSearch, setSelectedData, selectedData, searchInput, setSearchInput, size } = useSelectInput();
89
+ const focusedItemRef = useRef(null);
90
+ useEffect(() => {
91
+ if (defaultSearchValue && (focusedItemRef === null || focusedItemRef === void 0 ? void 0 : focusedItemRef.current)) focusedItemRef.current.focus();
92
+ }, [defaultSearchValue]);
93
+ const textVariant = useMemo(() => {
94
+ if (size === "large") return "body";
95
+ if (size === "medium") return "bodySmall";
96
+ return "caption";
97
+ }, [size]);
98
+ const textVariantSmall = size === "small" ? "captionStrong" : "bodySmallStrong";
99
+ const sizeVariantIcon = size === "small" ? "xsmall" : "small";
100
+ const handleClickCustomValue = () => {
101
+ const newOption = {
102
+ label: searchInput,
103
+ value: searchInput
104
+ };
105
+ addOption === null || addOption === void 0 || addOption.onClick(searchInput);
106
+ onSearch([newOption]);
107
+ setIsDropdownVisible(multiselect);
108
+ setSearchInput("");
109
+ };
110
+ if (isEmpty && !addOption) return /* @__PURE__ */ jsx(Stack, {
111
+ alignItems: "center",
112
+ className: dropdownEmptyState,
113
+ gap: 2,
114
+ children: emptyState !== null && emptyState !== void 0 ? emptyState : /* @__PURE__ */ jsx(Text, {
115
+ as: "p",
116
+ variant: size === "small" ? "bodySmallStrong" : "bodyStrong",
117
+ children: "No options"
118
+ })
119
+ });
120
+ if (isEmpty && addOption && searchable) {
121
+ const option = {
122
+ label: /* @__PURE__ */ jsxs(Stack, {
123
+ alignItems: "center",
124
+ direction: "row",
125
+ gap: "1",
126
+ children: [/* @__PURE__ */ jsx(PlusIcon, {
127
+ sentiment: "primary",
128
+ size: sizeVariantIcon
129
+ }), /* @__PURE__ */ jsxs(Text, {
130
+ as: "span",
131
+ sentiment: "primary",
132
+ variant: textVariantSmall,
133
+ children: [
134
+ addOption.text,
135
+ " ",
136
+ searchInput
137
+ ]
138
+ })]
139
+ }),
140
+ searchText: searchInput,
141
+ value: `${addOption.text} ${searchInput}`
142
+ };
143
+ return /* @__PURE__ */ jsx("div", {
144
+ "aria-selected": "false",
145
+ className: comboboxCreate,
146
+ "data-testid": "add-option",
147
+ id: "add-option",
148
+ onClick: handleClickCustomValue,
149
+ onKeyDown: (event) => {
150
+ if (["Enter", " "].includes(event.key)) handleClickCustomValue();
151
+ },
152
+ role: "option",
153
+ tabIndex: -1,
154
+ children: /* @__PURE__ */ jsx(DisplayOption, {
155
+ descriptionDirection: "row",
156
+ option,
157
+ optionalInfoPlacement: "left",
158
+ textVariant
159
+ })
160
+ });
161
+ }
162
+ const handleClick = ({ clickedOption, group, event }) => {
163
+ event.stopPropagation();
164
+ setSelectedData({
165
+ clickedOption,
166
+ group,
167
+ type: "selectOption"
168
+ });
169
+ if (multiselect) if (selectedData.selectedValues.includes(clickedOption.value)) onChange === null || onChange === void 0 || onChange(selectedData.selectedValues.filter((value) => value !== clickedOption.value));
170
+ else onChange === null || onChange === void 0 || onChange([...selectedData.selectedValues, clickedOption.value]);
171
+ else onChange === null || onChange === void 0 || onChange(clickedOption.value);
172
+ setIsDropdownVisible(multiselect);
173
+ };
174
+ const selectAllOptions = () => {
175
+ if (multiselect) {
176
+ setSelectedData({ type: "selectAll" });
177
+ if (selectedData.allSelected && onChange) onChange([]);
178
+ else {
179
+ const allValues = [];
180
+ if (Array.isArray(options)) options.map((option) => allValues.push(option));
181
+ else Object.keys(options).map((group) => options[group].map((option) => {
182
+ if (!option.disabled) allValues.push(option);
183
+ return null;
184
+ }));
185
+ onChange === null || onChange === void 0 || onChange(allValues.map((value) => value.value));
186
+ }
187
+ }
188
+ };
189
+ const handleSelectGroup = (group) => {
190
+ if (multiselect) {
191
+ setSelectedData({
192
+ selectedGroup: group,
193
+ type: "selectGroup"
194
+ });
195
+ if (!Array.isArray(options)) if (selectedData.selectedGroups.includes(group)) {
196
+ const newSelectedValues = [...selectedData.selectedValues].filter((selectedValue) => !options[group].find((option) => option.value === selectedValue));
197
+ onChange === null || onChange === void 0 || onChange(newSelectedValues);
198
+ } else {
199
+ const newSelectedValues = [...selectedData.selectedValues];
200
+ options[group].map((option) => newSelectedValues.includes(option.value) || option.disabled ? null : newSelectedValues.push(option.value));
201
+ onChange === null || onChange === void 0 || onChange(newSelectedValues);
202
+ }
203
+ }
204
+ };
205
+ return Array.isArray(displayedOptions) ? /* @__PURE__ */ jsxs(Stack, {
206
+ className: cn(dropdownContainer, dropdownContainerUnGrouped),
207
+ gap: .25,
208
+ id: "select-dropdown",
209
+ onKeyDown: handleKeyDownSelect,
210
+ role: "listbox",
211
+ children: [
212
+ addOption && searchInput && searchable ? /* @__PURE__ */ jsx("div", {
213
+ "aria-selected": "false",
214
+ className: comboboxCreate,
215
+ "data-testid": "add-option",
216
+ id: "add-option",
217
+ onClick: handleClickCustomValue,
218
+ onKeyDown: (event) => {
219
+ if (["Enter", " "].includes(event.key)) handleClickCustomValue();
220
+ },
221
+ role: "option",
222
+ tabIndex: -1,
223
+ children: /* @__PURE__ */ jsx(DisplayOption, {
224
+ descriptionDirection: "row",
225
+ option: {
226
+ label: /* @__PURE__ */ jsxs(Stack, {
227
+ alignItems: "center",
228
+ direction: "row",
229
+ gap: "1",
230
+ children: [/* @__PURE__ */ jsx(PlusIcon, {
231
+ sentiment: "primary",
232
+ size: sizeVariantIcon
233
+ }), /* @__PURE__ */ jsxs(Text, {
234
+ as: "span",
235
+ sentiment: "primary",
236
+ variant: textVariantSmall,
237
+ children: [
238
+ addOption.text,
239
+ " ",
240
+ searchInput
241
+ ]
242
+ })]
243
+ }),
244
+ searchText: searchInput,
245
+ value: `${addOption.text} ${searchInput}`
246
+ },
247
+ optionalInfoPlacement: "left",
248
+ textVariant
249
+ })
250
+ }) : null,
251
+ selectAll && multiselect ? /* @__PURE__ */ jsx(Stack, {
252
+ gap: .25,
253
+ id: "items",
254
+ tabIndex: -1,
255
+ children: /* @__PURE__ */ jsx("div", {
256
+ "aria-disabled": false,
257
+ "aria-label": "select-all",
258
+ "aria-selected": selectedData.allSelected,
259
+ className: cn(dropdownItem({
260
+ selected: selectedData.allSelected,
261
+ size: size === "small" ? "small" : "default"
262
+ })),
263
+ "data-testid": "select-all",
264
+ onClick: selectAllOptions,
265
+ onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? selectAllOptions() : null,
266
+ role: "option",
267
+ tabIndex: 0,
268
+ children: /* @__PURE__ */ jsx(Checkbox, {
269
+ checked: selectedData.allSelected,
270
+ className: dropdownCheckbox,
271
+ "data-testid": "select-all-checkbox",
272
+ disabled: false,
273
+ onChange: selectAllOptions,
274
+ tabIndex: -1,
275
+ value: "select-all",
276
+ children: /* @__PURE__ */ jsxs(Stack, {
277
+ direction: "column",
278
+ children: [/* @__PURE__ */ jsx(Text, {
279
+ as: "span",
280
+ placement: "left",
281
+ variant: textVariant,
282
+ children: selectAll.label
283
+ }), /* @__PURE__ */ jsx(Text, {
284
+ as: "span",
285
+ placement: "left",
286
+ prominence: "weak",
287
+ sentiment: "neutral",
288
+ variant: size === "small" ? "captionSmall" : "bodySmall",
289
+ children: selectAll.description
290
+ })]
291
+ })
292
+ })
293
+ })
294
+ }) : null,
295
+ /* @__PURE__ */ jsxs(Stack, {
296
+ gap: .25,
297
+ id: "items",
298
+ children: [isLoading ? /* @__PURE__ */ jsx(Skeleton, { variant: "block" }) : displayedOptions.map((option, index) => /* @__PURE__ */ jsx("div", {
299
+ "aria-disabled": !!option.disabled,
300
+ "aria-label": option.value,
301
+ "aria-selected": selectedData.selectedValues.includes(option.value) && !option.disabled,
302
+ className: cn(dropdownItem({
303
+ disabled: !!option.disabled,
304
+ selected: selectedData.selectedValues.includes(option.value) && !option.disabled,
305
+ size: size === "small" ? "small" : "default"
306
+ })),
307
+ "data-testid": `option-${option.value}`,
308
+ id: `option-${index}`,
309
+ onClick: (event) => {
310
+ if (!option.disabled) handleClick({
311
+ clickedOption: option,
312
+ event
313
+ });
314
+ },
315
+ onKeyDown: (event) => {
316
+ if ([" ", "Enter"].includes(event.key)) handleClick({
317
+ clickedOption: option,
318
+ event
319
+ });
320
+ },
321
+ ref: option.value === defaultSearchValue || option.searchText === defaultSearchValue ? focusedItemRef : null,
322
+ role: "option",
323
+ tabIndex: option.disabled ? -1 : 0,
324
+ children: multiselect ? /* @__PURE__ */ jsx(Checkbox, {
325
+ checked: selectedData.selectedValues.includes(option.value) && !option.disabled,
326
+ className: dropdownCheckbox,
327
+ disabled: option.disabled,
328
+ onChange: (event) => {
329
+ if (!option.disabled) handleClick({
330
+ clickedOption: option,
331
+ event
332
+ });
333
+ },
334
+ tabIndex: -1,
335
+ tooltip: option.tooltip,
336
+ value: option.value,
337
+ children: /* @__PURE__ */ jsx(DisplayOption, {
338
+ descriptionDirection,
339
+ option,
340
+ optionalInfoPlacement,
341
+ textVariant
342
+ })
343
+ }) : /* @__PURE__ */ jsx(DisplayOption, {
344
+ descriptionDirection,
345
+ option,
346
+ optionalInfoPlacement,
347
+ textVariant
348
+ })
349
+ }, option.value)), loadMore ? /* @__PURE__ */ jsx(Stack, {
350
+ className: dropdownLoadMore,
351
+ children: loadMore
352
+ }) : null]
353
+ })
354
+ ]
355
+ }) : /* @__PURE__ */ jsxs(Stack, {
356
+ className: dropdownContainer,
357
+ "data-grouped": true,
358
+ id: "select-dropdown",
359
+ onKeyDown: handleKeyDownSelect,
360
+ role: "listbox",
361
+ children: [isLoading ? /* @__PURE__ */ jsx(Skeleton, { variant: "block" }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [
362
+ addOption && searchInput && searchable ? /* @__PURE__ */ jsx("div", {
363
+ "aria-selected": "false",
364
+ className: comboboxCreate,
365
+ "data-testid": "add-option",
366
+ id: "add-option",
367
+ onClick: handleClickCustomValue,
368
+ onKeyDown: (event) => {
369
+ if (["Enter", " "].includes(event.key)) handleClickCustomValue();
370
+ },
371
+ role: "option",
372
+ tabIndex: -1,
373
+ children: /* @__PURE__ */ jsx(DisplayOption, {
374
+ descriptionDirection: "row",
375
+ option: {
376
+ label: /* @__PURE__ */ jsxs(Stack, {
377
+ alignItems: "center",
378
+ direction: "row",
379
+ gap: "1",
380
+ children: [/* @__PURE__ */ jsx(PlusIcon, {
381
+ sentiment: "primary",
382
+ size: sizeVariantIcon
383
+ }), /* @__PURE__ */ jsxs(Text, {
384
+ as: "span",
385
+ sentiment: "primary",
386
+ variant: textVariantSmall,
387
+ children: [
388
+ addOption.text,
389
+ " ",
390
+ searchInput
391
+ ]
392
+ })]
393
+ }),
394
+ searchText: searchInput,
395
+ value: `${addOption.text} ${searchInput}`
396
+ },
397
+ optionalInfoPlacement: "left",
398
+ textVariant
399
+ })
400
+ }) : null,
401
+ selectAll && multiselect ? /* @__PURE__ */ jsx(Stack, {
402
+ id: "items",
403
+ children: /* @__PURE__ */ jsx("div", {
404
+ "aria-disabled": false,
405
+ "aria-label": "select-all",
406
+ "aria-selected": selectedData.allSelected,
407
+ className: cn(dropdownItem({
408
+ selected: selectedData.allSelected,
409
+ size: size === "small" ? "small" : "default"
410
+ })),
411
+ "data-testid": "select-all",
412
+ id: "select-all",
413
+ onClick: selectAllOptions,
414
+ onKeyDown: (event) => [" ", "Enter"].includes(event.key) ? selectAllOptions() : null,
415
+ role: "option",
416
+ tabIndex: 0,
417
+ children: /* @__PURE__ */ jsx(Checkbox, {
418
+ checked: selectedData.allSelected,
419
+ className: dropdownCheckbox,
420
+ "data-testid": "select-all-checkbox",
421
+ disabled: false,
422
+ name: "select-all",
423
+ onChange: selectAllOptions,
424
+ tabIndex: -1,
425
+ value: "select-all",
426
+ children: /* @__PURE__ */ jsxs(Stack, {
427
+ direction: "column",
428
+ children: [/* @__PURE__ */ jsx(Text, {
429
+ as: "span",
430
+ placement: "left",
431
+ variant: textVariant,
432
+ children: selectAll.label
433
+ }), /* @__PURE__ */ jsx(Text, {
434
+ as: "span",
435
+ placement: "left",
436
+ prominence: "weak",
437
+ sentiment: "neutral",
438
+ variant: size === "small" ? "captionSmall" : "bodySmall",
439
+ children: selectAll.description
440
+ })]
441
+ })
442
+ })
443
+ })
444
+ }) : null,
445
+ Object.keys(displayedOptions).map((group, index) => {
446
+ var _groupEmptyState$grou;
447
+ var _groupError$group;
448
+ const hasElements = displayedOptions[group].length > 0;
449
+ const emptyStateGroup = (_groupEmptyState$grou = groupEmptyState === null || groupEmptyState === void 0 ? void 0 : groupEmptyState[group]) !== null && _groupEmptyState$grou !== void 0 ? _groupEmptyState$grou : null;
450
+ const errorGroup = (_groupError$group = groupError === null || groupError === void 0 ? void 0 : groupError[group]) !== null && _groupError$group !== void 0 ? _groupError$group : null;
451
+ return /* @__PURE__ */ jsxs(Stack, {
452
+ gap: .25,
453
+ children: [hasElements || emptyStateGroup ? /* @__PURE__ */ jsx("div", {
454
+ className: dropdownGroupWrapper,
455
+ id: selectAllGroup ? "items" : void 0,
456
+ children: group ? /* @__PURE__ */ jsx("button", {
457
+ className: cn(selectAllGroup ? dropdownGroupSelectable({ size: size === "small" ? "small" : "default" }) : "", dropdownGroup),
458
+ "data-selectgroup": selectAllGroup,
459
+ "data-testid": `group-${index}`,
460
+ onClick: () => selectAllGroup ? handleSelectGroup(group) : null,
461
+ onKeyDown: (event) => {
462
+ if ([" ", "Enter"].includes(event.key)) {
463
+ event.preventDefault();
464
+ handleSelectGroup(group);
465
+ }
466
+ },
467
+ tabIndex: selectAllGroup ? 0 : -1,
468
+ type: "button",
469
+ children: selectAllGroup ? /* @__PURE__ */ jsx(Checkbox, {
470
+ checked: selectedData.selectedGroups.includes(group),
471
+ className: dropdownCheckbox,
472
+ "data-testid": "select-group",
473
+ disabled: false,
474
+ onChange: () => selectAllGroup ? handleSelectGroup(group) : null,
475
+ tabIndex: -1,
476
+ value: group,
477
+ children: /* @__PURE__ */ jsx(Text, {
478
+ as: "span",
479
+ placement: "left",
480
+ sentiment: "neutral",
481
+ variant: size === "small" ? "captionSmall" : "caption",
482
+ children: group.toUpperCase()
483
+ })
484
+ }) : /* @__PURE__ */ jsx(Text, {
485
+ as: "span",
486
+ placement: "left",
487
+ sentiment: "neutral",
488
+ variant: size === "small" ? "captionSmall" : "caption",
489
+ children: group.toUpperCase()
490
+ })
491
+ }, group) : null
492
+ }) : null, /* @__PURE__ */ jsxs(Stack, {
493
+ gap: "0.25",
494
+ id: "items",
495
+ children: [
496
+ !hasElements && emptyStateGroup ? /* @__PURE__ */ jsx(Text, {
497
+ as: "span",
498
+ className: emptyStateGroupStyle,
499
+ prominence: "weak",
500
+ sentiment: "neutral",
501
+ variant: textVariant,
502
+ children: emptyStateGroup
503
+ }) : null,
504
+ errorGroup ? /* @__PURE__ */ jsx(Text, {
505
+ as: "span",
506
+ className: emptyStateGroupStyle,
507
+ sentiment: "danger",
508
+ variant: textVariant,
509
+ children: errorGroup
510
+ }) : null,
511
+ displayedOptions[group].map((option, indexOption) => errorGroup ? null : /* @__PURE__ */ jsx("div", {
512
+ "aria-disabled": !!option.disabled,
513
+ "aria-label": option.value,
514
+ "aria-selected": selectedData.selectedValues.includes(option.value) && !option.disabled,
515
+ className: cn(dropdownItem({
516
+ disabled: !!option.disabled,
517
+ size: size === "small" ? "small" : "default",
518
+ selected: selectedData.selectedValues.includes(option.value) && !option.disabled
519
+ })),
520
+ "data-testid": `option-${option.value}`,
521
+ id: `option-${indexOption}`,
522
+ onClick: (event) => {
523
+ if (!option.disabled) handleClick({
524
+ clickedOption: option,
525
+ event,
526
+ group
527
+ });
528
+ },
529
+ onKeyDown: (event) => {
530
+ if ([" ", "Enter"].includes(event.key)) handleClick({
531
+ clickedOption: option,
532
+ event,
533
+ group
534
+ });
535
+ },
536
+ ref: option.value === defaultSearchValue || option.searchText === defaultSearchValue ? focusedItemRef : null,
537
+ role: "option",
538
+ tabIndex: option.disabled ? -1 : 0,
539
+ children: multiselect ? /* @__PURE__ */ jsx(Checkbox, {
540
+ checked: selectedData.selectedValues.includes(option.value) && !option.disabled,
541
+ className: dropdownCheckbox,
542
+ disabled: option.disabled,
543
+ onChange: (event) => {
544
+ if (!option.disabled) handleClick({
545
+ clickedOption: option,
546
+ event,
547
+ group
548
+ });
549
+ },
550
+ tabIndex: -1,
551
+ tooltip: option.tooltip,
552
+ value: option.value,
553
+ children: /* @__PURE__ */ jsx(DisplayOption, {
554
+ descriptionDirection,
555
+ option,
556
+ optionalInfoPlacement,
557
+ textVariant
558
+ })
559
+ }) : /* @__PURE__ */ jsx(DisplayOption, {
560
+ descriptionDirection,
561
+ option,
562
+ optionalInfoPlacement,
563
+ textVariant
564
+ })
565
+ }, option.value))
566
+ ]
567
+ })]
568
+ }, group);
569
+ })
570
+ ] }), loadMore ? /* @__PURE__ */ jsx(Stack, {
571
+ className: dropdownLoadMore,
572
+ children: loadMore
573
+ }) : null]
574
+ });
867
575
  };
868
- export {
869
- Dropdown
576
+ const Dropdown = ({ children, emptyState, descriptionDirection, searchable, placeholder, footer: footer$1, refSelect, loadMore, optionalInfoPlacement, isLoading, size, dropdownAlign, portalTarget, id, groupError, groupEmptyState, addOption }) => {
577
+ var _refSelect$current$of;
578
+ var _refSelect$current;
579
+ var _refSelect$current2;
580
+ var _refSelect$current3;
581
+ const { setIsDropdownVisible, isDropdownVisible, onSearch, searchInput, options, displayedOptions, numberOfOptions } = useSelectInput();
582
+ const theme = useTheme();
583
+ const [searchBarActive, setSearchBarActive] = useState(false);
584
+ const [defaultSearchValue, setDefaultSearch] = useState(null);
585
+ const ref = useRef(null);
586
+ const [search, setSearch] = useState("");
587
+ const [maxWidth, setWidth] = useState((_refSelect$current$of = (_refSelect$current = refSelect.current) === null || _refSelect$current === void 0 ? void 0 : _refSelect$current.offsetWidth) !== null && _refSelect$current$of !== void 0 ? _refSelect$current$of : "100%");
588
+ const modalContext = useContext(ModalContext);
589
+ const resizeDropdown = useCallback(() => {
590
+ if (refSelect.current && refSelect.current.getBoundingClientRect().width > 0 && refSelect.current.getBoundingClientRect().width !== maxWidth) setWidth(refSelect.current.getBoundingClientRect().width);
591
+ }, [refSelect, maxWidth]);
592
+ useLayoutEffect(() => {
593
+ if (refSelect.current && isDropdownVisible) {
594
+ const overflow = refSelect.current.getBoundingClientRect().bottom + 256 + Number(theme.sizing[INPUT_SIZE_HEIGHT[size]].replace("rem", "")) * 16 + Number.parseInt(theme.space["5"], 10) - window.innerHeight + 32;
595
+ if (overflow > 0 && modalContext) {
596
+ const currentModal = modalContext.openedModals[0];
597
+ const modalElement = currentModal === null || currentModal === void 0 ? void 0 : currentModal.ref.current;
598
+ if (modalElement) {
599
+ const parentElement = modalElement.parentNode;
600
+ if (parentElement instanceof HTMLElement) parentElement.scrollBy({
601
+ behavior: "smooth",
602
+ top: overflow
603
+ });
604
+ else modalElement.scrollBy({
605
+ behavior: "smooth",
606
+ top: overflow
607
+ });
608
+ } else window.scrollBy({
609
+ behavior: "smooth",
610
+ top: overflow
611
+ });
612
+ }
613
+ }
614
+ }, [
615
+ isDropdownVisible,
616
+ refSelect,
617
+ size,
618
+ modalContext,
619
+ theme,
620
+ resizeDropdown
621
+ ]);
622
+ useEffect(() => {
623
+ resizeDropdown();
624
+ window.addEventListener("resize", resizeDropdown);
625
+ return () => window.removeEventListener("resize", resizeDropdown);
626
+ }, [resizeDropdown, (_refSelect$current2 = refSelect.current) === null || _refSelect$current2 === void 0 ? void 0 : _refSelect$current2.offsetWidth]);
627
+ useEffect(() => {
628
+ if (!searchInput) onSearch(options);
629
+ }, [
630
+ onSearch,
631
+ options,
632
+ searchInput
633
+ ]);
634
+ useEffect(() => {
635
+ if (!isDropdownVisible) {
636
+ setDefaultSearch(null);
637
+ setSearch("");
638
+ }
639
+ const eventKeydown = (event) => handleKeyDown(event, ref, options, searchBarActive, setSearch, setDefaultSearch, search);
640
+ if (!searchable) document.addEventListener("keydown", eventKeydown);
641
+ return () => {
642
+ if (!searchable) document.removeEventListener("keydown", eventKeydown);
643
+ };
644
+ }, [
645
+ isDropdownVisible,
646
+ searchBarActive,
647
+ options,
648
+ onSearch,
649
+ search,
650
+ refSelect,
651
+ setDefaultSearch,
652
+ setIsDropdownVisible,
653
+ searchable
654
+ ]);
655
+ const isEmpty = useMemo(() => {
656
+ if (numberOfOptions === 0) return true;
657
+ if (Array.isArray(displayedOptions)) return displayedOptions.length === 0;
658
+ const groups = Object.keys(displayedOptions);
659
+ for (const group of groups) if (displayedOptions[group].length > 0) return false;
660
+ return true;
661
+ }, [displayedOptions, numberOfOptions]);
662
+ const computedFooter = useMemo(() => {
663
+ if (footer$1 && !isEmpty) {
664
+ if (typeof footer$1 === "function") return /* @__PURE__ */ jsx("div", {
665
+ className: footer,
666
+ children: footer$1(() => setIsDropdownVisible(false))
667
+ });
668
+ return /* @__PURE__ */ jsx("div", {
669
+ className: footer,
670
+ children: footer$1
671
+ });
672
+ }
673
+ return null;
674
+ }, [
675
+ isEmpty,
676
+ footer$1,
677
+ setIsDropdownVisible
678
+ ]);
679
+ return /* @__PURE__ */ jsx(Popup, {
680
+ align: dropdownAlign !== null && dropdownAlign !== void 0 ? dropdownAlign : "start",
681
+ className: dropdown,
682
+ containerFullWidth: true,
683
+ debounceDelay: 0,
684
+ disableAnimation: true,
685
+ hasArrow: false,
686
+ hideOnClickOutside: true,
687
+ id,
688
+ maxWidth: maxWidth !== null && maxWidth !== void 0 ? maxWidth : (_refSelect$current3 = refSelect.current) === null || _refSelect$current3 === void 0 ? void 0 : _refSelect$current3.offsetWidth,
689
+ onClose: () => setIsDropdownVisible(false),
690
+ placement: "bottom",
691
+ portalTarget,
692
+ ref,
693
+ role: "dialog",
694
+ style: assignInlineVars({ [dropdownWidth]: typeof maxWidth === "number" ? `${maxWidth}px` : maxWidth }),
695
+ tabIndex: -1,
696
+ text: /* @__PURE__ */ jsxs(Stack, { children: [
697
+ searchable && !isLoading && (numberOfOptions >= 6 || addOption) ? /* @__PURE__ */ jsx(SearchBarDropdown, {
698
+ displayedOptions,
699
+ placeholder,
700
+ setSearchBarActive
701
+ }) : null,
702
+ /* @__PURE__ */ jsx(CreateDropdown, {
703
+ addOption,
704
+ defaultSearchValue,
705
+ descriptionDirection,
706
+ emptyState,
707
+ groupEmptyState,
708
+ groupError,
709
+ isEmpty,
710
+ isLoading,
711
+ loadMore,
712
+ optionalInfoPlacement,
713
+ searchable
714
+ }),
715
+ computedFooter
716
+ ] }),
717
+ visible: isDropdownVisible,
718
+ children
719
+ });
870
720
  };
721
+
722
+ //#endregion
723
+ export { Dropdown };