uikit-react-public 0.25.5 → 0.26.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 (476) hide show
  1. package/dist/components/Alert/Alert.d.ts +3 -3
  2. package/dist/components/Alert/Alert.stories.d.ts +3 -3
  3. package/dist/components/Alert/AlertMessage.d.ts +1 -1
  4. package/dist/components/Alert/AlertTitle.d.ts +1 -1
  5. package/dist/components/AppHeader/AppHeader.d.ts +1 -1
  6. package/dist/components/AppHeader/AppHeader.stories.d.ts +1 -1
  7. package/dist/components/AppHeader/AppHeaderBottom.d.ts +1 -1
  8. package/dist/components/AppHeader/AppHeaderNav.d.ts +1 -1
  9. package/dist/components/AppHeader/AppHeaderTop.d.ts +1 -1
  10. package/dist/components/AppMenu/AppMenu.context.d.ts +1 -1
  11. package/dist/components/AppMenu/AppMenu.d.ts +1 -1
  12. package/dist/components/AppMenu/AppMenu.stories.d.ts +1 -1
  13. package/dist/components/Badge/Badge.d.ts +1 -1
  14. package/dist/components/Badge/Badge.stories.d.ts +1 -1
  15. package/dist/components/Breadcrumbs/Breadcrumb.d.ts +1 -1
  16. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +2 -2
  17. package/dist/components/Breadcrumbs/Breadcrumbs.stories.d.ts +2 -2
  18. package/dist/components/Button/Button.d.ts +1 -1
  19. package/dist/components/Button/Button.stories.d.ts +1 -1
  20. package/dist/components/Calendar/Calendar.d.ts +1 -1
  21. package/dist/components/Calendar/Calendar.stories.d.ts +1 -1
  22. package/dist/components/Calendar/subcomponents/AcademicWeek.d.ts +1 -1
  23. package/dist/components/Calendar/subcomponents/AcademicWeeks.d.ts +1 -1
  24. package/dist/components/Calendar/subcomponents/ColumnHeading.d.ts +1 -1
  25. package/dist/components/Calendar/subcomponents/Controls.d.ts +1 -1
  26. package/dist/components/Calendar/subcomponents/Day.d.ts +1 -1
  27. package/dist/components/Calendar/subcomponents/Day.stories.d.ts +1 -1
  28. package/dist/components/Calendar/subcomponents/EventDot.d.ts +1 -1
  29. package/dist/components/Calendar/subcomponents/Grid.d.ts +1 -1
  30. package/dist/components/CookieNotice/CookieNotice.d.ts +1 -1
  31. package/dist/components/Datepicker/Datepicker.d.ts +1 -1
  32. package/dist/components/Datepicker/Datepicker.stories.d.ts +1 -1
  33. package/dist/components/Datepicker/subcomponents/CustomDatepicker.d.ts +1 -1
  34. package/dist/components/Datepicker/subcomponents/DatepickerInput.d.ts +1 -1
  35. package/dist/components/Datepicker/subcomponents/Panel.d.ts +1 -1
  36. package/dist/components/Datepicker/subcomponents/VisibleField.d.ts +1 -1
  37. package/dist/components/Dialog/BaseDialog.d.ts +1 -1
  38. package/dist/components/Dialog/Dialog.d.ts +1 -1
  39. package/dist/components/Dialog/Dialog.stories.d.ts +1 -1
  40. package/dist/components/Dialog/DialogBody.d.ts +1 -1
  41. package/dist/components/Dialog/DialogFooter.d.ts +1 -1
  42. package/dist/components/Dialog/DialogHeader.d.ts +1 -1
  43. package/dist/components/Divider/Divider.d.ts +1 -1
  44. package/dist/components/Divider/Divider.stories.d.ts +1 -1
  45. package/dist/components/DrawerMenu/DrawerMenu.d.ts +28 -0
  46. package/dist/components/DrawerMenu/DrawerMenuTrigger.d.ts +4 -0
  47. package/dist/components/DrawerMenu/__tests__/DrawerMenu.test.d.ts +1 -0
  48. package/dist/components/DrawerMenu/index.d.ts +2 -0
  49. package/dist/components/Dropdown/Dropdown.context.d.ts +1 -1
  50. package/dist/components/Dropdown/Dropdown.d.ts +1 -1
  51. package/dist/components/Dropdown/Dropdown.stories.d.ts +1 -1
  52. package/dist/components/Dropdown/DropdownContent.d.ts +9 -3
  53. package/dist/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  54. package/dist/components/DropdownMenu/DropdownMenuTrigger.d.ts +1 -1
  55. package/dist/components/DropdownUserMenu/DropdownUserMenu.d.ts +1 -1
  56. package/dist/components/FeedbackDialog/FeedbackDialog.d.ts +1 -1
  57. package/dist/components/FeedbackDialog/FeedbackDialog.stories.d.ts +1 -1
  58. package/dist/components/Field/CharacterCount.d.ts +1 -1
  59. package/dist/components/Field/ErrorText.d.ts +1 -1
  60. package/dist/components/Field/Field.d.ts +1 -1
  61. package/dist/components/Field/Field.stories.d.ts +1 -1
  62. package/dist/components/Field/HelperText.d.ts +1 -1
  63. package/dist/components/FileInput/FileInput.d.ts +1 -1
  64. package/dist/components/FileInput/FileInput.stories.d.ts +1 -1
  65. package/dist/components/Footer/Footer.d.ts +1 -1
  66. package/dist/components/Footer/Footer.stories.d.ts +1 -1
  67. package/dist/components/Footer/FooterColumn.d.ts +1 -1
  68. package/dist/components/Footer/FooterNavLink.d.ts +1 -1
  69. package/dist/components/Footer/SocialLink.d.ts +1 -1
  70. package/dist/components/FooterNew/BackToTop.d.ts +1 -1
  71. package/dist/components/FooterNew/Footer.d.ts +1 -1
  72. package/dist/components/FooterNew/FooterColumn.d.ts +1 -1
  73. package/dist/components/FooterNew/FooterLinks.d.ts +1 -1
  74. package/dist/components/FooterNew/FooterNavLink.d.ts +1 -1
  75. package/dist/components/FooterNew/LegalAndCopyright.d.ts +1 -1
  76. package/dist/components/FooterNew/LogoAddressAndSocial.d.ts +1 -1
  77. package/dist/components/FooterNew/SocialLink.d.ts +1 -1
  78. package/dist/components/Header/Header.d.ts +1 -1
  79. package/dist/components/Header/Header.stories.d.ts +1 -1
  80. package/dist/components/HeaderDraft/HeaderBottomBreadcrumbs.d.ts +1 -1
  81. package/dist/components/HeaderDraft/HeaderBottomHeadingAndAvatar.d.ts +1 -1
  82. package/dist/components/HeaderDraft/HeaderBreadcrumb.d.ts +1 -1
  83. package/dist/components/HeaderDraft/HeaderDraft.d.ts +1 -1
  84. package/dist/components/HeaderNew/Header.d.ts +1 -1
  85. package/dist/components/HeaderNew/HeaderBorder.d.ts +1 -1
  86. package/dist/components/HeaderNew/HeaderItem.d.ts +1 -1
  87. package/dist/components/HeaderNew/HeaderLogo.d.ts +1 -1
  88. package/dist/components/HeaderNew/HeaderTitle.d.ts +1 -1
  89. package/dist/components/HeaderNew/constants.d.ts +1 -1
  90. package/dist/components/Heading/Heading.d.ts +2 -2
  91. package/dist/components/Heading/Heading.stories.d.ts +1 -1
  92. package/dist/components/Icon/BaseIcon.d.ts +1 -1
  93. package/dist/components/Icon/Icon.d.ts +1 -1
  94. package/dist/components/Icon/svgs/ActivitySvg.d.ts +1 -1
  95. package/dist/components/Icon/svgs/AirplaySvg.d.ts +1 -1
  96. package/dist/components/Icon/svgs/AlertCircleSvg.d.ts +1 -1
  97. package/dist/components/Icon/svgs/AlertOctagonSvg.d.ts +1 -1
  98. package/dist/components/Icon/svgs/AlertTriangleSvg.d.ts +1 -1
  99. package/dist/components/Icon/svgs/AlignCenterSvg.d.ts +1 -1
  100. package/dist/components/Icon/svgs/AlignJustifySvg.d.ts +1 -1
  101. package/dist/components/Icon/svgs/AlignLeftSvg.d.ts +1 -1
  102. package/dist/components/Icon/svgs/AlignRightSvg.d.ts +1 -1
  103. package/dist/components/Icon/svgs/AnchorSvg.d.ts +1 -1
  104. package/dist/components/Icon/svgs/ApertureSvg.d.ts +1 -1
  105. package/dist/components/Icon/svgs/ArchiveSvg.d.ts +1 -1
  106. package/dist/components/Icon/svgs/ArrowDownCircleSvg.d.ts +1 -1
  107. package/dist/components/Icon/svgs/ArrowDownLeftSvg.d.ts +1 -1
  108. package/dist/components/Icon/svgs/ArrowDownRightSvg.d.ts +1 -1
  109. package/dist/components/Icon/svgs/ArrowDownSvg.d.ts +1 -1
  110. package/dist/components/Icon/svgs/ArrowLeftCircleSvg.d.ts +1 -1
  111. package/dist/components/Icon/svgs/ArrowLeftSvg.d.ts +1 -1
  112. package/dist/components/Icon/svgs/ArrowRightCircleSvg.d.ts +1 -1
  113. package/dist/components/Icon/svgs/ArrowRightSvg.d.ts +1 -1
  114. package/dist/components/Icon/svgs/ArrowUpCircleSvg.d.ts +1 -1
  115. package/dist/components/Icon/svgs/ArrowUpLeftSvg.d.ts +1 -1
  116. package/dist/components/Icon/svgs/ArrowUpRightSvg.d.ts +1 -1
  117. package/dist/components/Icon/svgs/ArrowUpSvg.d.ts +1 -1
  118. package/dist/components/Icon/svgs/AtSignSvg.d.ts +1 -1
  119. package/dist/components/Icon/svgs/AvatarSvg.d.ts +1 -1
  120. package/dist/components/Icon/svgs/AwardSvg.d.ts +1 -1
  121. package/dist/components/Icon/svgs/BarChart2Svg.d.ts +1 -1
  122. package/dist/components/Icon/svgs/BarChartSvg.d.ts +1 -1
  123. package/dist/components/Icon/svgs/BatteryChargingSvg.d.ts +1 -1
  124. package/dist/components/Icon/svgs/BatterySvg.d.ts +1 -1
  125. package/dist/components/Icon/svgs/BellOffSvg.d.ts +1 -1
  126. package/dist/components/Icon/svgs/BellSvg.d.ts +1 -1
  127. package/dist/components/Icon/svgs/BluetoothSvg.d.ts +1 -1
  128. package/dist/components/Icon/svgs/BoldSvg.d.ts +1 -1
  129. package/dist/components/Icon/svgs/BookOpenSvg.d.ts +1 -1
  130. package/dist/components/Icon/svgs/BookSvg.d.ts +1 -1
  131. package/dist/components/Icon/svgs/BookmarkSvg.d.ts +1 -1
  132. package/dist/components/Icon/svgs/BoxSvg.d.ts +1 -1
  133. package/dist/components/Icon/svgs/BriefcaseSvg.d.ts +1 -1
  134. package/dist/components/Icon/svgs/CalendarSvg.d.ts +1 -1
  135. package/dist/components/Icon/svgs/CameraOffSvg.d.ts +1 -1
  136. package/dist/components/Icon/svgs/CameraSvg.d.ts +1 -1
  137. package/dist/components/Icon/svgs/CastSvg.d.ts +1 -1
  138. package/dist/components/Icon/svgs/CheckCircleSvg.d.ts +1 -1
  139. package/dist/components/Icon/svgs/CheckSquareSvg.d.ts +1 -1
  140. package/dist/components/Icon/svgs/CheckSvg.d.ts +1 -1
  141. package/dist/components/Icon/svgs/ChevronDownSvg.d.ts +1 -1
  142. package/dist/components/Icon/svgs/ChevronLeftSvg.d.ts +1 -1
  143. package/dist/components/Icon/svgs/ChevronRightSvg.d.ts +1 -1
  144. package/dist/components/Icon/svgs/ChevronUpSvg.d.ts +1 -1
  145. package/dist/components/Icon/svgs/ChevronsDownSvg.d.ts +1 -1
  146. package/dist/components/Icon/svgs/ChevronsLeftSvg.d.ts +1 -1
  147. package/dist/components/Icon/svgs/ChevronsRightSvg.d.ts +1 -1
  148. package/dist/components/Icon/svgs/ChevronsUpSvg.d.ts +1 -1
  149. package/dist/components/Icon/svgs/ChromeSvg.d.ts +1 -1
  150. package/dist/components/Icon/svgs/CircleSvg.d.ts +1 -1
  151. package/dist/components/Icon/svgs/ClipboardSvg.d.ts +1 -1
  152. package/dist/components/Icon/svgs/ClockSvg.d.ts +1 -1
  153. package/dist/components/Icon/svgs/CloudDrizzleSvg.d.ts +1 -1
  154. package/dist/components/Icon/svgs/CloudLightningSvg.d.ts +1 -1
  155. package/dist/components/Icon/svgs/CloudOffSvg.d.ts +1 -1
  156. package/dist/components/Icon/svgs/CloudRainSvg.d.ts +1 -1
  157. package/dist/components/Icon/svgs/CloudSnowSvg.d.ts +1 -1
  158. package/dist/components/Icon/svgs/CloudSvg.d.ts +1 -1
  159. package/dist/components/Icon/svgs/CodeSvg.d.ts +1 -1
  160. package/dist/components/Icon/svgs/CodepenSvg.d.ts +1 -1
  161. package/dist/components/Icon/svgs/CodesandboxSvg.d.ts +1 -1
  162. package/dist/components/Icon/svgs/CoffeeSvg.d.ts +1 -1
  163. package/dist/components/Icon/svgs/ColumnsSvg.d.ts +1 -1
  164. package/dist/components/Icon/svgs/CommandSvg.d.ts +1 -1
  165. package/dist/components/Icon/svgs/CompassSvg.d.ts +1 -1
  166. package/dist/components/Icon/svgs/CopySvg.d.ts +1 -1
  167. package/dist/components/Icon/svgs/CornerDownLeftSvg.d.ts +1 -1
  168. package/dist/components/Icon/svgs/CornerDownRightSvg.d.ts +1 -1
  169. package/dist/components/Icon/svgs/CornerLeftDownSvg.d.ts +1 -1
  170. package/dist/components/Icon/svgs/CornerLeftUpSvg.d.ts +1 -1
  171. package/dist/components/Icon/svgs/CornerRightDownSvg.d.ts +1 -1
  172. package/dist/components/Icon/svgs/CornerRightUpSvg.d.ts +1 -1
  173. package/dist/components/Icon/svgs/CornerUpLeftSvg.d.ts +1 -1
  174. package/dist/components/Icon/svgs/CornerUpRightSvg.d.ts +1 -1
  175. package/dist/components/Icon/svgs/CpuSvg.d.ts +1 -1
  176. package/dist/components/Icon/svgs/CreditCardSvg.d.ts +1 -1
  177. package/dist/components/Icon/svgs/CropSvg.d.ts +1 -1
  178. package/dist/components/Icon/svgs/CrosshairSvg.d.ts +1 -1
  179. package/dist/components/Icon/svgs/DatabaseSvg.d.ts +1 -1
  180. package/dist/components/Icon/svgs/DeleteSvg.d.ts +1 -1
  181. package/dist/components/Icon/svgs/DiscSvg.d.ts +1 -1
  182. package/dist/components/Icon/svgs/DivideCircleSvg.d.ts +1 -1
  183. package/dist/components/Icon/svgs/DivideSquareSvg.d.ts +1 -1
  184. package/dist/components/Icon/svgs/DivideSvg.d.ts +1 -1
  185. package/dist/components/Icon/svgs/DollarSignSvg.d.ts +1 -1
  186. package/dist/components/Icon/svgs/DownloadCloudSvg.d.ts +1 -1
  187. package/dist/components/Icon/svgs/DownloadSvg.d.ts +1 -1
  188. package/dist/components/Icon/svgs/DribbbleSvg.d.ts +1 -1
  189. package/dist/components/Icon/svgs/DropletSvg.d.ts +1 -1
  190. package/dist/components/Icon/svgs/Edit2Svg.d.ts +1 -1
  191. package/dist/components/Icon/svgs/Edit3Svg.d.ts +1 -1
  192. package/dist/components/Icon/svgs/EditSvg.d.ts +1 -1
  193. package/dist/components/Icon/svgs/ExternalLinkSvg.d.ts +1 -1
  194. package/dist/components/Icon/svgs/EyeOffSvg.d.ts +1 -1
  195. package/dist/components/Icon/svgs/EyeSvg.d.ts +1 -1
  196. package/dist/components/Icon/svgs/FastForwardSvg.d.ts +1 -1
  197. package/dist/components/Icon/svgs/FeatherSvg.d.ts +1 -1
  198. package/dist/components/Icon/svgs/FigmaSvg.d.ts +1 -1
  199. package/dist/components/Icon/svgs/FileMinusSvg.d.ts +1 -1
  200. package/dist/components/Icon/svgs/FilePlusSvg.d.ts +1 -1
  201. package/dist/components/Icon/svgs/FileSvg.d.ts +1 -1
  202. package/dist/components/Icon/svgs/FileTextSvg.d.ts +1 -1
  203. package/dist/components/Icon/svgs/FilmSvg.d.ts +1 -1
  204. package/dist/components/Icon/svgs/FilterSvg.d.ts +1 -1
  205. package/dist/components/Icon/svgs/FlagSvg.d.ts +1 -1
  206. package/dist/components/Icon/svgs/FolderMinusSvg.d.ts +1 -1
  207. package/dist/components/Icon/svgs/FolderPlusSvg.d.ts +1 -1
  208. package/dist/components/Icon/svgs/FolderSvg.d.ts +1 -1
  209. package/dist/components/Icon/svgs/FramerSvg.d.ts +1 -1
  210. package/dist/components/Icon/svgs/FrownSvg.d.ts +1 -1
  211. package/dist/components/Icon/svgs/GiftSvg.d.ts +1 -1
  212. package/dist/components/Icon/svgs/GitBranchSvg.d.ts +1 -1
  213. package/dist/components/Icon/svgs/GitCommitSvg.d.ts +1 -1
  214. package/dist/components/Icon/svgs/GitMergeSvg.d.ts +1 -1
  215. package/dist/components/Icon/svgs/GitPullRequestSvg.d.ts +1 -1
  216. package/dist/components/Icon/svgs/GithubSvg.d.ts +1 -1
  217. package/dist/components/Icon/svgs/GitlabSvg.d.ts +1 -1
  218. package/dist/components/Icon/svgs/GlobeSvg.d.ts +1 -1
  219. package/dist/components/Icon/svgs/GridSvg.d.ts +1 -1
  220. package/dist/components/Icon/svgs/HardDriveSvg.d.ts +1 -1
  221. package/dist/components/Icon/svgs/HashSvg.d.ts +1 -1
  222. package/dist/components/Icon/svgs/HeadphonesSvg.d.ts +1 -1
  223. package/dist/components/Icon/svgs/HeartSvg.d.ts +1 -1
  224. package/dist/components/Icon/svgs/HelpCircleSvg.d.ts +1 -1
  225. package/dist/components/Icon/svgs/HexagonSvg.d.ts +1 -1
  226. package/dist/components/Icon/svgs/HomeSvg.d.ts +1 -1
  227. package/dist/components/Icon/svgs/ImageSvg.d.ts +1 -1
  228. package/dist/components/Icon/svgs/InboxSvg.d.ts +1 -1
  229. package/dist/components/Icon/svgs/InfoSvg.d.ts +1 -1
  230. package/dist/components/Icon/svgs/ItalicSvg.d.ts +1 -1
  231. package/dist/components/Icon/svgs/KeySvg.d.ts +1 -1
  232. package/dist/components/Icon/svgs/LayersSvg.d.ts +1 -1
  233. package/dist/components/Icon/svgs/LayoutSvg.d.ts +1 -1
  234. package/dist/components/Icon/svgs/LifeBuoySvg.d.ts +1 -1
  235. package/dist/components/Icon/svgs/Link2Svg.d.ts +1 -1
  236. package/dist/components/Icon/svgs/LinkSvg.d.ts +1 -1
  237. package/dist/components/Icon/svgs/LinkedinSvg.d.ts +1 -1
  238. package/dist/components/Icon/svgs/ListSvg.d.ts +1 -1
  239. package/dist/components/Icon/svgs/LoaderSvg.d.ts +1 -1
  240. package/dist/components/Icon/svgs/LockSvg.d.ts +1 -1
  241. package/dist/components/Icon/svgs/LogInSvg.d.ts +1 -1
  242. package/dist/components/Icon/svgs/LogOutSvg.d.ts +1 -1
  243. package/dist/components/Icon/svgs/MailSvg.d.ts +1 -1
  244. package/dist/components/Icon/svgs/MapPinSvg.d.ts +1 -1
  245. package/dist/components/Icon/svgs/MapSvg.d.ts +1 -1
  246. package/dist/components/Icon/svgs/Maximize2Svg.d.ts +1 -1
  247. package/dist/components/Icon/svgs/MaximizeSvg.d.ts +1 -1
  248. package/dist/components/Icon/svgs/MehSvg.d.ts +1 -1
  249. package/dist/components/Icon/svgs/MenuSvg.d.ts +1 -1
  250. package/dist/components/Icon/svgs/MessageCircleSvg.d.ts +1 -1
  251. package/dist/components/Icon/svgs/MessageSquareSvg.d.ts +1 -1
  252. package/dist/components/Icon/svgs/MicOffSvg.d.ts +1 -1
  253. package/dist/components/Icon/svgs/MicSvg.d.ts +1 -1
  254. package/dist/components/Icon/svgs/Minimize2Svg.d.ts +1 -1
  255. package/dist/components/Icon/svgs/MinimizeSvg.d.ts +1 -1
  256. package/dist/components/Icon/svgs/MinusCircleSvg.d.ts +1 -1
  257. package/dist/components/Icon/svgs/MinusSquareSvg.d.ts +1 -1
  258. package/dist/components/Icon/svgs/MinusSvg.d.ts +1 -1
  259. package/dist/components/Icon/svgs/MonitorSvg.d.ts +1 -1
  260. package/dist/components/Icon/svgs/MoonSvg.d.ts +1 -1
  261. package/dist/components/Icon/svgs/MoreHorizontalSvg.d.ts +1 -1
  262. package/dist/components/Icon/svgs/MoreVerticalSvg.d.ts +1 -1
  263. package/dist/components/Icon/svgs/MousePointerSvg.d.ts +1 -1
  264. package/dist/components/Icon/svgs/MoveSvg.d.ts +1 -1
  265. package/dist/components/Icon/svgs/MusicSvg.d.ts +1 -1
  266. package/dist/components/Icon/svgs/Navigation2Svg.d.ts +1 -1
  267. package/dist/components/Icon/svgs/NavigationSvg.d.ts +1 -1
  268. package/dist/components/Icon/svgs/OctagonSvg.d.ts +1 -1
  269. package/dist/components/Icon/svgs/PackageSvg.d.ts +1 -1
  270. package/dist/components/Icon/svgs/PaperclipSvg.d.ts +1 -1
  271. package/dist/components/Icon/svgs/PauseCircleSvg.d.ts +1 -1
  272. package/dist/components/Icon/svgs/PauseSvg.d.ts +1 -1
  273. package/dist/components/Icon/svgs/PenToolSvg.d.ts +1 -1
  274. package/dist/components/Icon/svgs/PercentSvg.d.ts +1 -1
  275. package/dist/components/Icon/svgs/PhoneCallSvg.d.ts +1 -1
  276. package/dist/components/Icon/svgs/PhoneForwardedSvg.d.ts +1 -1
  277. package/dist/components/Icon/svgs/PhoneIncomingSvg.d.ts +1 -1
  278. package/dist/components/Icon/svgs/PhoneMissedSvg.d.ts +1 -1
  279. package/dist/components/Icon/svgs/PhoneOffSvg.d.ts +1 -1
  280. package/dist/components/Icon/svgs/PhoneOutgoingSvg.d.ts +1 -1
  281. package/dist/components/Icon/svgs/PhoneSvg.d.ts +1 -1
  282. package/dist/components/Icon/svgs/PieChartSvg.d.ts +1 -1
  283. package/dist/components/Icon/svgs/PlayCircleSvg.d.ts +1 -1
  284. package/dist/components/Icon/svgs/PlaySvg.d.ts +1 -1
  285. package/dist/components/Icon/svgs/PlusCircleSvg.d.ts +1 -1
  286. package/dist/components/Icon/svgs/PlusSquareSvg.d.ts +1 -1
  287. package/dist/components/Icon/svgs/PlusSvg.d.ts +1 -1
  288. package/dist/components/Icon/svgs/PocketSvg.d.ts +1 -1
  289. package/dist/components/Icon/svgs/PowerSvg.d.ts +1 -1
  290. package/dist/components/Icon/svgs/PrinterSvg.d.ts +1 -1
  291. package/dist/components/Icon/svgs/RadioSvg.d.ts +1 -1
  292. package/dist/components/Icon/svgs/RefreshCcwSvg.d.ts +1 -1
  293. package/dist/components/Icon/svgs/RefreshCwSvg.d.ts +1 -1
  294. package/dist/components/Icon/svgs/RepeatSvg.d.ts +1 -1
  295. package/dist/components/Icon/svgs/RewindSvg.d.ts +1 -1
  296. package/dist/components/Icon/svgs/RotateCcwSvg.d.ts +1 -1
  297. package/dist/components/Icon/svgs/RotateCwSvg.d.ts +1 -1
  298. package/dist/components/Icon/svgs/RssSvg.d.ts +1 -1
  299. package/dist/components/Icon/svgs/SaveSvg.d.ts +1 -1
  300. package/dist/components/Icon/svgs/ScissorsSvg.d.ts +1 -1
  301. package/dist/components/Icon/svgs/SearchSvg.d.ts +1 -1
  302. package/dist/components/Icon/svgs/SendSvg.d.ts +1 -1
  303. package/dist/components/Icon/svgs/ServerSvg.d.ts +1 -1
  304. package/dist/components/Icon/svgs/SettingsSvg.d.ts +1 -1
  305. package/dist/components/Icon/svgs/Share2Svg.d.ts +1 -1
  306. package/dist/components/Icon/svgs/ShareSvg.d.ts +1 -1
  307. package/dist/components/Icon/svgs/ShieldOffSvg.d.ts +1 -1
  308. package/dist/components/Icon/svgs/ShieldSvg.d.ts +1 -1
  309. package/dist/components/Icon/svgs/ShoppingBagSvg.d.ts +1 -1
  310. package/dist/components/Icon/svgs/ShoppingCartSvg.d.ts +1 -1
  311. package/dist/components/Icon/svgs/ShuffleSvg.d.ts +1 -1
  312. package/dist/components/Icon/svgs/SidebarSvg.d.ts +1 -1
  313. package/dist/components/Icon/svgs/SkipBackSvg.d.ts +1 -1
  314. package/dist/components/Icon/svgs/SkipForwardSvg.d.ts +1 -1
  315. package/dist/components/Icon/svgs/SlackSvg.d.ts +1 -1
  316. package/dist/components/Icon/svgs/SlashSvg.d.ts +1 -1
  317. package/dist/components/Icon/svgs/SlidersSvg.d.ts +1 -1
  318. package/dist/components/Icon/svgs/SmartphoneSvg.d.ts +1 -1
  319. package/dist/components/Icon/svgs/SmileSvg.d.ts +1 -1
  320. package/dist/components/Icon/svgs/SpeakerSvg.d.ts +1 -1
  321. package/dist/components/Icon/svgs/SquareSvg.d.ts +1 -1
  322. package/dist/components/Icon/svgs/StarSvg.d.ts +1 -1
  323. package/dist/components/Icon/svgs/StopCircleSvg.d.ts +1 -1
  324. package/dist/components/Icon/svgs/SunSvg.d.ts +1 -1
  325. package/dist/components/Icon/svgs/SunriseSvg.d.ts +1 -1
  326. package/dist/components/Icon/svgs/SunsetSvg.d.ts +1 -1
  327. package/dist/components/Icon/svgs/TableSvg.d.ts +1 -1
  328. package/dist/components/Icon/svgs/TabletSvg.d.ts +1 -1
  329. package/dist/components/Icon/svgs/TagSvg.d.ts +1 -1
  330. package/dist/components/Icon/svgs/TargetSvg.d.ts +1 -1
  331. package/dist/components/Icon/svgs/TerminalSvg.d.ts +1 -1
  332. package/dist/components/Icon/svgs/ThermometerSvg.d.ts +1 -1
  333. package/dist/components/Icon/svgs/ThumbsDownSvg.d.ts +1 -1
  334. package/dist/components/Icon/svgs/ThumbsUpSvg.d.ts +1 -1
  335. package/dist/components/Icon/svgs/ToggleLeftSvg.d.ts +1 -1
  336. package/dist/components/Icon/svgs/ToggleRightSvg.d.ts +1 -1
  337. package/dist/components/Icon/svgs/ToolSvg.d.ts +1 -1
  338. package/dist/components/Icon/svgs/Trash2Svg.d.ts +1 -1
  339. package/dist/components/Icon/svgs/TrashSvg.d.ts +1 -1
  340. package/dist/components/Icon/svgs/TrelloSvg.d.ts +1 -1
  341. package/dist/components/Icon/svgs/TrendingDownSvg.d.ts +1 -1
  342. package/dist/components/Icon/svgs/TrendingUpSvg.d.ts +1 -1
  343. package/dist/components/Icon/svgs/TriangleSvg.d.ts +1 -1
  344. package/dist/components/Icon/svgs/TruckSvg.d.ts +1 -1
  345. package/dist/components/Icon/svgs/TvSvg.d.ts +1 -1
  346. package/dist/components/Icon/svgs/TwitchSvg.d.ts +1 -1
  347. package/dist/components/Icon/svgs/TwitterSvg.d.ts +1 -1
  348. package/dist/components/Icon/svgs/TypeSvg.d.ts +1 -1
  349. package/dist/components/Icon/svgs/UmbrellaSvg.d.ts +1 -1
  350. package/dist/components/Icon/svgs/UnderlineSvg.d.ts +1 -1
  351. package/dist/components/Icon/svgs/UnlockSvg.d.ts +1 -1
  352. package/dist/components/Icon/svgs/UploadCloudSvg.d.ts +1 -1
  353. package/dist/components/Icon/svgs/UploadSvg.d.ts +1 -1
  354. package/dist/components/Icon/svgs/UserCheckSvg.d.ts +1 -1
  355. package/dist/components/Icon/svgs/UserMinusSvg.d.ts +1 -1
  356. package/dist/components/Icon/svgs/UserPlusSvg.d.ts +1 -1
  357. package/dist/components/Icon/svgs/UserSvg.d.ts +1 -1
  358. package/dist/components/Icon/svgs/UserXSvg.d.ts +1 -1
  359. package/dist/components/Icon/svgs/UsersSvg.d.ts +1 -1
  360. package/dist/components/Icon/svgs/VideoOffSvg.d.ts +1 -1
  361. package/dist/components/Icon/svgs/VideoSvg.d.ts +1 -1
  362. package/dist/components/Icon/svgs/VoicemailSvg.d.ts +1 -1
  363. package/dist/components/Icon/svgs/Volume1Svg.d.ts +1 -1
  364. package/dist/components/Icon/svgs/Volume2Svg.d.ts +1 -1
  365. package/dist/components/Icon/svgs/VolumeSvg.d.ts +1 -1
  366. package/dist/components/Icon/svgs/VolumeXSvg.d.ts +1 -1
  367. package/dist/components/Icon/svgs/WatchSvg.d.ts +1 -1
  368. package/dist/components/Icon/svgs/WifiOffSvg.d.ts +1 -1
  369. package/dist/components/Icon/svgs/WifiSvg.d.ts +1 -1
  370. package/dist/components/Icon/svgs/WindSvg.d.ts +1 -1
  371. package/dist/components/Icon/svgs/XCircleSvg.d.ts +1 -1
  372. package/dist/components/Icon/svgs/XOctagonSvg.d.ts +1 -1
  373. package/dist/components/Icon/svgs/XSquareSvg.d.ts +1 -1
  374. package/dist/components/Icon/svgs/XSvg.d.ts +1 -1
  375. package/dist/components/Icon/svgs/ZapOffSvg.d.ts +1 -1
  376. package/dist/components/Icon/svgs/ZapSvg.d.ts +1 -1
  377. package/dist/components/Icon/svgs/ZoomInSvg.d.ts +1 -1
  378. package/dist/components/Icon/svgs/ZoomOutSvg.d.ts +1 -1
  379. package/dist/components/Icon/svgs/internal/EmptySvg.d.ts +1 -1
  380. package/dist/components/Icon/svgs/social/FacebookSvg.d.ts +1 -1
  381. package/dist/components/Icon/svgs/social/FlickrSvg.d.ts +1 -1
  382. package/dist/components/Icon/svgs/social/InstagramSvg.d.ts +1 -1
  383. package/dist/components/Icon/svgs/social/SoundcloudSvg.d.ts +1 -1
  384. package/dist/components/Icon/svgs/social/TiktokSvg.d.ts +1 -1
  385. package/dist/components/Icon/svgs/social/XSvg.d.ts +1 -1
  386. package/dist/components/Icon/svgs/social/YoutubeSvg.d.ts +1 -1
  387. package/dist/components/Layout/Layout.d.ts +1 -1
  388. package/dist/components/Layout/Layout.stories.d.ts +1 -1
  389. package/dist/components/Main/Main.d.ts +1 -1
  390. package/dist/components/Main/Main.stories.d.ts +1 -1
  391. package/dist/components/Menu/Menu.context.d.ts +1 -1
  392. package/dist/components/Menu/Menu.d.ts +1 -1
  393. package/dist/components/Menu/MenuTrigger.d.ts +1 -1
  394. package/dist/components/MenuNew/ActionMenuButton.d.ts +1 -1
  395. package/dist/components/MenuNew/MenuAccordion/MenuAccordionChevron.d.ts +1 -1
  396. package/dist/components/MenuNew/MenuAccordion/MenuAccordionItem.d.ts +1 -1
  397. package/dist/components/MenuNew/MenuBaseItem.d.ts +1 -1
  398. package/dist/components/MenuNew/MenuDivider.d.ts +1 -1
  399. package/dist/components/MenuNew/MenuHead.d.ts +1 -1
  400. package/dist/components/MenuNew/MenuHeading.d.ts +1 -1
  401. package/dist/components/MenuNew/MenuItemText.d.ts +1 -1
  402. package/dist/components/MenuNew/MenuSection.d.ts +1 -1
  403. package/dist/components/MenuNew/PrimaryMenuItem.d.ts +1 -1
  404. package/dist/components/MenuNew/SecondaryMenuItem.d.ts +1 -1
  405. package/dist/components/NativeDatepicker/NativeDatepicker.d.ts +1 -1
  406. package/dist/components/NativeDatepicker/NativeDatepicker.stories.d.ts +1 -1
  407. package/dist/components/Overlay/Overlay.stories.d.ts +1 -1
  408. package/dist/components/Pagination/Pagination.d.ts +18 -4
  409. package/dist/components/Pagination/Pagination.stories.d.ts +1 -1
  410. package/dist/components/Pagination/PaginationControls.d.ts +1 -1
  411. package/dist/components/Pagination/PaginationInfo.d.ts +1 -1
  412. package/dist/components/Pagination/index.d.ts +2 -2
  413. package/dist/components/Paragraph/Paragraph.d.ts +2 -2
  414. package/dist/components/Paragraph/Paragraph.stories.d.ts +1 -1
  415. package/dist/components/Search/Search.d.ts +2 -1
  416. package/dist/components/Search/Search.stories.d.ts +1 -1
  417. package/dist/components/Select/subcomponents/CustomOption.d.ts +1 -1
  418. package/dist/components/Select/subcomponents/CustomSelect.d.ts +1 -1
  419. package/dist/components/Select/subcomponents/FilterInput.d.ts +1 -1
  420. package/dist/components/Select/subcomponents/NativeSelect.d.ts +1 -1
  421. package/dist/components/Select/subcomponents/Panel.d.ts +1 -1
  422. package/dist/components/Select/subcomponents/VisibleField.d.ts +1 -1
  423. package/dist/components/Spinner/Spinner.d.ts +1 -1
  424. package/dist/components/Spinner/Spinner.stories.d.ts +1 -1
  425. package/dist/components/Table/Table.d.ts +6 -6
  426. package/dist/components/Table/Table.stories.d.ts +6 -6
  427. package/dist/components/Table/subcomponents/Body.d.ts +1 -1
  428. package/dist/components/Table/subcomponents/Cell/Cell.d.ts +1 -1
  429. package/dist/components/Table/subcomponents/Cell/Cell.stories.d.ts +2 -2
  430. package/dist/components/Table/subcomponents/Cell/CellContent.d.ts +1 -1
  431. package/dist/components/Table/subcomponents/Head.d.ts +1 -1
  432. package/dist/components/Table/subcomponents/HeadCell/HeadCell.d.ts +1 -1
  433. package/dist/components/Table/subcomponents/HeadCell/HeadCell.stories.d.ts +2 -2
  434. package/dist/components/Table/subcomponents/HeadCell/HeadCellContent.d.ts +1 -1
  435. package/dist/components/Table/subcomponents/Row.d.ts +1 -1
  436. package/dist/components/Table/subcomponents/SortIcon.d.ts +1 -1
  437. package/dist/components/Tabs/Tab.d.ts +1 -1
  438. package/dist/components/Text/Text.d.ts +1 -1
  439. package/dist/components/Timepicker/Timepicker.d.ts +1 -1
  440. package/dist/components/Toggle/ToggleHandle.d.ts +1 -1
  441. package/dist/components/UclLogo/UclLogo.d.ts +1 -1
  442. package/dist/components/UclLogo/UclLogoNegativeSpace.d.ts +1 -1
  443. package/dist/components/UclLogoNew/UclLogo.d.ts +1 -1
  444. package/dist/components/WeekPicker/WeekPicker.d.ts +1 -1
  445. package/dist/components/WeekPicker/WeekPicker.stories.d.ts +1 -1
  446. package/dist/components/WeekPicker/subcomponents/CustomDatepicker.d.ts +1 -1
  447. package/dist/components/WeekPicker/subcomponents/DatepickerInput.d.ts +1 -1
  448. package/dist/components/WeekPicker/subcomponents/VisibleField.d.ts +1 -1
  449. package/dist/components/index.d.ts +2 -0
  450. package/dist/index.js +5525 -5290
  451. package/dist/theme/__tests__/useTheme.test.d.ts +1 -0
  452. package/dist/theme/index.d.ts +2 -1
  453. package/dist/theme/useTheme.d.ts +15 -0
  454. package/lib/components/DrawerMenu/DrawerMenu.tsx +129 -0
  455. package/lib/components/DrawerMenu/DrawerMenuTrigger.tsx +9 -0
  456. package/lib/components/DrawerMenu/__tests__/DrawerMenu.test.tsx +126 -0
  457. package/lib/components/DrawerMenu/index.ts +2 -0
  458. package/lib/components/Dropdown/DropdownContent.tsx +166 -14
  459. package/lib/components/Dropdown/__tests__/Dropdown.test.tsx +20 -0
  460. package/lib/components/DropdownMenu/DropdownMenu.tsx +3 -0
  461. package/lib/components/DropdownMenu/__tests__/DropdownMenu.test.tsx +21 -0
  462. package/lib/components/DropdownUserMenu/DropdownUserMenu.tsx +12 -1
  463. package/lib/components/DropdownUserMenu/__tests__/DropdownUserMenu.test.tsx +3 -3
  464. package/lib/components/HeaderNew/__tests__/__snapshots__/Header.test.tsx.snap +2 -2
  465. package/lib/components/HeaderNew/constants.ts +1 -1
  466. package/lib/components/Pagination/Pagination.tsx +46 -4
  467. package/lib/components/Pagination/PaginationControls.tsx +65 -14
  468. package/lib/components/Pagination/PaginationInfo.tsx +15 -6
  469. package/lib/components/Pagination/index.tsx +2 -2
  470. package/lib/components/Search/Search.tsx +19 -1
  471. package/lib/components/Search/__tests__/Search.test.tsx +53 -0
  472. package/lib/components/index.ts +3 -0
  473. package/lib/theme/__tests__/useTheme.test.tsx +92 -0
  474. package/lib/theme/index.ts +8 -1
  475. package/lib/theme/useTheme.tsx +41 -3
  476. package/package.json +4 -4
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`Header > snapshot: variant=avatar 1`] = `
4
4
  <header
5
- class="ucl-uikit-header css-13623bd"
5
+ class="ucl-uikit-header css-11a9sn4"
6
6
  data-testid="ucl-uikit-header"
7
7
  >
8
8
  <div
@@ -41,7 +41,7 @@ exports[`Header > snapshot: variant=avatar 1`] = `
41
41
 
42
42
  exports[`Header > snapshot: variant=breadcrumbs 1`] = `
43
43
  <header
44
- class="ucl-uikit-header css-13623bd"
44
+ class="ucl-uikit-header css-11a9sn4"
45
45
  data-testid="ucl-uikit-header"
46
46
  >
47
47
  <div
@@ -1,3 +1,3 @@
1
1
  export const HEADER_TABLET_HEIGHT_PX = 78;
2
- export const HEADER_MOBILE_HEIGHT_PX = 48;
2
+ export const HEADER_MOBILE_HEIGHT_PX = 64;
3
3
  export const DEFAULT_Z_INDEX = 3;
@@ -8,10 +8,17 @@ import { useTheme } from '../../theme';
8
8
  export const NAME = 'ucl-uikit-pagination';
9
9
 
10
10
  interface PaginationContextValue {
11
+ mode: 'offset' | 'tracked';
11
12
  offset: number;
12
13
  limit: number;
13
- total: number;
14
+ total?: number;
15
+ currentPage: number;
16
+ trackedMaxPage: number;
17
+ hasPreviousPage: boolean;
18
+ hasNextPage: boolean;
14
19
  onPageChange?: (page: number) => void;
20
+ onNextPage?: () => void;
21
+ onPreviousPage?: () => void;
15
22
  }
16
23
 
17
24
  export const PaginationContext = createContext<
@@ -19,10 +26,17 @@ export const PaginationContext = createContext<
19
26
  >(undefined);
20
27
 
21
28
  export interface PaginationBaseProps extends HTMLAttributes<HTMLDivElement> {
22
- offset: number;
29
+ mode?: 'offset' | 'tracked';
30
+ offset?: number;
23
31
  limit: number;
24
- total: number;
32
+ total?: number;
25
33
  onPageChange?: (newOffset: number) => void;
34
+ currentPage?: number;
35
+ trackedMaxPage?: number;
36
+ hasNextPage?: boolean;
37
+ hasPreviousPage?: boolean;
38
+ onNextPage?: () => void;
39
+ onPreviousPage?: () => void;
26
40
  testId?: string;
27
41
  }
28
42
 
@@ -33,6 +47,13 @@ const Pagination = ({
33
47
  limit,
34
48
  total,
35
49
  onPageChange,
50
+ mode = 'offset',
51
+ currentPage,
52
+ trackedMaxPage,
53
+ hasNextPage,
54
+ hasPreviousPage,
55
+ onNextPage,
56
+ onPreviousPage,
36
57
  testId,
37
58
  className,
38
59
  children,
@@ -40,11 +61,32 @@ const Pagination = ({
40
61
  }: PaginationProps) => {
41
62
  const [theme] = useTheme();
42
63
 
64
+ const isTrackedMode = mode === 'tracked';
65
+ const resolvedCurrentPage = isTrackedMode
66
+ ? Math.max(1, currentPage ?? 1)
67
+ : Math.floor((offset ?? 0) / limit) + 1;
68
+ const resolvedOffset = isTrackedMode
69
+ ? (resolvedCurrentPage - 1) * limit
70
+ : (offset ?? 0);
71
+
43
72
  const contextValue: PaginationContextValue = {
44
- offset,
73
+ mode,
74
+ offset: resolvedOffset,
45
75
  limit,
46
76
  total,
77
+ currentPage: resolvedCurrentPage,
78
+ trackedMaxPage: isTrackedMode
79
+ ? Math.max(resolvedCurrentPage, trackedMaxPage ?? resolvedCurrentPage)
80
+ : 0,
81
+ hasPreviousPage: isTrackedMode
82
+ ? Boolean(hasPreviousPage ?? resolvedCurrentPage > 1)
83
+ : resolvedCurrentPage > 1,
84
+ hasNextPage: isTrackedMode
85
+ ? Boolean(hasNextPage)
86
+ : typeof total === 'number' && resolvedOffset + limit < total,
47
87
  onPageChange,
88
+ onNextPage,
89
+ onPreviousPage,
48
90
  };
49
91
 
50
92
  const baseStyle = css`
@@ -30,7 +30,23 @@ const PaginationControls = ({
30
30
  const handlePageChange = useCallback(
31
31
  (newPage: number) => {
32
32
  if (contextValue) {
33
- const { limit, onPageChange } = contextValue;
33
+ const { mode, limit, onPageChange, currentPage, trackedMaxPage } =
34
+ contextValue;
35
+
36
+ if (mode === 'tracked') {
37
+ if (
38
+ newPage < 1 ||
39
+ newPage > trackedMaxPage ||
40
+ newPage === currentPage
41
+ ) {
42
+ return;
43
+ }
44
+ if (onPageChange) {
45
+ onPageChange(newPage);
46
+ }
47
+ return;
48
+ }
49
+
34
50
  const newOffset = (newPage - 1) * limit;
35
51
  if (onPageChange) {
36
52
  onPageChange(newOffset);
@@ -44,16 +60,29 @@ const PaginationControls = ({
44
60
  return null;
45
61
  }
46
62
 
47
- const { offset, limit, total } = contextValue;
63
+ const {
64
+ mode,
65
+ limit,
66
+ total,
67
+ currentPage,
68
+ trackedMaxPage,
69
+ hasPreviousPage,
70
+ hasNextPage,
71
+ onNextPage,
72
+ onPreviousPage,
73
+ } = contextValue;
48
74
 
49
- const totalPages = Math.ceil(total / limit);
50
- const currentPage = Math.floor(offset / limit) + 1;
75
+ const totalPages =
76
+ typeof total === 'number' ? Math.ceil(total / limit) : undefined;
51
77
 
52
- const paginationButtons = getPaginationButtons(
53
- currentPage,
54
- totalPages,
55
- isTabletPlus ? maxNumberButtons : 5
56
- );
78
+ const paginationButtons =
79
+ mode === 'tracked'
80
+ ? Array.from({ length: trackedMaxPage }, (_, i) => i + 1)
81
+ : getPaginationButtons(
82
+ currentPage,
83
+ totalPages ?? 0,
84
+ isTabletPlus ? maxNumberButtons : 5
85
+ );
57
86
 
58
87
  const baseStyle = css``;
59
88
 
@@ -141,7 +170,11 @@ const PaginationControls = ({
141
170
  return (
142
171
  <nav
143
172
  className={style}
144
- aria-label={`Pagination, ${totalPages} pages total`}
173
+ aria-label={
174
+ typeof totalPages === 'number'
175
+ ? `Pagination, ${totalPages} pages total`
176
+ : 'Pagination'
177
+ }
145
178
  data-testid={testId}
146
179
  >
147
180
  <ul className={listStyle}>
@@ -151,8 +184,18 @@ const PaginationControls = ({
151
184
  variant='tertiary'
152
185
  size={isTabletPlus ? 'default' : 'small'}
153
186
  aria-label='Go to previous page'
154
- onClick={() => handlePageChange(currentPage - 1)}
155
- disabled={currentPage === 1}
187
+ onClick={() => {
188
+ if (mode === 'tracked') {
189
+ if (onPreviousPage) {
190
+ onPreviousPage();
191
+ } else {
192
+ handlePageChange(currentPage - 1);
193
+ }
194
+ return;
195
+ }
196
+ handlePageChange(currentPage - 1);
197
+ }}
198
+ disabled={!hasPreviousPage}
156
199
  >
157
200
  Previous
158
201
  </Button>
@@ -198,8 +241,16 @@ const PaginationControls = ({
198
241
  className={nextButtonStyle}
199
242
  variant='tertiary'
200
243
  aria-label='Go to next page'
201
- onClick={() => handlePageChange(currentPage + 1)}
202
- disabled={currentPage === totalPages}
244
+ onClick={() => {
245
+ if (mode === 'tracked') {
246
+ if (onNextPage) {
247
+ onNextPage();
248
+ }
249
+ return;
250
+ }
251
+ handlePageChange(currentPage + 1);
252
+ }}
253
+ disabled={!hasNextPage}
203
254
  >
204
255
  Next
205
256
  </Button>
@@ -26,16 +26,25 @@ const PaginationInfo = ({
26
26
  return null;
27
27
  }
28
28
 
29
- const { offset, limit, total } = contextValue;
29
+ const { offset, limit, total, currentPage } = contextValue;
30
30
 
31
- const totalPages = Math.ceil(total / limit);
32
- const currentPage = Math.floor(offset / limit) + 1;
31
+ const totalPages =
32
+ typeof total === 'number' ? Math.ceil(total / limit) : undefined;
33
33
  const startItem = offset + 1;
34
- const endItem = Math.min(offset + limit, total);
34
+ const endItem =
35
+ typeof total === 'number'
36
+ ? Math.min(offset + limit, total)
37
+ : offset + limit;
35
38
 
36
39
  const text = {
37
- pages: `Page ${currentPage} of ${totalPages}`,
38
- items: `${startItem}-${endItem} of ${total}${itemsPluralName ? ` ${itemsPluralName}` : ''}`,
40
+ pages:
41
+ typeof totalPages === 'number'
42
+ ? `Page ${currentPage} of ${totalPages}`
43
+ : `Page ${currentPage}`,
44
+ items:
45
+ typeof total === 'number'
46
+ ? `${startItem}-${endItem} of ${total}${itemsPluralName ? ` ${itemsPluralName}` : ''}`
47
+ : `${startItem}-${endItem}${itemsPluralName ? ` ${itemsPluralName}` : ''}`,
39
48
  }[format];
40
49
 
41
50
  const baseStyle = css`
@@ -1,6 +1,6 @@
1
1
  export { default } from './Pagination';
2
2
  export type { PaginationProps } from './Pagination';
3
- export { default as DialogHeader } from './PaginationControls';
3
+ export { default as PaginationControls } from './PaginationControls';
4
4
  export type { PaginationControlsProps } from './PaginationControls';
5
- export { default as DialogFooter } from './PaginationInfo';
5
+ export { default as PaginationInfo } from './PaginationInfo';
6
6
  export type { PaginationInfoProps } from './PaginationInfo';
@@ -6,6 +6,7 @@ import marginsStyle, { MarginProps } from '../common/marginsStyle';
6
6
 
7
7
  export interface SearchBaseProps extends HTMLAttributes<HTMLDivElement> {
8
8
  onSearch?: (searchTerms: string) => void;
9
+ onClear?: () => void;
9
10
  placeholder?: string;
10
11
  disabled?: boolean;
11
12
  inputProps?: InputProps;
@@ -22,6 +23,7 @@ const Search = ({
22
23
  placeholder = '',
23
24
  testId = NAME,
24
25
  onSearch,
26
+ onClear,
25
27
  disabled = false,
26
28
  m,
27
29
  mv,
@@ -48,14 +50,29 @@ const Search = ({
48
50
  const handleClearButtonClick = () => {
49
51
  setSearchTerms('');
50
52
  inputRef.current?.focus();
53
+ if (onClear) {
54
+ onClear();
55
+ }
51
56
  };
52
57
 
53
- const handleSearchButtonClick = () => {
58
+ const triggerSearch = () => {
54
59
  if (onSearch) {
55
60
  onSearch(searchTerms);
56
61
  }
57
62
  };
58
63
 
64
+ const handleSearchInputKeyDown = (
65
+ event: React.KeyboardEvent<HTMLInputElement>
66
+ ) => {
67
+ if (event.key === 'Enter') {
68
+ triggerSearch();
69
+ }
70
+ };
71
+
72
+ const handleSearchButtonClick = () => {
73
+ triggerSearch();
74
+ };
75
+
59
76
  const baseStyle = css`
60
77
  position: relative;
61
78
  height: 48px;
@@ -132,6 +149,7 @@ const Search = ({
132
149
  placeholder={placeholder}
133
150
  type='text'
134
151
  onChange={handleSearchTermsChange}
152
+ onKeyDown={handleSearchInputKeyDown}
135
153
  value={searchTerms}
136
154
  disabled={disabled}
137
155
  data-testid={testId}
@@ -91,6 +91,24 @@ describe('Search', () => {
91
91
 
92
92
  expect(mockOnSearch).toHaveBeenCalledWith('test search');
93
93
  });
94
+
95
+ test('calls onSearch when Enter key is pressed in input', async () => {
96
+ const user = userEvent.setup();
97
+ const mockOnSearch = vi.fn();
98
+
99
+ render(
100
+ <ThemeContextProvider>
101
+ <Search onSearch={mockOnSearch} />
102
+ </ThemeContextProvider>
103
+ );
104
+
105
+ const input = screen.getByRole('textbox');
106
+ await user.type(input, 'test search{enter}');
107
+
108
+ expect(mockOnSearch).toHaveBeenCalledWith('test search');
109
+ expect(mockOnSearch).toHaveBeenCalledTimes(1);
110
+ });
111
+
94
112
  test('clear button clears text and returns focus to input', async () => {
95
113
  const user = userEvent.setup();
96
114
  render(
@@ -109,4 +127,39 @@ describe('Search', () => {
109
127
  expect((input as HTMLInputElement).value).toBe('');
110
128
  expect(document.activeElement).toBe(input);
111
129
  });
130
+
131
+ test('calls onClear when clear button is clicked', async () => {
132
+ const user = userEvent.setup();
133
+ const mockOnClear = vi.fn();
134
+
135
+ render(
136
+ <ThemeContextProvider>
137
+ <Search onClear={mockOnClear} />
138
+ </ThemeContextProvider>
139
+ );
140
+
141
+ const input = screen.getByTestId('ucl-uikit-search');
142
+ const clearButton = screen.getByTestId('ucl-uikit-search-clear-search-btn');
143
+
144
+ await user.type(input, 'hello');
145
+ await user.click(clearButton);
146
+
147
+ expect(mockOnClear).toHaveBeenCalledTimes(1);
148
+ });
149
+
150
+ test('does not call onClear when search button is clicked', async () => {
151
+ const user = userEvent.setup();
152
+ const mockOnClear = vi.fn();
153
+
154
+ render(
155
+ <ThemeContextProvider>
156
+ <Search onClear={mockOnClear} />
157
+ </ThemeContextProvider>
158
+ );
159
+
160
+ const searchButton = screen.getByTestId('ucl-uikit-search-search-btn');
161
+ await user.click(searchButton);
162
+
163
+ expect(mockOnClear).not.toHaveBeenCalled();
164
+ });
112
165
  });
@@ -183,6 +183,9 @@ export type {
183
183
  export { default as DropdownMenu } from './DropdownMenu';
184
184
  export type { DropdownMenuProps } from './DropdownMenu';
185
185
 
186
+ export { default as DrawerMenu } from './DrawerMenu';
187
+ export type { DrawerMenuProps } from './DrawerMenu';
188
+
186
189
  export { default as DropdownUserMenu } from './DropdownUserMenu';
187
190
  export type { DropdownUserMenuProps } from './DropdownUserMenu';
188
191
 
@@ -0,0 +1,92 @@
1
+ import { render, screen, fireEvent } from '@testing-library/react';
2
+ import { describe, expect, test } from 'vitest';
3
+ import defaultTheme from '../original/defaultTheme';
4
+ import lightTheme from '../light/lightTheme';
5
+ import { ThemeContextProvider, ThemeConsumer, themes } from '../useTheme';
6
+ import type { ThemeType } from '../original/defaultTheme';
7
+
8
+ const ThemeProbe = () => (
9
+ <ThemeConsumer>
10
+ {({ theme, setTheme }) => (
11
+ <>
12
+ <span data-testid='bg-default'>{theme.colour.bg.default}</span>
13
+ <button
14
+ data-testid='set-default'
15
+ onClick={() => setTheme(defaultTheme)}
16
+ >
17
+ set-default
18
+ </button>
19
+ </>
20
+ )}
21
+ </ThemeConsumer>
22
+ );
23
+
24
+ describe('useTheme', () => {
25
+ test('uses default theme when no theme prop is provided', () => {
26
+ render(
27
+ <ThemeContextProvider>
28
+ <ThemeProbe />
29
+ </ThemeContextProvider>
30
+ );
31
+
32
+ expect(screen.getByTestId('bg-default').textContent).toBe(
33
+ defaultTheme.colour.bg.default
34
+ );
35
+ });
36
+
37
+ test('uses named theme when theme prop is provided', () => {
38
+ render(
39
+ <ThemeContextProvider theme='light'>
40
+ <ThemeProbe />
41
+ </ThemeContextProvider>
42
+ );
43
+
44
+ expect(screen.getByTestId('bg-default').textContent).toBe(
45
+ lightTheme.colour.bg.default
46
+ );
47
+ });
48
+
49
+ test('uses custom theme object when provided through theme prop', () => {
50
+ const customTheme: ThemeType = {
51
+ ...defaultTheme,
52
+ colour: {
53
+ ...defaultTheme.colour,
54
+ bg: {
55
+ ...defaultTheme.colour.bg,
56
+ default: '#123456',
57
+ },
58
+ },
59
+ };
60
+
61
+ render(
62
+ <ThemeContextProvider theme={customTheme}>
63
+ <ThemeProbe />
64
+ </ThemeContextProvider>
65
+ );
66
+
67
+ expect(screen.getByTestId('bg-default').textContent).toBe('#123456');
68
+ });
69
+
70
+ test('ThemeConsumer exposes setTheme and updates the current theme', () => {
71
+ render(
72
+ <ThemeContextProvider theme='light'>
73
+ <ThemeProbe />
74
+ </ThemeContextProvider>
75
+ );
76
+
77
+ expect(screen.getByTestId('bg-default').textContent).toBe(
78
+ lightTheme.colour.bg.default
79
+ );
80
+
81
+ fireEvent.click(screen.getByTestId('set-default'));
82
+
83
+ expect(screen.getByTestId('bg-default').textContent).toBe(
84
+ defaultTheme.colour.bg.default
85
+ );
86
+ });
87
+
88
+ test('exports named themes map', () => {
89
+ expect(themes.default).toBe(defaultTheme);
90
+ expect(themes.light).toBe(lightTheme);
91
+ });
92
+ });
@@ -5,6 +5,13 @@ export type {
5
5
  DisplayColoursType,
6
6
  BlackAndWhiteColoursType,
7
7
  } from './original/defaultTheme';
8
- export { default as useTheme, ThemeContextProvider } from './useTheme';
8
+ export {
9
+ default as useTheme,
10
+ ThemeContextProvider,
11
+ ThemeContextConsumer,
12
+ ThemeConsumer,
13
+ themes,
14
+ } from './useTheme';
15
+ export type { ThemeName } from './useTheme';
9
16
  export { uikitFontUrls, uikitFonts } from './fonts';
10
17
  export type { FontSource, FontStyle } from './fonts';
@@ -2,9 +2,30 @@ import { createContext, useState, useContext, ReactNode } from 'react';
2
2
  import { Global, css } from '@emotion/react';
3
3
  import { ThemeType } from './original/defaultTheme';
4
4
  import theme from './original/defaultTheme';
5
+ import lightTheme from './light/lightTheme';
5
6
  import { uikitFontUrls } from './fonts';
6
7
 
7
- const useThemeState = (initialTheme: ThemeType = theme as ThemeType) =>
8
+ export const themes = {
9
+ default: theme as ThemeType,
10
+ light: lightTheme as ThemeType,
11
+ // dark: darkTheme as ThemeType, // does not exist yet
12
+ } as const;
13
+
14
+ export type ThemeName = keyof typeof themes;
15
+
16
+ const resolveTheme = (themeNameOrValue?: ThemeType | ThemeName): ThemeType => {
17
+ if (!themeNameOrValue) {
18
+ return themes.default;
19
+ }
20
+
21
+ if (typeof themeNameOrValue === 'string') {
22
+ return themes[themeNameOrValue] ?? themes.default;
23
+ }
24
+
25
+ return themeNameOrValue;
26
+ };
27
+
28
+ const useThemeState = (initialTheme: ThemeType = themes.default) =>
8
29
  useState(initialTheme);
9
30
 
10
31
  const ThemeContext = createContext<ReturnType<typeof useThemeState> | null>(
@@ -72,9 +93,12 @@ const fontFaces = css`
72
93
 
73
94
  export const ThemeContextProvider: React.FC<{
74
95
  children: ReactNode;
96
+ theme?: ThemeType | ThemeName;
75
97
  initialTheme?: ThemeType;
76
- }> = ({ children, initialTheme }) => (
77
- <ThemeContext.Provider value={useThemeState(initialTheme)}>
98
+ }> = ({ children, theme, initialTheme }) => (
99
+ <ThemeContext.Provider
100
+ value={useThemeState(initialTheme ?? resolveTheme(theme))}
101
+ >
78
102
  <Global styles={fontFaces} />
79
103
  {children}
80
104
  </ThemeContext.Provider>
@@ -88,4 +112,18 @@ const useTheme = () => {
88
112
  return value;
89
113
  };
90
114
 
115
+ export const ThemeContextConsumer: React.FC<{
116
+ children: (themeState: ReturnType<typeof useTheme>) => ReactNode;
117
+ }> = ({ children }) => <>{children(useTheme())}</>;
118
+
119
+ export const ThemeConsumer: React.FC<{
120
+ children: (context: {
121
+ theme: ThemeType;
122
+ setTheme: (theme: ThemeType) => void;
123
+ }) => ReactNode;
124
+ }> = ({ children }) => {
125
+ const [activeTheme, setTheme] = useTheme();
126
+ return <>{children({ theme: activeTheme, setTheme })}</>;
127
+ };
128
+
91
129
  export default useTheme;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "uikit-react-public",
3
3
  "private": false,
4
4
  "license": "UNLICENSED",
5
- "version": "0.25.5",
5
+ "version": "0.26.0",
6
6
  "type": "module",
7
7
  "main": "dist/index.js",
8
8
  "types": "dist/index.d.ts",
@@ -55,7 +55,7 @@
55
55
  "@eslint/compat": "^1.2.7",
56
56
  "@eslint/eslintrc": "^3.3.0",
57
57
  "@eslint/js": "^9.22.0",
58
- "@storybook/addon-essentials": "^8.6.4",
58
+ "@storybook/addon-essentials": "^8.6.14",
59
59
  "@storybook/addon-interactions": "^8.6.4",
60
60
  "@storybook/addon-links": "^8.6.4",
61
61
  "@storybook/addon-onboarding": "^8.6.4",
@@ -73,7 +73,7 @@
73
73
  "@typescript-eslint/parser": "^8.26.1",
74
74
  "@vitejs/plugin-basic-ssl": "^2.0.0",
75
75
  "@vitejs/plugin-react": "^4.3.4",
76
- "@vitest/coverage-v8": "3.0.9",
76
+ "@vitest/coverage-v8": "^4.1.8",
77
77
  "eslint": "^9.22.0",
78
78
  "eslint-plugin-babel": "^5.3.1",
79
79
  "eslint-plugin-ft-flow": "^3.0.11",
@@ -97,7 +97,7 @@
97
97
  "typescript-eslint": "^8.26.1",
98
98
  "vite": "^6.2.1",
99
99
  "vite-plugin-dts": "^4.5.4",
100
- "vitest": "^3.0.8",
100
+ "vitest": "^4.1.8",
101
101
  "wouter": "^3.6.0"
102
102
  }
103
103
  }