@lidofinance/lido-app-ui 1.12.0 → 1.14.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 (679) hide show
  1. package/README.md +85 -19
  2. package/dist/README.md +85 -19
  3. package/dist/cjs/accordion/Accordion.cjs +1 -0
  4. package/dist/cjs/accordion/Accordion.cjs.map +1 -1
  5. package/dist/cjs/address/Address.cjs +50 -0
  6. package/dist/cjs/address/Address.cjs.map +1 -0
  7. package/dist/cjs/address/Address.module.css.cjs +6 -0
  8. package/dist/cjs/address/Address.module.css.cjs.map +1 -0
  9. package/dist/cjs/address-button/AddressButton.cjs +49 -0
  10. package/dist/cjs/address-button/AddressButton.cjs.map +1 -0
  11. package/dist/cjs/address-button/AddressButton.module.css.cjs +6 -0
  12. package/dist/cjs/address-button/AddressButton.module.css.cjs.map +1 -0
  13. package/dist/cjs/badge/Badge.cjs +1 -0
  14. package/dist/cjs/badge/Badge.cjs.map +1 -1
  15. package/dist/cjs/banner/Banner.cjs +1 -0
  16. package/dist/cjs/banner/Banner.cjs.map +1 -1
  17. package/dist/cjs/breadcrumbs/Breadcrumbs.cjs +55 -26
  18. package/dist/cjs/breadcrumbs/Breadcrumbs.cjs.map +1 -1
  19. package/dist/cjs/breadcrumbs/Breadcrumbs.module.css.cjs +1 -1
  20. package/dist/cjs/button/Button.cjs +15 -24
  21. package/dist/cjs/button/Button.cjs.map +1 -1
  22. package/dist/cjs/button/Button.module.css.cjs +1 -1
  23. package/dist/cjs/button/ButtonContent.cjs +50 -0
  24. package/dist/cjs/button/ButtonContent.cjs.map +1 -0
  25. package/dist/cjs/button/LinkButton.cjs +46 -0
  26. package/dist/cjs/button/LinkButton.cjs.map +1 -0
  27. package/dist/cjs/card/Card.cjs +1 -0
  28. package/dist/cjs/card/Card.cjs.map +1 -1
  29. package/dist/cjs/checkbox/Checkbox.cjs +1 -0
  30. package/dist/cjs/checkbox/Checkbox.cjs.map +1 -1
  31. package/dist/cjs/copy/Copy.cjs +55 -0
  32. package/dist/cjs/copy/Copy.cjs.map +1 -0
  33. package/dist/cjs/copy/Copy.module.css.cjs +6 -0
  34. package/dist/cjs/copy/Copy.module.css.cjs.map +1 -0
  35. package/dist/cjs/copy/useCopy.cjs +33 -0
  36. package/dist/cjs/copy/useCopy.cjs.map +1 -0
  37. package/dist/cjs/counter/Counter.cjs +6 -2
  38. package/dist/cjs/counter/Counter.cjs.map +1 -1
  39. package/dist/cjs/counter/CounterSlot.cjs +19 -2
  40. package/dist/cjs/counter/CounterSlot.cjs.map +1 -1
  41. package/dist/cjs/counter/CounterSlot.module.css.cjs +1 -1
  42. package/dist/cjs/data-list/DataList.cjs +1 -0
  43. package/dist/cjs/data-list/DataList.cjs.map +1 -1
  44. package/dist/cjs/data-list/DataList.module.css.cjs +1 -1
  45. package/dist/cjs/data-list/DataListRow.cjs +7 -12
  46. package/dist/cjs/data-list/DataListRow.cjs.map +1 -1
  47. package/dist/cjs/disclaimer/Disclaimer.cjs +10 -3
  48. package/dist/cjs/disclaimer/Disclaimer.cjs.map +1 -1
  49. package/dist/cjs/divider/Divider.cjs +5 -0
  50. package/dist/cjs/divider/Divider.cjs.map +1 -1
  51. package/dist/cjs/error-page/ErrorPage.cjs +14 -7
  52. package/dist/cjs/error-page/ErrorPage.cjs.map +1 -1
  53. package/dist/cjs/footer/Footer.cjs +10 -2
  54. package/dist/cjs/footer/Footer.cjs.map +1 -1
  55. package/dist/cjs/grid/Grid.cjs +7 -3
  56. package/dist/cjs/grid/Grid.cjs.map +1 -1
  57. package/dist/cjs/grid/Grid.module.css.cjs +1 -1
  58. package/dist/cjs/grid/GridItem.cjs +2 -0
  59. package/dist/cjs/grid/GridItem.cjs.map +1 -1
  60. package/dist/cjs/header/Header.cjs +10 -2
  61. package/dist/cjs/header/Header.cjs.map +1 -1
  62. package/dist/cjs/header/HeaderNav.cjs +33 -21
  63. package/dist/cjs/header/HeaderNav.cjs.map +1 -1
  64. package/dist/cjs/header/HeaderNav.module.css.cjs +1 -1
  65. package/dist/cjs/hex/Hex.cjs +41 -0
  66. package/dist/cjs/hex/Hex.cjs.map +1 -0
  67. package/dist/cjs/hex/Hex.module.css.cjs +6 -0
  68. package/dist/cjs/hex/Hex.module.css.cjs.map +1 -0
  69. package/dist/cjs/hex/trimHex.cjs +15 -0
  70. package/dist/cjs/hex/trimHex.cjs.map +1 -0
  71. package/dist/cjs/hidden/Hidden.cjs +10 -4
  72. package/dist/cjs/hidden/Hidden.cjs.map +1 -1
  73. package/dist/cjs/hooks/Portal.cjs +14 -11
  74. package/dist/cjs/hooks/Portal.cjs.map +1 -1
  75. package/dist/cjs/hooks/useBodyScrollLock.cjs +49 -13
  76. package/dist/cjs/hooks/useBodyScrollLock.cjs.map +1 -1
  77. package/dist/cjs/hooks/useEdgeFade.cjs +60 -0
  78. package/dist/cjs/hooks/useEdgeFade.cjs.map +1 -0
  79. package/dist/cjs/hooks/useEscape.cjs +8 -5
  80. package/dist/cjs/hooks/useEscape.cjs.map +1 -1
  81. package/dist/cjs/hooks/useFocusTrap.cjs +61 -24
  82. package/dist/cjs/hooks/useFocusTrap.cjs.map +1 -1
  83. package/dist/cjs/hooks/useHideOthers.cjs +51 -0
  84. package/dist/cjs/hooks/useHideOthers.cjs.map +1 -0
  85. package/dist/cjs/hooks/useOutsideClick.cjs +31 -4
  86. package/dist/cjs/hooks/useOutsideClick.cjs.map +1 -1
  87. package/dist/cjs/icon-button/CloseButton.cjs +27 -0
  88. package/dist/cjs/icon-button/CloseButton.cjs.map +1 -0
  89. package/dist/cjs/icon-button/IconButton.cjs +6 -1
  90. package/dist/cjs/icon-button/IconButton.cjs.map +1 -1
  91. package/dist/cjs/icon-button/IconButton.module.css.cjs +1 -1
  92. package/dist/cjs/icons/TokenIcon.cjs +2 -0
  93. package/dist/cjs/icons/TokenIcon.cjs.map +1 -1
  94. package/dist/cjs/identicon/Identicon.cjs +2 -0
  95. package/dist/cjs/identicon/Identicon.cjs.map +1 -1
  96. package/dist/cjs/index.cjs +67 -5
  97. package/dist/cjs/index.cjs.map +1 -1
  98. package/dist/cjs/index.css +14 -4
  99. package/dist/cjs/info-tooltip/InfoTooltip.cjs +34 -0
  100. package/dist/cjs/info-tooltip/InfoTooltip.cjs.map +1 -0
  101. package/dist/cjs/info-tooltip/InfoTooltip.module.css.cjs +6 -0
  102. package/dist/cjs/info-tooltip/InfoTooltip.module.css.cjs.map +1 -0
  103. package/dist/cjs/input/Input.cjs +4 -8
  104. package/dist/cjs/input/Input.cjs.map +1 -1
  105. package/dist/cjs/input/Input.module.css.cjs +1 -1
  106. package/dist/cjs/link-provider/Anchor.cjs +23 -2
  107. package/dist/cjs/link-provider/Anchor.cjs.map +1 -1
  108. package/dist/cjs/link-provider/LinkProvider.cjs +1 -1
  109. package/dist/cjs/link-provider/LinkProvider.cjs.map +1 -1
  110. package/dist/cjs/logo/Logo.cjs +8 -0
  111. package/dist/cjs/logo/Logo.cjs.map +1 -1
  112. package/dist/cjs/message-box/MessageBox.cjs +1 -0
  113. package/dist/cjs/message-box/MessageBox.cjs.map +1 -1
  114. package/dist/cjs/modal/Modal.cjs +73 -15
  115. package/dist/cjs/modal/Modal.cjs.map +1 -1
  116. package/dist/cjs/nav-link/NavLink.cjs +6 -4
  117. package/dist/cjs/nav-link/NavLink.cjs.map +1 -1
  118. package/dist/cjs/notification/Notification.cjs +12 -6
  119. package/dist/cjs/notification/Notification.cjs.map +1 -1
  120. package/dist/cjs/page-layout/Layout.cjs +25 -0
  121. package/dist/cjs/page-layout/Layout.cjs.map +1 -0
  122. package/dist/cjs/page-layout/Layout.module.css.cjs +6 -0
  123. package/dist/cjs/page-layout/Layout.module.css.cjs.map +1 -0
  124. package/dist/cjs/page-layout/Main.cjs +29 -0
  125. package/dist/cjs/page-layout/Main.cjs.map +1 -0
  126. package/dist/cjs/page-layout/Main.module.css.cjs +6 -0
  127. package/dist/cjs/page-layout/Main.module.css.cjs.map +1 -0
  128. package/dist/cjs/page-layout/PageContent.cjs +22 -0
  129. package/dist/cjs/page-layout/PageContent.cjs.map +1 -0
  130. package/dist/cjs/page-layout/PageContent.module.css.cjs +6 -0
  131. package/dist/cjs/page-layout/PageContent.module.css.cjs.map +1 -0
  132. package/dist/cjs/pagination/Pagination.cjs +11 -6
  133. package/dist/cjs/pagination/Pagination.cjs.map +1 -1
  134. package/dist/cjs/popover/Popover.cjs +71 -15
  135. package/dist/cjs/popover/Popover.cjs.map +1 -1
  136. package/dist/cjs/radio-button/RadioButton.cjs +1 -0
  137. package/dist/cjs/radio-button/RadioButton.cjs.map +1 -1
  138. package/dist/cjs/rich-input/RichInput.cjs +22 -46
  139. package/dist/cjs/rich-input/RichInput.cjs.map +1 -1
  140. package/dist/cjs/rich-input/RichInput.module.css.cjs +1 -1
  141. package/dist/cjs/section-title/SectionTitle.cjs +9 -10
  142. package/dist/cjs/section-title/SectionTitle.cjs.map +1 -1
  143. package/dist/cjs/section-title/SectionTitle.module.css.cjs +1 -1
  144. package/dist/cjs/segmented-control/SegmentedControl.cjs +1 -0
  145. package/dist/cjs/segmented-control/SegmentedControl.cjs.map +1 -1
  146. package/dist/cjs/segmented-control/SegmentedControlCard.cjs +1 -0
  147. package/dist/cjs/segmented-control/SegmentedControlCard.cjs.map +1 -1
  148. package/dist/cjs/sidebar/Sidebar.cjs +141 -0
  149. package/dist/cjs/sidebar/Sidebar.cjs.map +1 -0
  150. package/dist/cjs/sidebar/Sidebar.module.css.cjs +6 -0
  151. package/dist/cjs/sidebar/Sidebar.module.css.cjs.map +1 -0
  152. package/dist/cjs/sidebar/SidebarContext.cjs +13 -0
  153. package/dist/cjs/sidebar/SidebarContext.cjs.map +1 -0
  154. package/dist/cjs/sidebar/SidebarGroup.cjs +37 -0
  155. package/dist/cjs/sidebar/SidebarGroup.cjs.map +1 -0
  156. package/dist/cjs/sidebar/SidebarGroup.module.css.cjs +6 -0
  157. package/dist/cjs/sidebar/SidebarGroup.module.css.cjs.map +1 -0
  158. package/dist/cjs/sidebar/SidebarInset.cjs +25 -0
  159. package/dist/cjs/sidebar/SidebarInset.cjs.map +1 -0
  160. package/dist/cjs/sidebar/SidebarInset.module.css.cjs +6 -0
  161. package/dist/cjs/sidebar/SidebarInset.module.css.cjs.map +1 -0
  162. package/dist/cjs/sidebar/SidebarItem.cjs +42 -0
  163. package/dist/cjs/sidebar/SidebarItem.cjs.map +1 -0
  164. package/dist/cjs/sidebar/SidebarItem.module.css.cjs +6 -0
  165. package/dist/cjs/sidebar/SidebarItem.module.css.cjs.map +1 -0
  166. package/dist/cjs/sidebar/SidebarLayout.cjs +41 -0
  167. package/dist/cjs/sidebar/SidebarLayout.cjs.map +1 -0
  168. package/dist/cjs/sidebar/SidebarLayout.module.css.cjs +6 -0
  169. package/dist/cjs/sidebar/SidebarLayout.module.css.cjs.map +1 -0
  170. package/dist/cjs/sidebar/SidebarToggle.cjs +44 -0
  171. package/dist/cjs/sidebar/SidebarToggle.cjs.map +1 -0
  172. package/dist/cjs/sidebar/SidebarToggle.module.css.cjs +6 -0
  173. package/dist/cjs/sidebar/SidebarToggle.module.css.cjs.map +1 -0
  174. package/dist/cjs/sidebar/useSidebarDrawer.cjs +47 -0
  175. package/dist/cjs/sidebar/useSidebarDrawer.cjs.map +1 -0
  176. package/dist/cjs/skeleton/Skeleton.cjs +18 -20
  177. package/dist/cjs/skeleton/Skeleton.cjs.map +1 -1
  178. package/dist/cjs/skip-link/SkipLink.cjs +52 -0
  179. package/dist/cjs/skip-link/SkipLink.cjs.map +1 -0
  180. package/dist/cjs/skip-link/SkipLink.module.css.cjs +6 -0
  181. package/dist/cjs/skip-link/SkipLink.module.css.cjs.map +1 -0
  182. package/dist/cjs/slider/Slider.cjs +1 -0
  183. package/dist/cjs/slider/Slider.cjs.map +1 -1
  184. package/dist/cjs/small-card/SmallCard.cjs +6 -2
  185. package/dist/cjs/small-card/SmallCard.cjs.map +1 -1
  186. package/dist/cjs/stack/Stack.cjs +27 -7
  187. package/dist/cjs/stack/Stack.cjs.map +1 -1
  188. package/dist/cjs/stack/Stack.module.css.cjs +1 -1
  189. package/dist/cjs/stat-item/StatItem.cjs +4 -8
  190. package/dist/cjs/stat-item/StatItem.cjs.map +1 -1
  191. package/dist/cjs/stat-item/StatItem.module.css.cjs +1 -1
  192. package/dist/cjs/switch/Switch.cjs +1 -0
  193. package/dist/cjs/switch/Switch.cjs.map +1 -1
  194. package/dist/cjs/tabs/Tabs.cjs +1 -0
  195. package/dist/cjs/tabs/Tabs.cjs.map +1 -1
  196. package/dist/cjs/tag/Tag.cjs +73 -8
  197. package/dist/cjs/tag/Tag.cjs.map +1 -1
  198. package/dist/cjs/tag/Tag.module.css.cjs +1 -1
  199. package/dist/cjs/text-link/TextLink.cjs +10 -13
  200. package/dist/cjs/text-link/TextLink.cjs.map +1 -1
  201. package/dist/cjs/text-link/TextLink.module.css.cjs +1 -1
  202. package/dist/cjs/theme-switcher/ThemeSwitcher.cjs +13 -5
  203. package/dist/cjs/theme-switcher/ThemeSwitcher.cjs.map +1 -1
  204. package/dist/cjs/theme-switcher/ThemeSwitcher.module.css.cjs +6 -0
  205. package/dist/cjs/theme-switcher/ThemeSwitcher.module.css.cjs.map +1 -0
  206. package/dist/cjs/token-amount/TokenAmount.cjs +1 -0
  207. package/dist/cjs/token-amount/TokenAmount.cjs.map +1 -1
  208. package/dist/cjs/token-selector/TokenSelector.cjs +56 -64
  209. package/dist/cjs/token-selector/TokenSelector.cjs.map +1 -1
  210. package/dist/cjs/tooltip/Tooltip.cjs +42 -27
  211. package/dist/cjs/tooltip/Tooltip.cjs.map +1 -1
  212. package/dist/cjs/tx-status/TxStatus.cjs +2 -0
  213. package/dist/cjs/tx-status/TxStatus.cjs.map +1 -1
  214. package/dist/cjs/typography/Typography.cjs +2 -0
  215. package/dist/cjs/typography/Typography.cjs.map +1 -1
  216. package/dist/cjs/utils/ActionElement.cjs +2 -13
  217. package/dist/cjs/utils/ActionElement.cjs.map +1 -1
  218. package/dist/cjs/utils/breakpoints.cjs +26 -0
  219. package/dist/cjs/utils/breakpoints.cjs.map +1 -0
  220. package/dist/cjs/utils/responsive.cjs +19 -30
  221. package/dist/cjs/utils/responsive.cjs.map +1 -1
  222. package/dist/cjs/utils/surface.module.css.cjs +6 -0
  223. package/dist/cjs/utils/surface.module.css.cjs.map +1 -0
  224. package/dist/esm/accordion/Accordion.mjs +1 -0
  225. package/dist/esm/accordion/Accordion.mjs.map +1 -1
  226. package/dist/esm/address/Address.mjs +46 -0
  227. package/dist/esm/address/Address.mjs.map +1 -0
  228. package/dist/esm/address/Address.module.css.mjs +4 -0
  229. package/dist/esm/address/Address.module.css.mjs.map +1 -0
  230. package/dist/esm/address-button/AddressButton.mjs +45 -0
  231. package/dist/esm/address-button/AddressButton.mjs.map +1 -0
  232. package/dist/esm/address-button/AddressButton.module.css.mjs +4 -0
  233. package/dist/esm/address-button/AddressButton.module.css.mjs.map +1 -0
  234. package/dist/esm/badge/Badge.mjs +1 -0
  235. package/dist/esm/badge/Badge.mjs.map +1 -1
  236. package/dist/esm/banner/Banner.mjs +1 -0
  237. package/dist/esm/banner/Banner.mjs.map +1 -1
  238. package/dist/esm/breadcrumbs/Breadcrumbs.mjs +56 -27
  239. package/dist/esm/breadcrumbs/Breadcrumbs.mjs.map +1 -1
  240. package/dist/esm/breadcrumbs/Breadcrumbs.module.css.mjs +1 -1
  241. package/dist/esm/button/Button.mjs +16 -25
  242. package/dist/esm/button/Button.mjs.map +1 -1
  243. package/dist/esm/button/Button.module.css.mjs +1 -1
  244. package/dist/esm/button/ButtonContent.mjs +45 -0
  245. package/dist/esm/button/ButtonContent.mjs.map +1 -0
  246. package/dist/esm/button/LinkButton.mjs +42 -0
  247. package/dist/esm/button/LinkButton.mjs.map +1 -0
  248. package/dist/esm/card/Card.mjs +1 -0
  249. package/dist/esm/card/Card.mjs.map +1 -1
  250. package/dist/esm/checkbox/Checkbox.mjs +1 -0
  251. package/dist/esm/checkbox/Checkbox.mjs.map +1 -1
  252. package/dist/esm/copy/Copy.mjs +51 -0
  253. package/dist/esm/copy/Copy.mjs.map +1 -0
  254. package/dist/esm/copy/Copy.module.css.mjs +4 -0
  255. package/dist/esm/copy/Copy.module.css.mjs.map +1 -0
  256. package/dist/esm/copy/useCopy.mjs +29 -0
  257. package/dist/esm/copy/useCopy.mjs.map +1 -0
  258. package/dist/esm/counter/Counter.mjs +6 -2
  259. package/dist/esm/counter/Counter.mjs.map +1 -1
  260. package/dist/esm/counter/CounterSlot.mjs +19 -3
  261. package/dist/esm/counter/CounterSlot.mjs.map +1 -1
  262. package/dist/esm/counter/CounterSlot.module.css.mjs +1 -1
  263. package/dist/esm/data-list/DataList.mjs +1 -0
  264. package/dist/esm/data-list/DataList.mjs.map +1 -1
  265. package/dist/esm/data-list/DataList.module.css.mjs +1 -1
  266. package/dist/esm/data-list/DataListRow.mjs +7 -12
  267. package/dist/esm/data-list/DataListRow.mjs.map +1 -1
  268. package/dist/esm/disclaimer/Disclaimer.mjs +10 -3
  269. package/dist/esm/disclaimer/Disclaimer.mjs.map +1 -1
  270. package/dist/esm/divider/Divider.mjs +5 -0
  271. package/dist/esm/divider/Divider.mjs.map +1 -1
  272. package/dist/esm/error-page/ErrorPage.mjs +14 -7
  273. package/dist/esm/error-page/ErrorPage.mjs.map +1 -1
  274. package/dist/esm/footer/Footer.mjs +10 -2
  275. package/dist/esm/footer/Footer.mjs.map +1 -1
  276. package/dist/esm/grid/Grid.mjs +8 -4
  277. package/dist/esm/grid/Grid.mjs.map +1 -1
  278. package/dist/esm/grid/Grid.module.css.mjs +1 -1
  279. package/dist/esm/grid/GridItem.mjs +2 -0
  280. package/dist/esm/grid/GridItem.mjs.map +1 -1
  281. package/dist/esm/header/Header.mjs +10 -2
  282. package/dist/esm/header/Header.mjs.map +1 -1
  283. package/dist/esm/header/HeaderNav.mjs +34 -22
  284. package/dist/esm/header/HeaderNav.mjs.map +1 -1
  285. package/dist/esm/header/HeaderNav.module.css.mjs +1 -1
  286. package/dist/esm/hex/Hex.mjs +37 -0
  287. package/dist/esm/hex/Hex.mjs.map +1 -0
  288. package/dist/esm/hex/Hex.module.css.mjs +4 -0
  289. package/dist/esm/hex/Hex.module.css.mjs.map +1 -0
  290. package/dist/esm/hex/trimHex.mjs +11 -0
  291. package/dist/esm/hex/trimHex.mjs.map +1 -0
  292. package/dist/esm/hidden/Hidden.mjs +10 -4
  293. package/dist/esm/hidden/Hidden.mjs.map +1 -1
  294. package/dist/esm/hooks/Portal.mjs +16 -13
  295. package/dist/esm/hooks/Portal.mjs.map +1 -1
  296. package/dist/esm/hooks/useBodyScrollLock.mjs +49 -13
  297. package/dist/esm/hooks/useBodyScrollLock.mjs.map +1 -1
  298. package/dist/esm/hooks/useEdgeFade.mjs +56 -0
  299. package/dist/esm/hooks/useEdgeFade.mjs.map +1 -0
  300. package/dist/esm/hooks/useEscape.mjs +8 -5
  301. package/dist/esm/hooks/useEscape.mjs.map +1 -1
  302. package/dist/esm/hooks/useFocusTrap.mjs +61 -24
  303. package/dist/esm/hooks/useFocusTrap.mjs.map +1 -1
  304. package/dist/esm/hooks/useHideOthers.mjs +47 -0
  305. package/dist/esm/hooks/useHideOthers.mjs.map +1 -0
  306. package/dist/esm/hooks/useOutsideClick.mjs +31 -4
  307. package/dist/esm/hooks/useOutsideClick.mjs.map +1 -1
  308. package/dist/esm/icon-button/CloseButton.mjs +23 -0
  309. package/dist/esm/icon-button/CloseButton.mjs.map +1 -0
  310. package/dist/esm/icon-button/IconButton.mjs +6 -1
  311. package/dist/esm/icon-button/IconButton.mjs.map +1 -1
  312. package/dist/esm/icon-button/IconButton.module.css.mjs +1 -1
  313. package/dist/esm/icons/TokenIcon.mjs +2 -0
  314. package/dist/esm/icons/TokenIcon.mjs.map +1 -1
  315. package/dist/esm/identicon/Identicon.mjs +2 -0
  316. package/dist/esm/identicon/Identicon.mjs.map +1 -1
  317. package/dist/esm/index.css +14 -4
  318. package/dist/esm/index.mjs +35 -1
  319. package/dist/esm/index.mjs.map +1 -1
  320. package/dist/esm/info-tooltip/InfoTooltip.mjs +30 -0
  321. package/dist/esm/info-tooltip/InfoTooltip.mjs.map +1 -0
  322. package/dist/esm/info-tooltip/InfoTooltip.module.css.mjs +4 -0
  323. package/dist/esm/info-tooltip/InfoTooltip.module.css.mjs.map +1 -0
  324. package/dist/esm/input/Input.mjs +4 -8
  325. package/dist/esm/input/Input.mjs.map +1 -1
  326. package/dist/esm/input/Input.module.css.mjs +1 -1
  327. package/dist/esm/link-provider/Anchor.mjs +23 -2
  328. package/dist/esm/link-provider/Anchor.mjs.map +1 -1
  329. package/dist/esm/link-provider/LinkProvider.mjs +1 -1
  330. package/dist/esm/link-provider/LinkProvider.mjs.map +1 -1
  331. package/dist/esm/logo/Logo.mjs +9 -1
  332. package/dist/esm/logo/Logo.mjs.map +1 -1
  333. package/dist/esm/message-box/MessageBox.mjs +1 -0
  334. package/dist/esm/message-box/MessageBox.mjs.map +1 -1
  335. package/dist/esm/modal/Modal.mjs +74 -17
  336. package/dist/esm/modal/Modal.mjs.map +1 -1
  337. package/dist/esm/nav-link/NavLink.mjs +6 -4
  338. package/dist/esm/nav-link/NavLink.mjs.map +1 -1
  339. package/dist/esm/notification/Notification.mjs +13 -7
  340. package/dist/esm/notification/Notification.mjs.map +1 -1
  341. package/dist/esm/page-layout/Layout.mjs +21 -0
  342. package/dist/esm/page-layout/Layout.mjs.map +1 -0
  343. package/dist/esm/page-layout/Layout.module.css.mjs +4 -0
  344. package/dist/esm/page-layout/Layout.module.css.mjs.map +1 -0
  345. package/dist/esm/page-layout/Main.mjs +24 -0
  346. package/dist/esm/page-layout/Main.mjs.map +1 -0
  347. package/dist/esm/page-layout/Main.module.css.mjs +4 -0
  348. package/dist/esm/page-layout/Main.module.css.mjs.map +1 -0
  349. package/dist/esm/page-layout/PageContent.mjs +18 -0
  350. package/dist/esm/page-layout/PageContent.mjs.map +1 -0
  351. package/dist/esm/page-layout/PageContent.module.css.mjs +4 -0
  352. package/dist/esm/page-layout/PageContent.module.css.mjs.map +1 -0
  353. package/dist/esm/pagination/Pagination.mjs +12 -7
  354. package/dist/esm/pagination/Pagination.mjs.map +1 -1
  355. package/dist/esm/popover/Popover.mjs +72 -16
  356. package/dist/esm/popover/Popover.mjs.map +1 -1
  357. package/dist/esm/radio-button/RadioButton.mjs +1 -0
  358. package/dist/esm/radio-button/RadioButton.mjs.map +1 -1
  359. package/dist/esm/rich-input/RichInput.mjs +23 -47
  360. package/dist/esm/rich-input/RichInput.mjs.map +1 -1
  361. package/dist/esm/rich-input/RichInput.module.css.mjs +1 -1
  362. package/dist/esm/section-title/SectionTitle.mjs +9 -10
  363. package/dist/esm/section-title/SectionTitle.mjs.map +1 -1
  364. package/dist/esm/section-title/SectionTitle.module.css.mjs +1 -1
  365. package/dist/esm/segmented-control/SegmentedControl.mjs +1 -0
  366. package/dist/esm/segmented-control/SegmentedControl.mjs.map +1 -1
  367. package/dist/esm/segmented-control/SegmentedControlCard.mjs +1 -0
  368. package/dist/esm/segmented-control/SegmentedControlCard.mjs.map +1 -1
  369. package/dist/esm/sidebar/Sidebar.mjs +136 -0
  370. package/dist/esm/sidebar/Sidebar.mjs.map +1 -0
  371. package/dist/esm/sidebar/Sidebar.module.css.mjs +4 -0
  372. package/dist/esm/sidebar/Sidebar.module.css.mjs.map +1 -0
  373. package/dist/esm/sidebar/SidebarContext.mjs +8 -0
  374. package/dist/esm/sidebar/SidebarContext.mjs.map +1 -0
  375. package/dist/esm/sidebar/SidebarGroup.mjs +33 -0
  376. package/dist/esm/sidebar/SidebarGroup.mjs.map +1 -0
  377. package/dist/esm/sidebar/SidebarGroup.module.css.mjs +4 -0
  378. package/dist/esm/sidebar/SidebarGroup.module.css.mjs.map +1 -0
  379. package/dist/esm/sidebar/SidebarInset.mjs +21 -0
  380. package/dist/esm/sidebar/SidebarInset.mjs.map +1 -0
  381. package/dist/esm/sidebar/SidebarInset.module.css.mjs +4 -0
  382. package/dist/esm/sidebar/SidebarInset.module.css.mjs.map +1 -0
  383. package/dist/esm/sidebar/SidebarItem.mjs +38 -0
  384. package/dist/esm/sidebar/SidebarItem.mjs.map +1 -0
  385. package/dist/esm/sidebar/SidebarItem.module.css.mjs +4 -0
  386. package/dist/esm/sidebar/SidebarItem.module.css.mjs.map +1 -0
  387. package/dist/esm/sidebar/SidebarLayout.mjs +37 -0
  388. package/dist/esm/sidebar/SidebarLayout.mjs.map +1 -0
  389. package/dist/esm/sidebar/SidebarLayout.module.css.mjs +4 -0
  390. package/dist/esm/sidebar/SidebarLayout.module.css.mjs.map +1 -0
  391. package/dist/esm/sidebar/SidebarToggle.mjs +40 -0
  392. package/dist/esm/sidebar/SidebarToggle.mjs.map +1 -0
  393. package/dist/esm/sidebar/SidebarToggle.module.css.mjs +4 -0
  394. package/dist/esm/sidebar/SidebarToggle.module.css.mjs.map +1 -0
  395. package/dist/esm/sidebar/useSidebarDrawer.mjs +43 -0
  396. package/dist/esm/sidebar/useSidebarDrawer.mjs.map +1 -0
  397. package/dist/esm/skeleton/Skeleton.mjs +18 -20
  398. package/dist/esm/skeleton/Skeleton.mjs.map +1 -1
  399. package/dist/esm/skip-link/SkipLink.mjs +48 -0
  400. package/dist/esm/skip-link/SkipLink.mjs.map +1 -0
  401. package/dist/esm/skip-link/SkipLink.module.css.mjs +4 -0
  402. package/dist/esm/skip-link/SkipLink.module.css.mjs.map +1 -0
  403. package/dist/esm/slider/Slider.mjs +1 -0
  404. package/dist/esm/slider/Slider.mjs.map +1 -1
  405. package/dist/esm/small-card/SmallCard.mjs +6 -2
  406. package/dist/esm/small-card/SmallCard.mjs.map +1 -1
  407. package/dist/esm/stack/Stack.mjs +28 -9
  408. package/dist/esm/stack/Stack.mjs.map +1 -1
  409. package/dist/esm/stack/Stack.module.css.mjs +1 -1
  410. package/dist/esm/stat-item/StatItem.mjs +4 -8
  411. package/dist/esm/stat-item/StatItem.mjs.map +1 -1
  412. package/dist/esm/stat-item/StatItem.module.css.mjs +1 -1
  413. package/dist/esm/switch/Switch.mjs +1 -0
  414. package/dist/esm/switch/Switch.mjs.map +1 -1
  415. package/dist/esm/tabs/Tabs.mjs +1 -0
  416. package/dist/esm/tabs/Tabs.mjs.map +1 -1
  417. package/dist/esm/tag/Tag.mjs +74 -9
  418. package/dist/esm/tag/Tag.mjs.map +1 -1
  419. package/dist/esm/tag/Tag.module.css.mjs +1 -1
  420. package/dist/esm/text-link/TextLink.mjs +10 -13
  421. package/dist/esm/text-link/TextLink.mjs.map +1 -1
  422. package/dist/esm/text-link/TextLink.module.css.mjs +1 -1
  423. package/dist/esm/theme-switcher/ThemeSwitcher.mjs +14 -6
  424. package/dist/esm/theme-switcher/ThemeSwitcher.mjs.map +1 -1
  425. package/dist/esm/theme-switcher/ThemeSwitcher.module.css.mjs +4 -0
  426. package/dist/esm/theme-switcher/ThemeSwitcher.module.css.mjs.map +1 -0
  427. package/dist/esm/token-amount/TokenAmount.mjs +1 -0
  428. package/dist/esm/token-amount/TokenAmount.mjs.map +1 -1
  429. package/dist/esm/token-selector/TokenSelector.mjs +58 -66
  430. package/dist/esm/token-selector/TokenSelector.mjs.map +1 -1
  431. package/dist/esm/tooltip/Tooltip.mjs +42 -27
  432. package/dist/esm/tooltip/Tooltip.mjs.map +1 -1
  433. package/dist/esm/tx-status/TxStatus.mjs +2 -0
  434. package/dist/esm/tx-status/TxStatus.mjs.map +1 -1
  435. package/dist/esm/typography/Typography.mjs +2 -0
  436. package/dist/esm/typography/Typography.mjs.map +1 -1
  437. package/dist/esm/utils/ActionElement.mjs +2 -13
  438. package/dist/esm/utils/ActionElement.mjs.map +1 -1
  439. package/dist/esm/utils/breakpoints.mjs +19 -0
  440. package/dist/esm/utils/breakpoints.mjs.map +1 -0
  441. package/dist/esm/utils/responsive.mjs +17 -27
  442. package/dist/esm/utils/responsive.mjs.map +1 -1
  443. package/dist/esm/utils/surface.module.css.mjs +4 -0
  444. package/dist/esm/utils/surface.module.css.mjs.map +1 -0
  445. package/dist/index.css +14 -4
  446. package/dist/styles/breakpoints.css +16 -12
  447. package/dist/styles/typography-mixins.css +8 -0
  448. package/dist/types/accordion/Accordion.d.ts +3 -0
  449. package/dist/types/accordion/Accordion.d.ts.map +1 -1
  450. package/dist/types/address/Address.d.ts +16 -0
  451. package/dist/types/address/Address.d.ts.map +1 -0
  452. package/dist/types/address/index.d.ts +3 -0
  453. package/dist/types/address/index.d.ts.map +1 -0
  454. package/dist/types/address-button/AddressButton.d.ts +13 -0
  455. package/dist/types/address-button/AddressButton.d.ts.map +1 -0
  456. package/dist/types/address-button/index.d.ts +3 -0
  457. package/dist/types/address-button/index.d.ts.map +1 -0
  458. package/dist/types/badge/Badge.d.ts +1 -0
  459. package/dist/types/badge/Badge.d.ts.map +1 -1
  460. package/dist/types/banner/Banner.d.ts +1 -0
  461. package/dist/types/banner/Banner.d.ts.map +1 -1
  462. package/dist/types/breadcrumbs/Breadcrumbs.d.ts +17 -1
  463. package/dist/types/breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  464. package/dist/types/breadcrumbs/index.d.ts +1 -1
  465. package/dist/types/breadcrumbs/index.d.ts.map +1 -1
  466. package/dist/types/button/Button.d.ts +6 -26
  467. package/dist/types/button/Button.d.ts.map +1 -1
  468. package/dist/types/button/ButtonContent.d.ts +10 -0
  469. package/dist/types/button/ButtonContent.d.ts.map +1 -0
  470. package/dist/types/button/LinkButton.d.ts +10 -0
  471. package/dist/types/button/LinkButton.d.ts.map +1 -0
  472. package/dist/types/button/index.d.ts +2 -0
  473. package/dist/types/button/index.d.ts.map +1 -1
  474. package/dist/types/button/types.d.ts +26 -0
  475. package/dist/types/button/types.d.ts.map +1 -0
  476. package/dist/types/card/Card.d.ts +1 -0
  477. package/dist/types/card/Card.d.ts.map +1 -1
  478. package/dist/types/checkbox/Checkbox.d.ts +3 -0
  479. package/dist/types/checkbox/Checkbox.d.ts.map +1 -1
  480. package/dist/types/colors/colorTokens.d.ts.map +1 -1
  481. package/dist/types/copy/Copy.d.ts +10 -0
  482. package/dist/types/copy/Copy.d.ts.map +1 -0
  483. package/dist/types/copy/index.d.ts +5 -0
  484. package/dist/types/copy/index.d.ts.map +1 -0
  485. package/dist/types/copy/useCopy.d.ts +9 -0
  486. package/dist/types/copy/useCopy.d.ts.map +1 -0
  487. package/dist/types/counter/Counter.d.ts +6 -2
  488. package/dist/types/counter/Counter.d.ts.map +1 -1
  489. package/dist/types/counter/CounterSlot.d.ts +3 -0
  490. package/dist/types/counter/CounterSlot.d.ts.map +1 -1
  491. package/dist/types/data-list/DataList.d.ts +1 -0
  492. package/dist/types/data-list/DataList.d.ts.map +1 -1
  493. package/dist/types/data-list/DataListRow.d.ts +1 -0
  494. package/dist/types/data-list/DataListRow.d.ts.map +1 -1
  495. package/dist/types/disclaimer/Disclaimer.d.ts +9 -2
  496. package/dist/types/disclaimer/Disclaimer.d.ts.map +1 -1
  497. package/dist/types/divider/Divider.d.ts +5 -0
  498. package/dist/types/divider/Divider.d.ts.map +1 -1
  499. package/dist/types/divider/index.d.ts +1 -1
  500. package/dist/types/divider/index.d.ts.map +1 -1
  501. package/dist/types/error-page/ErrorPage.d.ts +17 -4
  502. package/dist/types/error-page/ErrorPage.d.ts.map +1 -1
  503. package/dist/types/footer/Footer.d.ts +17 -2
  504. package/dist/types/footer/Footer.d.ts.map +1 -1
  505. package/dist/types/footer/index.d.ts +1 -1
  506. package/dist/types/footer/index.d.ts.map +1 -1
  507. package/dist/types/grid/Grid.d.ts +21 -22
  508. package/dist/types/grid/Grid.d.ts.map +1 -1
  509. package/dist/types/grid/GridItem.d.ts +14 -10
  510. package/dist/types/grid/GridItem.d.ts.map +1 -1
  511. package/dist/types/grid/index.d.ts +2 -2
  512. package/dist/types/grid/index.d.ts.map +1 -1
  513. package/dist/types/header/Header.d.ts +15 -2
  514. package/dist/types/header/Header.d.ts.map +1 -1
  515. package/dist/types/header/HeaderNav.d.ts +10 -2
  516. package/dist/types/header/HeaderNav.d.ts.map +1 -1
  517. package/dist/types/header/index.d.ts +2 -2
  518. package/dist/types/header/index.d.ts.map +1 -1
  519. package/dist/types/hex/Hex.d.ts +10 -0
  520. package/dist/types/hex/Hex.d.ts.map +1 -0
  521. package/dist/types/hex/index.d.ts +4 -0
  522. package/dist/types/hex/index.d.ts.map +1 -0
  523. package/dist/types/hex/trimHex.d.ts +2 -0
  524. package/dist/types/hex/trimHex.d.ts.map +1 -0
  525. package/dist/types/hidden/Hidden.d.ts +20 -6
  526. package/dist/types/hidden/Hidden.d.ts.map +1 -1
  527. package/dist/types/hidden/index.d.ts +1 -1
  528. package/dist/types/hidden/index.d.ts.map +1 -1
  529. package/dist/types/hooks/Portal.d.ts +2 -5
  530. package/dist/types/hooks/Portal.d.ts.map +1 -1
  531. package/dist/types/hooks/index.d.ts +2 -0
  532. package/dist/types/hooks/index.d.ts.map +1 -1
  533. package/dist/types/hooks/useBodyScrollLock.d.ts +4 -2
  534. package/dist/types/hooks/useBodyScrollLock.d.ts.map +1 -1
  535. package/dist/types/hooks/useEdgeFade.d.ts +7 -0
  536. package/dist/types/hooks/useEdgeFade.d.ts.map +1 -0
  537. package/dist/types/hooks/useEscape.d.ts +4 -2
  538. package/dist/types/hooks/useEscape.d.ts.map +1 -1
  539. package/dist/types/hooks/useFocusTrap.d.ts +7 -3
  540. package/dist/types/hooks/useFocusTrap.d.ts.map +1 -1
  541. package/dist/types/hooks/useHideOthers.d.ts +3 -0
  542. package/dist/types/hooks/useHideOthers.d.ts.map +1 -0
  543. package/dist/types/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
  544. package/dist/types/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -1
  545. package/dist/types/hooks/useOutsideClick.d.ts +4 -2
  546. package/dist/types/hooks/useOutsideClick.d.ts.map +1 -1
  547. package/dist/types/icon-button/CloseButton.d.ts +9 -0
  548. package/dist/types/icon-button/CloseButton.d.ts.map +1 -0
  549. package/dist/types/icon-button/IconButton.d.ts +15 -2
  550. package/dist/types/icon-button/IconButton.d.ts.map +1 -1
  551. package/dist/types/icon-button/index.d.ts +2 -0
  552. package/dist/types/icon-button/index.d.ts.map +1 -1
  553. package/dist/types/icons/TokenIcon.d.ts +1 -0
  554. package/dist/types/icons/TokenIcon.d.ts.map +1 -1
  555. package/dist/types/identicon/Identicon.d.ts +5 -0
  556. package/dist/types/identicon/Identicon.d.ts.map +1 -1
  557. package/dist/types/index.d.ts +13 -0
  558. package/dist/types/index.d.ts.map +1 -1
  559. package/dist/types/info-tooltip/InfoTooltip.d.ts +12 -0
  560. package/dist/types/info-tooltip/InfoTooltip.d.ts.map +1 -0
  561. package/dist/types/info-tooltip/index.d.ts +3 -0
  562. package/dist/types/info-tooltip/index.d.ts.map +1 -0
  563. package/dist/types/input/Input.d.ts +1 -0
  564. package/dist/types/input/Input.d.ts.map +1 -1
  565. package/dist/types/link-provider/Anchor.d.ts +17 -1
  566. package/dist/types/link-provider/Anchor.d.ts.map +1 -1
  567. package/dist/types/link-provider/LinkProvider.d.ts +8 -2
  568. package/dist/types/link-provider/LinkProvider.d.ts.map +1 -1
  569. package/dist/types/link-provider/index.d.ts +1 -1
  570. package/dist/types/link-provider/index.d.ts.map +1 -1
  571. package/dist/types/logo/Logo.d.ts +20 -3
  572. package/dist/types/logo/Logo.d.ts.map +1 -1
  573. package/dist/types/logo/index.d.ts +1 -1
  574. package/dist/types/logo/index.d.ts.map +1 -1
  575. package/dist/types/message-box/MessageBox.d.ts +3 -0
  576. package/dist/types/message-box/MessageBox.d.ts.map +1 -1
  577. package/dist/types/modal/Modal.d.ts +21 -3
  578. package/dist/types/modal/Modal.d.ts.map +1 -1
  579. package/dist/types/modal/index.d.ts +2 -2
  580. package/dist/types/modal/index.d.ts.map +1 -1
  581. package/dist/types/nav-link/NavLink.d.ts +17 -0
  582. package/dist/types/nav-link/NavLink.d.ts.map +1 -1
  583. package/dist/types/nav-link/index.d.ts +1 -1
  584. package/dist/types/nav-link/index.d.ts.map +1 -1
  585. package/dist/types/notification/Notification.d.ts +7 -2
  586. package/dist/types/notification/Notification.d.ts.map +1 -1
  587. package/dist/types/page-layout/Layout.d.ts +5 -0
  588. package/dist/types/page-layout/Layout.d.ts.map +1 -0
  589. package/dist/types/page-layout/Main.d.ts +6 -0
  590. package/dist/types/page-layout/Main.d.ts.map +1 -0
  591. package/dist/types/page-layout/PageContent.d.ts +7 -0
  592. package/dist/types/page-layout/PageContent.d.ts.map +1 -0
  593. package/dist/types/page-layout/index.d.ts +7 -0
  594. package/dist/types/page-layout/index.d.ts.map +1 -0
  595. package/dist/types/pagination/Pagination.d.ts +3 -0
  596. package/dist/types/pagination/Pagination.d.ts.map +1 -1
  597. package/dist/types/popover/Popover.d.ts +32 -4
  598. package/dist/types/popover/Popover.d.ts.map +1 -1
  599. package/dist/types/popover/index.d.ts +1 -1
  600. package/dist/types/popover/index.d.ts.map +1 -1
  601. package/dist/types/radio-button/RadioButton.d.ts +3 -0
  602. package/dist/types/radio-button/RadioButton.d.ts.map +1 -1
  603. package/dist/types/rich-input/RichInput.d.ts +8 -1
  604. package/dist/types/rich-input/RichInput.d.ts.map +1 -1
  605. package/dist/types/section-title/SectionTitle.d.ts +8 -2
  606. package/dist/types/section-title/SectionTitle.d.ts.map +1 -1
  607. package/dist/types/section-title/index.d.ts +1 -1
  608. package/dist/types/section-title/index.d.ts.map +1 -1
  609. package/dist/types/segmented-control/SegmentedControl.d.ts +1 -0
  610. package/dist/types/segmented-control/SegmentedControl.d.ts.map +1 -1
  611. package/dist/types/segmented-control/SegmentedControlCard.d.ts +1 -0
  612. package/dist/types/segmented-control/SegmentedControlCard.d.ts.map +1 -1
  613. package/dist/types/sidebar/Sidebar.d.ts +15 -0
  614. package/dist/types/sidebar/Sidebar.d.ts.map +1 -0
  615. package/dist/types/sidebar/SidebarContext.d.ts +6 -0
  616. package/dist/types/sidebar/SidebarContext.d.ts.map +1 -0
  617. package/dist/types/sidebar/SidebarGroup.d.ts +7 -0
  618. package/dist/types/sidebar/SidebarGroup.d.ts.map +1 -0
  619. package/dist/types/sidebar/SidebarInset.d.ts +5 -0
  620. package/dist/types/sidebar/SidebarInset.d.ts.map +1 -0
  621. package/dist/types/sidebar/SidebarItem.d.ts +10 -0
  622. package/dist/types/sidebar/SidebarItem.d.ts.map +1 -0
  623. package/dist/types/sidebar/SidebarLayout.d.ts +18 -0
  624. package/dist/types/sidebar/SidebarLayout.d.ts.map +1 -0
  625. package/dist/types/sidebar/SidebarToggle.d.ts +13 -0
  626. package/dist/types/sidebar/SidebarToggle.d.ts.map +1 -0
  627. package/dist/types/sidebar/index.d.ts +17 -0
  628. package/dist/types/sidebar/index.d.ts.map +1 -0
  629. package/dist/types/sidebar/useSidebarDrawer.d.ts +23 -0
  630. package/dist/types/sidebar/useSidebarDrawer.d.ts.map +1 -0
  631. package/dist/types/skeleton/Skeleton.d.ts +17 -3
  632. package/dist/types/skeleton/Skeleton.d.ts.map +1 -1
  633. package/dist/types/skip-link/SkipLink.d.ts +11 -0
  634. package/dist/types/skip-link/SkipLink.d.ts.map +1 -0
  635. package/dist/types/skip-link/index.d.ts +3 -0
  636. package/dist/types/skip-link/index.d.ts.map +1 -0
  637. package/dist/types/slider/Slider.d.ts +1 -0
  638. package/dist/types/slider/Slider.d.ts.map +1 -1
  639. package/dist/types/small-card/SmallCard.d.ts +21 -2
  640. package/dist/types/small-card/SmallCard.d.ts.map +1 -1
  641. package/dist/types/stack/Stack.d.ts +24 -15
  642. package/dist/types/stack/Stack.d.ts.map +1 -1
  643. package/dist/types/stack/index.d.ts +1 -1
  644. package/dist/types/stack/index.d.ts.map +1 -1
  645. package/dist/types/stat-item/StatItem.d.ts +6 -0
  646. package/dist/types/stat-item/StatItem.d.ts.map +1 -1
  647. package/dist/types/switch/Switch.d.ts +3 -0
  648. package/dist/types/switch/Switch.d.ts.map +1 -1
  649. package/dist/types/tabs/Tabs.d.ts +1 -0
  650. package/dist/types/tabs/Tabs.d.ts.map +1 -1
  651. package/dist/types/tag/Tag.d.ts +31 -3
  652. package/dist/types/tag/Tag.d.ts.map +1 -1
  653. package/dist/types/text-link/TextLink.d.ts +25 -2
  654. package/dist/types/text-link/TextLink.d.ts.map +1 -1
  655. package/dist/types/text-link/index.d.ts +1 -1
  656. package/dist/types/text-link/index.d.ts.map +1 -1
  657. package/dist/types/theme-switcher/ThemeSwitcher.d.ts +9 -3
  658. package/dist/types/theme-switcher/ThemeSwitcher.d.ts.map +1 -1
  659. package/dist/types/token-amount/TokenAmount.d.ts +1 -0
  660. package/dist/types/token-amount/TokenAmount.d.ts.map +1 -1
  661. package/dist/types/token-selector/TokenSelector.d.ts +5 -1
  662. package/dist/types/token-selector/TokenSelector.d.ts.map +1 -1
  663. package/dist/types/tooltip/Tooltip.d.ts +2 -0
  664. package/dist/types/tooltip/Tooltip.d.ts.map +1 -1
  665. package/dist/types/tx-status/TxStatus.d.ts +3 -0
  666. package/dist/types/tx-status/TxStatus.d.ts.map +1 -1
  667. package/dist/types/typography/Typography.d.ts +4 -0
  668. package/dist/types/typography/Typography.d.ts.map +1 -1
  669. package/dist/types/utils/ActionElement.d.ts +4 -4
  670. package/dist/types/utils/ActionElement.d.ts.map +1 -1
  671. package/dist/types/utils/breakpoints.d.ts +16 -0
  672. package/dist/types/utils/breakpoints.d.ts.map +1 -0
  673. package/dist/types/utils/index.d.ts +5 -2
  674. package/dist/types/utils/index.d.ts.map +1 -1
  675. package/dist/types/utils/polymorphic.d.ts +15 -0
  676. package/dist/types/utils/polymorphic.d.ts.map +1 -0
  677. package/dist/types/utils/responsive.d.ts +29 -14
  678. package/dist/types/utils/responsive.d.ts.map +1 -1
  679. package/package.json +7 -3
@@ -6,79 +6,107 @@ const react = require('react');
6
6
  const cn = require('classnames');
7
7
  const Breadcrumbs_module = require('./Breadcrumbs.module.css.cjs');
8
8
  const jsxRuntime = require('react/jsx-runtime');
9
+ const useEdgeFade = require('../hooks/useEdgeFade.cjs');
10
+ const useIsomorphicLayoutEffect = require('../hooks/useIsomorphicLayoutEffect.cjs');
9
11
  const ActionElement = require('../utils/ActionElement.cjs');
10
12
  const IconChevronRight = require('../icons/components/base/IconChevronRight.cjs');
11
13
 
12
- const syncFade = list => {
13
- list.toggleAttribute('data-fade-start', list.scrollLeft > 0);
14
- list.toggleAttribute('data-fade-end', list.scrollLeft < list.scrollWidth - list.clientWidth - 1);
14
+ const ANCHOR_ONLY = ['href', 'onClick', 'disabled', 'external', 'linkProps', 'type', 'target', 'rel', 'download'];
15
+ const spanAttrs = props => {
16
+ const attrs = {
17
+ ...props
18
+ };
19
+ for (const key of ANCHOR_ONLY) delete attrs[key];
20
+ return attrs;
15
21
  };
16
22
  const syncTitle = e => {
17
23
  const el = e.target.closest('[data-label]');
18
24
  if (!el) return;
19
25
  if (el.scrollWidth > el.clientWidth) el.setAttribute('title', el.textContent ?? '');else el.removeAttribute('title');
20
26
  };
21
- const Breadcrumbs = _ref => {
27
+
28
+ /** Trail of ancestors ending in the current page (`aria-current="page"`); scrolls horizontally with an edge fade when it overflows. */
29
+ const Breadcrumbs = /*#__PURE__*/react.forwardRef((_ref, ref) => {
22
30
  let {
23
31
  items,
24
32
  className,
33
+ dataTestId,
25
34
  ...rest
26
35
  } = _ref;
27
36
  const listRef = react.useRef(null);
28
- react.useLayoutEffect(() => {
37
+ const {
38
+ sync,
39
+ onFocus
40
+ } = useEdgeFade.useEdgeFade(listRef);
41
+ const trailRef = react.useRef();
42
+ useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
29
43
  const list = listRef.current;
30
44
  if (!list) return;
31
- list.scrollLeft = list.scrollWidth;
32
- syncFade(list);
33
- }, [items]);
45
+ const trail = Array.from(list.children, li => li.textContent).join('\u0000');
46
+ if (trail !== trailRef.current) {
47
+ trailRef.current = trail;
48
+ list.scrollLeft = list.scrollWidth;
49
+ }
50
+ sync();
51
+ });
52
+
53
+ // A list mounted hidden (display: none) can't scroll on mount, so scroll once it gets a width.
34
54
  react.useEffect(() => {
35
55
  const list = listRef.current;
36
56
  if (!list || typeof ResizeObserver === 'undefined') return;
37
- const observer = new ResizeObserver(() => syncFade(list));
57
+ let hidden = list.clientWidth === 0;
58
+ const observer = new ResizeObserver(() => {
59
+ const wasHidden = hidden;
60
+ hidden = list.clientWidth === 0;
61
+ if (!wasHidden || hidden) return;
62
+ list.scrollLeft = list.scrollWidth;
63
+ sync();
64
+ });
38
65
  observer.observe(list);
39
66
  return () => observer.disconnect();
40
- }, []);
67
+ }, [sync]);
41
68
  return /*#__PURE__*/jsxRuntime.jsx("nav", {
69
+ ref: ref,
42
70
  "aria-label": "Breadcrumb",
43
71
  className: cn(Breadcrumbs_module.nav, className),
72
+ "data-testid": dataTestId?.root,
44
73
  ...rest,
45
74
  children: /*#__PURE__*/jsxRuntime.jsx("ol", {
46
75
  ref: listRef,
47
76
  className: Breadcrumbs_module.list,
48
- onScroll: e => syncFade(e.currentTarget),
77
+ "data-testid": dataTestId?.list,
78
+ onScroll: sync,
79
+ onFocus: onFocus,
49
80
  onPointerOver: syncTitle,
50
81
  children: items.map((_ref2, index) => {
51
82
  let {
52
83
  label,
84
+ dataTestId: itemTestId,
53
85
  ...itemProps
54
86
  } = _ref2;
87
+ const current = index === items.length - 1;
55
88
  const labelAttrs = itemProps.title === undefined ? {
56
89
  'data-label': ''
57
90
  } : {};
58
- if (index === items.length - 1) {
59
- return /*#__PURE__*/jsxRuntime.jsx("li", {
60
- className: Breadcrumbs_module.item,
61
- children: /*#__PURE__*/jsxRuntime.jsx("span", {
62
- "aria-current": "page",
63
- className: cn(Breadcrumbs_module.label, Breadcrumbs_module.current),
64
- ...labelAttrs,
65
- children: label
66
- })
67
- }, index);
68
- }
69
- const interactive = itemProps.href !== undefined || itemProps.onClick !== undefined;
91
+ const interactive = !current && (itemProps.href !== undefined || itemProps.onClick !== undefined) && !itemProps.disabled;
70
92
  return /*#__PURE__*/jsxRuntime.jsxs("li", {
71
93
  className: Breadcrumbs_module.item,
72
94
  children: [interactive ? /*#__PURE__*/jsxRuntime.jsx(ActionElement.ActionElement, {
95
+ "data-testid": itemTestId?.root,
73
96
  ...itemProps,
74
97
  ...labelAttrs,
75
98
  className: cn(Breadcrumbs_module.label, Breadcrumbs_module.link, itemProps.className),
76
99
  children: label
77
100
  }) : /*#__PURE__*/jsxRuntime.jsx("span", {
78
- className: Breadcrumbs_module.label,
101
+ "data-testid": itemTestId?.root,
102
+ ...spanAttrs(itemProps),
79
103
  ...labelAttrs,
104
+ ...(current && {
105
+ 'aria-current': 'page'
106
+ }),
107
+ className: cn(Breadcrumbs_module.label, current && Breadcrumbs_module.current, itemProps.className),
80
108
  children: label
81
- }), /*#__PURE__*/jsxRuntime.jsx(IconChevronRight.IconChevronRight, {
109
+ }), !current && /*#__PURE__*/jsxRuntime.jsx(IconChevronRight.IconChevronRight, {
82
110
  className: Breadcrumbs_module.separator,
83
111
  "aria-hidden": "true"
84
112
  })]
@@ -86,7 +114,8 @@ const Breadcrumbs = _ref => {
86
114
  })
87
115
  })
88
116
  });
89
- };
117
+ });
118
+ Breadcrumbs.displayName = 'Breadcrumbs';
90
119
 
91
120
  exports.Breadcrumbs = Breadcrumbs;
92
121
  //# sourceMappingURL=Breadcrumbs.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs.cjs","sources":["../../../src/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react'\nimport type { HTMLAttributes, PointerEvent, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { IconChevronRight } from '../icons'\nimport { ActionElement, type ActionElementProps } from '../utils'\nimport styles from './Breadcrumbs.module.css'\n\nexport type BreadcrumbItem = ActionElementProps & {\n label: ReactNode\n children?: never\n}\n\nexport type BreadcrumbsProps = HTMLAttributes<HTMLElement> & {\n items: BreadcrumbItem[]\n}\n\nconst syncFade = (list: HTMLElement) => {\n list.toggleAttribute('data-fade-start', list.scrollLeft > 0)\n list.toggleAttribute(\n 'data-fade-end',\n list.scrollLeft < list.scrollWidth - list.clientWidth - 1,\n )\n}\n\nconst syncTitle = (e: PointerEvent<HTMLElement>) => {\n const el = (e.target as Element).closest('[data-label]')\n if (!el) return\n if (el.scrollWidth > el.clientWidth)\n el.setAttribute('title', el.textContent ?? '')\n else el.removeAttribute('title')\n}\n\nexport const Breadcrumbs = ({\n items,\n className,\n ...rest\n}: BreadcrumbsProps) => {\n const listRef = useRef<HTMLOListElement>(null)\n\n useLayoutEffect(() => {\n const list = listRef.current\n if (!list) return\n list.scrollLeft = list.scrollWidth\n syncFade(list)\n }, [items])\n\n useEffect(() => {\n const list = listRef.current\n if (!list || typeof ResizeObserver === 'undefined') return\n const observer = new ResizeObserver(() => syncFade(list))\n observer.observe(list)\n return () => observer.disconnect()\n }, [])\n\n return (\n <nav\n aria-label='Breadcrumb'\n className={cn(styles.nav, className)}\n {...rest}\n >\n <ol\n ref={listRef}\n className={styles.list}\n onScroll={(e) => syncFade(e.currentTarget)}\n onPointerOver={syncTitle}\n >\n {items.map(({ label, ...itemProps }, index) => {\n const labelAttrs =\n itemProps.title === undefined ? { 'data-label': '' } : {}\n if (index === items.length - 1) {\n return (\n <li key={index} className={styles.item}>\n <span\n aria-current='page'\n className={cn(styles.label, styles.current)}\n {...labelAttrs}\n >\n {label}\n </span>\n </li>\n )\n }\n const interactive =\n itemProps.href !== undefined || itemProps.onClick !== undefined\n return (\n <li key={index} className={styles.item}>\n {interactive ? (\n <ActionElement\n {...itemProps}\n {...labelAttrs}\n className={cn(styles.label, styles.link, itemProps.className)}\n >\n {label}\n </ActionElement>\n ) : (\n <span className={styles.label} {...labelAttrs}>\n {label}\n </span>\n )}\n <IconChevronRight\n className={styles.separator}\n aria-hidden='true'\n />\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n"],"names":["syncFade","list","toggleAttribute","scrollLeft","scrollWidth","clientWidth","syncTitle","e","el","target","closest","setAttribute","textContent","removeAttribute","Breadcrumbs","_ref","items","className","rest","listRef","useRef","useLayoutEffect","current","useEffect","ResizeObserver","observer","observe","disconnect","_jsx","cn","styles","nav","children","ref","onScroll","currentTarget","onPointerOver","map","_ref2","index","label","itemProps","labelAttrs","title","undefined","length","item","interactive","href","onClick","_jsxs","ActionElement","link","IconChevronRight","separator"],"mappings":"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"}
1
+ {"version":3,"file":"Breadcrumbs.cjs","sources":["../../../src/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef } from 'react'\nimport type { HTMLAttributes, PointerEvent, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { useEdgeFade, useIsomorphicLayoutEffect } from '../hooks'\nimport { IconChevronRight } from '../icons'\nimport { ActionElement, type ActionElementProps } from '../utils'\nimport styles from './Breadcrumbs.module.css'\n\nexport type BreadcrumbItemDataTestId = { root?: string }\n\nexport type BreadcrumbItem = ActionElementProps & {\n label: ReactNode\n children?: never\n /** Test id of the item's label element, for link, plain and current items alike. */\n dataTestId?: BreadcrumbItemDataTestId\n}\n\nexport type BreadcrumbsDataTestId = { root?: string; list?: string }\n\nexport type BreadcrumbsProps = HTMLAttributes<HTMLElement> & {\n /** `href` renders a link, only `onClick` a button, anything else (and `disabled`) plain text; the last item is the current page. */\n items: BreadcrumbItem[]\n dataTestId?: BreadcrumbsDataTestId\n}\n\nconst ANCHOR_ONLY = [\n 'href',\n 'onClick',\n 'disabled',\n 'external',\n 'linkProps',\n 'type',\n 'target',\n 'rel',\n 'download',\n] as const\n\nconst spanAttrs = (props: Omit<BreadcrumbItem, 'label'>) => {\n const attrs: Record<string, unknown> = { ...props }\n for (const key of ANCHOR_ONLY) delete attrs[key]\n return attrs as HTMLAttributes<HTMLSpanElement>\n}\n\nconst syncTitle = (e: PointerEvent<HTMLElement>) => {\n const el = (e.target as Element).closest('[data-label]')\n if (!el) return\n if (el.scrollWidth > el.clientWidth)\n el.setAttribute('title', el.textContent ?? '')\n else el.removeAttribute('title')\n}\n\n/** Trail of ancestors ending in the current page (`aria-current=\"page\"`); scrolls horizontally with an edge fade when it overflows. */\nexport const Breadcrumbs = forwardRef<HTMLElement, BreadcrumbsProps>(\n ({ items, className, dataTestId, ...rest }, ref) => {\n const listRef = useRef<HTMLOListElement>(null)\n\n const { sync, onFocus } = useEdgeFade(listRef)\n const trailRef = useRef<string>()\n\n useIsomorphicLayoutEffect(() => {\n const list = listRef.current\n if (!list) return\n const trail = Array.from(list.children, (li) => li.textContent).join(\n '\\u0000',\n )\n if (trail !== trailRef.current) {\n trailRef.current = trail\n list.scrollLeft = list.scrollWidth\n }\n sync()\n })\n\n // A list mounted hidden (display: none) can't scroll on mount, so scroll once it gets a width.\n useEffect(() => {\n const list = listRef.current\n if (!list || typeof ResizeObserver === 'undefined') return\n let hidden = list.clientWidth === 0\n const observer = new ResizeObserver(() => {\n const wasHidden = hidden\n hidden = list.clientWidth === 0\n if (!wasHidden || hidden) return\n list.scrollLeft = list.scrollWidth\n sync()\n })\n observer.observe(list)\n return () => observer.disconnect()\n }, [sync])\n\n return (\n <nav\n ref={ref}\n aria-label='Breadcrumb'\n className={cn(styles.nav, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <ol\n ref={listRef}\n className={styles.list}\n data-testid={dataTestId?.list}\n onScroll={sync}\n onFocus={onFocus}\n onPointerOver={syncTitle}\n >\n {items.map(\n ({ label, dataTestId: itemTestId, ...itemProps }, index) => {\n const current = index === items.length - 1\n const labelAttrs =\n itemProps.title === undefined ? { 'data-label': '' } : {}\n const interactive =\n !current &&\n (itemProps.href !== undefined ||\n itemProps.onClick !== undefined) &&\n !itemProps.disabled\n return (\n <li key={index} className={styles.item}>\n {interactive ? (\n <ActionElement\n data-testid={itemTestId?.root}\n {...itemProps}\n {...labelAttrs}\n className={cn(\n styles.label,\n styles.link,\n itemProps.className,\n )}\n >\n {label}\n </ActionElement>\n ) : (\n <span\n data-testid={itemTestId?.root}\n {...spanAttrs(itemProps)}\n {...labelAttrs}\n {...(current && { 'aria-current': 'page' as const })}\n className={cn(\n styles.label,\n current && styles.current,\n itemProps.className,\n )}\n >\n {label}\n </span>\n )}\n {!current && (\n <IconChevronRight\n className={styles.separator}\n aria-hidden='true'\n />\n )}\n </li>\n )\n },\n )}\n </ol>\n </nav>\n )\n },\n)\n\nBreadcrumbs.displayName = 'Breadcrumbs'\n"],"names":["ANCHOR_ONLY","spanAttrs","props","attrs","key","syncTitle","e","el","target","closest","scrollWidth","clientWidth","setAttribute","textContent","removeAttribute","Breadcrumbs","forwardRef","_ref","ref","items","className","dataTestId","rest","listRef","useRef","sync","onFocus","useEdgeFade","trailRef","useIsomorphicLayoutEffect","list","current","trail","Array","from","children","li","join","scrollLeft","useEffect","ResizeObserver","hidden","observer","wasHidden","observe","disconnect","_jsx","cn","styles","nav","root","onScroll","onPointerOver","map","_ref2","index","label","itemTestId","itemProps","length","labelAttrs","title","undefined","interactive","href","onClick","disabled","_jsxs","item","ActionElement","link","IconChevronRight","separator","displayName"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const styles = {"nav":"Breadcrumbs-module_nav__cDuA5","list":"Breadcrumbs-module_list__A6dlB","item":"Breadcrumbs-module_item__3t-Zj","label":"Breadcrumbs-module_label__gVU35","link":"Breadcrumbs-module_link__KJ87-","current":"Breadcrumbs-module_current__XK0a2","separator":"Breadcrumbs-module_separator__k-Tmd"};
3
+ const styles = {"nav":"Breadcrumbs-module_nav__cDuA5","list":"Breadcrumbs-module_list__A6dlB ScrollFade-module_scrollFade__bK-Oi","item":"Breadcrumbs-module_item__3t-Zj","label":"Breadcrumbs-module_label__gVU35","link":"Breadcrumbs-module_link__KJ87-","current":"Breadcrumbs-module_current__XK0a2","separator":"Breadcrumbs-module_separator__k-Tmd"};
4
4
 
5
5
  module.exports = styles;
6
6
  //# sourceMappingURL=Breadcrumbs.module.css.cjs.map
@@ -4,11 +4,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const react = require('react');
6
6
  const cn = require('classnames');
7
- const CounterSlot = require('../counter/CounterSlot.cjs');
8
7
  const Button_module = require('./Button.module.css.cjs');
8
+ const ButtonContent = require('./ButtonContent.cjs');
9
9
  const jsxRuntime = require('react/jsx-runtime');
10
- const IconLoaderCircle = require('../icons/components/base/IconLoaderCircle.cjs');
11
10
 
11
+ /** Fully rounded call to action; `size` is big (52px) or small (36px), `loading` swaps the icon slot for a spinner and disables the button. */
12
12
  const Button = /*#__PURE__*/react.forwardRef((_ref, ref) => {
13
13
  let {
14
14
  className,
@@ -21,38 +21,29 @@ const Button = /*#__PURE__*/react.forwardRef((_ref, ref) => {
21
21
  iconLeft,
22
22
  iconRight,
23
23
  counter,
24
+ counterLabel,
24
25
  dataTestId,
26
+ 'aria-label': ariaLabel,
25
27
  ...rest
26
28
  } = _ref;
27
- return /*#__PURE__*/jsxRuntime.jsxs("button", {
29
+ return /*#__PURE__*/jsxRuntime.jsx("button", {
28
30
  ref: ref,
29
31
  type: type,
30
32
  disabled: disabled || loading,
31
33
  "aria-busy": loading || undefined,
32
- className: cn(Button_module.button, Button_module[variant], Button_module[size], loading && Button_module.loading, className),
34
+ className: cn(Button_module.button, Button_module[variant], Button_module[size], loading && !disabled && Button_module.loading, className),
33
35
  "data-testid": dataTestId?.root,
36
+ "aria-label": ButtonContent.joinAriaLabel(ariaLabel, counterLabel),
34
37
  ...rest,
35
- children: [loading ? /*#__PURE__*/jsxRuntime.jsx(IconLoaderCircle.IconLoaderCircle, {
36
- className: Button_module.spinner,
37
- "aria-hidden": "true"
38
- }) : iconLeft != null && /*#__PURE__*/jsxRuntime.jsx("span", {
39
- className: Button_module.icon,
40
- "aria-hidden": "true",
41
- "data-testid": dataTestId?.iconLeft,
42
- children: iconLeft
43
- }), /*#__PURE__*/jsxRuntime.jsx("span", {
44
- className: Button_module.content,
45
- "data-testid": dataTestId?.content,
38
+ children: /*#__PURE__*/jsxRuntime.jsx(ButtonContent.ButtonContent, {
39
+ loading: loading,
40
+ iconLeft: iconLeft,
41
+ iconRight: iconRight,
42
+ counter: counter,
43
+ counterLabel: counterLabel,
44
+ dataTestId: dataTestId,
46
45
  children: children
47
- }), !loading && iconRight != null ? /*#__PURE__*/jsxRuntime.jsx("span", {
48
- className: Button_module.icon,
49
- "aria-hidden": "true",
50
- "data-testid": dataTestId?.iconRight,
51
- children: iconRight
52
- }) : null, /*#__PURE__*/jsxRuntime.jsx(CounterSlot.CounterSlot, {
53
- dataTestId: dataTestId?.counter,
54
- children: counter
55
- })]
46
+ })
56
47
  });
57
48
  });
58
49
  Button.displayName = 'Button';
@@ -1 +1 @@
1
- {"version":3,"file":"Button.cjs","sources":["../../../src/button/Button.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { CounterSlot } from '../counter/CounterSlot'\nimport { IconLoaderCircle } from '../icons'\nimport styles from './Button.module.css'\n\nexport type ButtonVariant = 'primary' | 'outline' | 'subtle' | 'ghost' | 'error'\n\nexport type ButtonSize = 'big' | 'small'\n\nexport type ButtonDataTestId = {\n root?: string\n iconLeft?: string\n iconRight?: string\n content?: string\n counter?: string\n}\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n variant?: ButtonVariant\n size?: ButtonSize\n loading?: boolean\n iconLeft?: ReactNode\n iconRight?: ReactNode\n /** Corner slot, aria-hidden: put the count into `aria-label`. */\n counter?: ReactNode\n dataTestId?: ButtonDataTestId\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n children,\n type = 'button',\n variant = 'primary',\n size = 'big',\n loading = false,\n disabled = false,\n iconLeft,\n iconRight,\n counter,\n dataTestId,\n ...rest\n },\n ref,\n ) => (\n <button\n ref={ref}\n type={type}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n className={cn(\n styles.button,\n styles[variant],\n styles[size],\n loading && styles.loading,\n className,\n )}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {loading ? (\n <IconLoaderCircle className={styles.spinner} aria-hidden='true' />\n ) : (\n iconLeft != null && (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.iconLeft}\n >\n {iconLeft}\n </span>\n )\n )}\n <span className={styles.content} data-testid={dataTestId?.content}>\n {children}\n </span>\n {!loading && iconRight != null ? (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.iconRight}\n >\n {iconRight}\n </span>\n ) : null}\n <CounterSlot dataTestId={dataTestId?.counter}>{counter}</CounterSlot>\n </button>\n ),\n)\n\nButton.displayName = 'Button'\n"],"names":["Button","forwardRef","_ref","ref","className","children","type","variant","size","loading","disabled","iconLeft","iconRight","counter","dataTestId","rest","_jsxs","undefined","cn","styles","button","root","_jsx","IconLoaderCircle","spinner","icon","content","CounterSlot","displayName"],"mappings":";;;;;;;;;;;AA+BO,MAAMA,MAAM,gBAAGC,gBAAU,CAC9B,CAAAC,IAAA,EAeEC,GAAG,KAAA;EAAA,IAdH;IACEC,SAAS;IACTC,QAAQ;AACRC,IAAAA,IAAI,GAAG,QAAQ;AACfC,IAAAA,OAAO,GAAG,SAAS;AACnBC,IAAAA,IAAI,GAAG,KAAK;AACZC,IAAAA,OAAO,GAAG,KAAK;AACfC,IAAAA,QAAQ,GAAG,KAAK;IAChBC,QAAQ;IACRC,SAAS;IACTC,OAAO;IACPC,UAAU;IACV,GAAGC,IAAAA;AACL,GAAC,GAAAb,IAAA,CAAA;AAAA,EAAA,oBAGDc,eAAA,CAAA,QAAA,EAAA;AACEb,IAAAA,GAAG,EAAEA,GAAI;AACTG,IAAAA,IAAI,EAAEA,IAAK;IACXI,QAAQ,EAAEA,QAAQ,IAAID,OAAQ;IAC9B,WAAWA,EAAAA,OAAO,IAAIQ,SAAU;IAChCb,SAAS,EAAEc,EAAE,CACXC,aAAM,CAACC,MAAM,EACbD,aAAM,CAACZ,OAAO,CAAC,EACfY,aAAM,CAACX,IAAI,CAAC,EACZC,OAAO,IAAIU,aAAM,CAACV,OAAO,EACzBL,SACF,CAAE;IACF,aAAaU,EAAAA,UAAU,EAAEO,IAAK;AAAA,IAAA,GAC1BN,IAAI;AAAAV,IAAAA,QAAA,EAEPI,CAAAA,OAAO,gBACNa,cAAA,CAACC,iCAAgB,EAAA;MAACnB,SAAS,EAAEe,aAAM,CAACK,OAAQ;MAAC,aAAY,EAAA,MAAA;AAAM,KAAE,CAAC,GAElEb,QAAQ,IAAI,IAAI,iBACdW,cAAA,CAAA,MAAA,EAAA;MACElB,SAAS,EAAEe,aAAM,CAACM,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaX,EAAAA,UAAU,EAAEH,QAAS;AAAAN,MAAAA,QAAA,EAEjCM,QAAAA;KACG,CAET,eACDW,cAAA,CAAA,MAAA,EAAA;MAAMlB,SAAS,EAAEe,aAAM,CAACO,OAAQ;MAAC,aAAaZ,EAAAA,UAAU,EAAEY,OAAQ;AAAArB,MAAAA,QAAA,EAC/DA,QAAAA;KACG,CAAC,EACN,CAACI,OAAO,IAAIG,SAAS,IAAI,IAAI,gBAC5BU,cAAA,CAAA,MAAA,EAAA;MACElB,SAAS,EAAEe,aAAM,CAACM,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaX,EAAAA,UAAU,EAAEF,SAAU;AAAAP,MAAAA,QAAA,EAElCO,SAAAA;AAAS,KACN,CAAC,GACL,IAAI,eACRU,cAAA,CAACK,uBAAW,EAAA;MAACb,UAAU,EAAEA,UAAU,EAAED,OAAQ;AAAAR,MAAAA,QAAA,EAAEQ,OAAAA;AAAO,KAAc,CAAC,CAAA;AAAA,GAC/D,CAAC,CAAA;AAAA,CAEb,EAAC;AAEDb,MAAM,CAAC4B,WAAW,GAAG,QAAQ;;;;"}
1
+ {"version":3,"file":"Button.cjs","sources":["../../../src/button/Button.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Button.module.css'\nimport { ButtonContent, joinAriaLabel } from './ButtonContent'\nimport type {\n ButtonDataTestId,\n ButtonOwnProps,\n ButtonSize,\n ButtonVariant,\n} from './types'\n\nexport type { ButtonDataTestId, ButtonSize, ButtonVariant }\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> &\n ButtonOwnProps & {\n loading?: boolean\n }\n\n/** Fully rounded call to action; `size` is big (52px) or small (36px), `loading` swaps the icon slot for a spinner and disables the button. */\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n children,\n type = 'button',\n variant = 'primary',\n size = 'big',\n loading = false,\n disabled = false,\n iconLeft,\n iconRight,\n counter,\n counterLabel,\n dataTestId,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref,\n ) => (\n <button\n ref={ref}\n type={type}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n className={cn(\n styles.button,\n styles[variant],\n styles[size],\n loading && !disabled && styles.loading,\n className,\n )}\n data-testid={dataTestId?.root}\n aria-label={joinAriaLabel(ariaLabel, counterLabel)}\n {...rest}\n >\n <ButtonContent\n loading={loading}\n iconLeft={iconLeft}\n iconRight={iconRight}\n counter={counter}\n counterLabel={counterLabel}\n dataTestId={dataTestId}\n >\n {children}\n </ButtonContent>\n </button>\n ),\n)\n\nButton.displayName = 'Button'\n"],"names":["Button","forwardRef","_ref","ref","className","children","type","variant","size","loading","disabled","iconLeft","iconRight","counter","counterLabel","dataTestId","ariaLabel","rest","_jsx","undefined","cn","styles","button","root","joinAriaLabel","ButtonContent","displayName"],"mappings":";;;;;;;;;;AAoBA;AACO,MAAMA,MAAM,gBAAGC,gBAAU,CAC9B,CAAAC,IAAA,EAiBEC,GAAG,KAAA;EAAA,IAhBH;IACEC,SAAS;IACTC,QAAQ;AACRC,IAAAA,IAAI,GAAG,QAAQ;AACfC,IAAAA,OAAO,GAAG,SAAS;AACnBC,IAAAA,IAAI,GAAG,KAAK;AACZC,IAAAA,OAAO,GAAG,KAAK;AACfC,IAAAA,QAAQ,GAAG,KAAK;IAChBC,QAAQ;IACRC,SAAS;IACTC,OAAO;IACPC,YAAY;IACZC,UAAU;AACV,IAAA,YAAY,EAAEC,SAAS;IACvB,GAAGC,IAAAA;AACL,GAAC,GAAAf,IAAA,CAAA;AAAA,EAAA,oBAGDgB,cAAA,CAAA,QAAA,EAAA;AACEf,IAAAA,GAAG,EAAEA,GAAI;AACTG,IAAAA,IAAI,EAAEA,IAAK;IACXI,QAAQ,EAAEA,QAAQ,IAAID,OAAQ;IAC9B,WAAWA,EAAAA,OAAO,IAAIU,SAAU;IAChCf,SAAS,EAAEgB,EAAE,CACXC,aAAM,CAACC,MAAM,EACbD,aAAM,CAACd,OAAO,CAAC,EACfc,aAAM,CAACb,IAAI,CAAC,EACZC,OAAO,IAAI,CAACC,QAAQ,IAAIW,aAAM,CAACZ,OAAO,EACtCL,SACF,CAAE;IACF,aAAaW,EAAAA,UAAU,EAAEQ,IAAK;AAC9B,IAAA,YAAA,EAAYC,2BAAa,CAACR,SAAS,EAAEF,YAAY,CAAE;AAAA,IAAA,GAC/CG,IAAI;IAAAZ,QAAA,eAERa,cAAA,CAACO,2BAAa,EAAA;AACZhB,MAAAA,OAAO,EAAEA,OAAQ;AACjBE,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,SAAS,EAAEA,SAAU;AACrBC,MAAAA,OAAO,EAAEA,OAAQ;AACjBC,MAAAA,YAAY,EAAEA,YAAa;AAC3BC,MAAAA,UAAU,EAAEA,UAAW;AAAAV,MAAAA,QAAA,EAEtBA,QAAAA;KACY,CAAA;AAAC,GACV,CAAC,CAAA;AAAA,CAEb,EAAC;AAEDL,MAAM,CAAC0B,WAAW,GAAG,QAAQ;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const styles = {"button":"Button-module_button__eiKKZ","content":"Button-module_content__SVjwi","icon":"Button-module_icon__Ojq-e","spinner":"Button-module_spinner__QToZm","spin":"Button-module_spin__Q6mex","big":"Button-module_big__-gJao","small":"Button-module_small__U2Zqq","primary":"Button-module_primary__EU45Z","outline":"Button-module_outline__Jx-Hc","subtle":"Button-module_subtle__2DyRK","ghost":"Button-module_ghost__OX4Ks","error":"Button-module_error__qp2tu","loading":"Button-module_loading__wZ1IR"};
3
+ const styles = {"button":"Button-module_button__eiKKZ","loading":"Button-module_loading__wZ1IR","content":"Button-module_content__SVjwi","icon":"Button-module_icon__Ojq-e","spinner":"Button-module_spinner__QToZm","spin":"Button-module_spin__Q6mex","big":"Button-module_big__-gJao","small":"Button-module_small__U2Zqq","primary":"Button-module_primary__EU45Z","outline":"Button-module_outline__Jx-Hc","subtle":"Button-module_subtle__2DyRK","ghost":"Button-module_ghost__OX4Ks","error":"Button-module_error__qp2tu"};
4
4
 
5
5
  module.exports = styles;
6
6
  //# sourceMappingURL=Button.module.css.cjs.map
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const CounterSlot = require('../counter/CounterSlot.cjs');
6
+ const Button_module = require('./Button.module.css.cjs');
7
+ const jsxRuntime = require('react/jsx-runtime');
8
+ const IconLoaderCircle = require('../icons/components/base/IconLoaderCircle.cjs');
9
+
10
+ const joinAriaLabel = (ariaLabel, counterLabel) => ariaLabel && counterLabel ? `${ariaLabel}, ${counterLabel}` : ariaLabel;
11
+ const ButtonContent = _ref => {
12
+ let {
13
+ loading = false,
14
+ iconLeft,
15
+ iconRight,
16
+ counter,
17
+ counterLabel,
18
+ dataTestId,
19
+ children
20
+ } = _ref;
21
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
22
+ children: [loading ? /*#__PURE__*/jsxRuntime.jsx(IconLoaderCircle.IconLoaderCircle, {
23
+ className: Button_module.spinner,
24
+ "aria-hidden": "true"
25
+ }) : iconLeft != null && /*#__PURE__*/jsxRuntime.jsx("span", {
26
+ className: Button_module.icon,
27
+ "aria-hidden": "true",
28
+ "data-testid": dataTestId?.iconLeft,
29
+ children: iconLeft
30
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
31
+ className: Button_module.content,
32
+ "data-testid": dataTestId?.content,
33
+ children: children
34
+ }), !loading && iconRight != null ? /*#__PURE__*/jsxRuntime.jsx("span", {
35
+ className: Button_module.icon,
36
+ "aria-hidden": "true",
37
+ "data-testid": dataTestId?.iconRight,
38
+ children: iconRight
39
+ }) : null, /*#__PURE__*/jsxRuntime.jsx(CounterSlot.CounterSlot, {
40
+ dataTestId: dataTestId?.counter,
41
+ children: counter
42
+ }), /*#__PURE__*/jsxRuntime.jsx(CounterSlot.CounterLabel, {
43
+ children: counterLabel
44
+ })]
45
+ });
46
+ };
47
+
48
+ exports.ButtonContent = ButtonContent;
49
+ exports.joinAriaLabel = joinAriaLabel;
50
+ //# sourceMappingURL=ButtonContent.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonContent.cjs","sources":["../../../src/button/ButtonContent.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nimport { CounterLabel, CounterSlot } from '../counter/CounterSlot'\nimport { IconLoaderCircle } from '../icons'\nimport styles from './Button.module.css'\nimport type { ButtonOwnProps } from './types'\n\nexport const joinAriaLabel = (\n ariaLabel: string | undefined,\n counterLabel: string | undefined,\n) => (ariaLabel && counterLabel ? `${ariaLabel}, ${counterLabel}` : ariaLabel)\n\ntype ButtonContentProps = Pick<\n ButtonOwnProps,\n 'iconLeft' | 'iconRight' | 'counter' | 'counterLabel' | 'dataTestId'\n> & {\n loading?: boolean\n children?: ReactNode\n}\n\nexport const ButtonContent = ({\n loading = false,\n iconLeft,\n iconRight,\n counter,\n counterLabel,\n dataTestId,\n children,\n}: ButtonContentProps) => (\n <>\n {loading ? (\n <IconLoaderCircle className={styles.spinner} aria-hidden='true' />\n ) : (\n iconLeft != null && (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.iconLeft}\n >\n {iconLeft}\n </span>\n )\n )}\n <span className={styles.content} data-testid={dataTestId?.content}>\n {children}\n </span>\n {!loading && iconRight != null ? (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.iconRight}\n >\n {iconRight}\n </span>\n ) : null}\n <CounterSlot dataTestId={dataTestId?.counter}>{counter}</CounterSlot>\n <CounterLabel>{counterLabel}</CounterLabel>\n </>\n)\n"],"names":["joinAriaLabel","ariaLabel","counterLabel","ButtonContent","_ref","loading","iconLeft","iconRight","counter","dataTestId","children","_jsxs","_Fragment","_jsx","IconLoaderCircle","className","styles","spinner","icon","content","CounterSlot","CounterLabel"],"mappings":";;;;;;;;;MAOaA,aAAa,GAAGA,CAC3BC,SAA6B,EAC7BC,YAAgC,KAC5BD,SAAS,IAAIC,YAAY,GAAG,CAAGD,EAAAA,SAAS,KAAKC,YAAY,CAAA,CAAE,GAAGD,UAAU;AAUvE,MAAME,aAAa,GAAGC,IAAA,IAAA;EAAA,IAAC;AAC5BC,IAAAA,OAAO,GAAG,KAAK;IACfC,QAAQ;IACRC,SAAS;IACTC,OAAO;IACPN,YAAY;IACZO,UAAU;AACVC,IAAAA,QAAAA;AACkB,GAAC,GAAAN,IAAA,CAAA;EAAA,oBACnBO,eAAA,CAAAC,mBAAA,EAAA;AAAAF,IAAAA,QAAA,EACGL,CAAAA,OAAO,gBACNQ,cAAA,CAACC,iCAAgB,EAAA;MAACC,SAAS,EAAEC,aAAM,CAACC,OAAQ;MAAC,aAAY,EAAA,MAAA;AAAM,KAAE,CAAC,GAElEX,QAAQ,IAAI,IAAI,iBACdO,cAAA,CAAA,MAAA,EAAA;MACEE,SAAS,EAAEC,aAAM,CAACE,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaT,EAAAA,UAAU,EAAEH,QAAS;AAAAI,MAAAA,QAAA,EAEjCJ,QAAAA;KACG,CAET,eACDO,cAAA,CAAA,MAAA,EAAA;MAAME,SAAS,EAAEC,aAAM,CAACG,OAAQ;MAAC,aAAaV,EAAAA,UAAU,EAAEU,OAAQ;AAAAT,MAAAA,QAAA,EAC/DA,QAAAA;KACG,CAAC,EACN,CAACL,OAAO,IAAIE,SAAS,IAAI,IAAI,gBAC5BM,cAAA,CAAA,MAAA,EAAA;MACEE,SAAS,EAAEC,aAAM,CAACE,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaT,EAAAA,UAAU,EAAEF,SAAU;AAAAG,MAAAA,QAAA,EAElCH,SAAAA;AAAS,KACN,CAAC,GACL,IAAI,eACRM,cAAA,CAACO,uBAAW,EAAA;MAACX,UAAU,EAAEA,UAAU,EAAED,OAAQ;AAAAE,MAAAA,QAAA,EAAEF,OAAAA;AAAO,KAAc,CAAC,eACrEK,cAAA,CAACQ,wBAAY,EAAA;AAAAX,MAAAA,QAAA,EAAER,YAAAA;AAAY,KAAe,CAAC,CAAA;AAAA,GAC3C,CAAC,CAAA;AAAA;;;;;"}
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const react = require('react');
6
+ const cn = require('classnames');
7
+ const Anchor = require('../link-provider/Anchor.cjs');
8
+ const Button_module = require('./Button.module.css.cjs');
9
+ const ButtonContent = require('./ButtonContent.cjs');
10
+ const jsxRuntime = require('react/jsx-runtime');
11
+
12
+ /** Button-styled `<a>` that routes through `LinkProvider`; `disabled` drops the `href`. */
13
+ const LinkButton = /*#__PURE__*/react.forwardRef((_ref, ref) => {
14
+ let {
15
+ className,
16
+ children,
17
+ variant = 'primary',
18
+ size = 'big',
19
+ iconLeft,
20
+ iconRight,
21
+ counter,
22
+ counterLabel,
23
+ dataTestId,
24
+ 'aria-label': ariaLabel,
25
+ ...rest
26
+ } = _ref;
27
+ return /*#__PURE__*/jsxRuntime.jsx(Anchor.Anchor, {
28
+ ref: ref,
29
+ className: cn(Button_module.button, Button_module[variant], Button_module[size], className),
30
+ "data-testid": dataTestId?.root,
31
+ "aria-label": ButtonContent.joinAriaLabel(ariaLabel, counterLabel),
32
+ ...rest,
33
+ children: /*#__PURE__*/jsxRuntime.jsx(ButtonContent.ButtonContent, {
34
+ iconLeft: iconLeft,
35
+ iconRight: iconRight,
36
+ counter: counter,
37
+ counterLabel: counterLabel,
38
+ dataTestId: dataTestId,
39
+ children: children
40
+ })
41
+ });
42
+ });
43
+ LinkButton.displayName = 'LinkButton';
44
+
45
+ exports.LinkButton = LinkButton;
46
+ //# sourceMappingURL=LinkButton.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkButton.cjs","sources":["../../../src/button/LinkButton.tsx"],"sourcesContent":["import { forwardRef } from 'react'\n\nimport cn from 'classnames'\n\nimport { Anchor, type AnchorProps } from '../link-provider/Anchor'\nimport styles from './Button.module.css'\nimport { ButtonContent, joinAriaLabel } from './ButtonContent'\nimport type { ButtonOwnProps } from './types'\n\nexport type LinkButtonProps = Omit<AnchorProps, 'href'> &\n ButtonOwnProps & {\n href: string\n }\n\n/** Button-styled `<a>` that routes through `LinkProvider`; `disabled` drops the `href`. */\nexport const LinkButton = forwardRef<HTMLAnchorElement, LinkButtonProps>(\n (\n {\n className,\n children,\n variant = 'primary',\n size = 'big',\n iconLeft,\n iconRight,\n counter,\n counterLabel,\n dataTestId,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref,\n ) => (\n <Anchor\n ref={ref}\n className={cn(styles.button, styles[variant], styles[size], className)}\n data-testid={dataTestId?.root}\n aria-label={joinAriaLabel(ariaLabel, counterLabel)}\n {...rest}\n >\n <ButtonContent\n iconLeft={iconLeft}\n iconRight={iconRight}\n counter={counter}\n counterLabel={counterLabel}\n dataTestId={dataTestId}\n >\n {children}\n </ButtonContent>\n </Anchor>\n ),\n)\n\nLinkButton.displayName = 'LinkButton'\n"],"names":["LinkButton","forwardRef","_ref","ref","className","children","variant","size","iconLeft","iconRight","counter","counterLabel","dataTestId","ariaLabel","rest","_jsx","Anchor","cn","styles","button","root","joinAriaLabel","ButtonContent","displayName"],"mappings":";;;;;;;;;;;AAcA;AACO,MAAMA,UAAU,gBAAGC,gBAAU,CAClC,CAAAC,IAAA,EAcEC,GAAG,KAAA;EAAA,IAbH;IACEC,SAAS;IACTC,QAAQ;AACRC,IAAAA,OAAO,GAAG,SAAS;AACnBC,IAAAA,IAAI,GAAG,KAAK;IACZC,QAAQ;IACRC,SAAS;IACTC,OAAO;IACPC,YAAY;IACZC,UAAU;AACV,IAAA,YAAY,EAAEC,SAAS;IACvB,GAAGC,IAAAA;AACL,GAAC,GAAAZ,IAAA,CAAA;EAAA,oBAGDa,cAAA,CAACC,aAAM,EAAA;AACLb,IAAAA,GAAG,EAAEA,GAAI;AACTC,IAAAA,SAAS,EAAEa,EAAE,CAACC,aAAM,CAACC,MAAM,EAAED,aAAM,CAACZ,OAAO,CAAC,EAAEY,aAAM,CAACX,IAAI,CAAC,EAAEH,SAAS,CAAE;IACvE,aAAaQ,EAAAA,UAAU,EAAEQ,IAAK;AAC9B,IAAA,YAAA,EAAYC,2BAAa,CAACR,SAAS,EAAEF,YAAY,CAAE;AAAA,IAAA,GAC/CG,IAAI;IAAAT,QAAA,eAERU,cAAA,CAACO,2BAAa,EAAA;AACZd,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,SAAS,EAAEA,SAAU;AACrBC,MAAAA,OAAO,EAAEA,OAAQ;AACjBC,MAAAA,YAAY,EAAEA,YAAa;AAC3BC,MAAAA,UAAU,EAAEA,UAAW;AAAAP,MAAAA,QAAA,EAEtBA,QAAAA;KACY,CAAA;AAAC,GACV,CAAC,CAAA;AAAA,CAEb,EAAC;AAEDL,UAAU,CAACuB,WAAW,GAAG,YAAY;;;;"}
@@ -6,6 +6,7 @@ const cn = require('classnames');
6
6
  const Card_module = require('./Card.module.css.cjs');
7
7
  const jsxRuntime = require('react/jsx-runtime');
8
8
 
9
+ /** Rounded, bordered surface that fills the width its parent gives it. */
9
10
  const Card = _ref => {
10
11
  let {
11
12
  className,
@@ -1 +1 @@
1
- {"version":3,"file":"Card.cjs","sources":["../../../src/card/Card.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Card.module.css'\n\nexport type CardDataTestId = {\n root?: string\n}\n\nexport type CardProps = HTMLAttributes<HTMLDivElement> & {\n dataTestId?: CardDataTestId\n}\n\nexport const Card = ({\n className,\n children,\n dataTestId,\n ...rest\n}: CardProps) => (\n <div\n className={cn(styles.card, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {children}\n </div>\n)\n"],"names":["Card","_ref","className","children","dataTestId","rest","_jsx","cn","styles","card","root"],"mappings":";;;;;;;;AAcO,MAAMA,IAAI,GAAGC,IAAA,IAAA;EAAA,IAAC;IACnBC,SAAS;IACTC,QAAQ;IACRC,UAAU;IACV,GAAGC,IAAAA;AACM,GAAC,GAAAJ,IAAA,CAAA;AAAA,EAAA,oBACVK,cAAA,CAAA,KAAA,EAAA;IACEJ,SAAS,EAAEK,EAAE,CAACC,WAAM,CAACC,IAAI,EAAEP,SAAS,CAAE;IACtC,aAAaE,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;AAAAF,IAAAA,QAAA,EAEPA,QAAAA;AAAQ,GACN,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"Card.cjs","sources":["../../../src/card/Card.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Card.module.css'\n\nexport type CardDataTestId = {\n root?: string\n}\n\nexport type CardProps = HTMLAttributes<HTMLDivElement> & {\n dataTestId?: CardDataTestId\n}\n\n/** Rounded, bordered surface that fills the width its parent gives it. */\nexport const Card = ({\n className,\n children,\n dataTestId,\n ...rest\n}: CardProps) => (\n <div\n className={cn(styles.card, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {children}\n </div>\n)\n"],"names":["Card","_ref","className","children","dataTestId","rest","_jsx","cn","styles","card","root"],"mappings":";;;;;;;;AAcA;AACO,MAAMA,IAAI,GAAGC,IAAA,IAAA;EAAA,IAAC;IACnBC,SAAS;IACTC,QAAQ;IACRC,UAAU;IACV,GAAGC,IAAAA;AACM,GAAC,GAAAJ,IAAA,CAAA;AAAA,EAAA,oBACVK,cAAA,CAAA,KAAA,EAAA;IACEJ,SAAS,EAAEK,EAAE,CAACC,WAAM,CAACC,IAAI,EAAEP,SAAS,CAAE;IACtC,aAAaE,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;AAAAF,IAAAA,QAAA,EAEPA,QAAAA;AAAQ,GACN,CAAC,CAAA;AAAA;;;;"}
@@ -8,6 +8,7 @@ const Checkbox_module = require('./Checkbox.module.css.cjs');
8
8
  const jsxRuntime = require('react/jsx-runtime');
9
9
  const IconCheck = require('../icons/components/base/IconCheck.cjs');
10
10
 
11
+ /** 24px box wrapped in a `<label>` so the text is clickable; forwards every native input prop. */
11
12
  const Checkbox = /*#__PURE__*/react.forwardRef((_ref, ref) => {
12
13
  let {
13
14
  label,
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.cjs","sources":["../../../src/checkbox/Checkbox.tsx"],"sourcesContent":["import { forwardRef, type InputHTMLAttributes, type ReactNode } from 'react'\n\nimport { IconCheck } from '../icons'\nimport cn from 'classnames'\n\nimport styles from './Checkbox.module.css'\n\nexport type CheckboxDataTestId = {\n root?: string\n input?: string\n label?: string\n}\n\nexport type CheckboxProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'type'\n> & {\n label?: ReactNode\n dataTestId?: CheckboxDataTestId\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ label, className, disabled, dataTestId, ...rest }, ref) => (\n <label\n className={cn(styles.container, className, {\n [styles.containerDisabled]: disabled,\n })}\n data-testid={dataTestId?.root}\n >\n <span className={styles.control}>\n <input\n ref={ref}\n type='checkbox'\n className={styles.input}\n disabled={disabled}\n data-testid={dataTestId?.input}\n {...rest}\n />\n <IconCheck className={styles.tick} />\n </span>\n {label ? (\n <span\n className={cn(styles.label, { [styles.labelDisabled]: disabled })}\n data-testid={dataTestId?.label}\n >\n {label}\n </span>\n ) : null}\n </label>\n ),\n)\n\nCheckbox.displayName = 'Checkbox'\n"],"names":["Checkbox","forwardRef","_ref","ref","label","className","disabled","dataTestId","rest","_jsxs","cn","styles","container","containerDisabled","root","children","control","_jsx","type","input","IconCheck","tick","labelDisabled","displayName"],"mappings":";;;;;;;;;;AAqBO,MAAMA,QAAQ,gBAAGC,gBAAU,CAChC,CAAAC,IAAA,EAAsDC,GAAG,KAAA;EAAA,IAAxD;IAAEC,KAAK;IAAEC,SAAS;IAAEC,QAAQ;IAAEC,UAAU;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAAN,IAAA,CAAA;AAAA,EAAA,oBAClDO,eAAA,CAAA,OAAA,EAAA;IACEJ,SAAS,EAAEK,EAAE,CAACC,eAAM,CAACC,SAAS,EAAEP,SAAS,EAAE;MACzC,CAACM,eAAM,CAACE,iBAAiB,GAAGP,QAAAA;AAC9B,KAAC,CAAE;IACH,aAAaC,EAAAA,UAAU,EAAEO,IAAK;AAAAC,IAAAA,QAAA,gBAE9BN,eAAA,CAAA,MAAA,EAAA;MAAMJ,SAAS,EAAEM,eAAM,CAACK,OAAQ;AAAAD,MAAAA,QAAA,gBAC9BE,cAAA,CAAA,OAAA,EAAA;AACEd,QAAAA,GAAG,EAAEA,GAAI;AACTe,QAAAA,IAAI,EAAC,UAAU;QACfb,SAAS,EAAEM,eAAM,CAACQ,KAAM;AACxBb,QAAAA,QAAQ,EAAEA,QAAS;QACnB,aAAaC,EAAAA,UAAU,EAAEY,KAAM;QAAA,GAC3BX,IAAAA;AAAI,OACT,CAAC,eACFS,cAAA,CAACG,mBAAS,EAAA;QAACf,SAAS,EAAEM,eAAM,CAACU,IAAAA;AAAK,OAAE,CAAC,CAAA;AAAA,KACjC,CAAC,EACNjB,KAAK,gBACJa,cAAA,CAAA,MAAA,EAAA;AACEZ,MAAAA,SAAS,EAAEK,EAAE,CAACC,eAAM,CAACP,KAAK,EAAE;QAAE,CAACO,eAAM,CAACW,aAAa,GAAGhB,QAAAA;AAAS,OAAC,CAAE;MAClE,aAAaC,EAAAA,UAAU,EAAEH,KAAM;AAAAW,MAAAA,QAAA,EAE9BX,KAAAA;KACG,CAAC,GACL,IAAI,CAAA;AAAA,GACH,CAAC,CAAA;AAAA,CAEZ,EAAC;AAEDJ,QAAQ,CAACuB,WAAW,GAAG,UAAU;;;;"}
1
+ {"version":3,"file":"Checkbox.cjs","sources":["../../../src/checkbox/Checkbox.tsx"],"sourcesContent":["import { forwardRef, type InputHTMLAttributes, type ReactNode } from 'react'\n\nimport { IconCheck } from '../icons'\nimport cn from 'classnames'\n\nimport styles from './Checkbox.module.css'\n\nexport type CheckboxDataTestId = {\n root?: string\n input?: string\n label?: string\n}\n\nexport type CheckboxProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'type'\n> & {\n /** Text next to the box; omit for a bare checkbox. */\n label?: ReactNode\n dataTestId?: CheckboxDataTestId\n}\n\n/** 24px box wrapped in a `<label>` so the text is clickable; forwards every native input prop. */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ label, className, disabled, dataTestId, ...rest }, ref) => (\n <label\n className={cn(styles.container, className, {\n [styles.containerDisabled]: disabled,\n })}\n data-testid={dataTestId?.root}\n >\n <span className={styles.control}>\n <input\n ref={ref}\n type='checkbox'\n className={styles.input}\n disabled={disabled}\n data-testid={dataTestId?.input}\n {...rest}\n />\n <IconCheck className={styles.tick} />\n </span>\n {label ? (\n <span\n className={cn(styles.label, { [styles.labelDisabled]: disabled })}\n data-testid={dataTestId?.label}\n >\n {label}\n </span>\n ) : null}\n </label>\n ),\n)\n\nCheckbox.displayName = 'Checkbox'\n"],"names":["Checkbox","forwardRef","_ref","ref","label","className","disabled","dataTestId","rest","_jsxs","cn","styles","container","containerDisabled","root","children","control","_jsx","type","input","IconCheck","tick","labelDisabled","displayName"],"mappings":";;;;;;;;;;AAsBA;AACO,MAAMA,QAAQ,gBAAGC,gBAAU,CAChC,CAAAC,IAAA,EAAsDC,GAAG,KAAA;EAAA,IAAxD;IAAEC,KAAK;IAAEC,SAAS;IAAEC,QAAQ;IAAEC,UAAU;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAAN,IAAA,CAAA;AAAA,EAAA,oBAClDO,eAAA,CAAA,OAAA,EAAA;IACEJ,SAAS,EAAEK,EAAE,CAACC,eAAM,CAACC,SAAS,EAAEP,SAAS,EAAE;MACzC,CAACM,eAAM,CAACE,iBAAiB,GAAGP,QAAAA;AAC9B,KAAC,CAAE;IACH,aAAaC,EAAAA,UAAU,EAAEO,IAAK;AAAAC,IAAAA,QAAA,gBAE9BN,eAAA,CAAA,MAAA,EAAA;MAAMJ,SAAS,EAAEM,eAAM,CAACK,OAAQ;AAAAD,MAAAA,QAAA,gBAC9BE,cAAA,CAAA,OAAA,EAAA;AACEd,QAAAA,GAAG,EAAEA,GAAI;AACTe,QAAAA,IAAI,EAAC,UAAU;QACfb,SAAS,EAAEM,eAAM,CAACQ,KAAM;AACxBb,QAAAA,QAAQ,EAAEA,QAAS;QACnB,aAAaC,EAAAA,UAAU,EAAEY,KAAM;QAAA,GAC3BX,IAAAA;AAAI,OACT,CAAC,eACFS,cAAA,CAACG,mBAAS,EAAA;QAACf,SAAS,EAAEM,eAAM,CAACU,IAAAA;AAAK,OAAE,CAAC,CAAA;AAAA,KACjC,CAAC,EACNjB,KAAK,gBACJa,cAAA,CAAA,MAAA,EAAA;AACEZ,MAAAA,SAAS,EAAEK,EAAE,CAACC,eAAM,CAACP,KAAK,EAAE;QAAE,CAACO,eAAM,CAACW,aAAa,GAAGhB,QAAAA;AAAS,OAAC,CAAE;MAClE,aAAaC,EAAAA,UAAU,EAAEH,KAAM;AAAAW,MAAAA,QAAA,EAE9BX,KAAAA;KACG,CAAC,GACL,IAAI,CAAA;AAAA,GACH,CAAC,CAAA;AAAA,CAEZ,EAAC;AAEDJ,QAAQ,CAACuB,WAAW,GAAG,UAAU;;;;"}
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const react = require('react');
6
+ const cn = require('classnames');
7
+ const Copy_module = require('./Copy.module.css.cjs');
8
+ const useCopy = require('./useCopy.cjs');
9
+ const jsxRuntime = require('react/jsx-runtime');
10
+ const IconCopy = require('../icons/components/base/IconCopy.cjs');
11
+ const IconCheck = require('../icons/components/base/IconCheck.cjs');
12
+
13
+ const Copy = /*#__PURE__*/react.forwardRef((_ref, ref) => {
14
+ let {
15
+ text,
16
+ onCopy,
17
+ onClick,
18
+ className,
19
+ ...rest
20
+ } = _ref;
21
+ const {
22
+ copy,
23
+ copied
24
+ } = useCopy.useCopy(text, {
25
+ onCopy
26
+ });
27
+ const handleClick = event => {
28
+ onClick?.(event);
29
+ void copy();
30
+ };
31
+ return /*#__PURE__*/jsxRuntime.jsx("button", {
32
+ ref: ref,
33
+ type: "button",
34
+ "aria-label": copied ? 'Copied' : 'Copy',
35
+ "data-copied": copied || undefined,
36
+ className: cn(Copy_module.root, className),
37
+ onClick: handleClick,
38
+ ...rest,
39
+ children: /*#__PURE__*/jsxRuntime.jsxs("span", {
40
+ className: Copy_module.icon,
41
+ "aria-hidden": "true",
42
+ children: [/*#__PURE__*/jsxRuntime.jsx("span", {
43
+ className: cn(Copy_module.glyph, Copy_module.idle),
44
+ children: /*#__PURE__*/jsxRuntime.jsx(IconCopy.IconCopy, {})
45
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
46
+ className: cn(Copy_module.glyph, Copy_module.done),
47
+ children: /*#__PURE__*/jsxRuntime.jsx(IconCheck.IconCheck, {})
48
+ })]
49
+ })
50
+ });
51
+ });
52
+ Copy.displayName = 'Copy';
53
+
54
+ exports.Copy = Copy;
55
+ //# sourceMappingURL=Copy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Copy.cjs","sources":["../../../src/copy/Copy.tsx"],"sourcesContent":["import {\n forwardRef,\n type ComponentPropsWithoutRef,\n type MouseEvent,\n} from 'react'\n\nimport cn from 'classnames'\n\nimport { IconCheck, IconCopy } from '../icons'\nimport styles from './Copy.module.css'\nimport { useCopy } from './useCopy'\n\nexport type CopyProps = Omit<ComponentPropsWithoutRef<'button'>, 'children'> & {\n text: string\n onCopy?: () => void\n}\n\nexport const Copy = forwardRef<HTMLButtonElement, CopyProps>(\n ({ text, onCopy, onClick, className, ...rest }, ref) => {\n const { copy, copied } = useCopy(text, { onCopy })\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event)\n void copy()\n }\n\n return (\n <button\n ref={ref}\n type='button'\n aria-label={copied ? 'Copied' : 'Copy'}\n data-copied={copied || undefined}\n className={cn(styles.root, className)}\n onClick={handleClick}\n {...rest}\n >\n <span className={styles.icon} aria-hidden='true'>\n <span className={cn(styles.glyph, styles.idle)}>\n <IconCopy />\n </span>\n <span className={cn(styles.glyph, styles.done)}>\n <IconCheck />\n </span>\n </span>\n </button>\n )\n },\n)\n\nCopy.displayName = 'Copy'\n"],"names":["Copy","forwardRef","_ref","ref","text","onCopy","onClick","className","rest","copy","copied","useCopy","handleClick","event","_jsx","type","undefined","cn","styles","root","children","_jsxs","icon","glyph","idle","IconCopy","done","IconCheck","displayName"],"mappings":";;;;;;;;;;;;AAiBO,MAAMA,IAAI,gBAAGC,gBAAU,CAC5B,CAAAC,IAAA,EAAgDC,GAAG,KAAK;EAAA,IAAvD;IAAEC,IAAI;IAAEC,MAAM;IAAEC,OAAO;IAAEC,SAAS;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAAN,IAAA,CAAA;EAC5C,MAAM;IAAEO,IAAI;AAAEC,IAAAA,MAAAA;AAAO,GAAC,GAAGC,eAAO,CAACP,IAAI,EAAE;AAAEC,IAAAA,MAAAA;AAAO,GAAC,CAAC,CAAA;EAElD,MAAMO,WAAW,GAAIC,KAAoC,IAAK;IAC5DP,OAAO,GAAGO,KAAK,CAAC,CAAA;IAChB,KAAKJ,IAAI,EAAE,CAAA;GACZ,CAAA;AAED,EAAA,oBACEK,cAAA,CAAA,QAAA,EAAA;AACEX,IAAAA,GAAG,EAAEA,GAAI;AACTY,IAAAA,IAAI,EAAC,QAAQ;AACb,IAAA,YAAA,EAAYL,MAAM,GAAG,QAAQ,GAAG,MAAO;IACvC,aAAaA,EAAAA,MAAM,IAAIM,SAAU;IACjCT,SAAS,EAAEU,EAAE,CAACC,WAAM,CAACC,IAAI,EAAEZ,SAAS,CAAE;AACtCD,IAAAA,OAAO,EAAEM,WAAY;AAAA,IAAA,GACjBJ,IAAI;AAAAY,IAAAA,QAAA,eAERC,eAAA,CAAA,MAAA,EAAA;MAAMd,SAAS,EAAEW,WAAM,CAACI,IAAK;AAAC,MAAA,aAAA,EAAY,MAAM;AAAAF,MAAAA,QAAA,gBAC9CN,cAAA,CAAA,MAAA,EAAA;QAAMP,SAAS,EAAEU,EAAE,CAACC,WAAM,CAACK,KAAK,EAAEL,WAAM,CAACM,IAAI,CAAE;AAAAJ,QAAAA,QAAA,eAC7CN,cAAA,CAACW,iBAAQ,EAAE,EAAA,CAAA;OACP,CAAC,eACPX,cAAA,CAAA,MAAA,EAAA;QAAMP,SAAS,EAAEU,EAAE,CAACC,WAAM,CAACK,KAAK,EAAEL,WAAM,CAACQ,IAAI,CAAE;AAAAN,QAAAA,QAAA,eAC7CN,cAAA,CAACa,mBAAS,EAAE,EAAA,CAAA;AAAC,OACT,CAAC,CAAA;KACH,CAAA;AAAC,GACD,CAAC,CAAA;AAEb,CACF,EAAC;AAED3B,IAAI,CAAC4B,WAAW,GAAG,MAAM;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const styles = {"root":"Copy-module_root__LWKJ9","icon":"Copy-module_icon__MjYMv","glyph":"Copy-module_glyph__MJNUb","done":"Copy-module_done__wizRt","idle":"Copy-module_idle__MQyyS"};
4
+
5
+ module.exports = styles;
6
+ //# sourceMappingURL=Copy.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Copy.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const react = require('react');
6
+
7
+ const useCopy = function (text) {
8
+ let {
9
+ onCopy,
10
+ timeout = 1000
11
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12
+ const [copied, setCopied] = react.useState(false);
13
+ const timerRef = react.useRef();
14
+ react.useEffect(() => () => clearTimeout(timerRef.current), []);
15
+ const copy = react.useCallback(async () => {
16
+ try {
17
+ await navigator.clipboard.writeText(text);
18
+ } catch {
19
+ return;
20
+ }
21
+ clearTimeout(timerRef.current);
22
+ setCopied(true);
23
+ onCopy?.();
24
+ timerRef.current = setTimeout(() => setCopied(false), timeout);
25
+ }, [text, onCopy, timeout]);
26
+ return {
27
+ copy,
28
+ copied
29
+ };
30
+ };
31
+
32
+ exports.useCopy = useCopy;
33
+ //# sourceMappingURL=useCopy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCopy.cjs","sources":["../../../src/copy/useCopy.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react'\n\nexport type UseCopyOptions = {\n onCopy?: () => void\n timeout?: number\n}\n\nexport const useCopy = (\n text: string,\n { onCopy, timeout = 1000 }: UseCopyOptions = {},\n) => {\n const [copied, setCopied] = useState(false)\n const timerRef = useRef<ReturnType<typeof setTimeout>>()\n\n useEffect(() => () => clearTimeout(timerRef.current), [])\n\n const copy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(text)\n } catch {\n return\n }\n\n clearTimeout(timerRef.current)\n setCopied(true)\n onCopy?.()\n timerRef.current = setTimeout(() => setCopied(false), timeout)\n }, [text, onCopy, timeout])\n\n return { copy, copied }\n}\n"],"names":["useCopy","text","onCopy","timeout","arguments","length","undefined","copied","setCopied","useState","timerRef","useRef","useEffect","clearTimeout","current","copy","useCallback","navigator","clipboard","writeText","setTimeout"],"mappings":";;;;;;MAOaA,OAAO,GAAG,UACrBC,IAAY,EAET;EAAA,IADH;IAAEC,MAAM;AAAEC,IAAAA,OAAO,GAAG,IAAA;AAAqB,GAAC,GAAAC,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAE,CAAAA,CAAAA,KAAAA,SAAA,GAAAF,SAAA,CAAG,CAAA,CAAA,GAAA,EAAE,CAAA;EAE/C,MAAM,CAACG,MAAM,EAAEC,SAAS,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC,CAAA;AAC3C,EAAA,MAAMC,QAAQ,GAAGC,YAAM,EAAiC,CAAA;EAExDC,eAAS,CAAC,MAAM,MAAMC,YAAY,CAACH,QAAQ,CAACI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;AAEzD,EAAA,MAAMC,IAAI,GAAGC,iBAAW,CAAC,YAAY;IACnC,IAAI;AACF,MAAA,MAAMC,SAAS,CAACC,SAAS,CAACC,SAAS,CAAClB,IAAI,CAAC,CAAA;AAC3C,KAAC,CAAC,MAAM;AACN,MAAA,OAAA;AACF,KAAA;AAEAY,IAAAA,YAAY,CAACH,QAAQ,CAACI,OAAO,CAAC,CAAA;IAC9BN,SAAS,CAAC,IAAI,CAAC,CAAA;AACfN,IAAAA,MAAM,IAAI,CAAA;AACVQ,IAAAA,QAAQ,CAACI,OAAO,GAAGM,UAAU,CAAC,MAAMZ,SAAS,CAAC,KAAK,CAAC,EAAEL,OAAO,CAAC,CAAA;GAC/D,EAAE,CAACF,IAAI,EAAEC,MAAM,EAAEC,OAAO,CAAC,CAAC,CAAA;EAE3B,OAAO;IAAEY,IAAI;AAAER,IAAAA,MAAAA;GAAQ,CAAA;AACzB;;;;"}
@@ -2,11 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
+ const react = require('react');
5
6
  const cn = require('classnames');
6
7
  const Counter_module = require('./Counter.module.css.cjs');
7
8
  const jsxRuntime = require('react/jsx-runtime');
8
9
 
9
- const Counter = _ref => {
10
+ /** 20px pill for notification/unread counts; grows horizontally for multi-digit values. */
11
+ const Counter = /*#__PURE__*/react.forwardRef((_ref, ref) => {
10
12
  let {
11
13
  variant = 'default',
12
14
  className,
@@ -15,12 +17,14 @@ const Counter = _ref => {
15
17
  ...rest
16
18
  } = _ref;
17
19
  return /*#__PURE__*/jsxRuntime.jsx("span", {
20
+ ref: ref,
18
21
  className: cn(Counter_module.counter, Counter_module[variant], className),
19
22
  "data-testid": dataTestId?.root,
20
23
  ...rest,
21
24
  children: children
22
25
  });
23
- };
26
+ });
27
+ Counter.displayName = 'Counter';
24
28
 
25
29
  exports.Counter = Counter;
26
30
  //# sourceMappingURL=Counter.cjs.map