@ultraviolet/ui 1.51.0 → 1.51.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/dist/components/ActionBar/index.d.ts +20 -0
  2. package/dist/components/ActionBar/index.js +40 -0
  3. package/dist/components/Alert/index.d.ts +27 -0
  4. package/dist/components/Alert/index.js +126 -0
  5. package/dist/components/Avatar/index.d.ts +43 -0
  6. package/dist/components/Avatar/index.js +54 -0
  7. package/dist/components/Badge/index.d.ts +31 -0
  8. package/dist/components/Badge/index.js +115 -0
  9. package/dist/components/Banner/assets/default-image-small.svg.js +4 -0
  10. package/dist/components/Banner/assets/default-image.svg.js +4 -0
  11. package/dist/components/Banner/index.d.ts +24 -0
  12. package/dist/components/Banner/index.js +191 -0
  13. package/dist/components/BarChart/Tooltip.d.ts +9 -0
  14. package/dist/components/BarChart/Tooltip.js +36 -0
  15. package/dist/components/BarChart/index.d.ts +27 -0
  16. package/dist/components/BarChart/index.js +82 -0
  17. package/dist/components/BarStack/index.d.ts +36 -0
  18. package/dist/components/BarStack/index.js +188 -0
  19. package/dist/components/Breadcrumbs/index.d.ts +30 -0
  20. package/dist/components/Breadcrumbs/index.js +76 -0
  21. package/dist/components/Bullet/index.d.ts +39 -0
  22. package/dist/components/Bullet/index.js +88 -0
  23. package/dist/components/Button/index.d.ts +120 -0
  24. package/dist/components/Button/index.js +291 -0
  25. package/dist/components/Card/index.d.ts +20 -0
  26. package/dist/components/Card/index.js +59 -0
  27. package/dist/components/Carousel/index.d.ts +19 -0
  28. package/dist/components/Carousel/index.js +147 -0
  29. package/dist/components/Checkbox/index.d.ts +36 -0
  30. package/dist/components/Checkbox/index.js +359 -0
  31. package/dist/components/CheckboxGroup/index.d.ts +24 -0
  32. package/dist/components/CheckboxGroup/index.js +112 -0
  33. package/dist/components/CopyButton/index.d.ts +19 -0
  34. package/dist/components/CopyButton/index.js +37 -0
  35. package/dist/components/DateInput/datepicker.css.js +4 -0
  36. package/dist/components/DateInput/index.d.ts +38 -0
  37. package/dist/components/DateInput/index.js +301 -0
  38. package/dist/components/Dialog/Context.d.ts +7 -0
  39. package/dist/components/Dialog/Context.js +15 -0
  40. package/dist/components/Dialog/constants.d.ts +2 -0
  41. package/dist/components/Dialog/index.d.ts +87 -0
  42. package/dist/components/Dialog/index.js +87 -0
  43. package/dist/components/Dialog/subComponents/Button.d.ts +7 -0
  44. package/dist/components/Dialog/subComponents/Button.js +24 -0
  45. package/dist/components/Dialog/subComponents/Buttons.d.ts +7 -0
  46. package/dist/components/Dialog/subComponents/Buttons.js +12 -0
  47. package/dist/components/Dialog/subComponents/CancelButton.d.ts +8 -0
  48. package/dist/components/Dialog/subComponents/CancelButton.js +9 -0
  49. package/dist/components/Dialog/subComponents/Stack.d.ts +6 -0
  50. package/dist/components/Dialog/subComponents/Stack.js +6 -0
  51. package/dist/components/Dialog/subComponents/Text.d.ts +6 -0
  52. package/dist/components/Dialog/subComponents/Text.js +6 -0
  53. package/dist/components/EmptyState/index.d.ts +38 -0
  54. package/dist/components/EmptyState/index.js +82 -0
  55. package/dist/components/Expandable/index.d.ts +33 -0
  56. package/dist/components/Expandable/index.js +79 -0
  57. package/dist/components/GlobalAlert/GlobalAlertLink.d.ts +3 -0
  58. package/dist/components/GlobalAlert/GlobalAlertLink.js +39 -0
  59. package/dist/components/GlobalAlert/index.d.ts +40 -0
  60. package/dist/components/GlobalAlert/index.js +112 -0
  61. package/dist/components/LineChart/CustomLegend.d.ts +13 -0
  62. package/dist/components/LineChart/CustomLegend.js +109 -0
  63. package/dist/components/LineChart/Tooltip.d.ts +6 -0
  64. package/dist/components/LineChart/Tooltip.js +46 -0
  65. package/dist/components/LineChart/helpers.d.ts +8 -0
  66. package/dist/components/LineChart/helpers.js +50 -0
  67. package/dist/components/LineChart/index.d.ts +25 -0
  68. package/dist/components/LineChart/index.js +118 -0
  69. package/dist/components/Link/index.d.ts +33 -0
  70. package/dist/components/Link/index.js +167 -0
  71. package/dist/components/List/Body.d.ts +6 -0
  72. package/dist/components/List/Body.js +11 -0
  73. package/dist/components/List/Cell.d.ts +12 -0
  74. package/dist/components/List/Cell.js +38 -0
  75. package/dist/components/List/HeaderCell.d.ts +11 -0
  76. package/dist/components/List/HeaderCell.js +96 -0
  77. package/dist/components/List/HeaderRow.d.ts +7 -0
  78. package/dist/components/List/HeaderRow.js +38 -0
  79. package/dist/components/List/ListContext.d.ts +34 -0
  80. package/dist/components/List/ListContext.js +155 -0
  81. package/dist/components/List/Row.d.ts +23 -0
  82. package/dist/components/List/Row.js +194 -0
  83. package/dist/components/List/SelectBar.d.ts +15 -0
  84. package/dist/components/List/SelectBar.js +35 -0
  85. package/dist/components/List/SkeletonRows.d.ts +7 -0
  86. package/dist/components/List/SkeletonRows.js +36 -0
  87. package/dist/components/List/constants.d.ts +2 -0
  88. package/dist/{src/components → components}/List/constants.js +4 -2
  89. package/dist/components/List/index.d.ts +68 -0
  90. package/dist/components/List/index.js +80 -0
  91. package/dist/components/Loader/index.d.ts +22 -0
  92. package/dist/components/Loader/index.js +98 -0
  93. package/dist/components/Menu/Item.d.ts +15 -0
  94. package/dist/components/Menu/Item.js +101 -0
  95. package/dist/components/Menu/index.d.ts +49 -0
  96. package/dist/components/Menu/index.js +182 -0
  97. package/dist/components/MenuV2/Group.d.ts +7 -0
  98. package/dist/components/MenuV2/Group.js +23 -0
  99. package/dist/components/MenuV2/Item.d.ts +16 -0
  100. package/dist/components/MenuV2/Item.js +120 -0
  101. package/dist/components/MenuV2/index.d.ts +90 -0
  102. package/dist/components/MenuV2/index.js +124 -0
  103. package/dist/components/Meter/index.d.ts +26 -0
  104. package/dist/components/Meter/index.js +76 -0
  105. package/dist/components/Modal/Dialog.d.ts +3 -0
  106. package/dist/components/Modal/Dialog.js +197 -0
  107. package/dist/components/Modal/Disclosure.d.ts +3 -0
  108. package/dist/{src/components → components}/Modal/Disclosure.js +12 -12
  109. package/dist/components/Modal/constants.d.ts +3 -0
  110. package/dist/{src/components → components}/Modal/constants.js +8 -6
  111. package/dist/components/Modal/index.d.ts +42 -0
  112. package/dist/components/Modal/index.js +114 -0
  113. package/dist/components/Modal/types.d.ts +48 -0
  114. package/dist/components/Notice/index.d.ts +11 -0
  115. package/dist/components/Notice/index.js +39 -0
  116. package/dist/components/Notification/index.d.ts +36 -0
  117. package/dist/components/Notification/index.js +88 -0
  118. package/dist/components/Notification/react-toastify.css.js +4 -0
  119. package/dist/components/NumberInput/helpers.d.ts +4 -0
  120. package/dist/{src/components → components}/NumberInput/helpers.js +6 -2
  121. package/dist/components/NumberInput/index.d.ts +41 -0
  122. package/dist/components/NumberInput/index.js +349 -0
  123. package/dist/components/NumberInputV2/index.d.ts +27 -0
  124. package/dist/components/NumberInputV2/index.js +370 -0
  125. package/dist/components/Pagination/getPageNumbers.d.ts +8 -0
  126. package/dist/{src/components → components}/Pagination/getPageNumbers.js +4 -12
  127. package/dist/components/Pagination/index.d.ts +30 -0
  128. package/dist/components/Pagination/index.js +124 -0
  129. package/dist/components/PasswordCheck/index.d.ts +20 -0
  130. package/dist/components/PasswordCheck/index.js +29 -0
  131. package/dist/components/PasswordStrengthMeter/index.d.ts +39 -0
  132. package/dist/components/PasswordStrengthMeter/index.js +98 -0
  133. package/dist/components/PieChart/Legends.d.ts +9 -0
  134. package/dist/components/PieChart/Legends.js +120 -0
  135. package/dist/components/PieChart/Tooltip.d.ts +12 -0
  136. package/dist/components/PieChart/Tooltip.js +29 -0
  137. package/dist/components/PieChart/index.d.ts +20 -0
  138. package/dist/components/PieChart/index.js +120 -0
  139. package/dist/components/PieChart/types.d.ts +7 -0
  140. package/dist/components/Popover/index.d.ts +55 -0
  141. package/dist/components/Popover/index.js +149 -0
  142. package/dist/components/Popup/animations.d.ts +11 -0
  143. package/dist/{src/components → components}/Popup/animations.js +7 -6
  144. package/dist/components/Popup/helpers.d.ts +31 -0
  145. package/dist/components/Popup/helpers.js +204 -0
  146. package/dist/components/Popup/index.d.ts +72 -0
  147. package/dist/components/Popup/index.js +385 -0
  148. package/dist/components/ProgressBar/index.d.ts +14 -0
  149. package/dist/components/ProgressBar/index.js +71 -0
  150. package/dist/components/Radio/index.d.ts +21 -0
  151. package/dist/components/Radio/index.js +202 -0
  152. package/dist/components/RadioGroup/index.d.ts +25 -0
  153. package/dist/components/RadioGroup/index.js +104 -0
  154. package/dist/components/Row/index.d.ts +22 -0
  155. package/dist/components/Row/index.js +43 -0
  156. package/dist/components/SelectInput/index.d.ts +75 -0
  157. package/dist/components/SelectInput/index.js +563 -0
  158. package/dist/components/SelectInputV2/Dropdown.d.ts +23 -0
  159. package/dist/components/SelectInputV2/Dropdown.js +669 -0
  160. package/dist/components/SelectInputV2/DropdownOption.d.ts +8 -0
  161. package/dist/components/SelectInputV2/DropdownOption.js +133 -0
  162. package/dist/components/SelectInputV2/SearchBarDropdown.d.ts +9 -0
  163. package/dist/components/SelectInputV2/SearchBarDropdown.js +123 -0
  164. package/dist/components/SelectInputV2/SelectBar.d.ts +14 -0
  165. package/dist/components/SelectInputV2/SelectBar.js +327 -0
  166. package/dist/components/SelectInputV2/SelectInputProvider.d.ts +41 -0
  167. package/dist/components/SelectInputV2/SelectInputProvider.js +203 -0
  168. package/dist/components/SelectInputV2/findOptionInOptions.d.ts +2 -0
  169. package/dist/components/SelectInputV2/findOptionInOptions.js +12 -0
  170. package/dist/components/SelectInputV2/index.d.ts +115 -0
  171. package/dist/components/SelectInputV2/index.js +146 -0
  172. package/dist/components/SelectInputV2/types.d.ts +38 -0
  173. package/dist/{src/components → components}/SelectInputV2/types.js +4 -2
  174. package/dist/components/SelectableCard/index.d.ts +25 -0
  175. package/dist/components/SelectableCard/index.js +193 -0
  176. package/dist/components/SelectableCardGroup/index.d.ts +23 -0
  177. package/dist/components/SelectableCardGroup/index.js +112 -0
  178. package/dist/components/Separator/index.d.ts +17 -0
  179. package/dist/components/Separator/index.js +76 -0
  180. package/dist/components/Skeleton/Block.d.ts +3 -0
  181. package/dist/components/Skeleton/Block.js +30 -0
  182. package/dist/components/Skeleton/Blocks.d.ts +4 -0
  183. package/dist/components/Skeleton/Blocks.js +28 -0
  184. package/dist/components/Skeleton/BoxWithIcon.d.ts +4 -0
  185. package/dist/components/Skeleton/BoxWithIcon.js +29 -0
  186. package/dist/components/Skeleton/Donut.d.ts +1 -0
  187. package/dist/components/Skeleton/Donut.js +36 -0
  188. package/dist/components/Skeleton/IconSkeleton.d.ts +5 -0
  189. package/dist/components/Skeleton/IconSkeleton.js +12 -0
  190. package/dist/components/Skeleton/Line.d.ts +5 -0
  191. package/dist/components/Skeleton/Line.js +13 -0
  192. package/dist/components/Skeleton/List.d.ts +4 -0
  193. package/dist/components/Skeleton/List.js +29 -0
  194. package/dist/components/Skeleton/Slider.d.ts +3 -0
  195. package/dist/components/Skeleton/Slider.js +26 -0
  196. package/dist/components/Skeleton/Square.d.ts +5 -0
  197. package/dist/components/Skeleton/Square.js +10 -0
  198. package/dist/components/Skeleton/index.d.ts +47 -0
  199. package/dist/components/Skeleton/index.js +86 -0
  200. package/dist/components/Snippet/index.d.ts +23 -0
  201. package/dist/components/Snippet/index.js +171 -0
  202. package/dist/components/Stack/index.d.ts +23 -0
  203. package/dist/components/Stack/index.js +36 -0
  204. package/dist/components/Status/index.d.ts +32 -0
  205. package/dist/components/Status/index.js +57 -0
  206. package/dist/components/StepList/index.d.ts +33 -0
  207. package/dist/components/StepList/index.js +69 -0
  208. package/dist/components/Stepper/index.d.ts +15 -0
  209. package/dist/components/Stepper/index.js +153 -0
  210. package/dist/components/SwitchButton/FocusOverlay.d.ts +8 -0
  211. package/dist/components/SwitchButton/FocusOverlay.js +47 -0
  212. package/dist/components/SwitchButton/index.d.ts +26 -0
  213. package/dist/components/SwitchButton/index.js +140 -0
  214. package/dist/components/Table/Body.d.ts +6 -0
  215. package/dist/components/Table/Body.js +5 -0
  216. package/dist/components/Table/Cell.d.ts +9 -0
  217. package/dist/components/Table/Cell.js +10 -0
  218. package/dist/components/Table/Header.d.ts +6 -0
  219. package/dist/components/Table/Header.js +9 -0
  220. package/dist/components/Table/HeaderCell.d.ts +14 -0
  221. package/dist/components/Table/HeaderCell.js +123 -0
  222. package/dist/components/Table/HeaderRow.d.ts +7 -0
  223. package/dist/components/Table/HeaderRow.js +25 -0
  224. package/dist/components/Table/Row.d.ts +14 -0
  225. package/dist/components/Table/Row.js +85 -0
  226. package/dist/components/Table/SelectBar.d.ts +15 -0
  227. package/dist/components/Table/SelectBar.js +35 -0
  228. package/dist/components/Table/SkeletonRows.d.ts +7 -0
  229. package/dist/components/Table/SkeletonRows.js +22 -0
  230. package/dist/components/Table/TableContext.d.ts +27 -0
  231. package/dist/components/Table/TableContext.js +103 -0
  232. package/dist/components/Table/index.d.ts +60 -0
  233. package/dist/components/Table/index.js +81 -0
  234. package/dist/components/Tabs/Tab.d.ts +20 -0
  235. package/dist/components/Tabs/Tab.js +170 -0
  236. package/dist/components/Tabs/TabMenu.d.ts +8 -0
  237. package/dist/components/Tabs/TabMenu.js +63 -0
  238. package/dist/components/Tabs/TabMenuItem.d.ts +20 -0
  239. package/dist/components/Tabs/TabMenuItem.js +39 -0
  240. package/dist/components/Tabs/TabsContext.d.ts +8 -0
  241. package/dist/components/Tabs/TabsContext.js +9 -0
  242. package/dist/components/Tabs/index.d.ts +50 -0
  243. package/dist/components/Tabs/index.js +137 -0
  244. package/dist/components/Tag/index.d.ts +26 -0
  245. package/dist/components/Tag/index.js +153 -0
  246. package/dist/components/TagInput/index.d.ts +55 -0
  247. package/dist/components/TagInput/index.js +316 -0
  248. package/dist/components/TagList/index.d.ts +37 -0
  249. package/dist/components/TagList/index.js +103 -0
  250. package/dist/components/Text/index.d.ts +40 -0
  251. package/dist/components/Text/index.js +107 -0
  252. package/dist/components/TextArea/index.d.ts +50 -0
  253. package/dist/components/TextArea/index.js +226 -0
  254. package/dist/components/TextInput/index.d.ts +75 -0
  255. package/dist/components/TextInput/index.js +472 -0
  256. package/dist/components/TextInputV2/index.d.ts +30 -0
  257. package/dist/components/TextInputV2/index.js +314 -0
  258. package/dist/components/TimeInput/index.d.ts +25 -0
  259. package/dist/components/TimeInput/index.js +199 -0
  260. package/dist/components/Toaster/index.d.ts +46 -0
  261. package/dist/components/Toaster/index.js +131 -0
  262. package/dist/components/Toaster/react-toastify.css.js +4 -0
  263. package/dist/components/Toggle/index.d.ts +34 -0
  264. package/dist/components/Toggle/index.js +196 -0
  265. package/dist/components/ToggleGroup/index.d.ts +24 -0
  266. package/dist/components/ToggleGroup/index.js +87 -0
  267. package/dist/components/Tooltip/index.d.ts +9 -0
  268. package/dist/components/Tooltip/index.js +47 -0
  269. package/dist/components/VerificationCode/index.d.ts +36 -0
  270. package/dist/components/VerificationCode/index.js +222 -0
  271. package/dist/components/index.d.ts +75 -0
  272. package/dist/helpers/isJSON.d.ts +2 -0
  273. package/dist/{src/helpers → helpers}/isJSON.js +4 -3
  274. package/dist/helpers/jestMockMatchMedia.d.ts +6 -0
  275. package/dist/helpers/keycode.d.ts +3 -0
  276. package/dist/helpers/legend.d.ts +2 -0
  277. package/dist/helpers/legend.js +14 -0
  278. package/dist/helpers/numbers.d.ts +2 -0
  279. package/dist/helpers/recursivelyGetChildrenString.d.ts +3 -0
  280. package/dist/helpers/recursivelyGetChildrenString.js +15 -0
  281. package/dist/hooks/useIsOverflowing.d.ts +5 -0
  282. package/dist/hooks/useIsOverflowing.js +23 -0
  283. package/dist/index.d.ts +4 -3693
  284. package/dist/index.js +187 -0
  285. package/dist/mocks/list.d.ts +12 -0
  286. package/dist/theme/index.d.ts +1573 -0
  287. package/dist/theme/index.js +30 -0
  288. package/dist/types.d.ts +6 -0
  289. package/dist/utils/animations.d.ts +27 -0
  290. package/dist/{src/utils → utils}/animations.js +30 -4
  291. package/dist/utils/capitalize.d.ts +2 -0
  292. package/dist/utils/capitalize.js +4 -0
  293. package/dist/utils/ids.d.ts +1 -0
  294. package/dist/utils/ids.js +6 -0
  295. package/dist/utils/index.d.ts +6 -0
  296. package/dist/utils/normalize.d.ts +2 -0
  297. package/dist/{src/utils → utils}/normalize.js +4 -3
  298. package/dist/utils/orderBy.d.ts +2 -0
  299. package/dist/utils/responsive/Breakpoint.d.ts +9 -0
  300. package/dist/utils/responsive/Breakpoint.js +13 -0
  301. package/dist/utils/responsive/index.d.ts +2 -0
  302. package/dist/utils/responsive/utilities.d.ts +3 -0
  303. package/dist/{src/utils → utils}/responsive/utilities.js +9 -6
  304. package/package.json +23 -13
  305. package/dist/react-datepicker/dist/react-datepicker.min.css.js +0 -3
  306. package/dist/react-toastify/dist/ReactToastify.min.css.js +0 -3
  307. package/dist/src/components/ActionBar/index.js +0 -40
  308. package/dist/src/components/Alert/index.js +0 -133
  309. package/dist/src/components/Avatar/index.js +0 -74
  310. package/dist/src/components/Badge/index.js +0 -116
  311. package/dist/src/components/Banner/assets/default-image-small.svg.js +0 -5
  312. package/dist/src/components/Banner/assets/default-image.svg.js +0 -5
  313. package/dist/src/components/Banner/index.js +0 -159
  314. package/dist/src/components/BarChart/Tooltip.js +0 -48
  315. package/dist/src/components/BarChart/index.js +0 -95
  316. package/dist/src/components/BarStack/index.js +0 -136
  317. package/dist/src/components/Breadcrumbs/index.js +0 -82
  318. package/dist/src/components/Bullet/index.js +0 -98
  319. package/dist/src/components/Button/index.js +0 -311
  320. package/dist/src/components/Card/index.js +0 -67
  321. package/dist/src/components/Carousel/index.js +0 -128
  322. package/dist/src/components/Checkbox/index.js +0 -316
  323. package/dist/src/components/CheckboxGroup/index.js +0 -143
  324. package/dist/src/components/CopyButton/index.js +0 -37
  325. package/dist/src/components/DateInput/index.js +0 -242
  326. package/dist/src/components/Dialog/Context.js +0 -12
  327. package/dist/src/components/Dialog/index.js +0 -88
  328. package/dist/src/components/Dialog/subComponents/Button.js +0 -21
  329. package/dist/src/components/Dialog/subComponents/Buttons.js +0 -14
  330. package/dist/src/components/Dialog/subComponents/CancelButton.js +0 -14
  331. package/dist/src/components/Dialog/subComponents/Stack.js +0 -11
  332. package/dist/src/components/Dialog/subComponents/Text.js +0 -12
  333. package/dist/src/components/EmptyState/index.js +0 -112
  334. package/dist/src/components/Expandable/index.js +0 -96
  335. package/dist/src/components/GlobalAlert/GlobalAlertLink.js +0 -38
  336. package/dist/src/components/GlobalAlert/index.js +0 -82
  337. package/dist/src/components/LineChart/CustomLegend.js +0 -138
  338. package/dist/src/components/LineChart/Tooltip.js +0 -43
  339. package/dist/src/components/LineChart/helpers.js +0 -40
  340. package/dist/src/components/LineChart/index.js +0 -131
  341. package/dist/src/components/Link/index.js +0 -147
  342. package/dist/src/components/List/Body.js +0 -16
  343. package/dist/src/components/List/Cell.js +0 -43
  344. package/dist/src/components/List/HeaderCell.js +0 -90
  345. package/dist/src/components/List/HeaderRow.js +0 -43
  346. package/dist/src/components/List/ListContext.js +0 -138
  347. package/dist/src/components/List/Row.js +0 -185
  348. package/dist/src/components/List/SelectBar.js +0 -48
  349. package/dist/src/components/List/SkeletonRows.js +0 -53
  350. package/dist/src/components/List/index.js +0 -75
  351. package/dist/src/components/Loader/index.js +0 -100
  352. package/dist/src/components/Menu/Item.js +0 -112
  353. package/dist/src/components/Menu/index.js +0 -129
  354. package/dist/src/components/MenuV2/Group.js +0 -25
  355. package/dist/src/components/MenuV2/Item.js +0 -139
  356. package/dist/src/components/MenuV2/index.js +0 -116
  357. package/dist/src/components/Meter/index.js +0 -76
  358. package/dist/src/components/Modal/Dialog.js +0 -182
  359. package/dist/src/components/Modal/index.js +0 -113
  360. package/dist/src/components/Notice/index.js +0 -34
  361. package/dist/src/components/Notification/index.js +0 -77
  362. package/dist/src/components/NumberInput/index.js +0 -299
  363. package/dist/src/components/NumberInputV2/index.js +0 -284
  364. package/dist/src/components/Pagination/index.js +0 -117
  365. package/dist/src/components/PasswordCheck/index.js +0 -41
  366. package/dist/src/components/PasswordStrengthMeter/index.js +0 -102
  367. package/dist/src/components/PieChart/Legends.js +0 -138
  368. package/dist/src/components/PieChart/Tooltip.js +0 -61
  369. package/dist/src/components/PieChart/index.js +0 -125
  370. package/dist/src/components/Popover/index.js +0 -144
  371. package/dist/src/components/Popup/helpers.js +0 -252
  372. package/dist/src/components/Popup/index.js +0 -363
  373. package/dist/src/components/ProgressBar/index.js +0 -57
  374. package/dist/src/components/Radio/index.js +0 -157
  375. package/dist/src/components/RadioGroup/index.js +0 -131
  376. package/dist/src/components/Row/index.js +0 -41
  377. package/dist/src/components/SelectInput/index.js +0 -610
  378. package/dist/src/components/SelectInputV2/Dropdown.js +0 -594
  379. package/dist/src/components/SelectInputV2/DropdownOption.js +0 -130
  380. package/dist/src/components/SelectInputV2/SearchBarDropdown.js +0 -128
  381. package/dist/src/components/SelectInputV2/SelectBar.js +0 -282
  382. package/dist/src/components/SelectInputV2/SelectInputProvider.js +0 -169
  383. package/dist/src/components/SelectInputV2/findOptionInOptions.js +0 -11
  384. package/dist/src/components/SelectInputV2/index.js +0 -137
  385. package/dist/src/components/SelectableCard/index.js +0 -175
  386. package/dist/src/components/SelectableCardGroup/index.js +0 -141
  387. package/dist/src/components/Separator/index.js +0 -73
  388. package/dist/src/components/Skeleton/Block.js +0 -35
  389. package/dist/src/components/Skeleton/Blocks.js +0 -34
  390. package/dist/src/components/Skeleton/BoxWithIcon.js +0 -32
  391. package/dist/src/components/Skeleton/Donut.js +0 -55
  392. package/dist/src/components/Skeleton/IconSkeleton.js +0 -19
  393. package/dist/src/components/Skeleton/Line.js +0 -13
  394. package/dist/src/components/Skeleton/List.js +0 -51
  395. package/dist/src/components/Skeleton/Slider.js +0 -36
  396. package/dist/src/components/Skeleton/Square.js +0 -9
  397. package/dist/src/components/Skeleton/index.js +0 -82
  398. package/dist/src/components/Snippet/index.js +0 -200
  399. package/dist/src/components/Stack/index.js +0 -29
  400. package/dist/src/components/Status/index.js +0 -74
  401. package/dist/src/components/StepList/index.js +0 -69
  402. package/dist/src/components/Stepper/index.js +0 -150
  403. package/dist/src/components/SwitchButton/FocusOverlay.js +0 -37
  404. package/dist/src/components/SwitchButton/index.js +0 -108
  405. package/dist/src/components/Table/Body.js +0 -9
  406. package/dist/src/components/Table/Cell.js +0 -21
  407. package/dist/src/components/Table/Header.js +0 -15
  408. package/dist/src/components/Table/HeaderCell.js +0 -103
  409. package/dist/src/components/Table/HeaderRow.js +0 -32
  410. package/dist/src/components/Table/Row.js +0 -89
  411. package/dist/src/components/Table/SelectBar.js +0 -48
  412. package/dist/src/components/Table/SkeletonRows.js +0 -51
  413. package/dist/src/components/Table/TableContext.js +0 -90
  414. package/dist/src/components/Table/index.js +0 -82
  415. package/dist/src/components/Tabs/Tab.js +0 -138
  416. package/dist/src/components/Tabs/TabMenu.js +0 -59
  417. package/dist/src/components/Tabs/TabMenuItem.js +0 -36
  418. package/dist/src/components/Tabs/TabsContext.js +0 -6
  419. package/dist/src/components/Tabs/index.js +0 -117
  420. package/dist/src/components/Tag/index.js +0 -169
  421. package/dist/src/components/TagInput/index.js +0 -309
  422. package/dist/src/components/TagList/index.js +0 -106
  423. package/dist/src/components/Text/index.js +0 -107
  424. package/dist/src/components/TextArea/index.js +0 -210
  425. package/dist/src/components/TextInput/index.js +0 -451
  426. package/dist/src/components/TextInputV2/index.js +0 -289
  427. package/dist/src/components/TimeInput/index.js +0 -37
  428. package/dist/src/components/Toaster/index.js +0 -131
  429. package/dist/src/components/Toggle/index.js +0 -160
  430. package/dist/src/components/ToggleGroup/index.js +0 -122
  431. package/dist/src/components/Tooltip/index.js +0 -55
  432. package/dist/src/components/VerificationCode/index.js +0 -222
  433. package/dist/src/helpers/legend.js +0 -13
  434. package/dist/src/helpers/recursivelyGetChildrenString.js +0 -11
  435. package/dist/src/hooks/useIsOverflowing.js +0 -34
  436. package/dist/src/index.js +0 -77
  437. package/dist/src/theme/index.js +0 -29
  438. package/dist/src/utils/capitalize.js +0 -3
  439. package/dist/src/utils/ids.js +0 -7
  440. package/dist/src/utils/responsive/Breakpoint.js +0 -12
@@ -1,51 +0,0 @@
1
- import _styled from '@emotion/styled/base';
2
- import { Skeleton } from '../Skeleton/index.js';
3
- import { Cell } from './Cell.js';
4
- import { jsx, Fragment, jsxs } from '@emotion/react/jsx-runtime';
5
-
6
- function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
7
- const StyledLoadingRow = /*#__PURE__*/_styled('tr', {
8
- target: "e1btquhx1"
9
- })(process.env.NODE_ENV === "production" ? {
10
- name: "g8zzui",
11
- styles: "cursor:progress"
12
- } : {
13
- name: "g8zzui",
14
- styles: "cursor:progress",
15
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
16
- });
17
- const StyledSkeleton = /*#__PURE__*/_styled(Skeleton, {
18
- target: "e1btquhx0"
19
- })(process.env.NODE_ENV === "production" ? {
20
- name: "bet25o",
21
- styles: "width:80%;max-width:100%"
22
- } : {
23
- name: "bet25o",
24
- styles: "width:80%;max-width:100%",
25
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
26
- });
27
- const SkeletonRows = ({
28
- selectable,
29
- rows,
30
- cols
31
- }) => {
32
- const rowArray = Array.from({
33
- length: rows
34
- }, (_, index) => index);
35
- const colArray = Array.from({
36
- length: cols
37
- }, (_, index) => index);
38
- return jsx(Fragment, {
39
- children: rowArray.map(index => jsxs(StyledLoadingRow, {
40
- role: "row",
41
- id: `skeleton-${index}`,
42
- children: [selectable ? jsx(Cell, {}) : null, colArray.map(columnIndex => jsx(Cell, {
43
- children: jsx(StyledSkeleton, {
44
- variant: "line"
45
- })
46
- }, columnIndex))]
47
- }, index))
48
- });
49
- };
50
-
51
- export { SkeletonRows };
@@ -1,90 +0,0 @@
1
- import { useContext, createContext, useState, useCallback, useMemo } from 'react';
2
- import { jsx } from '@emotion/react/jsx-runtime';
3
-
4
- const TableContext = /*#__PURE__*/createContext(undefined);
5
- const TableProvider = ({
6
- children,
7
- selectable,
8
- bordered,
9
- stripped
10
- }) => {
11
- const [selectedRowIds, setSelectedRowIds] = useState({});
12
- const registerSelectableRow = useCallback(rowId => {
13
- setSelectedRowIds(current => ({
14
- ...current,
15
- [rowId]: false
16
- }));
17
- return () => {
18
- setSelectedRowIds(current => {
19
- const {
20
- [rowId]: relatedId,
21
- ...otherIds
22
- } = current;
23
- return otherIds;
24
- });
25
- };
26
- }, []);
27
- const allRowSelectValue = useMemo(() => {
28
- const selectableRowCount = Object.keys(selectedRowIds).length;
29
- if (!selectableRowCount) {
30
- return false;
31
- }
32
- const selectedRowCount = Object.values(selectedRowIds).reduce((acc, isSelected) => acc + (isSelected ? 1 : 0), 0);
33
- if (selectedRowCount === 0) {
34
- return false;
35
- }
36
- if (selectableRowCount === selectedRowCount) {
37
- return true;
38
- }
39
- return 'indeterminate';
40
- }, [selectedRowIds]);
41
- const selectAll = useCallback(() => {
42
- setSelectedRowIds(current => Object.keys(current).reduce((acc, rowId) => ({
43
- ...acc,
44
- [rowId]: true
45
- }), {}));
46
- }, []);
47
- const unselectAll = useCallback(() => {
48
- setSelectedRowIds(current => Object.keys(current).reduce((acc, rowId) => ({
49
- ...acc,
50
- [rowId]: false
51
- }), {}));
52
- }, []);
53
- const selectRow = useCallback(rowId => {
54
- setSelectedRowIds(current => ({
55
- ...current,
56
- [rowId]: true
57
- }));
58
- }, []);
59
- const unselectRow = useCallback(rowId => {
60
- setSelectedRowIds(current => ({
61
- ...current,
62
- [rowId]: false
63
- }));
64
- }, []);
65
- const value = useMemo(() => ({
66
- registerSelectableRow,
67
- selectedRowIds,
68
- selectRow,
69
- unselectRow,
70
- selectable,
71
- selectAll,
72
- unselectAll,
73
- allRowSelectValue,
74
- bordered,
75
- stripped
76
- }), [registerSelectableRow, selectedRowIds, selectRow, unselectRow, selectable, selectAll, unselectAll, allRowSelectValue, bordered, stripped]);
77
- return jsx(TableContext.Provider, {
78
- value: value,
79
- children: children
80
- });
81
- };
82
- const useTableContext = () => {
83
- const context = useContext(TableContext);
84
- if (!context) {
85
- throw new Error('useTableContext should be used inside a Table component');
86
- }
87
- return context;
88
- };
89
-
90
- export { TableProvider, useTableContext };
@@ -1,82 +0,0 @@
1
- import _styled from '@emotion/styled/base';
2
- import { forwardRef } from 'react';
3
- import { Body } from './Body.js';
4
- import { Cell } from './Cell.js';
5
- import { Header } from './Header.js';
6
- import { HeaderCell } from './HeaderCell.js';
7
- import { HeaderRow } from './HeaderRow.js';
8
- import { Row } from './Row.js';
9
- import { SelectBar } from './SelectBar.js';
10
- import { SkeletonRows } from './SkeletonRows.js';
11
- import { useTableContext, TableProvider } from './TableContext.js';
12
- import { jsx, jsxs } from '@emotion/react/jsx-runtime';
13
-
14
- const StyledTable = /*#__PURE__*/_styled('table', {
15
- shouldForwardProp: prop => !['bordered', 'stripped'].includes(prop),
16
- target: "ert5hkm0"
17
- })("width:100%;box-sizing:content-box;border-collapse:collapse;", ({
18
- theme,
19
- stripped,
20
- bordered
21
- }) => `
22
- ${stripped ? `& tbody tr:nth-of-type(even) {
23
- background: ${theme.colors.neutral.backgroundWeak};
24
- }` : ''}
25
-
26
- ${bordered ? `& tbody tr {
27
- border-bottom: 1px solid ${theme.colors.neutral.borderWeak};
28
- }` : ''}
29
- `, ";");
30
- const BaseTable = /*#__PURE__*/forwardRef(({
31
- selectable = false,
32
- children,
33
- columns,
34
- loading,
35
- bordered = false,
36
- stripped = false
37
- }, ref) => jsx(TableProvider, {
38
- selectable: selectable,
39
- stripped: stripped,
40
- bordered: bordered,
41
- children: jsxs(StyledTable, {
42
- ref: ref,
43
- stripped: stripped,
44
- bordered: bordered,
45
- children: [jsx(Header, {
46
- children: jsx(HeaderRow, {
47
- hasSelectAllColumn: selectable,
48
- children: columns.map((column, index) => jsx(HeaderCell
49
- // eslint-disable-next-line react/no-array-index-key
50
- , {
51
- isOrdered: column.isOrdered,
52
- orderDirection: column.orderDirection,
53
- onOrder: column.onOrder,
54
- width: column.width,
55
- minWidth: column.minWidth,
56
- maxWidth: column.maxWidth,
57
- info: column.info,
58
- children: column.label
59
- }, `header-column-${index}`))
60
- })
61
- }), loading ? jsx(Body, {
62
- children: jsx(SkeletonRows, {
63
- selectable: selectable,
64
- rows: 5,
65
- cols: columns.length
66
- })
67
- }) : children]
68
- })
69
- }));
70
-
71
- /**
72
- * Table is a component that displays data in a tabular format.
73
- */
74
- const Table = /*#__PURE__*/Object.assign(BaseTable, {
75
- Body,
76
- Row,
77
- Cell,
78
- useTableContext,
79
- SelectBar
80
- });
81
-
82
- export { BaseTable, Table };
@@ -1,138 +0,0 @@
1
- import _styled from '@emotion/styled/base';
2
- import { forwardRef, useMemo } from 'react';
3
- import { Badge } from '../Badge/index.js';
4
- import { Stack } from '../Stack/index.js';
5
- import { Text } from '../Text/index.js';
6
- import { Tooltip } from '../Tooltip/index.js';
7
- import { useTabsContext } from './TabsContext.js';
8
- import { jsx, jsxs } from '@emotion/react/jsx-runtime';
9
-
10
- const StyledBadge = /*#__PURE__*/_styled(Badge, {
11
- target: "e1hzf7cr4"
12
- })("padding:0 ", ({
13
- theme
14
- }) => theme.space['1'], ";margin-left:", ({
15
- theme
16
- }) => theme.space['1'], ";");
17
- const StyledText = /*#__PURE__*/_styled(Text, {
18
- target: "e1hzf7cr3"
19
- })();
20
- const StyledTooltip = /*#__PURE__*/_styled(Tooltip, {
21
- target: "e1hzf7cr2"
22
- })();
23
- const BadgeContainer = /*#__PURE__*/_styled("span", {
24
- target: "e1hzf7cr1"
25
- })("margin-left:", ({
26
- theme
27
- }) => theme.space['1'], ";display:flex;");
28
- const StyledTabButton = /*#__PURE__*/_styled('button', {
29
- target: "e1hzf7cr0"
30
- })("display:flex;flex-direction:row;padding:", ({
31
- theme
32
- }) => `${theme.space['1']} ${theme.space['2']}`, ";cursor:pointer;justify-content:center;align-items:baseline;white-space:nowrap;color:", ({
33
- theme
34
- }) => theme.colors.neutral.text, ";text-decoration:none;user-select:none;touch-action:manipulation;transition:color 0.2s;border:none;background:none;border-bottom-width:2px;border-bottom-style:solid;border-bottom-color:", ({
35
- theme
36
- }) => theme.colors.neutral.border, ";outline:none;font-size:", ({
37
- theme
38
- }) => theme.typography.bodyStrong.fontSize, ";font-family:", ({
39
- theme
40
- }) => theme.typography.bodyStrong.fontFamily, ";font-weight:", ({
41
- theme
42
- }) => theme.typography.bodyStrong.weight, ";letter-spacing:", ({
43
- theme
44
- }) => theme.typography.bodyStrong.letterSpacing, ";line-height:", ({
45
- theme
46
- }) => theme.typography.bodyStrong.lineHeight, ";&:hover,&:active,&:focus{text-decoration:none;outline:none;}&:focus-visible{outline:auto;}&[aria-selected='true']{color:", ({
47
- theme
48
- }) => theme.colors.primary.text, ";border-bottom-color:", ({
49
- theme
50
- }) => theme.colors.primary.border, ";", StyledText, "{color:", ({
51
- theme
52
- }) => theme.colors.primary.text, ";}}&[aria-disabled='false']:not(:disabled){&:hover,&:focus,&:active{outline:none;color:", ({
53
- theme
54
- }) => theme.colors.primary.text, ";border-bottom-color:", ({
55
- theme
56
- }) => theme.colors.primary.border, ";&[data-is-selected='false']{", StyledBadge, "{background-color:", ({
57
- theme
58
- }) => theme.colors.primary.background, ";border-color:", ({
59
- theme
60
- }) => theme.colors.primary.background, ";color:", ({
61
- theme
62
- }) => theme.colors.primary.text, ";}", StyledText, "{color:", ({
63
- theme
64
- }) => theme.colors.primary.text, ";}}}}&[aria-disabled='true'],&:disabled{cursor:not-allowed;filter:grayscale(1) opacity(50%);}");
65
- const Tab = /*#__PURE__*/forwardRef(({
66
- as,
67
- badge,
68
- children,
69
- className,
70
- counter,
71
- disabled = false,
72
- onClick,
73
- onKeyDown,
74
- subtitle,
75
- tooltip,
76
- value,
77
- ...props
78
- }, ref) => {
79
- const {
80
- selected,
81
- onChange
82
- } = useTabsContext();
83
- const computedAs = as ?? 'button';
84
- const isSelected = useMemo(() => value !== undefined && selected === value, [value, selected]);
85
- return jsx(StyledTooltip, {
86
- text: tooltip,
87
- children: jsx(StyledTabButton, {
88
- role: "tab",
89
- ref: ref,
90
- className: className,
91
- as: computedAs,
92
- "aria-label": value ? `${value}` : undefined,
93
- "aria-selected": isSelected,
94
- "aria-disabled": disabled,
95
- disabled: computedAs === 'button' ? disabled : undefined,
96
- type: computedAs === 'button' ? 'button' : undefined,
97
- onClick: event => {
98
- if (value !== undefined) {
99
- onChange(value);
100
- }
101
- onClick?.(event);
102
- },
103
- onKeyDown: event => {
104
- onKeyDown?.(event);
105
- if (!event.defaultPrevented && !disabled && value) onChange(value);
106
- },
107
- "data-is-selected": isSelected,
108
- ...props,
109
- children: jsxs(Stack, {
110
- direction: "column",
111
- gap: 0.5,
112
- children: [jsxs(Stack, {
113
- direction: "row",
114
- alignItems: "center",
115
- children: [children, typeof counter === 'number' || typeof counter === 'string' ? jsx(StyledBadge, {
116
- sentiment: isSelected ? 'primary' : 'neutral',
117
- prominence: isSelected ? 'strong' : 'default',
118
- size: "medium",
119
- children: counter
120
- }) : null, badge ? jsx(BadgeContainer, {
121
- children: badge
122
- }) : null]
123
- }), subtitle ? jsx(Stack, {
124
- direction: "row",
125
- children: jsx(StyledText, {
126
- as: "span",
127
- variant: "bodySmall",
128
- sentiment: "neutral",
129
- prominence: "weak",
130
- children: subtitle
131
- })
132
- }) : null]
133
- })
134
- })
135
- });
136
- });
137
-
138
- export { StyledTabButton, Tab };
@@ -1,59 +0,0 @@
1
- import _styled from '@emotion/styled/base';
2
- import { Icon } from '@ultraviolet/icons';
3
- import { forwardRef } from 'react';
4
- import { MenuV2 } from '../MenuV2/index.js';
5
- import { StyledTabButton } from './Tab.js';
6
- import { jsx, jsxs } from '@emotion/react/jsx-runtime';
7
-
8
- function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
9
- const ArrowIcon = /*#__PURE__*/_styled(Icon, {
10
- target: "edb1sh92"
11
- })();
12
- const StyledMenu = /*#__PURE__*/_styled(StyledTabButton, {
13
- target: "edb1sh91"
14
- })(ArrowIcon, "{color:inherit;margin-left:", ({
15
- theme
16
- }) => theme.space['1'], ";transition:300ms transform ease-out;}&[aria-expanded='true'] ", ArrowIcon, "{transform:rotate(-180deg);}");
17
-
18
- // This will wrap and give the positioning to the popup div that is added onto the disclosure
19
- const StyledPositioningWrapper = /*#__PURE__*/_styled("div", {
20
- target: "edb1sh90"
21
- })(process.env.NODE_ENV === "production" ? {
22
- name: "1hlymjl",
23
- styles: "display:flex;position:sticky;top:0;bottom:0;right:0"
24
- } : {
25
- name: "1hlymjl",
26
- styles: "display:flex;position:sticky;top:0;bottom:0;right:0",
27
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
28
- });
29
- const TabMenu = /*#__PURE__*/forwardRef(({
30
- children,
31
- disclosure,
32
- visible,
33
- id,
34
- disabled,
35
- className,
36
- ...props
37
- }, ref) => jsx(StyledPositioningWrapper, {
38
- children: jsx(MenuV2, {
39
- visible: visible,
40
- id: id,
41
- ref: ref,
42
- portalTarget: document.body // We need to attach it to the body to avoid overflow issues
43
- ,
44
- disclosure: jsxs(StyledMenu, {
45
- role: "tab",
46
- "aria-disabled": disabled ?? 'false',
47
- disabled: disabled,
48
- "aria-haspopup": "menu",
49
- className: className,
50
- ...props,
51
- children: [disclosure, jsx(ArrowIcon, {
52
- name: "arrow-down"
53
- })]
54
- }),
55
- children: children
56
- })
57
- }));
58
-
59
- export { TabMenu };
@@ -1,36 +0,0 @@
1
- import _styled from '@emotion/styled/base';
2
- import { useMemo } from 'react';
3
- import Item from '../MenuV2/Item.js';
4
- import { useTabsContext } from './TabsContext.js';
5
- import { jsx } from '@emotion/react/jsx-runtime';
6
-
7
- const StyledMenuItem = /*#__PURE__*/_styled(Item, {
8
- target: "eeet93f0"
9
- })("&[aria-selected='true']{color:", ({
10
- theme
11
- }) => theme.colors.primary.text, ";}");
12
- const TabMenuItem = ({
13
- value,
14
- children,
15
- onClick,
16
- ...props
17
- }) => {
18
- const {
19
- selected,
20
- onChange
21
- } = useTabsContext();
22
- const isSelected = useMemo(() => value !== undefined && selected === value, [value, selected]);
23
- return jsx(StyledMenuItem, {
24
- onClick: event => {
25
- if (value !== undefined) {
26
- onChange(value);
27
- }
28
- onClick?.(event);
29
- },
30
- "aria-selected": isSelected,
31
- ...props,
32
- children: children
33
- });
34
- };
35
-
36
- export { TabMenuItem };
@@ -1,6 +0,0 @@
1
- import { createContext, useContext } from 'react';
2
-
3
- const TabsContext = /*#__PURE__*/createContext({});
4
- const useTabsContext = () => useContext(TabsContext);
5
-
6
- export { TabsContext, useTabsContext };
@@ -1,117 +0,0 @@
1
- import _styled from '@emotion/styled/base';
2
- import { useRef, useState, useMemo, useEffect, Children, isValidElement, cloneElement } from 'react';
3
- import { Tab, StyledTabButton } from './Tab.js';
4
- import { TabMenu } from './TabMenu.js';
5
- import { TabMenuItem } from './TabMenuItem.js';
6
- import { TabsContext } from './TabsContext.js';
7
- import { jsx, jsxs } from '@emotion/react/jsx-runtime';
8
-
9
- const MenuContainer = /*#__PURE__*/_styled("div", {
10
- target: "ewug27g2"
11
- })("display:flex;flex-direction:column;", StyledTabButton, "{font-size:", ({
12
- theme
13
- }) => theme.typography.bodySmall.fontSize, ";line-height:", ({
14
- theme
15
- }) => theme.typography.bodySmall.lineHeight, ";font-weight:inherit;padding:", ({
16
- theme
17
- }) => `${theme.space['1']} ${theme.space['2']}`, ";border-bottom-width:1.5px;width:100%;cursor:pointer;min-width:110px;background-color:transparent;&[aria-disabled='true'],&:disabled{cursor:not-allowed;filter:grayscale(1) opacity(50%);}}");
18
-
19
- // Migration to MenuV2 will not work as expected here.
20
- const StyledTabMenu = /*#__PURE__*/_styled(TabMenu, {
21
- target: "ewug27g1"
22
- })("position:sticky;right:0;top:0;bottom:0;background:", ({
23
- theme
24
- }) => theme.colors.neutral.background, ";box-shadow:", ({
25
- theme
26
- }) => theme.shadows.menu, ";");
27
- const TabsContainer = /*#__PURE__*/_styled("div", {
28
- target: "ewug27g0"
29
- })("display:flex;flex-wrap:nowrap;overflow-x:scroll;position:relative;z-index:0;-ms-overflow-style:none;scrollbar-width:none;&::after{z-index:-1;content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:", ({
30
- theme
31
- }) => theme.colors.neutral.border, ";}&::-webkit-scrollbar{display:none;}");
32
- const SHADOW_THRESHOLD = 10;
33
-
34
- /**
35
- * Tabs component is used to display a set of tabs with a single tab selected at a time.
36
- */
37
- const Tabs = ({
38
- children = null,
39
- onChange,
40
- moreDisclosure = 'More',
41
- selected,
42
- className,
43
- 'data-testid': dataTestId,
44
- ...props
45
- }) => {
46
- const tabsRef = useRef({});
47
- const moreStaticRef = useRef(null);
48
- const [displayMore, setDisplayMore] = useState(false);
49
- const value = useMemo(() => ({
50
- onChange,
51
- selected
52
- }), [selected, onChange]);
53
- useEffect(() => {
54
- setDisplayMore(tabsRef.current.scrollWidth > tabsRef.current.clientWidth);
55
- }, [children]);
56
-
57
- // Scroll automatically to the tab
58
- useEffect(() => {
59
- const tab = tabsRef.current.querySelector(`[role='tab'][aria-selected='true']`);
60
- if (tab && tabsRef.current.scrollTo) {
61
- tabsRef.current.scrollTo({
62
- left: tab.offsetLeft,
63
- behavior: 'smooth'
64
- });
65
- }
66
- }, [selected]);
67
-
68
- // Change the moreButton style automatically based on the scroll to show that a scroll effect is possible.
69
- useEffect(() => {
70
- const element = tabsRef.current;
71
- const moreElement = moreStaticRef.current;
72
- const handler = () => {
73
- if (moreElement?.style) {
74
- moreElement.style.boxShadow = element.scrollLeft + SHADOW_THRESHOLD > element.scrollWidth - element.clientWidth ? 'none' : '';
75
- }
76
- };
77
- if (displayMore) {
78
- element.addEventListener('scroll', handler);
79
- }
80
- return () => {
81
- if (displayMore) element.removeEventListener('scroll', handler);
82
- };
83
- }, [displayMore]);
84
-
85
- // mapping of tab children to avoid using subtitle props
86
- const menuItemChildren = Children.map(children, child => {
87
- if ( /*#__PURE__*/isValidElement(child)) {
88
- return /*#__PURE__*/cloneElement(child, {
89
- ...child.props,
90
- subtitle: null
91
- });
92
- }
93
- return null;
94
- });
95
- return jsx(TabsContext.Provider, {
96
- value: value,
97
- children: jsxs(TabsContainer, {
98
- ref: tabsRef,
99
- role: "tablist",
100
- className: className,
101
- "data-testid": dataTestId,
102
- ...props,
103
- children: [children, displayMore ? jsx(StyledTabMenu, {
104
- ref: moreStaticRef,
105
- disclosure: moreDisclosure,
106
- children: jsx(MenuContainer, {
107
- children: menuItemChildren
108
- })
109
- }) : null]
110
- })
111
- });
112
- };
113
- Tabs.Tab = Tab;
114
- Tabs.Menu = TabMenu;
115
- Tabs.MenuItem = TabMenuItem;
116
-
117
- export { Tabs };