@timmbr/ui 1.4.2 → 1.6.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 (395) hide show
  1. package/README.md +12 -10
  2. package/dist/components/Accordion/Accordion.js +1 -1
  3. package/dist/components/Accordion/Accordion.styles.d.ts.map +1 -1
  4. package/dist/components/Accordion/Accordion.styles.js +3 -3
  5. package/dist/components/Alert/Alert.js +2 -2
  6. package/dist/components/Alert/Alert.styles.d.ts +2 -2
  7. package/dist/components/Alert/Alert.styles.js +4 -4
  8. package/dist/components/AlertDialog/AlertDialog.d.ts +5 -3
  9. package/dist/components/AlertDialog/AlertDialog.d.ts.map +1 -1
  10. package/dist/components/AlertDialog/AlertDialog.js +21 -8
  11. package/dist/components/AlertDialog/AlertDialog.styles.d.ts +7 -1
  12. package/dist/components/AlertDialog/AlertDialog.styles.d.ts.map +1 -1
  13. package/dist/components/AlertDialog/AlertDialog.styles.js +29 -6
  14. package/dist/components/AlertDialog/AlertDialog.types.d.ts +19 -2
  15. package/dist/components/AlertDialog/AlertDialog.types.d.ts.map +1 -1
  16. package/dist/components/AuthModal/AuthModal.d.ts +4 -0
  17. package/dist/components/AuthModal/AuthModal.d.ts.map +1 -0
  18. package/dist/components/AuthModal/AuthModal.js +89 -0
  19. package/dist/components/AuthModal/AuthModal.labels.d.ts +6 -0
  20. package/dist/components/AuthModal/AuthModal.labels.d.ts.map +1 -0
  21. package/dist/components/AuthModal/AuthModal.labels.js +52 -0
  22. package/dist/components/AuthModal/AuthModal.styles.d.ts +12 -0
  23. package/dist/components/AuthModal/AuthModal.styles.d.ts.map +1 -0
  24. package/dist/components/AuthModal/AuthModal.styles.js +38 -0
  25. package/dist/components/AuthModal/AuthModal.types.d.ts +158 -0
  26. package/dist/components/AuthModal/AuthModal.types.d.ts.map +1 -0
  27. package/dist/components/AuthModal/index.d.ts +6 -0
  28. package/dist/components/AuthModal/index.d.ts.map +1 -0
  29. package/dist/components/AuthModal/subcomponents/AuthModalBanner.d.ts +11 -0
  30. package/dist/components/AuthModal/subcomponents/AuthModalBanner.d.ts.map +1 -0
  31. package/dist/components/AuthModal/subcomponents/AuthModalBanner.js +58 -0
  32. package/dist/components/AuthModal/subcomponents/AuthModalIdentifierForm.d.ts +11 -0
  33. package/dist/components/AuthModal/subcomponents/AuthModalIdentifierForm.d.ts.map +1 -0
  34. package/dist/components/AuthModal/subcomponents/AuthModalIdentifierForm.js +62 -0
  35. package/dist/components/AuthModal/subcomponents/AuthModalOAuth.d.ts +11 -0
  36. package/dist/components/AuthModal/subcomponents/AuthModalOAuth.d.ts.map +1 -0
  37. package/dist/components/AuthModal/subcomponents/AuthModalOAuth.js +19 -0
  38. package/dist/components/AuthModal/subcomponents/AuthModalOtpForm.d.ts +10 -0
  39. package/dist/components/AuthModal/subcomponents/AuthModalOtpForm.d.ts.map +1 -0
  40. package/dist/components/AuthModal/subcomponents/AuthModalOtpForm.js +62 -0
  41. package/dist/components/AuthModal/subcomponents/AuthModalParts.d.ts +44 -0
  42. package/dist/components/AuthModal/subcomponents/AuthModalParts.d.ts.map +1 -0
  43. package/dist/components/AuthModal/subcomponents/AuthModalParts.js +134 -0
  44. package/dist/components/AuthModal/subcomponents/AuthModalPasswordForm.d.ts +10 -0
  45. package/dist/components/AuthModal/subcomponents/AuthModalPasswordForm.d.ts.map +1 -0
  46. package/dist/components/AuthModal/subcomponents/AuthModalPasswordForm.js +54 -0
  47. package/dist/components/AuthModal/subcomponents/AuthModalSetPasswordForm.d.ts +10 -0
  48. package/dist/components/AuthModal/subcomponents/AuthModalSetPasswordForm.d.ts.map +1 -0
  49. package/dist/components/AuthModal/subcomponents/AuthModalSetPasswordForm.js +79 -0
  50. package/dist/components/AuthModal/subcomponents/AuthModalSuccess.d.ts +10 -0
  51. package/dist/components/AuthModal/subcomponents/AuthModalSuccess.d.ts.map +1 -0
  52. package/dist/components/AuthModal/subcomponents/AuthModalSuccess.js +26 -0
  53. package/dist/components/AuthModal/subcomponents/OAuthButton.d.ts +12 -0
  54. package/dist/components/AuthModal/subcomponents/OAuthButton.d.ts.map +1 -0
  55. package/dist/components/AuthModal/subcomponents/OAuthButton.js +38 -0
  56. package/dist/components/AuthModal/subcomponents/index.d.ts +9 -0
  57. package/dist/components/AuthModal/subcomponents/index.d.ts.map +1 -0
  58. package/dist/components/Avatar/Avatar.styles.d.ts +2 -2
  59. package/dist/components/Avatar/Avatar.styles.js +11 -11
  60. package/dist/components/Badge/Badge.styles.d.ts +2 -2
  61. package/dist/components/Badge/Badge.styles.d.ts.map +1 -1
  62. package/dist/components/Badge/Badge.styles.js +10 -8
  63. package/dist/components/Button/Button.d.ts.map +1 -1
  64. package/dist/components/Button/Button.js +6 -0
  65. package/dist/components/Button/Button.styles.d.ts +4 -2
  66. package/dist/components/Button/Button.styles.d.ts.map +1 -1
  67. package/dist/components/Button/Button.styles.js +29 -10
  68. package/dist/components/Card/Card.d.ts.map +1 -1
  69. package/dist/components/Card/Card.js +51 -32
  70. package/dist/components/Card/Card.styles.d.ts +32 -5
  71. package/dist/components/Card/Card.styles.d.ts.map +1 -1
  72. package/dist/components/Card/Card.styles.js +70 -11
  73. package/dist/components/Card/Card.types.d.ts +14 -3
  74. package/dist/components/Card/Card.types.d.ts.map +1 -1
  75. package/dist/components/Checkbox/Checkbox.js +4 -4
  76. package/dist/components/Checkbox/Checkbox.styles.d.ts +2 -2
  77. package/dist/components/Checkbox/Checkbox.styles.js +1 -1
  78. package/dist/components/Chip/Chip.js +1 -1
  79. package/dist/components/Chip/Chip.styles.d.ts +1 -1
  80. package/dist/components/Chip/Chip.styles.js +5 -5
  81. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +30 -0
  82. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +1 -0
  83. package/dist/components/ConfirmDialog/ConfirmDialog.js +57 -0
  84. package/dist/components/ConfirmDialog/index.d.ts +2 -0
  85. package/dist/components/ConfirmDialog/index.d.ts.map +1 -0
  86. package/dist/components/Container/Container.styles.d.ts +1 -1
  87. package/dist/components/DataList/DataList.d.ts +3 -1
  88. package/dist/components/DataList/DataList.d.ts.map +1 -1
  89. package/dist/components/DataList/DataList.js +53 -15
  90. package/dist/components/DataList/DataList.styles.d.ts +17 -4
  91. package/dist/components/DataList/DataList.styles.d.ts.map +1 -1
  92. package/dist/components/DataList/DataList.styles.js +56 -13
  93. package/dist/components/DataList/DataList.types.d.ts +19 -2
  94. package/dist/components/DataList/DataList.types.d.ts.map +1 -1
  95. package/dist/components/Dialog/Dialog.styles.js +6 -6
  96. package/dist/components/Divider/Divider.js +1 -1
  97. package/dist/components/Drawer/Drawer.d.ts +4 -3
  98. package/dist/components/Drawer/Drawer.d.ts.map +1 -1
  99. package/dist/components/Drawer/Drawer.js +33 -6
  100. package/dist/components/Drawer/Drawer.styles.d.ts +4 -0
  101. package/dist/components/Drawer/Drawer.styles.d.ts.map +1 -1
  102. package/dist/components/Drawer/Drawer.styles.js +9 -6
  103. package/dist/components/Drawer/Drawer.types.d.ts +1 -0
  104. package/dist/components/Drawer/Drawer.types.d.ts.map +1 -1
  105. package/dist/components/Dropdown/Dropdown.d.ts.map +1 -1
  106. package/dist/components/Dropdown/Dropdown.js +25 -12
  107. package/dist/components/Dropdown/Dropdown.styles.d.ts +5 -1
  108. package/dist/components/Dropdown/Dropdown.styles.d.ts.map +1 -1
  109. package/dist/components/Dropdown/Dropdown.styles.js +13 -3
  110. package/dist/components/Dropdown/Dropdown.types.d.ts +4 -0
  111. package/dist/components/Dropdown/Dropdown.types.d.ts.map +1 -1
  112. package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
  113. package/dist/components/EmptyState/EmptyState.js +4 -3
  114. package/dist/components/EmptyState/EmptyState.styles.d.ts +3 -2
  115. package/dist/components/EmptyState/EmptyState.styles.d.ts.map +1 -1
  116. package/dist/components/EmptyState/EmptyState.styles.js +8 -3
  117. package/dist/components/Fieldset/Fieldset.d.ts +14 -0
  118. package/dist/components/Fieldset/Fieldset.d.ts.map +1 -0
  119. package/dist/components/Fieldset/Fieldset.js +24 -0
  120. package/dist/components/Fieldset/index.d.ts +2 -0
  121. package/dist/components/Fieldset/index.d.ts.map +1 -0
  122. package/dist/components/FormActions/FormActions.d.ts +13 -0
  123. package/dist/components/FormActions/FormActions.d.ts.map +1 -0
  124. package/dist/components/FormActions/FormActions.js +24 -0
  125. package/dist/components/FormActions/index.d.ts +2 -0
  126. package/dist/components/FormActions/index.d.ts.map +1 -0
  127. package/dist/components/FormField/FormField.js +1 -1
  128. package/dist/components/Grid/Grid.d.ts +3 -1
  129. package/dist/components/Grid/Grid.d.ts.map +1 -1
  130. package/dist/components/Grid/Grid.js +31 -5
  131. package/dist/components/Grid/Grid.styles.d.ts +86 -0
  132. package/dist/components/Grid/Grid.styles.d.ts.map +1 -1
  133. package/dist/components/Grid/Grid.styles.js +85 -1
  134. package/dist/components/Grid/Grid.types.d.ts +31 -3
  135. package/dist/components/Grid/Grid.types.d.ts.map +1 -1
  136. package/dist/components/Heading/Heading.styles.d.ts +2 -2
  137. package/dist/components/Heading/Heading.styles.d.ts.map +1 -1
  138. package/dist/components/Heading/Heading.styles.js +15 -11
  139. package/dist/components/Heading/Heading.types.d.ts +1 -1
  140. package/dist/components/Heading/Heading.types.d.ts.map +1 -1
  141. package/dist/components/Icon/Icon.styles.d.ts +2 -2
  142. package/dist/components/Icon/Icon.styles.d.ts.map +1 -1
  143. package/dist/components/Icon/Icon.styles.js +12 -8
  144. package/dist/components/IconTile/IconTile.d.ts +8 -0
  145. package/dist/components/IconTile/IconTile.d.ts.map +1 -0
  146. package/dist/components/IconTile/IconTile.js +23 -0
  147. package/dist/components/IconTile/IconTile.styles.d.ts +7 -0
  148. package/dist/components/IconTile/IconTile.styles.d.ts.map +1 -0
  149. package/dist/components/IconTile/IconTile.styles.js +24 -0
  150. package/dist/components/IconTile/IconTile.types.d.ts +12 -0
  151. package/dist/components/IconTile/IconTile.types.d.ts.map +1 -0
  152. package/dist/components/IconTile/index.d.ts +4 -0
  153. package/dist/components/IconTile/index.d.ts.map +1 -0
  154. package/dist/components/ImageUpload/ImageUpload.js +6 -6
  155. package/dist/components/ImageUpload/subcomponents/ImageUploadDropzone.js +10 -10
  156. package/dist/components/ImageUpload/subcomponents/ImageUploadModal.js +8 -8
  157. package/dist/components/ImageUpload/subcomponents/ImageUploadSinglePreview.js +7 -7
  158. package/dist/components/ImageUpload/subcomponents/ImageUploadThumbnailCard.js +10 -10
  159. package/dist/components/Inline/Inline.d.ts.map +1 -1
  160. package/dist/components/Inline/Inline.js +10 -2
  161. package/dist/components/Inline/Inline.types.d.ts +6 -1
  162. package/dist/components/Inline/Inline.types.d.ts.map +1 -1
  163. package/dist/components/Input/Input.js +4 -4
  164. package/dist/components/Input/Input.styles.d.ts +1 -1
  165. package/dist/components/Input/Input.styles.js +6 -6
  166. package/dist/components/Label/Label.styles.d.ts +1 -1
  167. package/dist/components/Label/Label.styles.js +4 -4
  168. package/dist/components/LinkButton/LinkButton.d.ts.map +1 -1
  169. package/dist/components/LinkButton/LinkButton.js +2 -0
  170. package/dist/components/LinkButton/LinkButton.styles.d.ts +3 -2
  171. package/dist/components/LinkButton/LinkButton.styles.d.ts.map +1 -1
  172. package/dist/components/LinkButton/LinkButton.styles.js +12 -6
  173. package/dist/components/List/List.d.ts.map +1 -1
  174. package/dist/components/List/List.js +19 -6
  175. package/dist/components/List/List.styles.d.ts +3 -1
  176. package/dist/components/List/List.styles.d.ts.map +1 -1
  177. package/dist/components/List/List.styles.js +7 -6
  178. package/dist/components/List/List.types.d.ts +7 -0
  179. package/dist/components/List/List.types.d.ts.map +1 -1
  180. package/dist/components/MediaCard/MediaCard.d.ts +13 -0
  181. package/dist/components/MediaCard/MediaCard.d.ts.map +1 -0
  182. package/dist/components/MediaCard/MediaCard.js +123 -0
  183. package/dist/components/MediaCard/MediaCard.styles.d.ts +17 -0
  184. package/dist/components/MediaCard/MediaCard.styles.d.ts.map +1 -0
  185. package/dist/components/MediaCard/MediaCard.styles.js +57 -0
  186. package/dist/components/MediaCard/MediaCard.types.d.ts +73 -0
  187. package/dist/components/MediaCard/MediaCard.types.d.ts.map +1 -0
  188. package/dist/components/MediaCard/index.d.ts +4 -0
  189. package/dist/components/MediaCard/index.d.ts.map +1 -0
  190. package/dist/components/NavFooter/NavFooter.styles.d.ts +1 -1
  191. package/dist/components/NavFooter/NavFooter.styles.js +9 -9
  192. package/dist/components/NavFooter/subcomponents/FooterBrand.js +3 -3
  193. package/dist/components/NavFooter/subcomponents/FooterLegalBar.js +1 -1
  194. package/dist/components/NavFooter/subcomponents/FooterNavSection.js +4 -4
  195. package/dist/components/NavFooter/subcomponents/FooterNewsletter.js +7 -7
  196. package/dist/components/NavFooter/subcomponents/FooterOffice.js +5 -5
  197. package/dist/components/NavFooter/subcomponents/FooterSocial.js +3 -3
  198. package/dist/components/NavHeader/NavHeader.d.ts.map +1 -1
  199. package/dist/components/NavHeader/NavHeader.js +13 -4
  200. package/dist/components/NavHeader/NavHeader.styles.d.ts +1 -1
  201. package/dist/components/NavHeader/NavHeader.styles.js +16 -16
  202. package/dist/components/NavHeader/NavHeader.types.d.ts +41 -0
  203. package/dist/components/NavHeader/NavHeader.types.d.ts.map +1 -1
  204. package/dist/components/NavHeader/index.d.ts +1 -1
  205. package/dist/components/NavHeader/index.d.ts.map +1 -1
  206. package/dist/components/NavHeader/subcomponents/NavActionLabelSkeleton.d.ts +4 -0
  207. package/dist/components/NavHeader/subcomponents/NavActionLabelSkeleton.d.ts.map +1 -0
  208. package/dist/components/NavHeader/subcomponents/NavActionLabelSkeleton.js +16 -0
  209. package/dist/components/NavHeader/subcomponents/NavActionOverflow.d.ts.map +1 -1
  210. package/dist/components/NavHeader/subcomponents/NavActionOverflow.js +6 -5
  211. package/dist/components/NavHeader/subcomponents/NavActions.d.ts +14 -0
  212. package/dist/components/NavHeader/subcomponents/NavActions.d.ts.map +1 -1
  213. package/dist/components/NavHeader/subcomponents/NavActions.js +82 -16
  214. package/dist/components/NavHeader/subcomponents/NavBrand.d.ts.map +1 -1
  215. package/dist/components/NavHeader/subcomponents/NavBrand.js +14 -15
  216. package/dist/components/NavHeader/subcomponents/NavItems.js +3 -3
  217. package/dist/components/NavHeader/subcomponents/NavItemsOverflow.js +7 -7
  218. package/dist/components/NavHeader/subcomponents/NavMobileSearchDrawer.js +5 -5
  219. package/dist/components/NavHeader/subcomponents/NavMobileTabSlider.js +2 -2
  220. package/dist/components/NavHeader/subcomponents/NavSearch.js +5 -5
  221. package/dist/components/NavHeader/subcomponents/OfferBanner.js +1 -1
  222. package/dist/components/OtpInput/OtpInput.d.ts +4 -0
  223. package/dist/components/OtpInput/OtpInput.d.ts.map +1 -0
  224. package/dist/components/OtpInput/OtpInput.js +114 -0
  225. package/dist/components/OtpInput/OtpInput.styles.d.ts +10 -0
  226. package/dist/components/OtpInput/OtpInput.styles.d.ts.map +1 -0
  227. package/dist/components/OtpInput/OtpInput.styles.js +49 -0
  228. package/dist/components/OtpInput/OtpInput.types.d.ts +40 -0
  229. package/dist/components/OtpInput/OtpInput.types.d.ts.map +1 -0
  230. package/dist/components/OtpInput/index.d.ts +4 -0
  231. package/dist/components/OtpInput/index.d.ts.map +1 -0
  232. package/dist/components/PageHeader/PageHeader.d.ts +8 -0
  233. package/dist/components/PageHeader/PageHeader.d.ts.map +1 -0
  234. package/dist/components/PageHeader/PageHeader.js +55 -0
  235. package/dist/components/PageHeader/PageHeader.styles.d.ts +10 -0
  236. package/dist/components/PageHeader/PageHeader.styles.d.ts.map +1 -0
  237. package/dist/components/PageHeader/PageHeader.styles.js +23 -0
  238. package/dist/components/PageHeader/PageHeader.types.d.ts +24 -0
  239. package/dist/components/PageHeader/PageHeader.types.d.ts.map +1 -0
  240. package/dist/components/PageHeader/index.d.ts +4 -0
  241. package/dist/components/PageHeader/index.d.ts.map +1 -0
  242. package/dist/components/Pagination/Pagination.d.ts +9 -3
  243. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  244. package/dist/components/Pagination/Pagination.js +60 -39
  245. package/dist/components/Pagination/Pagination.styles.d.ts +1 -1
  246. package/dist/components/Pagination/Pagination.styles.js +3 -3
  247. package/dist/components/Pagination/Pagination.types.d.ts +23 -14
  248. package/dist/components/Pagination/Pagination.types.d.ts.map +1 -1
  249. package/dist/components/Popover/Popover.styles.js +1 -1
  250. package/dist/components/Price/Price.d.ts +10 -0
  251. package/dist/components/Price/Price.d.ts.map +1 -0
  252. package/dist/components/Price/Price.js +49 -0
  253. package/dist/components/Price/Price.styles.d.ts +15 -0
  254. package/dist/components/Price/Price.styles.d.ts.map +1 -0
  255. package/dist/components/Price/Price.styles.js +44 -0
  256. package/dist/components/Price/Price.types.d.ts +22 -0
  257. package/dist/components/Price/Price.types.d.ts.map +1 -0
  258. package/dist/components/Price/index.d.ts +4 -0
  259. package/dist/components/Price/index.d.ts.map +1 -0
  260. package/dist/components/Progress/Progress.js +2 -2
  261. package/dist/components/Progress/Progress.styles.d.ts +1 -1
  262. package/dist/components/Radio/Radio.js +4 -4
  263. package/dist/components/Radio/Radio.styles.d.ts +2 -2
  264. package/dist/components/Radio/Radio.styles.js +1 -1
  265. package/dist/components/RangeSlider/RangeSlider.js +3 -3
  266. package/dist/components/RangeSlider/RangeSlider.styles.js +1 -1
  267. package/dist/components/Rating/Rating.d.ts +5 -0
  268. package/dist/components/Rating/Rating.d.ts.map +1 -0
  269. package/dist/components/Rating/Rating.js +38 -0
  270. package/dist/components/Rating/Rating.styles.d.ts +6 -0
  271. package/dist/components/Rating/Rating.styles.d.ts.map +1 -0
  272. package/dist/components/Rating/Rating.styles.js +13 -0
  273. package/dist/components/Rating/Rating.types.d.ts +18 -0
  274. package/dist/components/Rating/Rating.types.d.ts.map +1 -0
  275. package/dist/components/Rating/index.d.ts +4 -0
  276. package/dist/components/Rating/index.d.ts.map +1 -0
  277. package/dist/components/ResponsiveDialog/ResponsiveDialog.d.ts +29 -0
  278. package/dist/components/ResponsiveDialog/ResponsiveDialog.d.ts.map +1 -0
  279. package/dist/components/ResponsiveDialog/ResponsiveDialog.js +74 -0
  280. package/dist/components/ResponsiveDialog/ResponsiveDialog.types.d.ts +27 -0
  281. package/dist/components/ResponsiveDialog/ResponsiveDialog.types.d.ts.map +1 -0
  282. package/dist/components/ResponsiveDialog/index.d.ts +3 -0
  283. package/dist/components/ResponsiveDialog/index.d.ts.map +1 -0
  284. package/dist/components/SectionNav/SectionNav.d.ts +12 -0
  285. package/dist/components/SectionNav/SectionNav.d.ts.map +1 -0
  286. package/dist/components/SectionNav/SectionNav.js +67 -0
  287. package/dist/components/SectionNav/SectionNav.styles.d.ts +11 -0
  288. package/dist/components/SectionNav/SectionNav.styles.d.ts.map +1 -0
  289. package/dist/components/SectionNav/SectionNav.styles.js +28 -0
  290. package/dist/components/SectionNav/SectionNav.types.d.ts +37 -0
  291. package/dist/components/SectionNav/SectionNav.types.d.ts.map +1 -0
  292. package/dist/components/SectionNav/index.d.ts +4 -0
  293. package/dist/components/SectionNav/index.d.ts.map +1 -0
  294. package/dist/components/Select/Select.js +2 -2
  295. package/dist/components/Select/Select.styles.d.ts +1 -1
  296. package/dist/components/Select/Select.styles.js +8 -8
  297. package/dist/components/SideBarNavigation/SideBarNavigation.styles.js +8 -8
  298. package/dist/components/SideBarNavigation/subcomponents/SidebarBranding.js +3 -3
  299. package/dist/components/SideBarNavigation/subcomponents/SidebarFooter.js +1 -1
  300. package/dist/components/SideBarNavigation/subcomponents/SidebarPopoverMenu.js +4 -4
  301. package/dist/components/SideBarNavigation/subcomponents/SidebarProfile.js +9 -9
  302. package/dist/components/SideBarNavigation/subcomponents/SidebarSubItem.js +2 -2
  303. package/dist/components/Skeleton/Skeleton.styles.js +1 -1
  304. package/dist/components/Spinner/Spinner.d.ts.map +1 -1
  305. package/dist/components/Spinner/Spinner.js +9 -7
  306. package/dist/components/Spinner/Spinner.styles.d.ts +8 -2
  307. package/dist/components/Spinner/Spinner.styles.d.ts.map +1 -1
  308. package/dist/components/Spinner/Spinner.styles.js +27 -24
  309. package/dist/components/Spinner/Spinner.types.d.ts +9 -0
  310. package/dist/components/Spinner/Spinner.types.d.ts.map +1 -1
  311. package/dist/components/Stack/Stack.d.ts.map +1 -1
  312. package/dist/components/Stack/Stack.js +16 -1
  313. package/dist/components/Stack/Stack.types.d.ts +14 -1
  314. package/dist/components/Stack/Stack.types.d.ts.map +1 -1
  315. package/dist/components/Stat/Stat.styles.js +4 -4
  316. package/dist/components/Stepper/Stepper.d.ts +9 -0
  317. package/dist/components/Stepper/Stepper.d.ts.map +1 -0
  318. package/dist/components/Stepper/Stepper.js +81 -0
  319. package/dist/components/Stepper/Stepper.styles.d.ts +14 -0
  320. package/dist/components/Stepper/Stepper.styles.d.ts.map +1 -0
  321. package/dist/components/Stepper/Stepper.styles.js +40 -0
  322. package/dist/components/Stepper/Stepper.types.d.ts +17 -0
  323. package/dist/components/Stepper/Stepper.types.d.ts.map +1 -0
  324. package/dist/components/Stepper/index.d.ts +4 -0
  325. package/dist/components/Stepper/index.d.ts.map +1 -0
  326. package/dist/components/Steps/Steps.d.ts +9 -0
  327. package/dist/components/Steps/Steps.d.ts.map +1 -0
  328. package/dist/components/Steps/Steps.js +81 -0
  329. package/dist/components/Steps/Steps.styles.d.ts +14 -0
  330. package/dist/components/Steps/Steps.styles.d.ts.map +1 -0
  331. package/dist/components/Steps/Steps.styles.js +40 -0
  332. package/dist/components/Steps/Steps.types.d.ts +17 -0
  333. package/dist/components/Steps/Steps.types.d.ts.map +1 -0
  334. package/dist/components/Steps/index.d.ts +4 -0
  335. package/dist/components/Steps/index.d.ts.map +1 -0
  336. package/dist/components/SubNav/SubNav.d.ts +17 -0
  337. package/dist/components/SubNav/SubNav.d.ts.map +1 -0
  338. package/dist/components/SubNav/SubNav.js +87 -0
  339. package/dist/components/SubNav/SubNav.styles.d.ts +18 -0
  340. package/dist/components/SubNav/SubNav.styles.d.ts.map +1 -0
  341. package/dist/components/SubNav/SubNav.styles.js +33 -0
  342. package/dist/components/SubNav/SubNav.types.d.ts +45 -0
  343. package/dist/components/SubNav/SubNav.types.d.ts.map +1 -0
  344. package/dist/components/SubNav/index.d.ts +4 -0
  345. package/dist/components/SubNav/index.d.ts.map +1 -0
  346. package/dist/components/Switch/Switch.js +2 -2
  347. package/dist/components/Switch/Switch.styles.d.ts +2 -2
  348. package/dist/components/Switch/Switch.styles.js +1 -1
  349. package/dist/components/Table/Table.js +1 -1
  350. package/dist/components/Table/Table.styles.d.ts +1 -1
  351. package/dist/components/Table/Table.styles.js +5 -5
  352. package/dist/components/Table/TablePagination.js +4 -4
  353. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  354. package/dist/components/Tabs/Tabs.js +75 -8
  355. package/dist/components/Tabs/Tabs.styles.d.ts +10 -2
  356. package/dist/components/Tabs/Tabs.styles.d.ts.map +1 -1
  357. package/dist/components/Tabs/Tabs.styles.js +25 -10
  358. package/dist/components/Tabs/Tabs.types.d.ts +13 -0
  359. package/dist/components/Tabs/Tabs.types.d.ts.map +1 -1
  360. package/dist/components/Text/Text.d.ts.map +1 -1
  361. package/dist/components/Text/Text.js +4 -0
  362. package/dist/components/Text/Text.styles.d.ts +4 -2
  363. package/dist/components/Text/Text.styles.d.ts.map +1 -1
  364. package/dist/components/Text/Text.styles.js +32 -16
  365. package/dist/components/Text/Text.types.d.ts +1 -1
  366. package/dist/components/Text/Text.types.d.ts.map +1 -1
  367. package/dist/components/Textarea/Textarea.js +4 -4
  368. package/dist/components/Textarea/Textarea.styles.d.ts +1 -1
  369. package/dist/components/Textarea/Textarea.styles.js +6 -6
  370. package/dist/components/Toast/Toast.js +3 -3
  371. package/dist/components/Toast/Toast.styles.js +5 -5
  372. package/dist/components/Toast/ToastContainer.js +1 -1
  373. package/dist/components/Tooltip/Tooltip.styles.js +1 -1
  374. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +8 -0
  375. package/dist/components/VisuallyHidden/VisuallyHidden.d.ts.map +1 -0
  376. package/dist/components/VisuallyHidden/VisuallyHidden.js +14 -0
  377. package/dist/components/VisuallyHidden/index.d.ts +2 -0
  378. package/dist/components/VisuallyHidden/index.d.ts.map +1 -0
  379. package/dist/index.d.ts +15 -0
  380. package/dist/index.d.ts.map +1 -1
  381. package/dist/index.js +46 -14
  382. package/dist/utils/gap.d.ts +21 -1
  383. package/dist/utils/gap.d.ts.map +1 -1
  384. package/dist/utils/gap.js +306 -46
  385. package/package.json +7 -6
  386. package/dist/components/CrossZoneLink/CrossZoneLink.d.ts +0 -10
  387. package/dist/components/CrossZoneLink/CrossZoneLink.d.ts.map +0 -1
  388. package/dist/components/CrossZoneLink/CrossZoneLink.js +0 -111
  389. package/dist/components/CrossZoneLink/CrossZoneLink.styles.d.ts +0 -8
  390. package/dist/components/CrossZoneLink/CrossZoneLink.styles.d.ts.map +0 -1
  391. package/dist/components/CrossZoneLink/CrossZoneLink.styles.js +0 -33
  392. package/dist/components/CrossZoneLink/CrossZoneLink.types.d.ts +0 -31
  393. package/dist/components/CrossZoneLink/CrossZoneLink.types.d.ts.map +0 -1
  394. package/dist/components/CrossZoneLink/index.d.ts +0 -4
  395. package/dist/components/CrossZoneLink/index.d.ts.map +0 -1
@@ -1,14 +1,15 @@
1
1
  "use client";
2
- import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
3
  import * as React from 'react';
4
+ import { Slot } from '@radix-ui/react-slot';
4
5
  import { cn } from '@timmbr/utils';
5
- import { MoreHorizontal, ChevronRight, ChevronLeft } from '@timmbr/icons';
6
+ import { MoreHorizontal, ChevronLeft, ChevronRight } from '@timmbr/icons';
6
7
  import { paginationLinkVariants } from './Pagination.styles.js';
8
+ import { Text } from '../Text/Text.js';
7
9
 
8
10
  const Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx(
9
11
  "nav",
10
12
  {
11
- role: "navigation",
12
13
  "aria-label": "pagination",
13
14
  "data-slot": "pagination",
14
15
  className: cn("mx-auto flex w-full justify-center font-sans", className),
@@ -33,52 +34,72 @@ const PaginationItem = React.forwardRef(
33
34
  );
34
35
  PaginationItem.displayName = "PaginationItem";
35
36
  const PaginationLink = React.forwardRef(
36
- ({ className, isActive, size = "default", ...props }, ref) => /* @__PURE__ */ jsx(
37
- "button",
38
- {
39
- ref,
40
- type: "button",
41
- "aria-current": isActive ? "page" : void 0,
42
- "data-slot": "pagination-link",
43
- "data-active": isActive,
44
- className: cn(paginationLinkVariants({ isActive, size }), className),
45
- ...props
46
- }
47
- )
37
+ ({ className, isActive, size = "default", asChild = false, ...props }, ref) => {
38
+ const Comp = asChild ? Slot : "button";
39
+ return /* @__PURE__ */ jsx(
40
+ Comp,
41
+ {
42
+ ref,
43
+ ...asChild ? {} : { type: "button" },
44
+ "aria-current": isActive ? "page" : void 0,
45
+ "data-slot": "pagination-link",
46
+ "data-active": isActive,
47
+ className: cn(paginationLinkVariants({ isActive, size }), className),
48
+ ...props
49
+ }
50
+ );
51
+ }
48
52
  );
49
53
  PaginationLink.displayName = "PaginationLink";
50
- const PaginationPrevious = ({
54
+ const DefaultLink = ({ href, children, ...rest }) => /* @__PURE__ */ jsx("a", { href, ...rest, children });
55
+ function StepLink({
56
+ direction,
57
+ href,
58
+ linkComponent: LinkComponent = DefaultLink,
59
+ label,
60
+ ariaLabel,
61
+ disabled,
51
62
  className,
63
+ children,
52
64
  ...props
53
- }) => /* @__PURE__ */ jsxs(
54
- PaginationLink,
55
- {
56
- "aria-label": "Go to previous page",
57
- className: cn("gap-1 pl-2.5", className),
58
- ...props,
59
- children: [
60
- /* @__PURE__ */ jsx(ChevronLeft, { className: "size-4" }),
61
- /* @__PURE__ */ jsx("span", { children: "Previous" })
62
- ]
65
+ }) {
66
+ const icon = direction === "previous" ? /* @__PURE__ */ jsx(ChevronLeft, { className: "size-4", "aria-hidden": "true" }) : /* @__PURE__ */ jsx(ChevronRight, { className: "size-4", "aria-hidden": "true" });
67
+ const content = /* @__PURE__ */ jsxs(Fragment, { children: [
68
+ direction === "previous" && icon,
69
+ /* @__PURE__ */ jsx("span", { children: children ?? label }),
70
+ direction === "next" && icon
71
+ ] });
72
+ const classes = cn("gap-1", direction === "previous" ? "pl-2.5" : "pr-2.5", className);
73
+ if (href && !disabled) {
74
+ return /* @__PURE__ */ jsx(PaginationLink, { asChild: true, "aria-label": ariaLabel, className: classes, ...props, children: /* @__PURE__ */ jsx(LinkComponent, { href, children: content }) });
63
75
  }
64
- );
76
+ return /* @__PURE__ */ jsx(PaginationLink, { "aria-label": ariaLabel, disabled, className: classes, ...props, children: content });
77
+ }
78
+ const PaginationPrevious = ({
79
+ label = "Previous",
80
+ ariaLabel = "Go to previous page",
81
+ ...props
82
+ }) => /* @__PURE__ */ jsx(StepLink, { direction: "previous", label, ariaLabel, ...props });
65
83
  PaginationPrevious.displayName = "PaginationPrevious";
66
84
  const PaginationNext = ({
67
- className,
85
+ label = "Next",
86
+ ariaLabel = "Go to next page",
68
87
  ...props
69
- }) => /* @__PURE__ */ jsxs(
70
- PaginationLink,
88
+ }) => /* @__PURE__ */ jsx(StepLink, { direction: "next", label, ariaLabel, ...props });
89
+ PaginationNext.displayName = "PaginationNext";
90
+ const PaginationSummary = ({ className, ...props }) => /* @__PURE__ */ jsx(
91
+ Text,
71
92
  {
72
- "aria-label": "Go to next page",
73
- className: cn("gap-1 pr-2.5", className),
74
- ...props,
75
- children: [
76
- /* @__PURE__ */ jsx("span", { children: "Next" }),
77
- /* @__PURE__ */ jsx(ChevronRight, { className: "size-4" })
78
- ]
93
+ as: "span",
94
+ variant: "body-2",
95
+ foreground: "muted",
96
+ "aria-live": "polite",
97
+ "data-slot": "pagination-summary",
98
+ className: cn("px-2", className),
99
+ ...props
79
100
  }
80
101
  );
81
- PaginationNext.displayName = "PaginationNext";
102
+ PaginationSummary.displayName = "PaginationSummary";
82
103
  const PaginationEllipsis = ({
83
104
  className,
84
105
  ...props
@@ -97,4 +118,4 @@ const PaginationEllipsis = ({
97
118
  );
98
119
  PaginationEllipsis.displayName = "PaginationEllipsis";
99
120
 
100
- export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };
121
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PaginationSummary };
@@ -1,5 +1,5 @@
1
1
  export declare const paginationLinkVariants: (props?: ({
2
2
  isActive?: boolean | null | undefined;
3
- size?: "default" | "sm" | "lg" | null | undefined;
3
+ size?: "sm" | "lg" | "default" | null | undefined;
4
4
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
5
  //# sourceMappingURL=Pagination.styles.d.ts.map
@@ -1,17 +1,17 @@
1
1
  import { cva } from 'class-variance-authority';
2
2
 
3
3
  const paginationLinkVariants = cva(
4
- "inline-flex items-center justify-center whitespace-nowrap rounded-[2px] font-sans text-xs font-semibold transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 cursor-pointer active:scale-95",
4
+ "inline-flex items-center justify-center whitespace-nowrap rounded-[2px] text-body-3 font-semibold transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 cursor-pointer active:scale-95",
5
5
  {
6
6
  variants: {
7
7
  isActive: {
8
- true: "bg-primary text-white shadow-xs hover:bg-primary-600",
8
+ true: "bg-primary text-grey-50 shadow-xs hover:bg-primary-600",
9
9
  false: "text-foreground hover:bg-grey-100 dark:hover:bg-grey-800 border border-grey-200 dark:border-grey-800"
10
10
  },
11
11
  size: {
12
12
  sm: "h-8 min-w-8 px-2",
13
13
  default: "h-9 min-w-9 px-3",
14
- lg: "h-11 min-w-11 px-4 text-sm"
14
+ lg: "h-11 min-w-11 px-4 text-body-2"
15
15
  }
16
16
  },
17
17
  defaultVariants: {
@@ -68,24 +68,32 @@ export interface PaginationLinkProps extends React.ButtonHTMLAttributes<HTMLButt
68
68
  */
69
69
  children?: React.ReactNode;
70
70
  }
71
- /**
72
- * Previous page action button.
73
- */
74
- export interface PaginationPreviousProps extends PaginationLinkProps {
75
- /**
76
- * Custom label or override text for Previous button.
77
- */
71
+ /** Props of the link component used by Previous / Next (e.g. next/link). */
72
+ export interface PaginationLinkComponentProps {
73
+ href: string;
78
74
  children?: React.ReactNode;
75
+ className?: string;
76
+ }
77
+ interface PaginationStepProps extends Omit<PaginationLinkProps, 'asChild'> {
78
+ /** Page URL: renders a link (URL-based paging) instead of a button. */
79
+ href?: string;
80
+ /** Link to render `href` with (e.g. next/link). Defaults to `<a>`. */
81
+ linkComponent?: React.ComponentType<PaginationLinkComponentProps>;
82
+ /** Visible text (localise it). */
83
+ label?: React.ReactNode;
84
+ /** Accessible name (localise it). */
85
+ ariaLabel?: string;
79
86
  }
80
87
  /**
81
- * Next page action button.
88
+ * Previous page action (link with `href`, otherwise a button).
82
89
  */
83
- export interface PaginationNextProps extends PaginationLinkProps {
84
- /**
85
- * Custom label or override text for Next button.
86
- */
87
- children?: React.ReactNode;
88
- }
90
+ export type PaginationPreviousProps = PaginationStepProps;
91
+ /**
92
+ * Next page action (link with `href`, otherwise a button).
93
+ */
94
+ export type PaginationNextProps = PaginationStepProps;
95
+ /** "Page x of y" text. */
96
+ export type PaginationSummaryProps = React.ComponentProps<'span'>;
89
97
  /**
90
98
  * Decorative ellipsis indicator representing omitted pages in the range.
91
99
  */
@@ -95,4 +103,5 @@ export interface PaginationEllipsisProps extends React.ComponentProps<'span'> {
95
103
  */
96
104
  className?: string;
97
105
  }
106
+ export {};
98
107
  //# sourceMappingURL=Pagination.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.types.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IAClE;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;IACxE;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;IACrE;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACrD;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;IAC3E;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"Pagination.types.d.ts","sourceRoot":"","sources":["../../../src/components/Pagination/Pagination.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IAClE;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;IACxE;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;IACrE;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACrD;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,4EAA4E;AAC5E,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,mBAAoB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC;IACxE,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;IAClE,kCAAkC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEtD,0BAA0B;AAC1B,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;IAC3E;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -1,7 +1,7 @@
1
1
  import { cva } from 'class-variance-authority';
2
2
 
3
3
  const popoverContentVariants = cva(
4
- "z-50 w-72 rounded-md border border-grey-200 dark:border-grey-700 bg-white dark:bg-grey-900 p-4 text-foreground shadow-md outline-none font-sans transition-all duration-150 data-[state=open]:animate-scale-in data-[state=closed]:animate-scale-out"
4
+ "z-50 w-72 rounded-md border border-grey-200 dark:border-grey-700 bg-grey-50 dark:bg-grey-900 p-4 text-foreground shadow-md outline-none font-sans transition-all duration-150 data-[state=open]:animate-scale-in data-[state=closed]:animate-scale-out"
5
5
  );
6
6
 
7
7
  export { popoverContentVariants };
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import type { PriceProps } from './Price.types';
3
+ /** Whole-number saving of `amount` against `compareAt`, or `null` when there is none. */
4
+ export declare function discountPercent(amount: number, compareAt?: number | null): number | null;
5
+ /**
6
+ * A price with an optional struck-through original price and the saving,
7
+ * e.g. ₹32,999 ~~₹66,999~~ 51% Off.
8
+ */
9
+ export declare const Price: React.ForwardRefExoticComponent<PriceProps & React.RefAttributes<HTMLDivElement>>;
10
+ //# sourceMappingURL=Price.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Price.d.ts","sourceRoot":"","sources":["../../../src/components/Price/Price.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAIxF;AAID;;;GAGG;AACH,eAAO,MAAM,KAAK,mFAwCjB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { formatCurrency, cn } from '@timmbr/utils';
4
+ import { priceAmountVariants, priceCompareVariants, priceDiscountVariants, priceVariants } from './Price.styles.js';
5
+
6
+ function discountPercent(amount, compareAt) {
7
+ if (compareAt == null || compareAt <= 0 || compareAt <= amount) return null;
8
+ const percent = Math.round((compareAt - amount) / compareAt * 100);
9
+ return percent > 0 ? percent : null;
10
+ }
11
+ const defaultFormatDiscount = (percent) => `${percent}% Off`;
12
+ const Price = React.forwardRef(
13
+ ({
14
+ amount,
15
+ compareAt,
16
+ currency = "INR",
17
+ locale = "en-IN",
18
+ showDiscount = true,
19
+ formatDiscount = defaultFormatDiscount,
20
+ srLabels,
21
+ size,
22
+ className,
23
+ ...props
24
+ }, ref) => {
25
+ const percent = discountPercent(amount, compareAt);
26
+ return /* @__PURE__ */ jsxs("div", { ref, "data-slot": "price", className: cn(priceVariants({ size }), className), ...props, children: [
27
+ /* @__PURE__ */ jsxs("span", { className: priceAmountVariants({ size }), "data-slot": "price-amount", children: [
28
+ srLabels?.price && /* @__PURE__ */ jsxs("span", { className: "sr-only", children: [
29
+ srLabels.price,
30
+ " "
31
+ ] }),
32
+ formatCurrency(amount, currency, locale)
33
+ ] }),
34
+ percent !== null && /* @__PURE__ */ jsxs(Fragment, { children: [
35
+ /* @__PURE__ */ jsxs("s", { className: priceCompareVariants({ size }), "data-slot": "price-compare", children: [
36
+ srLabels?.compareAt && /* @__PURE__ */ jsxs("span", { className: "sr-only", children: [
37
+ srLabels.compareAt,
38
+ " "
39
+ ] }),
40
+ formatCurrency(compareAt, currency, locale)
41
+ ] }),
42
+ showDiscount && /* @__PURE__ */ jsx("span", { className: priceDiscountVariants({ size }), "data-slot": "price-discount", children: formatDiscount(percent) })
43
+ ] })
44
+ ] });
45
+ }
46
+ );
47
+ Price.displayName = "Price";
48
+
49
+ export { Price, discountPercent };
@@ -0,0 +1,15 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ export declare const priceVariants: (props?: ({
3
+ size?: "sm" | "md" | "lg" | null | undefined;
4
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
+ export declare const priceAmountVariants: (props?: ({
6
+ size?: "sm" | "md" | "lg" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ export declare const priceCompareVariants: (props?: ({
9
+ size?: "sm" | "md" | "lg" | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ export declare const priceDiscountVariants: (props?: ({
12
+ size?: "sm" | "md" | "lg" | null | undefined;
13
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
14
+ export type PriceVariants = VariantProps<typeof priceVariants>;
15
+ //# sourceMappingURL=Price.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Price.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Price/Price.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,aAAa;;8EASxB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;8EAS9B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;8EAS/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;8EAShC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { cva } from 'class-variance-authority';
2
+
3
+ const priceVariants = cva("inline-flex flex-wrap items-baseline font-sans text-foreground", {
4
+ variants: {
5
+ size: {
6
+ sm: "gap-x-1.5",
7
+ md: "gap-x-1",
8
+ lg: "gap-x-2"
9
+ }
10
+ },
11
+ defaultVariants: { size: "md" }
12
+ });
13
+ const priceAmountVariants = cva("font-semibold", {
14
+ variants: {
15
+ size: {
16
+ sm: "text-body-1",
17
+ md: "text-subtitle-1",
18
+ lg: "text-h5 font-sans"
19
+ }
20
+ },
21
+ defaultVariants: { size: "md" }
22
+ });
23
+ const priceCompareVariants = cva("text-muted-foreground line-through", {
24
+ variants: {
25
+ size: {
26
+ sm: "text-body-3",
27
+ md: "text-body-3",
28
+ lg: "text-body-2"
29
+ }
30
+ },
31
+ defaultVariants: { size: "md" }
32
+ });
33
+ const priceDiscountVariants = cva("font-semibold text-success", {
34
+ variants: {
35
+ size: {
36
+ sm: "text-body-3",
37
+ md: "ms-1 text-body-2",
38
+ lg: "text-body-1"
39
+ }
40
+ },
41
+ defaultVariants: { size: "md" }
42
+ });
43
+
44
+ export { priceAmountVariants, priceCompareVariants, priceDiscountVariants, priceVariants };
@@ -0,0 +1,22 @@
1
+ import type * as React from 'react';
2
+ import type { PriceVariants } from './Price.styles';
3
+ export interface PriceProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>, PriceVariants {
4
+ /** Selling price. */
5
+ amount: number;
6
+ /** Original price; shown struck through when higher than `amount`. */
7
+ compareAt?: number | null;
8
+ /** ISO 4217 code (default `INR`). */
9
+ currency?: string;
10
+ /** BCP 47 locale for formatting (default `en-IN`). */
11
+ locale?: string;
12
+ /** Show the saving as a percentage, e.g. "51% Off" (default `true`). */
13
+ showDiscount?: boolean;
14
+ /** Text of the discount, from the rounded percentage (default `"51% Off"`). */
15
+ formatDiscount?: (percent: number) => string;
16
+ /** Screen-reader prefixes for the two prices. */
17
+ srLabels?: {
18
+ price?: string;
19
+ compareAt?: string;
20
+ };
21
+ }
22
+ //# sourceMappingURL=Price.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Price.types.d.ts","sourceRoot":"","sources":["../../../src/components/Price/Price.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EAAE,aAAa;IACvG,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,iDAAiD;IACjD,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD"}
@@ -0,0 +1,4 @@
1
+ export * from './Price';
2
+ export * from './Price.types';
3
+ export * from './Price.styles';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Price/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
@@ -24,9 +24,9 @@ const Progress = React.forwardRef(
24
24
  const safeValue = Math.min(Math.max(value ?? 0, 0), max);
25
25
  const percentage = Math.round(safeValue / max * 100);
26
26
  return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-1.5 w-full font-sans", className), children: [
27
- (label || showValue) && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between text-xs text-foreground font-medium select-none", children: [
27
+ (label || showValue) && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between text-body-3 text-foreground font-medium select-none", children: [
28
28
  label && /* @__PURE__ */ jsx("span", { children: label }),
29
- showValue && !indeterminate && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground font-mono ml-auto", children: [
29
+ showValue && !indeterminate && /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground tabular-nums ml-auto", children: [
30
30
  percentage,
31
31
  "%"
32
32
  ] })
@@ -1,6 +1,6 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  export declare const progressRootVariants: (props?: ({
3
- size?: "default" | "sm" | "lg" | null | undefined;
3
+ size?: "sm" | "lg" | "default" | null | undefined;
4
4
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
5
  export declare const progressIndicatorVariants: (props?: ({
6
6
  variant?: "default" | "destructive" | "success" | "warning" | "primary" | null | undefined;
@@ -50,13 +50,13 @@ const RadioItem = React.forwardRef(
50
50
  {
51
51
  htmlFor: id,
52
52
  className: cn(
53
- "text-sm font-medium text-foreground cursor-pointer leading-tight",
53
+ "text-body-2 font-medium text-foreground cursor-pointer leading-tight",
54
54
  disabled && "opacity-50 cursor-not-allowed"
55
55
  ),
56
56
  children: label
57
57
  }
58
58
  ),
59
- description && /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground mt-0.5 leading-normal", children: description })
59
+ description && /* @__PURE__ */ jsx("span", { className: "text-body-3 text-muted-foreground mt-0.5 leading-normal", children: description })
60
60
  ] })
61
61
  ] });
62
62
  }
@@ -79,7 +79,7 @@ const RadioGroup = React.forwardRef(
79
79
  const isError = Boolean(error);
80
80
  const errorMessage = typeof error === "string" ? error : void 0;
81
81
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 font-sans w-full", style, children: [
82
- label && /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold text-foreground tracking-wide select-none", children: label }),
82
+ label && /* @__PURE__ */ jsx("span", { className: "text-body-3 font-semibold text-foreground tracking-wide select-none", children: label }),
83
83
  /* @__PURE__ */ jsx(
84
84
  RadioGroupPrimitive.Root,
85
85
  {
@@ -110,7 +110,7 @@ const RadioGroup = React.forwardRef(
110
110
  "p",
111
111
  {
112
112
  className: cn(
113
- "text-xs mt-1 flex items-center gap-1.5",
113
+ "text-body-3 mt-1 flex items-center gap-1.5",
114
114
  isError ? "text-destructive font-medium" : "text-muted"
115
115
  ),
116
116
  children: [
@@ -1,9 +1,9 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  export declare const radioItemVariants: (props?: ({
3
- size?: "default" | "sm" | "lg" | "md" | null | undefined;
3
+ size?: "sm" | "md" | "lg" | "default" | null | undefined;
4
4
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
5
  export declare const radioIndicatorVariants: (props?: ({
6
- size?: "default" | "sm" | "lg" | "md" | null | undefined;
6
+ size?: "sm" | "md" | "lg" | "default" | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
8
  export type RadioItemVariants = VariantProps<typeof radioItemVariants>;
9
9
  //# sourceMappingURL=Radio.styles.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import { cva } from 'class-variance-authority';
2
2
 
3
3
  const radioItemVariants = cva(
4
- "aspect-square rounded-full border border-grey-300 dark:border-grey-700 bg-white dark:bg-grey-900 text-primary transition-all duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer flex items-center justify-center data-[state=checked]:border-primary",
4
+ "aspect-square rounded-full border border-grey-300 dark:border-grey-700 bg-grey-50 dark:bg-grey-900 text-primary transition-all duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 cursor-pointer flex items-center justify-center data-[state=checked]:border-primary",
5
5
  {
6
6
  variants: {
7
7
  size: {
@@ -57,7 +57,7 @@ const RangeSlider = React.forwardRef(
57
57
  className: cn("flex flex-col gap-2 w-full font-sans select-none", className),
58
58
  style,
59
59
  children: [
60
- (label || showReadouts) && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between text-sm", children: [
60
+ (label || showReadouts) && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between text-body-2", children: [
61
61
  label && /* @__PURE__ */ jsx("span", { className: "font-semibold text-foreground", children: label }),
62
62
  showReadouts && /* @__PURE__ */ jsxs(
63
63
  "div",
@@ -112,7 +112,7 @@ const RangeSlider = React.forwardRef(
112
112
  type: "button",
113
113
  onClick: handleReset,
114
114
  disabled,
115
- className: "text-xs font-medium text-muted hover:text-foreground transition-colors cursor-pointer disabled:opacity-50",
115
+ className: "text-body-3 font-medium text-muted hover:text-foreground transition-colors cursor-pointer disabled:opacity-50",
116
116
  children: resetLabel
117
117
  }
118
118
  ),
@@ -123,7 +123,7 @@ const RangeSlider = React.forwardRef(
123
123
  variant: "primary",
124
124
  onClick: handleApply,
125
125
  disabled,
126
- className: "h-8 px-4 text-xs font-medium",
126
+ className: "h-8 px-4 text-body-3 font-medium",
127
127
  children: applyLabel
128
128
  }
129
129
  )
@@ -10,7 +10,7 @@ const rangeSliderRangeVariants = cva(
10
10
  "absolute h-full bg-primary rounded-full"
11
11
  );
12
12
  const rangeSliderThumbVariants = cva(
13
- "block h-5 w-5 rounded-full border-2 border-primary bg-white shadow-md transition-transform hover:scale-110 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 cursor-grab active:cursor-grabbing"
13
+ "block h-5 w-5 rounded-full border-2 border-primary bg-grey-50 shadow-md transition-transform hover:scale-110 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 cursor-grab active:cursor-grabbing"
14
14
  );
15
15
 
16
16
  export { rangeSliderRangeVariants, rangeSliderRootVariants, rangeSliderThumbVariants, rangeSliderTrackVariants };
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import type { RatingProps } from './Rating.types';
3
+ /** Read-only average rating: "4.5 ★ (817)". */
4
+ export declare const Rating: React.ForwardRefExoticComponent<RatingProps & React.RefAttributes<HTMLDivElement>>;
5
+ //# sourceMappingURL=Rating.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rating.d.ts","sourceRoot":"","sources":["../../../src/components/Rating/Rating.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,+CAA+C;AAC/C,eAAO,MAAM,MAAM,oFA4BlB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { cn } from '@timmbr/utils';
4
+ import { Star } from '@timmbr/icons';
5
+ import { ratingVariants } from './Rating.styles.js';
6
+
7
+ const Rating = React.forwardRef(
8
+ ({ value, max = 5, count, locale = "en-IN", label, size, className, ...props }, ref) => {
9
+ const shown = new Intl.NumberFormat(locale, { maximumFractionDigits: 1 }).format(value);
10
+ const counted = count !== void 0 ? new Intl.NumberFormat(locale).format(count) : void 0;
11
+ const accessibleName = label ?? `Rated ${shown} out of ${max}${counted !== void 0 ? ` from ${counted} ratings` : ""}`;
12
+ return /* @__PURE__ */ jsxs(
13
+ "div",
14
+ {
15
+ ref,
16
+ role: "img",
17
+ "aria-label": accessibleName,
18
+ "data-slot": "rating",
19
+ className: cn(ratingVariants({ size }), className),
20
+ ...props,
21
+ children: [
22
+ /* @__PURE__ */ jsxs("span", { "aria-hidden": "true", className: "inline-flex items-center gap-0.5", children: [
23
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: shown }),
24
+ /* @__PURE__ */ jsx(Star, { className: "fill-warning text-warning" })
25
+ ] }),
26
+ counted !== void 0 && /* @__PURE__ */ jsxs("span", { "aria-hidden": "true", className: "text-muted-foreground", children: [
27
+ "(",
28
+ counted,
29
+ ")"
30
+ ] })
31
+ ]
32
+ }
33
+ );
34
+ }
35
+ );
36
+ Rating.displayName = "Rating";
37
+
38
+ export { Rating };
@@ -0,0 +1,6 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ export declare const ratingVariants: (props?: ({
3
+ size?: "sm" | "md" | null | undefined;
4
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
+ export type RatingVariants = VariantProps<typeof ratingVariants>;
6
+ //# sourceMappingURL=Rating.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rating.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Rating/Rating.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,eAAO,MAAM,cAAc;;8EAQzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { cva } from 'class-variance-authority';
2
+
3
+ const ratingVariants = cva("inline-flex items-center font-sans text-foreground", {
4
+ variants: {
5
+ size: {
6
+ sm: "gap-1 text-body-3 [&_svg]:size-3.5",
7
+ md: "gap-1.5 text-body-2 [&_svg]:size-4"
8
+ }
9
+ },
10
+ defaultVariants: { size: "sm" }
11
+ });
12
+
13
+ export { ratingVariants };
@@ -0,0 +1,18 @@
1
+ import type * as React from 'react';
2
+ import type { RatingVariants } from './Rating.styles';
3
+ export interface RatingProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>, RatingVariants {
4
+ /** Average rating, e.g. 4.5. */
5
+ value: number;
6
+ /** Highest possible rating (default 5). */
7
+ max?: number;
8
+ /** Number of ratings or reviews, shown as "(817)". */
9
+ count?: number;
10
+ /** BCP 47 locale for the numbers (default `en-IN`). */
11
+ locale?: string;
12
+ /**
13
+ * Accessible description; the visible "4.5 ★ (817)" is hidden from screen
14
+ * readers. Default: "Rated 4.5 out of 5 from 817 ratings".
15
+ */
16
+ label?: string;
17
+ }
18
+ //# sourceMappingURL=Rating.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rating.types.d.ts","sourceRoot":"","sources":["../../../src/components/Rating/Rating.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EAAE,cAAc;IACzG,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,4 @@
1
+ export * from './Rating';
2
+ export * from './Rating.types';
3
+ export * from './Rating.styles';
4
+ //# sourceMappingURL=index.d.ts.map