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

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 (323) hide show
  1. package/README.md +47 -18
  2. package/dist/components/ActionBar/index.js +19 -7
  3. package/dist/components/Alert/index.d.ts +2 -1
  4. package/dist/components/Alert/index.js +98 -20
  5. package/dist/components/Alert/styles.css.d.ts +10 -1
  6. package/dist/components/Alert/styles.css.js +7 -5
  7. package/dist/components/Avatar/index.d.ts +1 -1
  8. package/dist/components/Avatar/index.js +46 -36
  9. package/dist/components/Avatar/styles.css.js +0 -1
  10. package/dist/components/Avatar/variables.css.js +1 -0
  11. package/dist/components/Badge/index.d.ts +1 -1
  12. package/dist/components/Badge/index.js +19 -8
  13. package/dist/components/Banner/index.d.ts +1 -1
  14. package/dist/components/Banner/index.js +87 -28
  15. package/dist/components/BarChart/Tooltip.d.ts +1 -1
  16. package/dist/components/BarChart/Tooltip.js +23 -10
  17. package/dist/components/BarChart/index.d.ts +1 -1
  18. package/dist/components/BarChart/index.js +51 -31
  19. package/dist/components/BarStack/index.d.ts +1 -1
  20. package/dist/components/BarStack/index.js +64 -19
  21. package/dist/components/Breadcrumbs/components/Item.d.ts +1 -1
  22. package/dist/components/Breadcrumbs/components/Item.js +48 -12
  23. package/dist/components/Breadcrumbs/index.js +11 -2
  24. package/dist/components/Bullet/index.d.ts +1 -1
  25. package/dist/components/Bullet/index.js +10 -7
  26. package/dist/components/Button/index.js +122 -72
  27. package/dist/components/Card/index.js +80 -20
  28. package/dist/components/Carousel/index.d.ts +3 -3
  29. package/dist/components/Carousel/index.js +72 -26
  30. package/dist/components/Checkbox/index.js +139 -43
  31. package/dist/components/CheckboxGroup/index.d.ts +3 -3
  32. package/dist/components/CheckboxGroup/index.js +77 -24
  33. package/dist/components/Chip/ChipIcon.d.ts +1 -1
  34. package/dist/components/Chip/ChipIcon.js +46 -12
  35. package/dist/components/Chip/index.d.ts +3 -3
  36. package/dist/components/Chip/index.js +36 -11
  37. package/dist/components/CopyButton/index.d.ts +1 -1
  38. package/dist/components/CopyButton/index.js +23 -8
  39. package/dist/components/DateInput/components/CalendarContent.d.ts +1 -1
  40. package/dist/components/DateInput/components/CalendarContent.js +61 -26
  41. package/dist/components/DateInput/components/CalendarDaily.d.ts +1 -1
  42. package/dist/components/DateInput/components/CalendarDaily.js +105 -62
  43. package/dist/components/DateInput/components/CalendarMonthly.d.ts +1 -1
  44. package/dist/components/DateInput/components/CalendarMonthly.js +62 -39
  45. package/dist/components/DateInput/components/Popup.d.ts +1 -1
  46. package/dist/components/DateInput/components/Popup.js +29 -6
  47. package/dist/components/DateInput/helpers.js +9 -2
  48. package/dist/components/DateInput/helpersLocale.js +3 -9
  49. package/dist/components/DateInput/index.d.ts +1 -1
  50. package/dist/components/DateInput/index.js +193 -62
  51. package/dist/components/Dialog/Context.js +3 -1
  52. package/dist/components/Dialog/components/Button.d.ts +1 -1
  53. package/dist/components/Dialog/components/Button.js +12 -2
  54. package/dist/components/Dialog/components/Buttons.d.ts +1 -1
  55. package/dist/components/Dialog/components/Buttons.js +1 -1
  56. package/dist/components/Dialog/components/CancelButton.d.ts +1 -1
  57. package/dist/components/Dialog/components/CancelButton.js +12 -2
  58. package/dist/components/Dialog/components/Stack.d.ts +1 -1
  59. package/dist/components/Dialog/components/Stack.js +2 -5
  60. package/dist/components/Dialog/components/Text.d.ts +1 -1
  61. package/dist/components/Dialog/components/Text.js +2 -5
  62. package/dist/components/Dialog/index.d.ts +7 -7
  63. package/dist/components/Dialog/index.js +43 -12
  64. package/dist/components/Drawer/index.d.ts +4 -4
  65. package/dist/components/Drawer/index.js +53 -15
  66. package/dist/components/EmptyState/index.d.ts +1 -1
  67. package/dist/components/EmptyState/index.js +63 -21
  68. package/dist/components/Expandable/index.d.ts +2 -2
  69. package/dist/components/Expandable/index.js +52 -15
  70. package/dist/components/ExpandableCard/components/Title.d.ts +1 -1
  71. package/dist/components/ExpandableCard/components/Title.js +12 -2
  72. package/dist/components/ExpandableCard/index.d.ts +1 -1
  73. package/dist/components/ExpandableCard/index.js +197 -96
  74. package/dist/components/GlobalAlert/GlobalAlertLink.d.ts +1 -1
  75. package/dist/components/GlobalAlert/GlobalAlertLink.js +21 -5
  76. package/dist/components/GlobalAlert/index.d.ts +2 -2
  77. package/dist/components/GlobalAlert/index.js +51 -11
  78. package/dist/components/InfiniteScroll/index.d.ts +1 -1
  79. package/dist/components/InfiniteScroll/index.js +40 -33
  80. package/dist/components/Key/index.d.ts +1 -1
  81. package/dist/components/Key/index.js +29 -8
  82. package/dist/components/Label/index.d.ts +1 -1
  83. package/dist/components/Label/index.js +67 -6
  84. package/dist/components/LineChart/CustomLegend.d.ts +1 -1
  85. package/dist/components/LineChart/CustomLegend.js +69 -45
  86. package/dist/components/LineChart/Tooltip.d.ts +1 -1
  87. package/dist/components/LineChart/Tooltip.js +31 -9
  88. package/dist/components/LineChart/helpers.js +13 -12
  89. package/dist/components/LineChart/index.d.ts +1 -1
  90. package/dist/components/LineChart/index.js +56 -40
  91. package/dist/components/Link/index.js +74 -57
  92. package/dist/components/List/Cell.js +24 -22
  93. package/dist/components/List/ColumnProvider.d.ts +1 -1
  94. package/dist/components/List/ColumnProvider.js +12 -6
  95. package/dist/components/List/HeaderCell.d.ts +1 -1
  96. package/dist/components/List/HeaderCell.js +36 -19
  97. package/dist/components/List/HeaderRow.d.ts +1 -1
  98. package/dist/components/List/HeaderRow.js +14 -12
  99. package/dist/components/List/ListContext.d.ts +1 -1
  100. package/dist/components/List/ListContext.js +128 -78
  101. package/dist/components/List/Row.js +166 -90
  102. package/dist/components/List/SelectBar.d.ts +1 -1
  103. package/dist/components/List/SelectBar.js +20 -10
  104. package/dist/components/List/SkeletonRows.d.ts +1 -1
  105. package/dist/components/List/SkeletonRows.js +26 -16
  106. package/dist/components/List/index.d.ts +1 -1
  107. package/dist/components/List/index.js +60 -22
  108. package/dist/components/Loader/index.d.ts +1 -1
  109. package/dist/components/Loader/index.js +47 -23
  110. package/dist/components/Menu/MenuContent.d.ts +1 -1
  111. package/dist/components/Menu/MenuContent.js +216 -162
  112. package/dist/components/Menu/MenuProvider.d.ts +1 -1
  113. package/dist/components/Menu/MenuProvider.js +26 -13
  114. package/dist/components/Menu/components/Group.d.ts +1 -1
  115. package/dist/components/Menu/components/Group.js +11 -2
  116. package/dist/components/Menu/components/Item.js +144 -82
  117. package/dist/components/Menu/helpers.js +3 -1
  118. package/dist/components/Menu/index.d.ts +2 -2
  119. package/dist/components/Menu/index.js +5 -11
  120. package/dist/components/Menu/types.d.ts +2 -2
  121. package/dist/components/Meter/index.d.ts +1 -1
  122. package/dist/components/Meter/index.js +43 -12
  123. package/dist/components/Modal/ModalContent.d.ts +1 -1
  124. package/dist/components/Modal/ModalContent.js +41 -11
  125. package/dist/components/Modal/ModalProvider.d.ts +1 -1
  126. package/dist/components/Modal/ModalProvider.js +14 -11
  127. package/dist/components/Modal/components/Dialog.js +91 -47
  128. package/dist/components/Modal/index.d.ts +1 -1
  129. package/dist/components/Modal/index.js +60 -3
  130. package/dist/components/Notice/index.d.ts +1 -1
  131. package/dist/components/Notice/index.js +24 -5
  132. package/dist/components/Notification/Notification.js +12 -2
  133. package/dist/components/Notification/NotificationContainer.d.ts +1 -1
  134. package/dist/components/Notification/NotificationContainer.js +18 -2
  135. package/dist/components/NumberInput/index.d.ts +1 -1
  136. package/dist/components/NumberInput/index.js +239 -130
  137. package/dist/components/Pagination/PaginationButtons.d.ts +1 -1
  138. package/dist/components/Pagination/PaginationButtons.js +75 -10
  139. package/dist/components/Pagination/PerPage.d.ts +1 -1
  140. package/dist/components/Pagination/PerPage.js +32 -17
  141. package/dist/components/Pagination/getPageNumbers.js +12 -13
  142. package/dist/components/Pagination/index.d.ts +1 -1
  143. package/dist/components/Pagination/index.js +26 -3
  144. package/dist/components/PasswordCheck/index.d.ts +1 -1
  145. package/dist/components/PasswordCheck/index.js +27 -5
  146. package/dist/components/PieChart/Legends.d.ts +1 -1
  147. package/dist/components/PieChart/Legends.js +52 -20
  148. package/dist/components/PieChart/Tooltip.d.ts +1 -1
  149. package/dist/components/PieChart/Tooltip.js +2 -4
  150. package/dist/components/PieChart/index.d.ts +1 -1
  151. package/dist/components/PieChart/index.js +80 -40
  152. package/dist/components/Popover/index.js +104 -46
  153. package/dist/components/Popup/helpers.d.ts +5 -1
  154. package/dist/components/Popup/helpers.js +49 -35
  155. package/dist/components/Popup/index.d.ts +2 -1
  156. package/dist/components/Popup/index.js +373 -255
  157. package/dist/components/Popup/styles.css.js +0 -1
  158. package/dist/components/Popup/variables.css.js +1 -0
  159. package/dist/components/ProgressBar/index.d.ts +1 -1
  160. package/dist/components/ProgressBar/index.js +74 -20
  161. package/dist/components/Radio/index.js +83 -51
  162. package/dist/components/RadioGroup/index.d.ts +2 -2
  163. package/dist/components/RadioGroup/index.js +74 -20
  164. package/dist/components/Row/index.d.ts +1 -1
  165. package/dist/components/Row/index.js +38 -27
  166. package/dist/components/Row/styles.css.d.ts +11 -0
  167. package/dist/components/Row/styles.css.js +2 -2
  168. package/dist/components/SearchInput/KeyGroup.d.ts +1 -1
  169. package/dist/components/SearchInput/KeyGroup.js +2 -6
  170. package/dist/components/SearchInput/index.js +232 -164
  171. package/dist/components/SelectInput/SelectInputProvider.d.ts +1 -1
  172. package/dist/components/SelectInput/SelectInputProvider.js +91 -55
  173. package/dist/components/SelectInput/components/Dropdown.d.ts +1 -1
  174. package/dist/components/SelectInput/components/Dropdown.js +442 -101
  175. package/dist/components/SelectInput/components/DropdownOption.d.ts +1 -1
  176. package/dist/components/SelectInput/components/DropdownOption.js +176 -27
  177. package/dist/components/SelectInput/components/SearchBarDropdown.d.ts +1 -1
  178. package/dist/components/SelectInput/components/SearchBarDropdown.js +40 -14
  179. package/dist/components/SelectInput/components/SelectBar.d.ts +1 -1
  180. package/dist/components/SelectInput/components/SelectBar.js +252 -97
  181. package/dist/components/SelectInput/index.d.ts +1 -1
  182. package/dist/components/SelectInput/index.js +102 -10
  183. package/dist/components/SelectableCard/index.js +200 -114
  184. package/dist/components/SelectableCardGroup/index.d.ts +2 -2
  185. package/dist/components/SelectableCardGroup/index.js +67 -25
  186. package/dist/components/SelectableCardOptionGroup/Provider.js +3 -1
  187. package/dist/components/SelectableCardOptionGroup/components/Image.d.ts +1 -1
  188. package/dist/components/SelectableCardOptionGroup/components/Image.js +12 -8
  189. package/dist/components/SelectableCardOptionGroup/components/Option.d.ts +1 -1
  190. package/dist/components/SelectableCardOptionGroup/components/Option.js +96 -19
  191. package/dist/components/SelectableCardOptionGroup/index.d.ts +2 -2
  192. package/dist/components/SelectableCardOptionGroup/index.js +53 -17
  193. package/dist/components/Separator/index.d.ts +1 -1
  194. package/dist/components/Separator/index.js +43 -26
  195. package/dist/components/Skeleton/Block.d.ts +1 -1
  196. package/dist/components/Skeleton/Block.js +2 -6
  197. package/dist/components/Skeleton/Blocks.d.ts +1 -1
  198. package/dist/components/Skeleton/Blocks.js +14 -9
  199. package/dist/components/Skeleton/BoxWithIcon.d.ts +1 -1
  200. package/dist/components/Skeleton/BoxWithIcon.js +14 -9
  201. package/dist/components/Skeleton/Donut.d.ts +1 -1
  202. package/dist/components/Skeleton/Donut.js +10 -2
  203. package/dist/components/Skeleton/IconSkeleton.d.ts +1 -1
  204. package/dist/components/Skeleton/IconSkeleton.js +1 -1
  205. package/dist/components/Skeleton/Line.d.ts +1 -1
  206. package/dist/components/Skeleton/Line.js +10 -4
  207. package/dist/components/Skeleton/List.d.ts +1 -1
  208. package/dist/components/Skeleton/List.js +3 -9
  209. package/dist/components/Skeleton/Slider.d.ts +1 -1
  210. package/dist/components/Skeleton/Slider.js +11 -8
  211. package/dist/components/Skeleton/Square.d.ts +1 -1
  212. package/dist/components/Skeleton/Square.js +1 -1
  213. package/dist/components/Skeleton/index.d.ts +9 -9
  214. package/dist/components/Skeleton/index.js +16 -5
  215. package/dist/components/Slider/components/DoubleSlider.d.ts +1 -1
  216. package/dist/components/Slider/components/DoubleSlider.js +191 -88
  217. package/dist/components/Slider/components/Options.d.ts +1 -1
  218. package/dist/components/Slider/components/Options.js +44 -28
  219. package/dist/components/Slider/components/SingleSlider.d.ts +1 -1
  220. package/dist/components/Slider/components/SingleSlider.js +133 -53
  221. package/dist/components/Slider/index.d.ts +1 -1
  222. package/dist/components/Slider/index.js +82 -12
  223. package/dist/components/Snippet/index.d.ts +1 -1
  224. package/dist/components/Snippet/index.js +103 -19
  225. package/dist/components/Stack/index.d.ts +1 -1
  226. package/dist/components/Stack/index.js +20 -24
  227. package/dist/components/Stack/styles.css.js +2 -2
  228. package/dist/components/Status/index.d.ts +1 -1
  229. package/dist/components/Status/index.js +13 -11
  230. package/dist/components/StepList/index.d.ts +2 -2
  231. package/dist/components/StepList/index.js +31 -10
  232. package/dist/components/Stepper/Step.d.ts +1 -1
  233. package/dist/components/Stepper/Step.js +65 -30
  234. package/dist/components/Stepper/StepperProvider.d.ts +1 -1
  235. package/dist/components/Stepper/StepperProvider.js +13 -10
  236. package/dist/components/Stepper/index.d.ts +2 -2
  237. package/dist/components/Stepper/index.js +46 -26
  238. package/dist/components/SwitchButton/FocusOverlay.d.ts +1 -1
  239. package/dist/components/SwitchButton/FocusOverlay.js +11 -5
  240. package/dist/components/SwitchButton/Option.d.ts +1 -1
  241. package/dist/components/SwitchButton/Option.js +20 -2
  242. package/dist/components/SwitchButton/index.d.ts +2 -2
  243. package/dist/components/SwitchButton/index.js +95 -48
  244. package/dist/components/Table/Body.d.ts +1 -1
  245. package/dist/components/Table/Body.js +2 -4
  246. package/dist/components/Table/Cell.d.ts +1 -1
  247. package/dist/components/Table/Cell.js +20 -17
  248. package/dist/components/Table/Header.d.ts +1 -1
  249. package/dist/components/Table/Header.js +2 -4
  250. package/dist/components/Table/HeaderCell.d.ts +1 -1
  251. package/dist/components/Table/HeaderCell.js +46 -22
  252. package/dist/components/Table/HeaderRow.d.ts +1 -1
  253. package/dist/components/Table/HeaderRow.js +21 -12
  254. package/dist/components/Table/Row.d.ts +1 -1
  255. package/dist/components/Table/Row.js +70 -14
  256. package/dist/components/Table/SelectBar.d.ts +1 -1
  257. package/dist/components/Table/SelectBar.js +20 -10
  258. package/dist/components/Table/SkeletonRows.d.ts +1 -1
  259. package/dist/components/Table/SkeletonRows.js +17 -16
  260. package/dist/components/Table/TableContext.d.ts +1 -1
  261. package/dist/components/Table/TableContext.js +22 -13
  262. package/dist/components/Table/index.d.ts +6 -6
  263. package/dist/components/Table/index.js +64 -23
  264. package/dist/components/Tabs/Tab.js +79 -41
  265. package/dist/components/Tabs/TabMenu.js +39 -23
  266. package/dist/components/Tabs/TabMenuItem.d.ts +1 -1
  267. package/dist/components/Tabs/TabMenuItem.js +20 -11
  268. package/dist/components/Tabs/TabsContext.js +3 -1
  269. package/dist/components/Tabs/index.d.ts +3 -3
  270. package/dist/components/Tabs/index.js +34 -14
  271. package/dist/components/Tag/index.d.ts +1 -1
  272. package/dist/components/Tag/index.js +45 -12
  273. package/dist/components/TagInput/index.d.ts +1 -1
  274. package/dist/components/TagInput/index.js +131 -52
  275. package/dist/components/TagInput/styles.css.d.ts +3 -0
  276. package/dist/components/TagList/index.d.ts +1 -1
  277. package/dist/components/TagList/index.js +132 -59
  278. package/dist/components/Text/index.d.ts +1 -1
  279. package/dist/components/Text/index.js +21 -17
  280. package/dist/components/TextArea/index.js +178 -103
  281. package/dist/components/TextInput/index.d.ts +1 -1
  282. package/dist/components/TextInput/index.js +286 -106
  283. package/dist/components/TimeInput/constants.js +1 -5
  284. package/dist/components/TimeInput/index.d.ts +1 -1
  285. package/dist/components/TimeInput/index.js +207 -118
  286. package/dist/components/Toaster/Toaster.js +1 -1
  287. package/dist/components/Toaster/ToasterContainer.d.ts +1 -1
  288. package/dist/components/Toaster/ToasterContainer.js +21 -2
  289. package/dist/components/Toaster/components/Button.d.ts +1 -1
  290. package/dist/components/Toaster/components/CloseButton.d.ts +1 -1
  291. package/dist/components/Toaster/components/CloseButton.js +12 -2
  292. package/dist/components/Toaster/components/Content.d.ts +1 -1
  293. package/dist/components/Toaster/components/Content.js +2 -4
  294. package/dist/components/Toaster/components/Link.d.ts +1 -1
  295. package/dist/components/Toaster/index.d.ts +2 -2
  296. package/dist/components/Toggle/index.js +101 -40
  297. package/dist/components/ToggleGroup/index.d.ts +3 -3
  298. package/dist/components/ToggleGroup/index.js +61 -22
  299. package/dist/components/Tooltip/index.d.ts +1 -1
  300. package/dist/components/Tooltip/index.js +42 -19
  301. package/dist/components/TreeMapChart/Tooltip.d.ts +1 -1
  302. package/dist/components/TreeMapChart/Tooltip.js +1 -1
  303. package/dist/components/TreeMapChart/index.d.ts +1 -1
  304. package/dist/components/TreeMapChart/index.js +33 -27
  305. package/dist/components/UnitInput/index.d.ts +1 -1
  306. package/dist/components/UnitInput/index.js +110 -29
  307. package/dist/components/VerificationCode/index.d.ts +1 -1
  308. package/dist/components/VerificationCode/index.js +80 -21
  309. package/dist/helpers/legend.js +4 -4
  310. package/dist/helpers/treeMap.d.ts +2 -1
  311. package/dist/index.d.ts +1 -1
  312. package/dist/index.js +2 -4
  313. package/dist/theme/ThemeProvider.d.ts +1 -1
  314. package/dist/theme/ThemeProvider.js +4 -2
  315. package/dist/theme/index.js +1 -8
  316. package/dist/ui.css +1 -1
  317. package/dist/utils/ids.js +1 -3
  318. package/dist/utils/index.d.ts +1 -1
  319. package/dist/utils/responsive/index.d.ts +0 -1
  320. package/dist/utils/responsive/style.css.d.ts +3 -0
  321. package/package.json +5 -10
  322. package/dist/utils/responsive/Breakpoint.d.ts +0 -9
  323. package/dist/utils/responsive/Breakpoint.js +0 -14
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { jsx } from "@emotion/react/jsx-runtime";
2
+ import { jsx } from "react/jsx-runtime";
3
3
  import { useMemo } from "react";
4
4
  import { Menu } from "../Menu/index.js";
5
5
  import { tabsTextSelected } from "./styles.css.js";
@@ -10,17 +10,26 @@ const TabMenuItem = ({
10
10
  onClick,
11
11
  ...props
12
12
  }) => {
13
- const {
14
- selected,
15
- onChange
16
- } = useTabsContext();
17
- const isSelected = useMemo(() => value !== void 0 && selected === value, [value, selected]);
18
- return /* @__PURE__ */ jsx(Menu.Item, { "aria-selected": isSelected, className: tabsTextSelected[isSelected ? "selected" : "default"], onClick: (event) => {
19
- if (value !== void 0) {
20
- onChange(value);
13
+ const { selected, onChange } = useTabsContext();
14
+ const isSelected = useMemo(
15
+ () => value !== void 0 && selected === value,
16
+ [value, selected]
17
+ );
18
+ return /* @__PURE__ */ jsx(
19
+ Menu.Item,
20
+ {
21
+ "aria-selected": isSelected,
22
+ className: tabsTextSelected[isSelected ? "selected" : "default"],
23
+ onClick: (event) => {
24
+ if (value !== void 0) {
25
+ onChange(value);
26
+ }
27
+ onClick?.(event);
28
+ },
29
+ ...props,
30
+ children
21
31
  }
22
- onClick?.(event);
23
- }, ...props, children });
32
+ );
24
33
  };
25
34
  export {
26
35
  TabMenuItem
@@ -1,5 +1,7 @@
1
1
  import { createContext, useContext } from "react";
2
- const TabsContext = createContext({});
2
+ const TabsContext = createContext(
3
+ {}
4
+ );
3
5
  const useTabsContext = () => useContext(TabsContext);
4
6
  export {
5
7
  TabsContext,
@@ -10,7 +10,7 @@ type TabsProps = {
10
10
  * Tabs component is used to display a set of tabs with a single tab selected at a time.
11
11
  */
12
12
  export declare const Tabs: {
13
- ({ children, onChange, moreDisclosure, selected, className, "data-testid": dataTestId, ...props }: TabsProps): import("@emotion/react/jsx-runtime").JSX.Element;
13
+ ({ children, onChange, moreDisclosure, selected, className, "data-testid": dataTestId, ...props }: TabsProps): import("react/jsx-runtime").JSX.Element;
14
14
  Tab: import("react").ForwardRefExoticComponent<Omit<{
15
15
  as?: import("react").ElementType | undefined;
16
16
  badge?: ReactNode;
@@ -24,7 +24,7 @@ export declare const Tabs: {
24
24
  tooltip?: string;
25
25
  value?: string | number;
26
26
  style?: import("react").CSSProperties;
27
- } & Omit<any, "tooltip" | "disabled" | "as" | "className" | "children" | "role" | "value" | "badge" | "counter">, "ref"> & import("react").RefAttributes<HTMLElement>>;
27
+ } & Omit<any, "tooltip" | "disabled" | "as" | "className" | "children" | "value" | "role" | "badge" | "counter">, "ref"> & import("react").RefAttributes<HTMLElement>>;
28
28
  Menu: import("react").ForwardRefExoticComponent<{
29
29
  children: ReactNode;
30
30
  disclosure: ReactNode;
@@ -48,6 +48,6 @@ export declare const Tabs: {
48
48
  'data-testid'?: string;
49
49
  searchText?: string;
50
50
  style?: import("react").CSSProperties;
51
- } & import("react").RefAttributes<HTMLElement>) => import("@emotion/react/jsx-runtime").JSX.Element;
51
+ } & import("react").RefAttributes<HTMLElement>) => import("react/jsx-runtime").JSX.Element;
52
52
  };
53
53
  export {};
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { jsx, jsxs } from "@emotion/react/jsx-runtime";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useRef, useState, useMemo, useEffect, Children, isValidElement, cloneElement } from "react";
4
4
  import { tabsContainer, tabsMenu, tabsMenuContainer } from "./styles.css.js";
5
5
  import { Tab } from "./Tab.js";
@@ -19,20 +19,22 @@ const Tabs = ({
19
19
  const tabsRef = useRef({});
20
20
  const moreStaticRef = useRef(null);
21
21
  const [displayMore, setDisplayMore] = useState(false);
22
- const value = useMemo(() => ({
23
- onChange,
24
- selected
25
- }), [selected, onChange]);
22
+ const value = useMemo(
23
+ () => ({
24
+ onChange,
25
+ selected
26
+ }),
27
+ [selected, onChange]
28
+ );
26
29
  useEffect(() => {
27
30
  setDisplayMore(tabsRef.current.scrollWidth > tabsRef.current.clientWidth);
28
31
  }, [children]);
29
32
  useEffect(() => {
30
- const tab = tabsRef.current.querySelector(`[role='tab'][aria-selected='true']`);
33
+ const tab = tabsRef.current.querySelector(
34
+ `[role='tab'][aria-selected='true']`
35
+ );
31
36
  if (tab && tabsRef.current.scrollTo) {
32
- tabsRef.current.scrollTo({
33
- behavior: "smooth",
34
- left: tab.offsetLeft
35
- });
37
+ tabsRef.current.scrollTo({ behavior: "smooth", left: tab.offsetLeft });
36
38
  }
37
39
  }, [selected]);
38
40
  useEffect(() => {
@@ -61,10 +63,28 @@ const Tabs = ({
61
63
  }
62
64
  return null;
63
65
  });
64
- return /* @__PURE__ */ jsx(TabsContext.Provider, { value, children: /* @__PURE__ */ jsxs("div", { className: `${className ? `${className} ` : ""}${tabsContainer}`, "data-testid": dataTestId, ref: tabsRef, role: "tablist", ...props, children: [
65
- children,
66
- displayMore ? /* @__PURE__ */ jsx(TabMenu, { className: tabsMenu, disclosure: moreDisclosure, ref: moreStaticRef, children: /* @__PURE__ */ jsx("div", { className: tabsMenuContainer, children: menuItemChildren }) }) : null
67
- ] }) });
66
+ return /* @__PURE__ */ jsx(TabsContext.Provider, { value, children: /* @__PURE__ */ jsxs(
67
+ "div",
68
+ {
69
+ className: `${className ? `${className} ` : ""}${tabsContainer}`,
70
+ "data-testid": dataTestId,
71
+ ref: tabsRef,
72
+ role: "tablist",
73
+ ...props,
74
+ children: [
75
+ children,
76
+ displayMore ? /* @__PURE__ */ jsx(
77
+ TabMenu,
78
+ {
79
+ className: tabsMenu,
80
+ disclosure: moreDisclosure,
81
+ ref: moreStaticRef,
82
+ children: /* @__PURE__ */ jsx("div", { className: tabsMenuContainer, children: menuItemChildren })
83
+ }
84
+ ) : null
85
+ ]
86
+ }
87
+ ) });
68
88
  };
69
89
  Tabs.Tab = Tab;
70
90
  Tabs.Menu = TabMenu;
@@ -17,5 +17,5 @@ type TagProps = {
17
17
  * Tag component is used to display a short text description of an item. It can be used to display a category
18
18
  * or any other metadata.
19
19
  */
20
- export declare const Tag: ({ children, isLoading, onClose, copiable, copyText, copiedText, disabled, sentiment, className, style, "data-testid": dataTestId, }: TagProps) => import("@emotion/react/jsx-runtime").JSX.Element;
20
+ export declare const Tag: ({ children, isLoading, onClose, copiable, copyText, copiedText, disabled, sentiment, className, style, "data-testid": dataTestId, }: TagProps) => import("react/jsx-runtime").JSX.Element;
21
21
  export {};
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { jsx, jsxs, Fragment } from "@emotion/react/jsx-runtime";
2
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
3
  import { CloseIcon } from "@ultraviolet/icons";
4
4
  import { useMemo } from "react";
5
5
  import useClipboard from "react-use-clipboard";
@@ -15,8 +15,31 @@ const TagInner = ({
15
15
  onClose,
16
16
  disabled = false
17
17
  }) => /* @__PURE__ */ jsxs(Fragment, { children: [
18
- /* @__PURE__ */ jsx(Text, { "aria-disabled": disabled, as: "span", className: textTag, oneLine: true, variant: "caption", children }),
19
- onClose && !isLoading ? /* @__PURE__ */ jsx(Button, { "aria-label": "Close tag", className: closeButtonTag, "data-testid": "close-tag", disabled, onClick: onClose, sentiment: "neutral", size: "small", variant: "ghost", children: /* @__PURE__ */ jsx(CloseIcon, { size: "small" }) }) : null,
18
+ /* @__PURE__ */ jsx(
19
+ Text,
20
+ {
21
+ "aria-disabled": disabled,
22
+ as: "span",
23
+ className: textTag,
24
+ oneLine: true,
25
+ variant: "caption",
26
+ children
27
+ }
28
+ ),
29
+ onClose && !isLoading ? /* @__PURE__ */ jsx(
30
+ Button,
31
+ {
32
+ "aria-label": "Close tag",
33
+ className: closeButtonTag,
34
+ "data-testid": "close-tag",
35
+ disabled,
36
+ onClick: onClose,
37
+ sentiment: "neutral",
38
+ size: "small",
39
+ variant: "ghost",
40
+ children: /* @__PURE__ */ jsx(CloseIcon, { size: "small" })
41
+ }
42
+ ) : null,
20
43
  isLoading ? /* @__PURE__ */ jsx(Loader, { active: true, size: "small" }) : null
21
44
  ] });
22
45
  const Tag = ({
@@ -45,16 +68,26 @@ const Tag = ({
45
68
  successDuration: COPY_DURATION
46
69
  });
47
70
  if (copiable && !disabled) {
48
- return /* @__PURE__ */ jsx(Tooltip, { text: isCopied ? copiedText : copyText, children: /* @__PURE__ */ jsx("button", { className: `${className ? `${className} ` : ""}${containerTag({
49
- copiable,
50
- disabled,
51
- sentiment
52
- })}`, "data-testid": dataTestId, disabled, onClick: setCopied, children: /* @__PURE__ */ jsx(TagInner, { disabled, isLoading, onClose, children }) }) });
71
+ return /* @__PURE__ */ jsx(Tooltip, { text: isCopied ? copiedText : copyText, children: /* @__PURE__ */ jsx(
72
+ "button",
73
+ {
74
+ className: `${className ? `${className} ` : ""}${containerTag({ copiable, disabled, sentiment })}`,
75
+ "data-testid": dataTestId,
76
+ disabled,
77
+ onClick: setCopied,
78
+ children: /* @__PURE__ */ jsx(TagInner, { disabled, isLoading, onClose, children })
79
+ }
80
+ ) });
53
81
  }
54
- return /* @__PURE__ */ jsx("span", { className: `${className ? `${className} ` : ""}${containerTag({
55
- disabled,
56
- sentiment
57
- })}`, "data-testid": dataTestId, style, children: /* @__PURE__ */ jsx(TagInner, { disabled, isLoading, onClose, children }) });
82
+ return /* @__PURE__ */ jsx(
83
+ "span",
84
+ {
85
+ className: `${className ? `${className} ` : ""}${containerTag({ disabled, sentiment })}`,
86
+ "data-testid": dataTestId,
87
+ style,
88
+ children: /* @__PURE__ */ jsx(TagInner, { disabled, isLoading, onClose, children })
89
+ }
90
+ );
58
91
  };
59
92
  export {
60
93
  Tag
@@ -33,5 +33,5 @@ type TagInputProps = {
33
33
  /**
34
34
  * TagInput is a component that allows users to input tags.
35
35
  */
36
- export declare const TagInput: ({ disabled, id, name, onChange, placeholder, value, className, "data-testid": dataTestId, "aria-label": ariaLabel, label, labelDescription, required, size, error, success, helper, readOnly, tooltip, clearable, style, }: TagInputProps) => import("@emotion/react/jsx-runtime").JSX.Element;
36
+ export declare const TagInput: ({ disabled, id, name, onChange, placeholder, value, className, "data-testid": dataTestId, "aria-label": ariaLabel, label, labelDescription, required, size, error, success, helper, readOnly, tooltip, clearable, style, }: TagInputProps) => import("react/jsx-runtime").JSX.Element;
37
37
  export {};
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { jsxs, jsx } from "@emotion/react/jsx-runtime";
2
+ import { jsxs, jsx } from "react/jsx-runtime";
3
3
  import { CloseIcon, CheckCircleOutlineIcon, AlertCircleIcon } from "@ultraviolet/icons";
4
4
  import { useState, useId, useEffect, useRef, useMemo } from "react";
5
5
  import { Button } from "../Button/index.js";
@@ -14,13 +14,9 @@ const STATUS = {
14
14
  IDLE: "idle",
15
15
  LOADING: "loading"
16
16
  };
17
- const convertTagArrayToTagStateArray = (tags) => (tags ?? [])?.map((tag, index) => typeof tag === "object" ? {
18
- ...tag,
19
- index: getUUID(`tag-${index}`)
20
- } : {
21
- index: getUUID(`tag-${index}`),
22
- label: tag
23
- });
17
+ const convertTagArrayToTagStateArray = (tags) => (tags ?? [])?.map(
18
+ (tag, index) => typeof tag === "object" ? { ...tag, index: getUUID(`tag-${index}`) } : { index: getUUID(`tag-${index}`), label: tag }
19
+ );
24
20
  const TagInput = ({
25
21
  disabled = false,
26
22
  id,
@@ -43,7 +39,9 @@ const TagInput = ({
43
39
  clearable = false,
44
40
  style
45
41
  }) => {
46
- const [tagInputState, setTagInput] = useState(convertTagArrayToTagStateArray(value));
42
+ const [tagInputState, setTagInput] = useState(
43
+ convertTagArrayToTagStateArray(value)
44
+ );
47
45
  const [input, setInput] = useState("");
48
46
  const [status, setStatus] = useState({});
49
47
  const uniqueId = useId();
@@ -53,7 +51,9 @@ const TagInput = ({
53
51
  }, [value, setTagInput]);
54
52
  const inputRef = useRef(null);
55
53
  const dispatchOnChange = (newState) => {
56
- const changes = newState.map((tag) => typeof tag === "object" ? tag?.label : tag);
54
+ const changes = newState.map(
55
+ (tag) => typeof tag === "object" ? tag?.label : tag
56
+ );
57
57
  onChange?.(changes);
58
58
  };
59
59
  const handleContainerClick = () => {
@@ -65,43 +65,36 @@ const TagInput = ({
65
65
  setInput(e.target.value);
66
66
  };
67
67
  const addTag = () => {
68
- const newTagInput = input ? [...tagInputState, {
69
- index: getUUID("tag"),
70
- label: input
71
- }] : tagInputState;
68
+ const newTagInput = input ? [...tagInputState, { index: getUUID("tag"), label: input }] : tagInputState;
72
69
  setInput("");
73
70
  setTagInput(newTagInput);
74
71
  if (newTagInput.length !== tagInputState.length && newTagInput) {
75
- setStatus({
76
- [newTagInput[newTagInput.length - 1].index]: STATUS.LOADING
77
- });
72
+ const tag = newTagInput.at(-1);
73
+ if (tag) {
74
+ setStatus({
75
+ [tag.index]: STATUS.LOADING
76
+ });
77
+ }
78
78
  }
79
79
  try {
80
80
  dispatchOnChange(newTagInput);
81
- if (newTagInput) {
82
- setStatus({
83
- [newTagInput[newTagInput.length - 1].index]: STATUS.IDLE
84
- });
81
+ const tag = newTagInput.at(-1);
82
+ if (tag) {
83
+ setStatus({ [tag.index]: STATUS.IDLE });
85
84
  }
86
85
  } catch {
87
86
  setTagInput(tagInputState);
88
87
  }
89
88
  };
90
89
  const deleteTag = (tagIndex) => {
91
- setStatus({
92
- [tagIndex]: STATUS.LOADING
93
- });
94
- const findIndex = tagInputState.findIndex(({
95
- index
96
- }) => index === tagIndex);
90
+ setStatus({ [tagIndex]: STATUS.LOADING });
91
+ const findIndex = tagInputState.findIndex(({ index }) => index === tagIndex);
97
92
  const newTagInput = [...tagInputState];
98
93
  newTagInput.splice(findIndex, 1);
99
94
  try {
100
95
  dispatchOnChange(newTagInput);
101
96
  setTagInput(newTagInput);
102
- setStatus({
103
- [tagIndex]: STATUS.IDLE
104
- });
97
+ setStatus({ [tagIndex]: STATUS.IDLE });
105
98
  } catch {
106
99
  setTagInput(tagInputState);
107
100
  }
@@ -114,7 +107,10 @@ const TagInput = ({
114
107
  if (event.key === "Backspace" && inputRef?.current?.selectionStart === 0 && tagInputState.length > 0) {
115
108
  event.preventDefault();
116
109
  if (tagInputState) {
117
- deleteTag(tagInputState[tagInputState.length - 1].index);
110
+ const tag = tagInputState.at(-1);
111
+ if (tag) {
112
+ deleteTag(tag.index);
113
+ }
118
114
  }
119
115
  }
120
116
  };
@@ -134,28 +130,111 @@ const TagInput = ({
134
130
  }, [error, success]);
135
131
  const computedClearable = clearable && tagInputState.length > 0;
136
132
  return /* @__PURE__ */ jsxs(Stack, { className, gap: "0.5", children: [
137
- label || labelDescription ? /* @__PURE__ */ jsx(Label, { htmlFor: id ?? localId, labelDescription, required, size, children: label }) : null,
138
- /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Tooltip, { text: tooltip, children: /* @__PURE__ */ jsxs("div", { className: `${className ? `${className} ` : ""}${tagInputContainer({
139
- size
140
- })}`, "data-disabled": disabled, "data-error": !!error, "data-readonly": readOnly, "data-success": !!success, "data-testid": dataTestId, onClick: handleContainerClick, onKeyDown: (event) => {
141
- if ([" ", "Enter"].includes(event.key)) {
142
- handleContainerClick();
133
+ label || labelDescription ? /* @__PURE__ */ jsx(
134
+ Label,
135
+ {
136
+ htmlFor: id ?? localId,
137
+ labelDescription,
138
+ required,
139
+ size,
140
+ children: label
143
141
  }
144
- }, children: [
145
- /* @__PURE__ */ jsxs("div", { className: tagInputDataContainer, children: [
146
- tagInputState.map((tag) => /* @__PURE__ */ jsx(Tag, { disabled, isLoading: status[tag.index] === STATUS.LOADING, onClose: !readOnly ? (e) => {
147
- e.stopPropagation();
148
- deleteTag(tag.index);
149
- } : void 0, sentiment: "neutral", children: tag.label }, tag.index)),
150
- !disabled ? /* @__PURE__ */ jsx("input", { "aria-label": ariaLabel, className: tagInput, "data-size": size, id: localId, name, onBlur: addTag, onChange: onInputChange, onKeyDown: handleInputKeydown, placeholder: tagInputState.length === 0 ? placeholder : "", readOnly, ref: inputRef, style, type: "text", value: input }) : null
151
- ] }),
152
- computedClearable || success || error ? /* @__PURE__ */ jsxs("div", { className: tagInputStateContainer, children: [
153
- computedClearable ? /* @__PURE__ */ jsx(Button, { "aria-label": "clear value", disabled, onClick: clearAll, sentiment: "neutral", size: "xsmall", variant: "ghost", children: /* @__PURE__ */ jsx(CloseIcon, {}) }) : null,
154
- success ? /* @__PURE__ */ jsx(CheckCircleOutlineIcon, { disabled, sentiment: "success", size: "small" }) : null,
155
- error ? /* @__PURE__ */ jsx(AlertCircleIcon, { disabled, sentiment: "danger", size: "small" }) : null
156
- ] }) : null
157
- ] }) }) }),
158
- error || typeof success === "string" || helper ? /* @__PURE__ */ jsx(Text, { as: "span", disabled: disabled || readOnly, prominence: !error && !success ? "weak" : void 0, sentiment: helperSentiment, variant: "caption", children: error || success || helper }) : null
142
+ ) : null,
143
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Tooltip, { text: tooltip, children: /* @__PURE__ */ jsxs(
144
+ "div",
145
+ {
146
+ className: `${className ? `${className} ` : ""}${tagInputContainer({ size })}`,
147
+ "data-disabled": disabled,
148
+ "data-error": !!error,
149
+ "data-readonly": readOnly,
150
+ "data-success": !!success,
151
+ "data-testid": dataTestId,
152
+ onClick: handleContainerClick,
153
+ onKeyDown: (event) => {
154
+ if ([" ", "Enter"].includes(event.key)) {
155
+ handleContainerClick();
156
+ }
157
+ },
158
+ children: [
159
+ /* @__PURE__ */ jsxs("div", { className: tagInputDataContainer, children: [
160
+ tagInputState.map((tag) => /* @__PURE__ */ jsx(
161
+ Tag,
162
+ {
163
+ disabled,
164
+ isLoading: status[tag.index] === STATUS.LOADING,
165
+ onClose: !readOnly ? (e) => {
166
+ e.stopPropagation();
167
+ deleteTag(tag.index);
168
+ } : void 0,
169
+ sentiment: "neutral",
170
+ children: tag.label
171
+ },
172
+ tag.index
173
+ )),
174
+ !disabled ? /* @__PURE__ */ jsx(
175
+ "input",
176
+ {
177
+ "aria-label": ariaLabel,
178
+ className: tagInput,
179
+ "data-size": size,
180
+ id: localId,
181
+ name,
182
+ onBlur: addTag,
183
+ onChange: onInputChange,
184
+ onKeyDown: handleInputKeydown,
185
+ placeholder: tagInputState.length === 0 ? placeholder : "",
186
+ readOnly,
187
+ ref: inputRef,
188
+ style,
189
+ type: "text",
190
+ value: input
191
+ }
192
+ ) : null
193
+ ] }),
194
+ computedClearable || success || error ? /* @__PURE__ */ jsxs("div", { className: tagInputStateContainer, children: [
195
+ computedClearable ? /* @__PURE__ */ jsx(
196
+ Button,
197
+ {
198
+ "aria-label": "clear value",
199
+ disabled,
200
+ onClick: clearAll,
201
+ sentiment: "neutral",
202
+ size: "xsmall",
203
+ variant: "ghost",
204
+ children: /* @__PURE__ */ jsx(CloseIcon, {})
205
+ }
206
+ ) : null,
207
+ success ? /* @__PURE__ */ jsx(
208
+ CheckCircleOutlineIcon,
209
+ {
210
+ disabled,
211
+ sentiment: "success",
212
+ size: "small"
213
+ }
214
+ ) : null,
215
+ error ? /* @__PURE__ */ jsx(
216
+ AlertCircleIcon,
217
+ {
218
+ disabled,
219
+ sentiment: "danger",
220
+ size: "small"
221
+ }
222
+ ) : null
223
+ ] }) : null
224
+ ]
225
+ }
226
+ ) }) }),
227
+ error || typeof success === "string" || helper ? /* @__PURE__ */ jsx(
228
+ Text,
229
+ {
230
+ as: "span",
231
+ disabled: disabled || readOnly,
232
+ prominence: !error && !success ? "weak" : void 0,
233
+ sentiment: helperSentiment,
234
+ variant: "caption",
235
+ children: error || success || helper
236
+ }
237
+ ) : null
159
238
  ] });
160
239
  };
161
240
  export {
@@ -7,12 +7,15 @@ export declare const tagInputContainer: import("@vanilla-extract/recipes").Runti
7
7
  size: {
8
8
  large: {
9
9
  padding: `calc(var(--${string}) - 1px) var(--${string})`;
10
+ height: `var(--${string})`;
10
11
  };
11
12
  small: {
12
13
  padding: `calc(var(--${string}) - 1px) var(--${string})`;
14
+ height: `var(--${string})`;
13
15
  };
14
16
  medium: {
15
17
  padding: `calc(var(--${string}) - 1px) var(--${string})`;
18
+ height: `var(--${string})`;
16
19
  };
17
20
  };
18
21
  }>;
@@ -40,5 +40,5 @@ type TagListProps = {
40
40
  /**
41
41
  * This component is used to display a list of tags with a threshold and a popover when there are too many tags.
42
42
  */
43
- export declare const TagList: ({ maxLength, tags, threshold, multiline, popoverTitle, popoverPlacement, popoverMaxHeight, copiable, copyText, copiedText, className, "data-testid": dataTestId, style, }: TagListProps) => import("@emotion/react/jsx-runtime").JSX.Element | null;
43
+ export declare const TagList: ({ maxLength, tags, threshold, multiline, popoverTitle, popoverPlacement, popoverMaxHeight, copiable, copyText, copiedText, className, "data-testid": dataTestId, style, }: TagListProps) => import("react/jsx-runtime").JSX.Element | null;
44
44
  export {};