@lidofinance/lido-app-ui 1.13.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 (516) 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/badge/Badge.cjs +1 -0
  6. package/dist/cjs/badge/Badge.cjs.map +1 -1
  7. package/dist/cjs/banner/Banner.cjs +1 -0
  8. package/dist/cjs/banner/Banner.cjs.map +1 -1
  9. package/dist/cjs/breadcrumbs/Breadcrumbs.cjs +55 -26
  10. package/dist/cjs/breadcrumbs/Breadcrumbs.cjs.map +1 -1
  11. package/dist/cjs/breadcrumbs/Breadcrumbs.module.css.cjs +1 -1
  12. package/dist/cjs/button/Button.cjs +14 -23
  13. package/dist/cjs/button/Button.cjs.map +1 -1
  14. package/dist/cjs/button/ButtonContent.cjs +50 -0
  15. package/dist/cjs/button/ButtonContent.cjs.map +1 -0
  16. package/dist/cjs/button/LinkButton.cjs +46 -0
  17. package/dist/cjs/button/LinkButton.cjs.map +1 -0
  18. package/dist/cjs/card/Card.cjs +1 -0
  19. package/dist/cjs/card/Card.cjs.map +1 -1
  20. package/dist/cjs/checkbox/Checkbox.cjs +1 -0
  21. package/dist/cjs/checkbox/Checkbox.cjs.map +1 -1
  22. package/dist/cjs/counter/Counter.cjs +6 -2
  23. package/dist/cjs/counter/Counter.cjs.map +1 -1
  24. package/dist/cjs/counter/CounterSlot.cjs +19 -2
  25. package/dist/cjs/counter/CounterSlot.cjs.map +1 -1
  26. package/dist/cjs/counter/CounterSlot.module.css.cjs +1 -1
  27. package/dist/cjs/data-list/DataList.cjs +1 -0
  28. package/dist/cjs/data-list/DataList.cjs.map +1 -1
  29. package/dist/cjs/data-list/DataListRow.cjs +2 -0
  30. package/dist/cjs/data-list/DataListRow.cjs.map +1 -1
  31. package/dist/cjs/disclaimer/Disclaimer.cjs +10 -3
  32. package/dist/cjs/disclaimer/Disclaimer.cjs.map +1 -1
  33. package/dist/cjs/divider/Divider.cjs +5 -0
  34. package/dist/cjs/divider/Divider.cjs.map +1 -1
  35. package/dist/cjs/error-page/ErrorPage.cjs +14 -7
  36. package/dist/cjs/error-page/ErrorPage.cjs.map +1 -1
  37. package/dist/cjs/footer/Footer.cjs +10 -2
  38. package/dist/cjs/footer/Footer.cjs.map +1 -1
  39. package/dist/cjs/grid/Grid.cjs +7 -3
  40. package/dist/cjs/grid/Grid.cjs.map +1 -1
  41. package/dist/cjs/grid/Grid.module.css.cjs +1 -1
  42. package/dist/cjs/grid/GridItem.cjs +2 -0
  43. package/dist/cjs/grid/GridItem.cjs.map +1 -1
  44. package/dist/cjs/header/Header.cjs +10 -2
  45. package/dist/cjs/header/Header.cjs.map +1 -1
  46. package/dist/cjs/header/HeaderNav.cjs +33 -21
  47. package/dist/cjs/header/HeaderNav.cjs.map +1 -1
  48. package/dist/cjs/header/HeaderNav.module.css.cjs +1 -1
  49. package/dist/cjs/hidden/Hidden.cjs +10 -4
  50. package/dist/cjs/hidden/Hidden.cjs.map +1 -1
  51. package/dist/cjs/hooks/Portal.cjs +14 -11
  52. package/dist/cjs/hooks/Portal.cjs.map +1 -1
  53. package/dist/cjs/hooks/useBodyScrollLock.cjs +49 -13
  54. package/dist/cjs/hooks/useBodyScrollLock.cjs.map +1 -1
  55. package/dist/cjs/hooks/useEdgeFade.cjs +60 -0
  56. package/dist/cjs/hooks/useEdgeFade.cjs.map +1 -0
  57. package/dist/cjs/hooks/useEscape.cjs +8 -5
  58. package/dist/cjs/hooks/useEscape.cjs.map +1 -1
  59. package/dist/cjs/hooks/useFocusTrap.cjs +61 -24
  60. package/dist/cjs/hooks/useFocusTrap.cjs.map +1 -1
  61. package/dist/cjs/hooks/useHideOthers.cjs +51 -0
  62. package/dist/cjs/hooks/useHideOthers.cjs.map +1 -0
  63. package/dist/cjs/hooks/useOutsideClick.cjs +31 -4
  64. package/dist/cjs/hooks/useOutsideClick.cjs.map +1 -1
  65. package/dist/cjs/icon-button/IconButton.cjs +4 -0
  66. package/dist/cjs/icon-button/IconButton.cjs.map +1 -1
  67. package/dist/cjs/icons/TokenIcon.cjs +2 -0
  68. package/dist/cjs/icons/TokenIcon.cjs.map +1 -1
  69. package/dist/cjs/identicon/Identicon.cjs +2 -0
  70. package/dist/cjs/identicon/Identicon.cjs.map +1 -1
  71. package/dist/cjs/index.cjs +32 -4
  72. package/dist/cjs/index.cjs.map +1 -1
  73. package/dist/cjs/index.css +12 -4
  74. package/dist/cjs/input/Input.cjs +1 -0
  75. package/dist/cjs/input/Input.cjs.map +1 -1
  76. package/dist/cjs/link-provider/Anchor.cjs +23 -2
  77. package/dist/cjs/link-provider/Anchor.cjs.map +1 -1
  78. package/dist/cjs/link-provider/LinkProvider.cjs +1 -1
  79. package/dist/cjs/link-provider/LinkProvider.cjs.map +1 -1
  80. package/dist/cjs/logo/Logo.cjs +8 -0
  81. package/dist/cjs/logo/Logo.cjs.map +1 -1
  82. package/dist/cjs/message-box/MessageBox.cjs +1 -0
  83. package/dist/cjs/message-box/MessageBox.cjs.map +1 -1
  84. package/dist/cjs/modal/Modal.cjs +71 -9
  85. package/dist/cjs/modal/Modal.cjs.map +1 -1
  86. package/dist/cjs/nav-link/NavLink.cjs +6 -4
  87. package/dist/cjs/nav-link/NavLink.cjs.map +1 -1
  88. package/dist/cjs/notification/Notification.cjs +12 -6
  89. package/dist/cjs/notification/Notification.cjs.map +1 -1
  90. package/dist/cjs/page-layout/Layout.cjs +25 -0
  91. package/dist/cjs/page-layout/Layout.cjs.map +1 -0
  92. package/dist/cjs/page-layout/Layout.module.css.cjs +6 -0
  93. package/dist/cjs/page-layout/Layout.module.css.cjs.map +1 -0
  94. package/dist/cjs/page-layout/Main.cjs +29 -0
  95. package/dist/cjs/page-layout/Main.cjs.map +1 -0
  96. package/dist/cjs/page-layout/Main.module.css.cjs +6 -0
  97. package/dist/cjs/page-layout/Main.module.css.cjs.map +1 -0
  98. package/dist/cjs/page-layout/PageContent.cjs +22 -0
  99. package/dist/cjs/page-layout/PageContent.cjs.map +1 -0
  100. package/dist/cjs/page-layout/PageContent.module.css.cjs +6 -0
  101. package/dist/cjs/page-layout/PageContent.module.css.cjs.map +1 -0
  102. package/dist/cjs/pagination/Pagination.cjs +11 -6
  103. package/dist/cjs/pagination/Pagination.cjs.map +1 -1
  104. package/dist/cjs/popover/Popover.cjs +71 -15
  105. package/dist/cjs/popover/Popover.cjs.map +1 -1
  106. package/dist/cjs/radio-button/RadioButton.cjs +1 -0
  107. package/dist/cjs/radio-button/RadioButton.cjs.map +1 -1
  108. package/dist/cjs/rich-input/RichInput.cjs +18 -39
  109. package/dist/cjs/rich-input/RichInput.cjs.map +1 -1
  110. package/dist/cjs/rich-input/RichInput.module.css.cjs +1 -1
  111. package/dist/cjs/section-title/SectionTitle.cjs +1 -0
  112. package/dist/cjs/section-title/SectionTitle.cjs.map +1 -1
  113. package/dist/cjs/segmented-control/SegmentedControl.cjs +1 -0
  114. package/dist/cjs/segmented-control/SegmentedControl.cjs.map +1 -1
  115. package/dist/cjs/segmented-control/SegmentedControlCard.cjs +1 -0
  116. package/dist/cjs/segmented-control/SegmentedControlCard.cjs.map +1 -1
  117. package/dist/cjs/sidebar/Sidebar.cjs +11 -4
  118. package/dist/cjs/sidebar/Sidebar.cjs.map +1 -1
  119. package/dist/cjs/sidebar/SidebarToggle.cjs +1 -1
  120. package/dist/cjs/sidebar/SidebarToggle.cjs.map +1 -1
  121. package/dist/cjs/skeleton/Skeleton.cjs +18 -20
  122. package/dist/cjs/skeleton/Skeleton.cjs.map +1 -1
  123. package/dist/cjs/skip-link/SkipLink.cjs +52 -0
  124. package/dist/cjs/skip-link/SkipLink.cjs.map +1 -0
  125. package/dist/cjs/skip-link/SkipLink.module.css.cjs +6 -0
  126. package/dist/cjs/skip-link/SkipLink.module.css.cjs.map +1 -0
  127. package/dist/cjs/slider/Slider.cjs +1 -0
  128. package/dist/cjs/slider/Slider.cjs.map +1 -1
  129. package/dist/cjs/small-card/SmallCard.cjs +6 -2
  130. package/dist/cjs/small-card/SmallCard.cjs.map +1 -1
  131. package/dist/cjs/stack/Stack.cjs +27 -7
  132. package/dist/cjs/stack/Stack.cjs.map +1 -1
  133. package/dist/cjs/stack/Stack.module.css.cjs +1 -1
  134. package/dist/cjs/stat-item/StatItem.cjs +1 -0
  135. package/dist/cjs/stat-item/StatItem.cjs.map +1 -1
  136. package/dist/cjs/switch/Switch.cjs +1 -0
  137. package/dist/cjs/switch/Switch.cjs.map +1 -1
  138. package/dist/cjs/tabs/Tabs.cjs +1 -0
  139. package/dist/cjs/tabs/Tabs.cjs.map +1 -1
  140. package/dist/cjs/tag/Tag.cjs +73 -8
  141. package/dist/cjs/tag/Tag.cjs.map +1 -1
  142. package/dist/cjs/tag/Tag.module.css.cjs +1 -1
  143. package/dist/cjs/text-link/TextLink.cjs +10 -13
  144. package/dist/cjs/text-link/TextLink.cjs.map +1 -1
  145. package/dist/cjs/text-link/TextLink.module.css.cjs +1 -1
  146. package/dist/cjs/theme-switcher/ThemeSwitcher.cjs +13 -5
  147. package/dist/cjs/theme-switcher/ThemeSwitcher.cjs.map +1 -1
  148. package/dist/cjs/theme-switcher/ThemeSwitcher.module.css.cjs +6 -0
  149. package/dist/cjs/theme-switcher/ThemeSwitcher.module.css.cjs.map +1 -0
  150. package/dist/cjs/token-amount/TokenAmount.cjs +1 -0
  151. package/dist/cjs/token-amount/TokenAmount.cjs.map +1 -1
  152. package/dist/cjs/token-selector/TokenSelector.cjs +56 -64
  153. package/dist/cjs/token-selector/TokenSelector.cjs.map +1 -1
  154. package/dist/cjs/tooltip/Tooltip.cjs +42 -27
  155. package/dist/cjs/tooltip/Tooltip.cjs.map +1 -1
  156. package/dist/cjs/tx-status/TxStatus.cjs +2 -0
  157. package/dist/cjs/tx-status/TxStatus.cjs.map +1 -1
  158. package/dist/cjs/typography/Typography.cjs +2 -0
  159. package/dist/cjs/typography/Typography.cjs.map +1 -1
  160. package/dist/cjs/utils/ActionElement.cjs +2 -13
  161. package/dist/cjs/utils/ActionElement.cjs.map +1 -1
  162. package/dist/cjs/utils/breakpoints.cjs +26 -0
  163. package/dist/cjs/utils/breakpoints.cjs.map +1 -0
  164. package/dist/cjs/utils/responsive.cjs +19 -30
  165. package/dist/cjs/utils/responsive.cjs.map +1 -1
  166. package/dist/esm/accordion/Accordion.mjs +1 -0
  167. package/dist/esm/accordion/Accordion.mjs.map +1 -1
  168. package/dist/esm/badge/Badge.mjs +1 -0
  169. package/dist/esm/badge/Badge.mjs.map +1 -1
  170. package/dist/esm/banner/Banner.mjs +1 -0
  171. package/dist/esm/banner/Banner.mjs.map +1 -1
  172. package/dist/esm/breadcrumbs/Breadcrumbs.mjs +56 -27
  173. package/dist/esm/breadcrumbs/Breadcrumbs.mjs.map +1 -1
  174. package/dist/esm/breadcrumbs/Breadcrumbs.module.css.mjs +1 -1
  175. package/dist/esm/button/Button.mjs +15 -24
  176. package/dist/esm/button/Button.mjs.map +1 -1
  177. package/dist/esm/button/ButtonContent.mjs +45 -0
  178. package/dist/esm/button/ButtonContent.mjs.map +1 -0
  179. package/dist/esm/button/LinkButton.mjs +42 -0
  180. package/dist/esm/button/LinkButton.mjs.map +1 -0
  181. package/dist/esm/card/Card.mjs +1 -0
  182. package/dist/esm/card/Card.mjs.map +1 -1
  183. package/dist/esm/checkbox/Checkbox.mjs +1 -0
  184. package/dist/esm/checkbox/Checkbox.mjs.map +1 -1
  185. package/dist/esm/counter/Counter.mjs +6 -2
  186. package/dist/esm/counter/Counter.mjs.map +1 -1
  187. package/dist/esm/counter/CounterSlot.mjs +19 -3
  188. package/dist/esm/counter/CounterSlot.mjs.map +1 -1
  189. package/dist/esm/counter/CounterSlot.module.css.mjs +1 -1
  190. package/dist/esm/data-list/DataList.mjs +1 -0
  191. package/dist/esm/data-list/DataList.mjs.map +1 -1
  192. package/dist/esm/data-list/DataListRow.mjs +2 -0
  193. package/dist/esm/data-list/DataListRow.mjs.map +1 -1
  194. package/dist/esm/disclaimer/Disclaimer.mjs +10 -3
  195. package/dist/esm/disclaimer/Disclaimer.mjs.map +1 -1
  196. package/dist/esm/divider/Divider.mjs +5 -0
  197. package/dist/esm/divider/Divider.mjs.map +1 -1
  198. package/dist/esm/error-page/ErrorPage.mjs +14 -7
  199. package/dist/esm/error-page/ErrorPage.mjs.map +1 -1
  200. package/dist/esm/footer/Footer.mjs +10 -2
  201. package/dist/esm/footer/Footer.mjs.map +1 -1
  202. package/dist/esm/grid/Grid.mjs +8 -4
  203. package/dist/esm/grid/Grid.mjs.map +1 -1
  204. package/dist/esm/grid/Grid.module.css.mjs +1 -1
  205. package/dist/esm/grid/GridItem.mjs +2 -0
  206. package/dist/esm/grid/GridItem.mjs.map +1 -1
  207. package/dist/esm/header/Header.mjs +10 -2
  208. package/dist/esm/header/Header.mjs.map +1 -1
  209. package/dist/esm/header/HeaderNav.mjs +34 -22
  210. package/dist/esm/header/HeaderNav.mjs.map +1 -1
  211. package/dist/esm/header/HeaderNav.module.css.mjs +1 -1
  212. package/dist/esm/hidden/Hidden.mjs +10 -4
  213. package/dist/esm/hidden/Hidden.mjs.map +1 -1
  214. package/dist/esm/hooks/Portal.mjs +16 -13
  215. package/dist/esm/hooks/Portal.mjs.map +1 -1
  216. package/dist/esm/hooks/useBodyScrollLock.mjs +49 -13
  217. package/dist/esm/hooks/useBodyScrollLock.mjs.map +1 -1
  218. package/dist/esm/hooks/useEdgeFade.mjs +56 -0
  219. package/dist/esm/hooks/useEdgeFade.mjs.map +1 -0
  220. package/dist/esm/hooks/useEscape.mjs +8 -5
  221. package/dist/esm/hooks/useEscape.mjs.map +1 -1
  222. package/dist/esm/hooks/useFocusTrap.mjs +61 -24
  223. package/dist/esm/hooks/useFocusTrap.mjs.map +1 -1
  224. package/dist/esm/hooks/useHideOthers.mjs +47 -0
  225. package/dist/esm/hooks/useHideOthers.mjs.map +1 -0
  226. package/dist/esm/hooks/useOutsideClick.mjs +31 -4
  227. package/dist/esm/hooks/useOutsideClick.mjs.map +1 -1
  228. package/dist/esm/icon-button/IconButton.mjs +4 -0
  229. package/dist/esm/icon-button/IconButton.mjs.map +1 -1
  230. package/dist/esm/icons/TokenIcon.mjs +2 -0
  231. package/dist/esm/icons/TokenIcon.mjs.map +1 -1
  232. package/dist/esm/identicon/Identicon.mjs +2 -0
  233. package/dist/esm/identicon/Identicon.mjs.map +1 -1
  234. package/dist/esm/index.css +12 -4
  235. package/dist/esm/index.mjs +13 -1
  236. package/dist/esm/index.mjs.map +1 -1
  237. package/dist/esm/input/Input.mjs +1 -0
  238. package/dist/esm/input/Input.mjs.map +1 -1
  239. package/dist/esm/link-provider/Anchor.mjs +23 -2
  240. package/dist/esm/link-provider/Anchor.mjs.map +1 -1
  241. package/dist/esm/link-provider/LinkProvider.mjs +1 -1
  242. package/dist/esm/link-provider/LinkProvider.mjs.map +1 -1
  243. package/dist/esm/logo/Logo.mjs +9 -1
  244. package/dist/esm/logo/Logo.mjs.map +1 -1
  245. package/dist/esm/message-box/MessageBox.mjs +1 -0
  246. package/dist/esm/message-box/MessageBox.mjs.map +1 -1
  247. package/dist/esm/modal/Modal.mjs +72 -11
  248. package/dist/esm/modal/Modal.mjs.map +1 -1
  249. package/dist/esm/nav-link/NavLink.mjs +6 -4
  250. package/dist/esm/nav-link/NavLink.mjs.map +1 -1
  251. package/dist/esm/notification/Notification.mjs +13 -7
  252. package/dist/esm/notification/Notification.mjs.map +1 -1
  253. package/dist/esm/page-layout/Layout.mjs +21 -0
  254. package/dist/esm/page-layout/Layout.mjs.map +1 -0
  255. package/dist/esm/page-layout/Layout.module.css.mjs +4 -0
  256. package/dist/esm/page-layout/Layout.module.css.mjs.map +1 -0
  257. package/dist/esm/page-layout/Main.mjs +24 -0
  258. package/dist/esm/page-layout/Main.mjs.map +1 -0
  259. package/dist/esm/page-layout/Main.module.css.mjs +4 -0
  260. package/dist/esm/page-layout/Main.module.css.mjs.map +1 -0
  261. package/dist/esm/page-layout/PageContent.mjs +18 -0
  262. package/dist/esm/page-layout/PageContent.mjs.map +1 -0
  263. package/dist/esm/page-layout/PageContent.module.css.mjs +4 -0
  264. package/dist/esm/page-layout/PageContent.module.css.mjs.map +1 -0
  265. package/dist/esm/pagination/Pagination.mjs +12 -7
  266. package/dist/esm/pagination/Pagination.mjs.map +1 -1
  267. package/dist/esm/popover/Popover.mjs +72 -16
  268. package/dist/esm/popover/Popover.mjs.map +1 -1
  269. package/dist/esm/radio-button/RadioButton.mjs +1 -0
  270. package/dist/esm/radio-button/RadioButton.mjs.map +1 -1
  271. package/dist/esm/rich-input/RichInput.mjs +19 -40
  272. package/dist/esm/rich-input/RichInput.mjs.map +1 -1
  273. package/dist/esm/rich-input/RichInput.module.css.mjs +1 -1
  274. package/dist/esm/section-title/SectionTitle.mjs +1 -0
  275. package/dist/esm/section-title/SectionTitle.mjs.map +1 -1
  276. package/dist/esm/segmented-control/SegmentedControl.mjs +1 -0
  277. package/dist/esm/segmented-control/SegmentedControl.mjs.map +1 -1
  278. package/dist/esm/segmented-control/SegmentedControlCard.mjs +1 -0
  279. package/dist/esm/segmented-control/SegmentedControlCard.mjs.map +1 -1
  280. package/dist/esm/sidebar/Sidebar.mjs +11 -4
  281. package/dist/esm/sidebar/Sidebar.mjs.map +1 -1
  282. package/dist/esm/sidebar/SidebarToggle.mjs +1 -1
  283. package/dist/esm/sidebar/SidebarToggle.mjs.map +1 -1
  284. package/dist/esm/skeleton/Skeleton.mjs +18 -20
  285. package/dist/esm/skeleton/Skeleton.mjs.map +1 -1
  286. package/dist/esm/skip-link/SkipLink.mjs +48 -0
  287. package/dist/esm/skip-link/SkipLink.mjs.map +1 -0
  288. package/dist/esm/skip-link/SkipLink.module.css.mjs +4 -0
  289. package/dist/esm/skip-link/SkipLink.module.css.mjs.map +1 -0
  290. package/dist/esm/slider/Slider.mjs +1 -0
  291. package/dist/esm/slider/Slider.mjs.map +1 -1
  292. package/dist/esm/small-card/SmallCard.mjs +6 -2
  293. package/dist/esm/small-card/SmallCard.mjs.map +1 -1
  294. package/dist/esm/stack/Stack.mjs +28 -9
  295. package/dist/esm/stack/Stack.mjs.map +1 -1
  296. package/dist/esm/stack/Stack.module.css.mjs +1 -1
  297. package/dist/esm/stat-item/StatItem.mjs +1 -0
  298. package/dist/esm/stat-item/StatItem.mjs.map +1 -1
  299. package/dist/esm/switch/Switch.mjs +1 -0
  300. package/dist/esm/switch/Switch.mjs.map +1 -1
  301. package/dist/esm/tabs/Tabs.mjs +1 -0
  302. package/dist/esm/tabs/Tabs.mjs.map +1 -1
  303. package/dist/esm/tag/Tag.mjs +74 -9
  304. package/dist/esm/tag/Tag.mjs.map +1 -1
  305. package/dist/esm/tag/Tag.module.css.mjs +1 -1
  306. package/dist/esm/text-link/TextLink.mjs +10 -13
  307. package/dist/esm/text-link/TextLink.mjs.map +1 -1
  308. package/dist/esm/text-link/TextLink.module.css.mjs +1 -1
  309. package/dist/esm/theme-switcher/ThemeSwitcher.mjs +14 -6
  310. package/dist/esm/theme-switcher/ThemeSwitcher.mjs.map +1 -1
  311. package/dist/esm/theme-switcher/ThemeSwitcher.module.css.mjs +4 -0
  312. package/dist/esm/theme-switcher/ThemeSwitcher.module.css.mjs.map +1 -0
  313. package/dist/esm/token-amount/TokenAmount.mjs +1 -0
  314. package/dist/esm/token-amount/TokenAmount.mjs.map +1 -1
  315. package/dist/esm/token-selector/TokenSelector.mjs +58 -66
  316. package/dist/esm/token-selector/TokenSelector.mjs.map +1 -1
  317. package/dist/esm/tooltip/Tooltip.mjs +42 -27
  318. package/dist/esm/tooltip/Tooltip.mjs.map +1 -1
  319. package/dist/esm/tx-status/TxStatus.mjs +2 -0
  320. package/dist/esm/tx-status/TxStatus.mjs.map +1 -1
  321. package/dist/esm/typography/Typography.mjs +2 -0
  322. package/dist/esm/typography/Typography.mjs.map +1 -1
  323. package/dist/esm/utils/ActionElement.mjs +2 -13
  324. package/dist/esm/utils/ActionElement.mjs.map +1 -1
  325. package/dist/esm/utils/breakpoints.mjs +19 -0
  326. package/dist/esm/utils/breakpoints.mjs.map +1 -0
  327. package/dist/esm/utils/responsive.mjs +17 -27
  328. package/dist/esm/utils/responsive.mjs.map +1 -1
  329. package/dist/index.css +12 -4
  330. package/dist/styles/breakpoints.css +16 -12
  331. package/dist/styles/typography-mixins.css +8 -0
  332. package/dist/types/accordion/Accordion.d.ts +3 -0
  333. package/dist/types/accordion/Accordion.d.ts.map +1 -1
  334. package/dist/types/badge/Badge.d.ts +1 -0
  335. package/dist/types/badge/Badge.d.ts.map +1 -1
  336. package/dist/types/banner/Banner.d.ts +1 -0
  337. package/dist/types/banner/Banner.d.ts.map +1 -1
  338. package/dist/types/breadcrumbs/Breadcrumbs.d.ts +17 -1
  339. package/dist/types/breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  340. package/dist/types/breadcrumbs/index.d.ts +1 -1
  341. package/dist/types/breadcrumbs/index.d.ts.map +1 -1
  342. package/dist/types/button/Button.d.ts +6 -26
  343. package/dist/types/button/Button.d.ts.map +1 -1
  344. package/dist/types/button/ButtonContent.d.ts +10 -0
  345. package/dist/types/button/ButtonContent.d.ts.map +1 -0
  346. package/dist/types/button/LinkButton.d.ts +10 -0
  347. package/dist/types/button/LinkButton.d.ts.map +1 -0
  348. package/dist/types/button/index.d.ts +2 -0
  349. package/dist/types/button/index.d.ts.map +1 -1
  350. package/dist/types/button/types.d.ts +26 -0
  351. package/dist/types/button/types.d.ts.map +1 -0
  352. package/dist/types/card/Card.d.ts +1 -0
  353. package/dist/types/card/Card.d.ts.map +1 -1
  354. package/dist/types/checkbox/Checkbox.d.ts +3 -0
  355. package/dist/types/checkbox/Checkbox.d.ts.map +1 -1
  356. package/dist/types/colors/colorTokens.d.ts.map +1 -1
  357. package/dist/types/counter/Counter.d.ts +6 -2
  358. package/dist/types/counter/Counter.d.ts.map +1 -1
  359. package/dist/types/counter/CounterSlot.d.ts +3 -0
  360. package/dist/types/counter/CounterSlot.d.ts.map +1 -1
  361. package/dist/types/data-list/DataList.d.ts +1 -0
  362. package/dist/types/data-list/DataList.d.ts.map +1 -1
  363. package/dist/types/data-list/DataListRow.d.ts +1 -0
  364. package/dist/types/data-list/DataListRow.d.ts.map +1 -1
  365. package/dist/types/disclaimer/Disclaimer.d.ts +9 -2
  366. package/dist/types/disclaimer/Disclaimer.d.ts.map +1 -1
  367. package/dist/types/divider/Divider.d.ts +5 -0
  368. package/dist/types/divider/Divider.d.ts.map +1 -1
  369. package/dist/types/divider/index.d.ts +1 -1
  370. package/dist/types/divider/index.d.ts.map +1 -1
  371. package/dist/types/error-page/ErrorPage.d.ts +17 -4
  372. package/dist/types/error-page/ErrorPage.d.ts.map +1 -1
  373. package/dist/types/footer/Footer.d.ts +17 -2
  374. package/dist/types/footer/Footer.d.ts.map +1 -1
  375. package/dist/types/footer/index.d.ts +1 -1
  376. package/dist/types/footer/index.d.ts.map +1 -1
  377. package/dist/types/grid/Grid.d.ts +21 -22
  378. package/dist/types/grid/Grid.d.ts.map +1 -1
  379. package/dist/types/grid/GridItem.d.ts +14 -10
  380. package/dist/types/grid/GridItem.d.ts.map +1 -1
  381. package/dist/types/grid/index.d.ts +2 -2
  382. package/dist/types/grid/index.d.ts.map +1 -1
  383. package/dist/types/header/Header.d.ts +15 -2
  384. package/dist/types/header/Header.d.ts.map +1 -1
  385. package/dist/types/header/HeaderNav.d.ts +10 -2
  386. package/dist/types/header/HeaderNav.d.ts.map +1 -1
  387. package/dist/types/header/index.d.ts +2 -2
  388. package/dist/types/header/index.d.ts.map +1 -1
  389. package/dist/types/hidden/Hidden.d.ts +20 -6
  390. package/dist/types/hidden/Hidden.d.ts.map +1 -1
  391. package/dist/types/hidden/index.d.ts +1 -1
  392. package/dist/types/hidden/index.d.ts.map +1 -1
  393. package/dist/types/hooks/Portal.d.ts +2 -5
  394. package/dist/types/hooks/Portal.d.ts.map +1 -1
  395. package/dist/types/hooks/index.d.ts +2 -0
  396. package/dist/types/hooks/index.d.ts.map +1 -1
  397. package/dist/types/hooks/useBodyScrollLock.d.ts +4 -2
  398. package/dist/types/hooks/useBodyScrollLock.d.ts.map +1 -1
  399. package/dist/types/hooks/useEdgeFade.d.ts +7 -0
  400. package/dist/types/hooks/useEdgeFade.d.ts.map +1 -0
  401. package/dist/types/hooks/useEscape.d.ts +4 -2
  402. package/dist/types/hooks/useEscape.d.ts.map +1 -1
  403. package/dist/types/hooks/useFocusTrap.d.ts +7 -3
  404. package/dist/types/hooks/useFocusTrap.d.ts.map +1 -1
  405. package/dist/types/hooks/useHideOthers.d.ts +3 -0
  406. package/dist/types/hooks/useHideOthers.d.ts.map +1 -0
  407. package/dist/types/hooks/useOutsideClick.d.ts +4 -2
  408. package/dist/types/hooks/useOutsideClick.d.ts.map +1 -1
  409. package/dist/types/icon-button/IconButton.d.ts +15 -2
  410. package/dist/types/icon-button/IconButton.d.ts.map +1 -1
  411. package/dist/types/icons/TokenIcon.d.ts +1 -0
  412. package/dist/types/icons/TokenIcon.d.ts.map +1 -1
  413. package/dist/types/identicon/Identicon.d.ts +5 -0
  414. package/dist/types/identicon/Identicon.d.ts.map +1 -1
  415. package/dist/types/index.d.ts +5 -0
  416. package/dist/types/index.d.ts.map +1 -1
  417. package/dist/types/input/Input.d.ts +1 -0
  418. package/dist/types/input/Input.d.ts.map +1 -1
  419. package/dist/types/link-provider/Anchor.d.ts +17 -1
  420. package/dist/types/link-provider/Anchor.d.ts.map +1 -1
  421. package/dist/types/link-provider/LinkProvider.d.ts +8 -2
  422. package/dist/types/link-provider/LinkProvider.d.ts.map +1 -1
  423. package/dist/types/link-provider/index.d.ts +1 -1
  424. package/dist/types/link-provider/index.d.ts.map +1 -1
  425. package/dist/types/logo/Logo.d.ts +20 -3
  426. package/dist/types/logo/Logo.d.ts.map +1 -1
  427. package/dist/types/logo/index.d.ts +1 -1
  428. package/dist/types/logo/index.d.ts.map +1 -1
  429. package/dist/types/message-box/MessageBox.d.ts +3 -0
  430. package/dist/types/message-box/MessageBox.d.ts.map +1 -1
  431. package/dist/types/modal/Modal.d.ts +21 -3
  432. package/dist/types/modal/Modal.d.ts.map +1 -1
  433. package/dist/types/modal/index.d.ts +2 -2
  434. package/dist/types/modal/index.d.ts.map +1 -1
  435. package/dist/types/nav-link/NavLink.d.ts +17 -0
  436. package/dist/types/nav-link/NavLink.d.ts.map +1 -1
  437. package/dist/types/nav-link/index.d.ts +1 -1
  438. package/dist/types/nav-link/index.d.ts.map +1 -1
  439. package/dist/types/notification/Notification.d.ts +7 -2
  440. package/dist/types/notification/Notification.d.ts.map +1 -1
  441. package/dist/types/page-layout/Layout.d.ts +5 -0
  442. package/dist/types/page-layout/Layout.d.ts.map +1 -0
  443. package/dist/types/page-layout/Main.d.ts +6 -0
  444. package/dist/types/page-layout/Main.d.ts.map +1 -0
  445. package/dist/types/page-layout/PageContent.d.ts +7 -0
  446. package/dist/types/page-layout/PageContent.d.ts.map +1 -0
  447. package/dist/types/page-layout/index.d.ts +7 -0
  448. package/dist/types/page-layout/index.d.ts.map +1 -0
  449. package/dist/types/pagination/Pagination.d.ts +3 -0
  450. package/dist/types/pagination/Pagination.d.ts.map +1 -1
  451. package/dist/types/popover/Popover.d.ts +32 -4
  452. package/dist/types/popover/Popover.d.ts.map +1 -1
  453. package/dist/types/popover/index.d.ts +1 -1
  454. package/dist/types/popover/index.d.ts.map +1 -1
  455. package/dist/types/radio-button/RadioButton.d.ts +3 -0
  456. package/dist/types/radio-button/RadioButton.d.ts.map +1 -1
  457. package/dist/types/rich-input/RichInput.d.ts +8 -1
  458. package/dist/types/rich-input/RichInput.d.ts.map +1 -1
  459. package/dist/types/section-title/SectionTitle.d.ts +1 -0
  460. package/dist/types/section-title/SectionTitle.d.ts.map +1 -1
  461. package/dist/types/segmented-control/SegmentedControl.d.ts +1 -0
  462. package/dist/types/segmented-control/SegmentedControl.d.ts.map +1 -1
  463. package/dist/types/segmented-control/SegmentedControlCard.d.ts +1 -0
  464. package/dist/types/segmented-control/SegmentedControlCard.d.ts.map +1 -1
  465. package/dist/types/sidebar/Sidebar.d.ts +2 -2
  466. package/dist/types/sidebar/Sidebar.d.ts.map +1 -1
  467. package/dist/types/sidebar/SidebarToggle.d.ts +1 -1
  468. package/dist/types/skeleton/Skeleton.d.ts +17 -3
  469. package/dist/types/skeleton/Skeleton.d.ts.map +1 -1
  470. package/dist/types/skip-link/SkipLink.d.ts +11 -0
  471. package/dist/types/skip-link/SkipLink.d.ts.map +1 -0
  472. package/dist/types/skip-link/index.d.ts +3 -0
  473. package/dist/types/skip-link/index.d.ts.map +1 -0
  474. package/dist/types/slider/Slider.d.ts +1 -0
  475. package/dist/types/slider/Slider.d.ts.map +1 -1
  476. package/dist/types/small-card/SmallCard.d.ts +21 -2
  477. package/dist/types/small-card/SmallCard.d.ts.map +1 -1
  478. package/dist/types/stack/Stack.d.ts +24 -15
  479. package/dist/types/stack/Stack.d.ts.map +1 -1
  480. package/dist/types/stack/index.d.ts +1 -1
  481. package/dist/types/stack/index.d.ts.map +1 -1
  482. package/dist/types/stat-item/StatItem.d.ts +6 -0
  483. package/dist/types/stat-item/StatItem.d.ts.map +1 -1
  484. package/dist/types/switch/Switch.d.ts +3 -0
  485. package/dist/types/switch/Switch.d.ts.map +1 -1
  486. package/dist/types/tabs/Tabs.d.ts +1 -0
  487. package/dist/types/tabs/Tabs.d.ts.map +1 -1
  488. package/dist/types/tag/Tag.d.ts +31 -3
  489. package/dist/types/tag/Tag.d.ts.map +1 -1
  490. package/dist/types/text-link/TextLink.d.ts +25 -2
  491. package/dist/types/text-link/TextLink.d.ts.map +1 -1
  492. package/dist/types/text-link/index.d.ts +1 -1
  493. package/dist/types/text-link/index.d.ts.map +1 -1
  494. package/dist/types/theme-switcher/ThemeSwitcher.d.ts +9 -3
  495. package/dist/types/theme-switcher/ThemeSwitcher.d.ts.map +1 -1
  496. package/dist/types/token-amount/TokenAmount.d.ts +1 -0
  497. package/dist/types/token-amount/TokenAmount.d.ts.map +1 -1
  498. package/dist/types/token-selector/TokenSelector.d.ts +5 -1
  499. package/dist/types/token-selector/TokenSelector.d.ts.map +1 -1
  500. package/dist/types/tooltip/Tooltip.d.ts +2 -0
  501. package/dist/types/tooltip/Tooltip.d.ts.map +1 -1
  502. package/dist/types/tx-status/TxStatus.d.ts +3 -0
  503. package/dist/types/tx-status/TxStatus.d.ts.map +1 -1
  504. package/dist/types/typography/Typography.d.ts +4 -0
  505. package/dist/types/typography/Typography.d.ts.map +1 -1
  506. package/dist/types/utils/ActionElement.d.ts +4 -4
  507. package/dist/types/utils/ActionElement.d.ts.map +1 -1
  508. package/dist/types/utils/breakpoints.d.ts +16 -0
  509. package/dist/types/utils/breakpoints.d.ts.map +1 -0
  510. package/dist/types/utils/index.d.ts +5 -2
  511. package/dist/types/utils/index.d.ts.map +1 -1
  512. package/dist/types/utils/polymorphic.d.ts +15 -0
  513. package/dist/types/utils/polymorphic.d.ts.map +1 -0
  514. package/dist/types/utils/responsive.d.ts +29 -14
  515. package/dist/types/utils/responsive.d.ts.map +1 -1
  516. package/package.json +6 -2
@@ -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
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 && !disabled && 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,IAAI,CAACC,QAAQ,IAAIS,aAAM,CAACV,OAAO,EACtCL,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;;;;"}
@@ -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;;;;"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"Counter.cjs","sources":["../../../src/counter/Counter.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Counter.module.css'\n\nexport type CounterVariant =\n | 'default'\n | 'neutral'\n | 'error'\n | 'warning'\n | 'action'\n | 'active'\n\nexport type CounterDataTestId = {\n root?: string\n}\n\nexport type CounterProps = HTMLAttributes<HTMLSpanElement> & {\n variant?: CounterVariant\n dataTestId?: CounterDataTestId\n}\n\nexport const Counter = ({\n variant = 'default',\n className,\n children,\n dataTestId,\n ...rest\n}: CounterProps) => (\n <span\n className={cn(styles.counter, styles[variant], className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {children}\n </span>\n)\n"],"names":["Counter","_ref","variant","className","children","dataTestId","rest","_jsx","cn","styles","counter","root"],"mappings":";;;;;;;;AAuBO,MAAMA,OAAO,GAAGC,IAAA,IAAA;EAAA,IAAC;AACtBC,IAAAA,OAAO,GAAG,SAAS;IACnBC,SAAS;IACTC,QAAQ;IACRC,UAAU;IACV,GAAGC,IAAAA;AACS,GAAC,GAAAL,IAAA,CAAA;AAAA,EAAA,oBACbM,cAAA,CAAA,MAAA,EAAA;AACEJ,IAAAA,SAAS,EAAEK,EAAE,CAACC,cAAM,CAACC,OAAO,EAAED,cAAM,CAACP,OAAO,CAAC,EAAEC,SAAS,CAAE;IAC1D,aAAaE,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;AAAAF,IAAAA,QAAA,EAEPA,QAAAA;AAAQ,GACL,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"Counter.cjs","sources":["../../../src/counter/Counter.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Counter.module.css'\n\nexport type CounterVariant =\n | 'default'\n | 'neutral'\n | 'error'\n | 'warning'\n | 'action'\n | 'active'\n\nexport type CounterDataTestId = {\n root?: string\n}\n\nexport type CounterProps = HTMLAttributes<HTMLSpanElement> & {\n variant?: CounterVariant\n dataTestId?: CounterDataTestId\n}\n\n/** 20px pill for notification/unread counts; grows horizontally for multi-digit values. */\nexport const Counter = forwardRef<HTMLSpanElement, CounterProps>(\n ({ variant = 'default', className, children, dataTestId, ...rest }, ref) => (\n <span\n ref={ref}\n className={cn(styles.counter, styles[variant], className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {children}\n </span>\n ),\n)\n\nCounter.displayName = 'Counter'\n"],"names":["Counter","forwardRef","_ref","ref","variant","className","children","dataTestId","rest","_jsx","cn","styles","counter","root","displayName"],"mappings":";;;;;;;;;AAuBA;AACO,MAAMA,OAAO,gBAAGC,gBAAU,CAC/B,CAAAC,IAAA,EAAoEC,GAAG,KAAA;EAAA,IAAtE;AAAEC,IAAAA,OAAO,GAAG,SAAS;IAAEC,SAAS;IAAEC,QAAQ;IAAEC,UAAU;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAAN,IAAA,CAAA;AAAA,EAAA,oBAChEO,cAAA,CAAA,MAAA,EAAA;AACEN,IAAAA,GAAG,EAAEA,GAAI;AACTE,IAAAA,SAAS,EAAEK,EAAE,CAACC,cAAM,CAACC,OAAO,EAAED,cAAM,CAACP,OAAO,CAAC,EAAEC,SAAS,CAAE;IAC1D,aAAaE,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;AAAAF,IAAAA,QAAA,EAEPA,QAAAA;AAAQ,GACL,CAAC,CAAA;AAAA,CAEX,EAAC;AAEDN,OAAO,CAACc,WAAW,GAAG,SAAS;;;;"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
+ const Counter = require('./Counter.cjs');
5
6
  const CounterSlot_module = require('./CounterSlot.module.css.cjs');
6
7
  const jsxRuntime = require('react/jsx-runtime');
7
8
 
@@ -10,13 +11,29 @@ const CounterSlot = _ref => {
10
11
  children,
11
12
  dataTestId
12
13
  } = _ref;
13
- return children == null || children === false ? null : /*#__PURE__*/jsxRuntime.jsx("span", {
14
+ if (children == null || typeof children === 'boolean' || children === '') {
15
+ return null;
16
+ }
17
+ const content = typeof children === 'number' || typeof children === 'string' ? /*#__PURE__*/jsxRuntime.jsx(Counter.Counter, {
18
+ children: children
19
+ }) : children;
20
+ return /*#__PURE__*/jsxRuntime.jsx("span", {
14
21
  className: CounterSlot_module.slot,
15
22
  "aria-hidden": "true",
16
23
  "data-testid": dataTestId,
17
- children: children
24
+ children: content
18
25
  });
19
26
  };
27
+ const CounterLabel = _ref2 => {
28
+ let {
29
+ children
30
+ } = _ref2;
31
+ return children ? /*#__PURE__*/jsxRuntime.jsx("span", {
32
+ className: CounterSlot_module.visuallyHidden,
33
+ children: children
34
+ }) : null;
35
+ };
20
36
 
37
+ exports.CounterLabel = CounterLabel;
21
38
  exports.CounterSlot = CounterSlot;
22
39
  //# sourceMappingURL=CounterSlot.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CounterSlot.cjs","sources":["../../../src/counter/CounterSlot.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nimport styles from './CounterSlot.module.css'\n\ntype CounterSlotProps = {\n children?: ReactNode\n dataTestId?: string\n}\n\nexport const CounterSlot = ({ children, dataTestId }: CounterSlotProps) =>\n children == null || children === false ? null : (\n <span className={styles.slot} aria-hidden='true' data-testid={dataTestId}>\n {children}\n </span>\n )\n"],"names":["CounterSlot","_ref","children","dataTestId","_jsx","className","styles","slot"],"mappings":";;;;;;;AASO,MAAMA,WAAW,GAAGC,IAAA,IAAA;EAAA,IAAC;IAAEC,QAAQ;AAAEC,IAAAA,UAAAA;AAA6B,GAAC,GAAAF,IAAA,CAAA;EAAA,OACpEC,QAAQ,IAAI,IAAI,IAAIA,QAAQ,KAAK,KAAK,GAAG,IAAI,gBAC3CE,cAAA,CAAA,MAAA,EAAA;IAAMC,SAAS,EAAEC,kBAAM,CAACC,IAAK;AAAC,IAAA,aAAA,EAAY,MAAM;AAAC,IAAA,aAAA,EAAaJ,UAAW;AAAAD,IAAAA,QAAA,EACtEA,QAAAA;AAAQ,GACL,CACP,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"CounterSlot.cjs","sources":["../../../src/counter/CounterSlot.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nimport { Counter } from './Counter'\nimport styles from './CounterSlot.module.css'\n\ntype CounterSlotProps = {\n children?: ReactNode\n dataTestId?: string\n}\n\nexport const CounterSlot = ({ children, dataTestId }: CounterSlotProps) => {\n if (children == null || typeof children === 'boolean' || children === '') {\n return null\n }\n\n const content =\n typeof children === 'number' || typeof children === 'string' ? (\n <Counter>{children}</Counter>\n ) : (\n children\n )\n\n return (\n <span className={styles.slot} aria-hidden='true' data-testid={dataTestId}>\n {content}\n </span>\n )\n}\n\nexport const CounterLabel = ({ children }: { children?: string }) =>\n children ? <span className={styles.visuallyHidden}>{children}</span> : null\n"],"names":["CounterSlot","_ref","children","dataTestId","content","_jsx","Counter","className","styles","slot","CounterLabel","_ref2","visuallyHidden"],"mappings":";;;;;;;;AAUaA,MAAAA,WAAW,GAAGC,IAAA,IAAgD;EAAA,IAA/C;IAAEC,QAAQ;AAAEC,IAAAA,UAAAA;AAA6B,GAAC,GAAAF,IAAA,CAAA;AACpE,EAAA,IAAIC,QAAQ,IAAI,IAAI,IAAI,OAAOA,QAAQ,KAAK,SAAS,IAAIA,QAAQ,KAAK,EAAE,EAAE;AACxE,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,MAAME,OAAO,GACX,OAAOF,QAAQ,KAAK,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,gBAC1DG,cAAA,CAACC,eAAO,EAAA;AAAAJ,IAAAA,QAAA,EAAEA,QAAAA;GAAkB,CAAC,GAE7BA,QACD,CAAA;AAEH,EAAA,oBACEG,cAAA,CAAA,MAAA,EAAA;IAAME,SAAS,EAAEC,kBAAM,CAACC,IAAK;AAAC,IAAA,aAAA,EAAY,MAAM;AAAC,IAAA,aAAA,EAAaN,UAAW;AAAAD,IAAAA,QAAA,EACtEE,OAAAA;AAAO,GACJ,CAAC,CAAA;AAEX,EAAC;AAEM,MAAMM,YAAY,GAAGC,KAAA,IAAA;EAAA,IAAC;AAAET,IAAAA,QAAAA;AAAgC,GAAC,GAAAS,KAAA,CAAA;EAAA,OAC9DT,QAAQ,gBAAGG,cAAA,CAAA,MAAA,EAAA;IAAME,SAAS,EAAEC,kBAAM,CAACI,cAAe;AAAAV,IAAAA,QAAA,EAAEA,QAAAA;GAAe,CAAC,GAAG,IAAI,CAAA;AAAA;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const styles = {"slot":"CounterSlot-module_slot__EhyeG"};
3
+ const styles = {"slot":"CounterSlot-module_slot__EhyeG","visuallyHidden":"CounterSlot-module_visuallyHidden__mbzc0"};
4
4
 
5
5
  module.exports = styles;
6
6
  //# sourceMappingURL=CounterSlot.module.css.cjs.map
@@ -6,6 +6,7 @@ const cn = require('classnames');
6
6
  const DataList_module = require('./DataList.module.css.cjs');
7
7
  const jsxRuntime = require('react/jsx-runtime');
8
8
 
9
+ /** Spacing wrapper for label-left, value-right transaction details; put `DataListRow`s inside. */
9
10
  const DataList = _ref => {
10
11
  let {
11
12
  children,
@@ -1 +1 @@
1
- {"version":3,"file":"DataList.cjs","sources":["../../../src/data-list/DataList.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './DataList.module.css'\n\nexport type DataListDataTestId = {\n root?: string\n}\n\nexport type DataListProps = Omit<\n ComponentPropsWithoutRef<'div'>,\n 'children'\n> & {\n children: ReactNode\n divided?: boolean\n dataTestId?: DataListDataTestId\n}\n\nexport const DataList = ({\n children,\n className,\n divided = false,\n dataTestId,\n ...rest\n}: DataListProps) => (\n <div\n className={cn(styles.card, divided && styles.divided, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {children}\n </div>\n)\n"],"names":["DataList","_ref","children","className","divided","dataTestId","rest","_jsx","cn","styles","card","root"],"mappings":";;;;;;;;AAmBO,MAAMA,QAAQ,GAAGC,IAAA,IAAA;EAAA,IAAC;IACvBC,QAAQ;IACRC,SAAS;AACTC,IAAAA,OAAO,GAAG,KAAK;IACfC,UAAU;IACV,GAAGC,IAAAA;AACU,GAAC,GAAAL,IAAA,CAAA;AAAA,EAAA,oBACdM,cAAA,CAAA,KAAA,EAAA;AACEJ,IAAAA,SAAS,EAAEK,EAAE,CAACC,eAAM,CAACC,IAAI,EAAEN,OAAO,IAAIK,eAAM,CAACL,OAAO,EAAED,SAAS,CAAE;IACjE,aAAaE,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;AAAAJ,IAAAA,QAAA,EAEPA,QAAAA;AAAQ,GACN,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"DataList.cjs","sources":["../../../src/data-list/DataList.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './DataList.module.css'\n\nexport type DataListDataTestId = {\n root?: string\n}\n\nexport type DataListProps = Omit<\n ComponentPropsWithoutRef<'div'>,\n 'children'\n> & {\n children: ReactNode\n divided?: boolean\n dataTestId?: DataListDataTestId\n}\n\n/** Spacing wrapper for label-left, value-right transaction details; put `DataListRow`s inside. */\nexport const DataList = ({\n children,\n className,\n divided = false,\n dataTestId,\n ...rest\n}: DataListProps) => (\n <div\n className={cn(styles.card, divided && styles.divided, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {children}\n </div>\n)\n"],"names":["DataList","_ref","children","className","divided","dataTestId","rest","_jsx","cn","styles","card","root"],"mappings":";;;;;;;;AAmBA;AACO,MAAMA,QAAQ,GAAGC,IAAA,IAAA;EAAA,IAAC;IACvBC,QAAQ;IACRC,SAAS;AACTC,IAAAA,OAAO,GAAG,KAAK;IACfC,UAAU;IACV,GAAGC,IAAAA;AACU,GAAC,GAAAL,IAAA,CAAA;AAAA,EAAA,oBACdM,cAAA,CAAA,KAAA,EAAA;AACEJ,IAAAA,SAAS,EAAEK,EAAE,CAACC,eAAM,CAACC,IAAI,EAAEN,OAAO,IAAIK,eAAM,CAACL,OAAO,EAAED,SAAS,CAAE;IACjE,aAAaE,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;AAAAJ,IAAAA,QAAA,EAEPA,QAAAA;AAAQ,GACN,CAAC,CAAA;AAAA;;;;"}
@@ -8,6 +8,8 @@ const jsxRuntime = require('react/jsx-runtime');
8
8
  const InfoTooltip = require('../info-tooltip/InfoTooltip.cjs');
9
9
 
10
10
  const isChangeValue = value => typeof value === 'object' && value !== null && 'from' in value && 'to' in value;
11
+
12
+ /** Label and value row with an optional info tooltip, leading icon and from → to change format. */
11
13
  const DataListRow = _ref => {
12
14
  let {
13
15
  label,
@@ -1 +1 @@
1
- {"version":3,"file":"DataListRow.cjs","sources":["../../../src/data-list/DataListRow.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport cn from 'classnames'\nimport { InfoTooltip } from '../info-tooltip'\n\nimport styles from './DataList.module.css'\n\nexport type DetailRowValue = ReactNode | { from: ReactNode; to: ReactNode }\n\nexport type DataListRowDataTestId = {\n root?: string\n label?: string\n value?: string\n icon?: string\n description?: string\n}\n\nexport type DetailRowProps = ComponentPropsWithoutRef<'div'> & {\n label: ReactNode\n value: DetailRowValue\n icon?: ReactNode\n info?: ReactNode\n infoFaint?: boolean\n description?: ReactNode\n descriptionInfo?: ReactNode\n dataTestId?: DataListRowDataTestId\n}\n\nconst isChangeValue = (\n value: DetailRowValue,\n): value is { from: ReactNode; to: ReactNode } =>\n typeof value === 'object' &&\n value !== null &&\n 'from' in value &&\n 'to' in value\n\nexport const DataListRow = ({\n label,\n value,\n icon,\n info,\n infoFaint = false,\n description,\n descriptionInfo,\n className,\n dataTestId,\n ...rest\n}: DetailRowProps) => (\n <div\n className={cn(styles.row, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <span className={styles.mainRow}>\n <span className={styles.labelGroup}>\n {icon ? (\n <span className={styles.leadingIcon} data-testid={dataTestId?.icon}>\n {icon}\n </span>\n ) : null}\n <span className={styles.label} data-testid={dataTestId?.label}>\n {label}\n </span>\n {info ? (\n <InfoTooltip\n content={info}\n className={cn(infoFaint && styles.infoFaint)}\n />\n ) : null}\n </span>\n {isChangeValue(value) ? (\n <span className={styles.value} data-testid={dataTestId?.value}>\n <span className={styles.valueOld}>{value.from}</span>\n <span className={styles.valueArrow} aria-hidden='true'>\n →\n </span>\n <span>{value.to}</span>\n </span>\n ) : (\n <span className={styles.value} data-testid={dataTestId?.value}>\n {value}\n </span>\n )}\n </span>\n {description ? (\n <span className={styles.descriptionRow}>\n <span\n className={styles.description}\n data-testid={dataTestId?.description}\n >\n {description}\n </span>\n {descriptionInfo ? (\n <InfoTooltip content={descriptionInfo} tone='tertiary' />\n ) : null}\n </span>\n ) : null}\n </div>\n)\n"],"names":["isChangeValue","value","DataListRow","_ref","label","icon","info","infoFaint","description","descriptionInfo","className","dataTestId","rest","_jsxs","cn","styles","row","root","children","mainRow","labelGroup","_jsx","leadingIcon","InfoTooltip","content","valueOld","from","valueArrow","to","descriptionRow","tone"],"mappings":";;;;;;;;;AA4BA,MAAMA,aAAa,GACjBC,KAAqB,IAErB,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,MAAM,IAAIA,KAAK,IACf,IAAI,IAAIA,KAAK,CAAA;AAER,MAAMC,WAAW,GAAGC,IAAA,IAAA;EAAA,IAAC;IAC1BC,KAAK;IACLH,KAAK;IACLI,IAAI;IACJC,IAAI;AACJC,IAAAA,SAAS,GAAG,KAAK;IACjBC,WAAW;IACXC,eAAe;IACfC,SAAS;IACTC,UAAU;IACV,GAAGC,IAAAA;AACW,GAAC,GAAAT,IAAA,CAAA;AAAA,EAAA,oBACfU,eAAA,CAAA,KAAA,EAAA;IACEH,SAAS,EAAEI,EAAE,CAACC,eAAM,CAACC,GAAG,EAAEN,SAAS,CAAE;IACrC,aAAaC,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;AAAAM,IAAAA,QAAA,gBAERL,eAAA,CAAA,MAAA,EAAA;MAAMH,SAAS,EAAEK,eAAM,CAACI,OAAQ;AAAAD,MAAAA,QAAA,gBAC9BL,eAAA,CAAA,MAAA,EAAA;QAAMH,SAAS,EAAEK,eAAM,CAACK,UAAW;QAAAF,QAAA,EAAA,CAChCb,IAAI,gBACHgB,cAAA,CAAA,MAAA,EAAA;UAAMX,SAAS,EAAEK,eAAM,CAACO,WAAY;UAAC,aAAaX,EAAAA,UAAU,EAAEN,IAAK;AAAAa,UAAAA,QAAA,EAChEb,IAAAA;AAAI,SACD,CAAC,GACL,IAAI,eACRgB,cAAA,CAAA,MAAA,EAAA;UAAMX,SAAS,EAAEK,eAAM,CAACX,KAAM;UAAC,aAAaO,EAAAA,UAAU,EAAEP,KAAM;AAAAc,UAAAA,QAAA,EAC3Dd,KAAAA;AAAK,SACF,CAAC,EACNE,IAAI,gBACHe,cAAA,CAACE,uBAAW,EAAA;AACVC,UAAAA,OAAO,EAAElB,IAAK;AACdI,UAAAA,SAAS,EAAEI,EAAE,CAACP,SAAS,IAAIQ,eAAM,CAACR,SAAS,CAAA;SAC5C,CAAC,GACA,IAAI,CAAA;AAAA,OACJ,CAAC,EACNP,aAAa,CAACC,KAAK,CAAC,gBACnBY,eAAA,CAAA,MAAA,EAAA;QAAMH,SAAS,EAAEK,eAAM,CAACd,KAAM;QAAC,aAAaU,EAAAA,UAAU,EAAEV,KAAM;AAAAiB,QAAAA,QAAA,gBAC5DG,cAAA,CAAA,MAAA,EAAA;UAAMX,SAAS,EAAEK,eAAM,CAACU,QAAS;UAAAP,QAAA,EAAEjB,KAAK,CAACyB,IAAAA;SAAW,CAAC,eACrDL,cAAA,CAAA,MAAA,EAAA;UAAMX,SAAS,EAAEK,eAAM,CAACY,UAAW;AAAC,UAAA,aAAA,EAAY,MAAM;AAAAT,UAAAA,QAAA,EAAC,QAAA;SAEjD,CAAC,eACPG,cAAA,CAAA,MAAA,EAAA;UAAAH,QAAA,EAAOjB,KAAK,CAAC2B,EAAAA;AAAE,SAAO,CAAC,CAAA;OACnB,CAAC,gBAEPP,cAAA,CAAA,MAAA,EAAA;QAAMX,SAAS,EAAEK,eAAM,CAACd,KAAM;QAAC,aAAaU,EAAAA,UAAU,EAAEV,KAAM;AAAAiB,QAAAA,QAAA,EAC3DjB,KAAAA;AAAK,OACF,CACP,CAAA;AAAA,KACG,CAAC,EACNO,WAAW,gBACVK,eAAA,CAAA,MAAA,EAAA;MAAMH,SAAS,EAAEK,eAAM,CAACc,cAAe;AAAAX,MAAAA,QAAA,gBACrCG,cAAA,CAAA,MAAA,EAAA;QACEX,SAAS,EAAEK,eAAM,CAACP,WAAY;QAC9B,aAAaG,EAAAA,UAAU,EAAEH,WAAY;AAAAU,QAAAA,QAAA,EAEpCV,WAAAA;AAAW,OACR,CAAC,EACNC,eAAe,gBACdY,cAAA,CAACE,uBAAW,EAAA;AAACC,QAAAA,OAAO,EAAEf,eAAgB;AAACqB,QAAAA,IAAI,EAAC,UAAA;OAAY,CAAC,GACvD,IAAI,CAAA;KACJ,CAAC,GACL,IAAI,CAAA;AAAA,GACL,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"DataListRow.cjs","sources":["../../../src/data-list/DataListRow.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport cn from 'classnames'\nimport { InfoTooltip } from '../info-tooltip'\n\nimport styles from './DataList.module.css'\n\nexport type DetailRowValue = ReactNode | { from: ReactNode; to: ReactNode }\n\nexport type DataListRowDataTestId = {\n root?: string\n label?: string\n value?: string\n icon?: string\n description?: string\n}\n\nexport type DetailRowProps = ComponentPropsWithoutRef<'div'> & {\n label: ReactNode\n value: DetailRowValue\n icon?: ReactNode\n info?: ReactNode\n infoFaint?: boolean\n description?: ReactNode\n descriptionInfo?: ReactNode\n dataTestId?: DataListRowDataTestId\n}\n\nconst isChangeValue = (\n value: DetailRowValue,\n): value is { from: ReactNode; to: ReactNode } =>\n typeof value === 'object' &&\n value !== null &&\n 'from' in value &&\n 'to' in value\n\n/** Label and value row with an optional info tooltip, leading icon and from → to change format. */\nexport const DataListRow = ({\n label,\n value,\n icon,\n info,\n infoFaint = false,\n description,\n descriptionInfo,\n className,\n dataTestId,\n ...rest\n}: DetailRowProps) => (\n <div\n className={cn(styles.row, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <span className={styles.mainRow}>\n <span className={styles.labelGroup}>\n {icon ? (\n <span className={styles.leadingIcon} data-testid={dataTestId?.icon}>\n {icon}\n </span>\n ) : null}\n <span className={styles.label} data-testid={dataTestId?.label}>\n {label}\n </span>\n {info ? (\n <InfoTooltip\n content={info}\n className={cn(infoFaint && styles.infoFaint)}\n />\n ) : null}\n </span>\n {isChangeValue(value) ? (\n <span className={styles.value} data-testid={dataTestId?.value}>\n <span className={styles.valueOld}>{value.from}</span>\n <span className={styles.valueArrow} aria-hidden='true'>\n →\n </span>\n <span>{value.to}</span>\n </span>\n ) : (\n <span className={styles.value} data-testid={dataTestId?.value}>\n {value}\n </span>\n )}\n </span>\n {description ? (\n <span className={styles.descriptionRow}>\n <span\n className={styles.description}\n data-testid={dataTestId?.description}\n >\n {description}\n </span>\n {descriptionInfo ? (\n <InfoTooltip content={descriptionInfo} tone='tertiary' />\n ) : null}\n </span>\n ) : null}\n </div>\n)\n"],"names":["isChangeValue","value","DataListRow","_ref","label","icon","info","infoFaint","description","descriptionInfo","className","dataTestId","rest","_jsxs","cn","styles","row","root","children","mainRow","labelGroup","_jsx","leadingIcon","InfoTooltip","content","valueOld","from","valueArrow","to","descriptionRow","tone"],"mappings":"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"}
@@ -2,6 +2,7 @@
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 Disclaimer_module = require('./Disclaimer.module.css.cjs');
7
8
  const jsxRuntime = require('react/jsx-runtime');
@@ -11,23 +12,29 @@ const defaultContent = /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
11
12
  children: ["Your privacy matters. We use cookieless analytics and collect only anonymized data for improvements. Cookies are used for functionality only. For more info read", ' ', /*#__PURE__*/jsxRuntime.jsx(TextLink.TextLink, {
12
13
  href: "https://lido.fi/privacy-notice",
13
14
  external: true,
15
+ size: "inherit",
14
16
  children: "Privacy Notice"
15
17
  }), "."]
16
18
  });
17
- const Disclaimer = _ref => {
19
+
20
+ /** Page-level note that defaults to the privacy text and pins to the bottom (`margin-top: auto`) as the last child of a flex column. */
21
+ const Disclaimer = /*#__PURE__*/react.forwardRef((_ref, ref) => {
18
22
  let {
23
+ as: Component = 'p',
19
24
  className,
20
25
  children = defaultContent,
21
26
  dataTestId,
22
27
  ...rest
23
28
  } = _ref;
24
- return /*#__PURE__*/jsxRuntime.jsx("p", {
29
+ return /*#__PURE__*/jsxRuntime.jsx(Component, {
30
+ ref: ref,
25
31
  className: cn(Disclaimer_module.root, className),
26
32
  "data-testid": dataTestId?.root,
27
33
  ...rest,
28
34
  children: children
29
35
  });
30
- };
36
+ });
37
+ Disclaimer.displayName = 'Disclaimer';
31
38
 
32
39
  exports.Disclaimer = Disclaimer;
33
40
  //# sourceMappingURL=Disclaimer.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Disclaimer.cjs","sources":["../../../src/disclaimer/Disclaimer.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react'\n\nimport cn from 'classnames'\n\nimport { TextLink } from '../text-link'\nimport styles from './Disclaimer.module.css'\n\nexport type DisclaimerDataTestId = {\n root?: string\n}\n\nexport type DisclaimerProps = ComponentPropsWithoutRef<'p'> & {\n dataTestId?: DisclaimerDataTestId\n}\n\nconst defaultContent = (\n <>\n Your privacy matters. We use cookieless analytics and collect only\n anonymized data for improvements. Cookies are used for functionality only.\n For more info read{' '}\n <TextLink href='https://lido.fi/privacy-notice' external>\n Privacy Notice\n </TextLink>\n .\n </>\n)\n\nexport const Disclaimer = ({\n className,\n children = defaultContent,\n dataTestId,\n ...rest\n}: DisclaimerProps) => (\n <p\n className={cn(styles.root, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {children}\n </p>\n)\n"],"names":["defaultContent","_jsxs","_Fragment","children","_jsx","TextLink","href","external","Disclaimer","_ref","className","dataTestId","rest","cn","styles","root"],"mappings":";;;;;;;;;AAeA,MAAMA,cAAc,gBAClBC,eAAA,CAAAC,mBAAA,EAAA;AAAAC,EAAAA,QAAA,GAAE,kKAGkB,EAAC,GAAG,eACtBC,cAAA,CAACC,iBAAQ,EAAA;AAACC,IAAAA,IAAI,EAAC,gCAAgC;IAACC,QAAQ,EAAA,IAAA;AAAAJ,IAAAA,QAAA,EAAC,gBAAA;AAEzD,GAAU,CAAC,EAEb,GAAA,CAAA;AAAA,CAAE,CACH,CAAA;AAEM,MAAMK,UAAU,GAAGC,IAAA,IAAA;EAAA,IAAC;IACzBC,SAAS;AACTP,IAAAA,QAAQ,GAAGH,cAAc;IACzBW,UAAU;IACV,GAAGC,IAAAA;AACY,GAAC,GAAAH,IAAA,CAAA;AAAA,EAAA,oBAChBL,cAAA,CAAA,GAAA,EAAA;IACEM,SAAS,EAAEG,EAAE,CAACC,iBAAM,CAACC,IAAI,EAAEL,SAAS,CAAE;IACtC,aAAaC,EAAAA,UAAU,EAAEI,IAAK;AAAA,IAAA,GAC1BH,IAAI;AAAAT,IAAAA,QAAA,EAEPA,QAAAA;AAAQ,GACR,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"Disclaimer.cjs","sources":["../../../src/disclaimer/Disclaimer.tsx"],"sourcesContent":["import { forwardRef, type ComponentPropsWithoutRef, type Ref } from 'react'\n\nimport cn from 'classnames'\n\nimport { TextLink } from '../text-link'\nimport styles from './Disclaimer.module.css'\n\nexport type DisclaimerDataTestId = {\n root?: string\n}\n\nexport type DisclaimerProps = ComponentPropsWithoutRef<'p'> & {\n /** Root element; use `div` when `children` contain block content. */\n as?: 'p' | 'div'\n dataTestId?: DisclaimerDataTestId\n}\n\nconst defaultContent = (\n <>\n Your privacy matters. We use cookieless analytics and collect only\n anonymized data for improvements. Cookies are used for functionality only.\n For more info read{' '}\n <TextLink href='https://lido.fi/privacy-notice' external size='inherit'>\n Privacy Notice\n </TextLink>\n .\n </>\n)\n\n/** Page-level note that defaults to the privacy text and pins to the bottom (`margin-top: auto`) as the last child of a flex column. */\nexport const Disclaimer = forwardRef<HTMLElement, DisclaimerProps>(\n (\n {\n as: Component = 'p',\n className,\n children = defaultContent,\n dataTestId,\n ...rest\n },\n ref,\n ) => (\n <Component\n ref={ref as Ref<HTMLDivElement & HTMLParagraphElement>}\n className={cn(styles.root, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {children}\n </Component>\n ),\n)\n\nDisclaimer.displayName = 'Disclaimer'\n"],"names":["defaultContent","_jsxs","_Fragment","children","_jsx","TextLink","href","external","size","Disclaimer","forwardRef","_ref","ref","as","Component","className","dataTestId","rest","cn","styles","root","displayName"],"mappings":";;;;;;;;;;AAiBA,MAAMA,cAAc,gBAClBC,eAAA,CAAAC,mBAAA,EAAA;AAAAC,EAAAA,QAAA,GAAE,kKAGkB,EAAC,GAAG,eACtBC,cAAA,CAACC,iBAAQ,EAAA;AAACC,IAAAA,IAAI,EAAC,gCAAgC;IAACC,QAAQ,EAAA,IAAA;AAACC,IAAAA,IAAI,EAAC,SAAS;AAAAL,IAAAA,QAAA,EAAC,gBAAA;AAExE,GAAU,CAAC,EAEb,GAAA,CAAA;AAAA,CAAE,CACH,CAAA;;AAED;AACO,MAAMM,UAAU,gBAAGC,gBAAU,CAClC,CAAAC,IAAA,EAQEC,GAAG,KAAA;EAAA,IAPH;IACEC,EAAE,EAAEC,SAAS,GAAG,GAAG;IACnBC,SAAS;AACTZ,IAAAA,QAAQ,GAAGH,cAAc;IACzBgB,UAAU;IACV,GAAGC,IAAAA;AACL,GAAC,GAAAN,IAAA,CAAA;EAAA,oBAGDP,cAAA,CAACU,SAAS,EAAA;AACRF,IAAAA,GAAG,EAAEA,GAAkD;IACvDG,SAAS,EAAEG,EAAE,CAACC,iBAAM,CAACC,IAAI,EAAEL,SAAS,CAAE;IACtC,aAAaC,EAAAA,UAAU,EAAEI,IAAK;AAAA,IAAA,GAC1BH,IAAI;AAAAd,IAAAA,QAAA,EAEPA,QAAAA;AAAQ,GACA,CAAC,CAAA;AAAA,CAEhB,EAAC;AAEDM,UAAU,CAACY,WAAW,GAAG,YAAY;;;;"}
@@ -12,11 +12,16 @@ const Divider = /*#__PURE__*/react.forwardRef((_ref, ref) => {
12
12
  let {
13
13
  orientation = 'horizontal',
14
14
  className,
15
+ role,
16
+ dataTestId,
15
17
  ...rest
16
18
  } = _ref;
17
19
  return /*#__PURE__*/jsxRuntime.jsx("div", {
18
20
  ref: ref,
21
+ role: role,
22
+ "aria-orientation": role === 'separator' && orientation === 'vertical' ? 'vertical' : undefined,
19
23
  className: cn(Divider_module.root, Divider_module[orientation], className),
24
+ "data-testid": dataTestId?.root,
20
25
  ...rest
21
26
  });
22
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Divider.cjs","sources":["../../../src/divider/Divider.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Divider.module.css'\n\nexport type DividerOrientation = 'horizontal' | 'vertical'\n\nexport type DividerProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {\n orientation?: DividerOrientation\n}\n\n/** Visual-only 1px line in the default border color; stretches along the cross axis of a flex parent. Pass role='separator' for semantics. */\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(\n ({ orientation = 'horizontal', className, ...rest }, ref) => (\n <div\n ref={ref}\n className={cn(styles.root, styles[orientation], className)}\n {...rest}\n />\n ),\n)\n\nDivider.displayName = 'Divider'\n"],"names":["Divider","forwardRef","_ref","ref","orientation","className","rest","_jsx","cn","styles","root","displayName"],"mappings":";;;;;;;;;AAYA;AACO,MAAMA,OAAO,gBAAGC,gBAAU,CAC/B,CAAAC,IAAA,EAAqDC,GAAG,KAAA;EAAA,IAAvD;AAAEC,IAAAA,WAAW,GAAG,YAAY;IAAEC,SAAS;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAAJ,IAAA,CAAA;AAAA,EAAA,oBACjDK,cAAA,CAAA,KAAA,EAAA;AACEJ,IAAAA,GAAG,EAAEA,GAAI;AACTE,IAAAA,SAAS,EAAEG,EAAE,CAACC,cAAM,CAACC,IAAI,EAAED,cAAM,CAACL,WAAW,CAAC,EAAEC,SAAS,CAAE;IAAA,GACvDC,IAAAA;AAAI,GACT,CAAC,CAAA;AAAA,CAEN,EAAC;AAEDN,OAAO,CAACW,WAAW,GAAG,SAAS;;;;"}
1
+ {"version":3,"file":"Divider.cjs","sources":["../../../src/divider/Divider.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Divider.module.css'\n\nexport type DividerOrientation = 'horizontal' | 'vertical'\n\nexport type DividerDataTestId = { root?: string }\n\nexport type DividerProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {\n orientation?: DividerOrientation\n dataTestId?: DividerDataTestId\n}\n\n/** Visual-only 1px line in the default border color; stretches along the cross axis of a flex parent. Pass role='separator' for semantics. */\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(\n (\n { orientation = 'horizontal', className, role, dataTestId, ...rest },\n ref,\n ) => (\n <div\n ref={ref}\n role={role}\n aria-orientation={\n role === 'separator' && orientation === 'vertical'\n ? 'vertical'\n : undefined\n }\n className={cn(styles.root, styles[orientation], className)}\n data-testid={dataTestId?.root}\n {...rest}\n />\n ),\n)\n\nDivider.displayName = 'Divider'\n"],"names":["Divider","forwardRef","_ref","ref","orientation","className","role","dataTestId","rest","_jsx","undefined","cn","styles","root","displayName"],"mappings":";;;;;;;;;AAeA;AACO,MAAMA,OAAO,gBAAGC,gBAAU,CAC/B,CAAAC,IAAA,EAEEC,GAAG,KAAA;EAAA,IADH;AAAEC,IAAAA,WAAW,GAAG,YAAY;IAAEC,SAAS;IAAEC,IAAI;IAAEC,UAAU;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAAN,IAAA,CAAA;AAAA,EAAA,oBAGpEO,cAAA,CAAA,KAAA,EAAA;AACEN,IAAAA,GAAG,EAAEA,GAAI;AACTG,IAAAA,IAAI,EAAEA,IAAK;IACX,kBACEA,EAAAA,IAAI,KAAK,WAAW,IAAIF,WAAW,KAAK,UAAU,GAC9C,UAAU,GACVM,SACL;AACDL,IAAAA,SAAS,EAAEM,EAAE,CAACC,cAAM,CAACC,IAAI,EAAED,cAAM,CAACR,WAAW,CAAC,EAAEC,SAAS,CAAE;IAC3D,aAAaE,EAAAA,UAAU,EAAEM,IAAK;IAAA,GAC1BL,IAAAA;AAAI,GACT,CAAC,CAAA;AAAA,CAEN,EAAC;AAEDR,OAAO,CAACc,WAAW,GAAG,SAAS;;;;"}
@@ -2,6 +2,7 @@
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 ErrorPage_module = require('./ErrorPage.module.css.cjs');
7
8
  const jsxRuntime = require('react/jsx-runtime');
@@ -17,7 +18,10 @@ const presets = {
17
18
  }
18
19
  };
19
20
  const isPresetCode = code => code === '404' || code === '500';
20
- const ErrorPage = _ref => {
21
+ const isEmpty = node => node == null || node === '' || typeof node === 'boolean';
22
+
23
+ /** Centered 404 / 500 block with its own page gutters; render it directly in the page, not inside a container that already adds them. */
24
+ const ErrorPage = /*#__PURE__*/react.forwardRef((_ref, ref) => {
21
25
  let {
22
26
  code,
23
27
  title,
@@ -27,26 +31,28 @@ const ErrorPage = _ref => {
27
31
  dataTestId,
28
32
  ...rest
29
33
  } = _ref;
30
- const preset = isPresetCode(code) ? presets[code] : undefined;
34
+ const codeStr = code == null ? undefined : String(code);
35
+ const preset = isPresetCode(codeStr) ? presets[codeStr] : undefined;
31
36
  const resolvedTitle = title !== undefined ? title : preset?.title;
32
37
  const resolvedDescription = description !== undefined ? description : preset?.description;
33
38
  return /*#__PURE__*/jsxRuntime.jsx("div", {
39
+ ref: ref,
34
40
  className: cn(ErrorPage_module.root, className),
35
41
  "data-testid": dataTestId?.root,
36
42
  ...rest,
37
43
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
38
44
  className: ErrorPage_module.inner,
39
- children: [code != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
45
+ children: [codeStr != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
40
46
  className: ErrorPage_module.code,
41
47
  "data-testid": dataTestId?.code,
42
- children: code
48
+ children: codeStr
43
49
  }) : null, /*#__PURE__*/jsxRuntime.jsxs("div", {
44
50
  className: ErrorPage_module.text,
45
- children: [resolvedTitle != null ? /*#__PURE__*/jsxRuntime.jsx("h1", {
51
+ children: [!isEmpty(resolvedTitle) ? /*#__PURE__*/jsxRuntime.jsx("h1", {
46
52
  className: ErrorPage_module.title,
47
53
  "data-testid": dataTestId?.title,
48
54
  children: resolvedTitle
49
- }) : null, resolvedDescription != null ? /*#__PURE__*/jsxRuntime.jsx("p", {
55
+ }) : null, !isEmpty(resolvedDescription) ? /*#__PURE__*/jsxRuntime.jsx("p", {
50
56
  className: ErrorPage_module.description,
51
57
  "data-testid": dataTestId?.description,
52
58
  children: resolvedDescription
@@ -58,7 +64,8 @@ const ErrorPage = _ref => {
58
64
  }) : null]
59
65
  })
60
66
  });
61
- };
67
+ });
68
+ ErrorPage.displayName = 'ErrorPage';
62
69
 
63
70
  exports.ErrorPage = ErrorPage;
64
71
  //# sourceMappingURL=ErrorPage.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorPage.cjs","sources":["../../../src/error-page/ErrorPage.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './ErrorPage.module.css'\n\nexport type ErrorPageCode = '404' | '500'\n\nexport type ErrorPageDataTestId = {\n root?: string\n code?: string\n title?: string\n description?: string\n action?: string\n}\n\nexport type ErrorPageProps = Omit<HTMLAttributes<HTMLDivElement>, 'title'> & {\n /** `'404'` / `'500'` fill default title and description. */\n code?: ErrorPageCode | (string & {})\n title?: ReactNode\n description?: ReactNode\n /** Slot below the text, usually a `Button`. */\n action?: ReactNode\n dataTestId?: ErrorPageDataTestId\n}\n\nconst presets: Record<ErrorPageCode, { title: string; description: string }> = {\n '404': {\n title: 'Page not found',\n description:\n 'The page you’re looking for doesn’t exist or has been moved. Check the URL or return to your dashboard.',\n },\n '500': {\n title: 'Something went wrong',\n description:\n 'We’re having trouble loading this page. Please try again in a moment.',\n },\n}\n\nconst isPresetCode = (code?: string): code is ErrorPageCode =>\n code === '404' || code === '500'\n\nexport const ErrorPage = ({\n code,\n title,\n description,\n action,\n className,\n dataTestId,\n ...rest\n}: ErrorPageProps) => {\n const preset = isPresetCode(code) ? presets[code] : undefined\n const resolvedTitle = title !== undefined ? title : preset?.title\n const resolvedDescription =\n description !== undefined ? description : preset?.description\n\n return (\n <div\n className={cn(styles.root, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <div className={styles.inner}>\n {code != null ? (\n <div className={styles.code} data-testid={dataTestId?.code}>\n {code}\n </div>\n ) : null}\n <div className={styles.text}>\n {resolvedTitle != null ? (\n <h1 className={styles.title} data-testid={dataTestId?.title}>\n {resolvedTitle}\n </h1>\n ) : null}\n {resolvedDescription != null ? (\n <p\n className={styles.description}\n data-testid={dataTestId?.description}\n >\n {resolvedDescription}\n </p>\n ) : null}\n </div>\n {action != null ? (\n <div className={styles.action} data-testid={dataTestId?.action}>\n {action}\n </div>\n ) : null}\n </div>\n </div>\n )\n}\n"],"names":["presets","title","description","isPresetCode","code","ErrorPage","_ref","action","className","dataTestId","rest","preset","undefined","resolvedTitle","resolvedDescription","_jsx","cn","styles","root","children","_jsxs","inner","text"],"mappings":";;;;;;;;AA0BA,MAAMA,OAAsE,GAAG;AAC7E,EAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAE,gBAAgB;AACvBC,IAAAA,WAAW,EACT,yGAAA;GACH;AACD,EAAA,KAAK,EAAE;AACLD,IAAAA,KAAK,EAAE,sBAAsB;AAC7BC,IAAAA,WAAW,EACT,uEAAA;AACJ,GAAA;AACF,CAAC,CAAA;AAED,MAAMC,YAAY,GAAIC,IAAa,IACjCA,IAAI,KAAK,KAAK,IAAIA,IAAI,KAAK,KAAK,CAAA;AAErBC,MAAAA,SAAS,GAAGC,IAAA,IAQH;EAAA,IARI;IACxBF,IAAI;IACJH,KAAK;IACLC,WAAW;IACXK,MAAM;IACNC,SAAS;IACTC,UAAU;IACV,GAAGC,IAAAA;AACW,GAAC,GAAAJ,IAAA,CAAA;AACf,EAAA,MAAMK,MAAM,GAAGR,YAAY,CAACC,IAAI,CAAC,GAAGJ,OAAO,CAACI,IAAI,CAAC,GAAGQ,SAAS,CAAA;EAC7D,MAAMC,aAAa,GAAGZ,KAAK,KAAKW,SAAS,GAAGX,KAAK,GAAGU,MAAM,EAAEV,KAAK,CAAA;EACjE,MAAMa,mBAAmB,GACvBZ,WAAW,KAAKU,SAAS,GAAGV,WAAW,GAAGS,MAAM,EAAET,WAAW,CAAA;AAE/D,EAAA,oBACEa,cAAA,CAAA,KAAA,EAAA;IACEP,SAAS,EAAEQ,EAAE,CAACC,gBAAM,CAACC,IAAI,EAAEV,SAAS,CAAE;IACtC,aAAaC,EAAAA,UAAU,EAAES,IAAK;AAAA,IAAA,GAC1BR,IAAI;AAAAS,IAAAA,QAAA,eAERC,eAAA,CAAA,KAAA,EAAA;MAAKZ,SAAS,EAAES,gBAAM,CAACI,KAAM;AAAAF,MAAAA,QAAA,EAC1Bf,CAAAA,IAAI,IAAI,IAAI,gBACXW,cAAA,CAAA,KAAA,EAAA;QAAKP,SAAS,EAAES,gBAAM,CAACb,IAAK;QAAC,aAAaK,EAAAA,UAAU,EAAEL,IAAK;AAAAe,QAAAA,QAAA,EACxDf,IAAAA;AAAI,OACF,CAAC,GACJ,IAAI,eACRgB,eAAA,CAAA,KAAA,EAAA;QAAKZ,SAAS,EAAES,gBAAM,CAACK,IAAK;AAAAH,QAAAA,QAAA,EACzBN,CAAAA,aAAa,IAAI,IAAI,gBACpBE,cAAA,CAAA,IAAA,EAAA;UAAIP,SAAS,EAAES,gBAAM,CAAChB,KAAM;UAAC,aAAaQ,EAAAA,UAAU,EAAER,KAAM;AAAAkB,UAAAA,QAAA,EACzDN,aAAAA;SACC,CAAC,GACH,IAAI,EACPC,mBAAmB,IAAI,IAAI,gBAC1BC,cAAA,CAAA,GAAA,EAAA;UACEP,SAAS,EAAES,gBAAM,CAACf,WAAY;UAC9B,aAAaO,EAAAA,UAAU,EAAEP,WAAY;AAAAiB,UAAAA,QAAA,EAEpCL,mBAAAA;SACA,CAAC,GACF,IAAI,CAAA;AAAA,OACL,CAAC,EACLP,MAAM,IAAI,IAAI,gBACbQ,cAAA,CAAA,KAAA,EAAA;QAAKP,SAAS,EAAES,gBAAM,CAACV,MAAO;QAAC,aAAaE,EAAAA,UAAU,EAAEF,MAAO;AAAAY,QAAAA,QAAA,EAC5DZ,MAAAA;OACE,CAAC,GACJ,IAAI,CAAA;KACL,CAAA;AAAC,GACH,CAAC,CAAA;AAEV;;;;"}
1
+ {"version":3,"file":"ErrorPage.cjs","sources":["../../../src/error-page/ErrorPage.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './ErrorPage.module.css'\n\nexport type ErrorPageCode = '404' | '500'\n\nexport type ErrorPageDataTestId = {\n root?: string\n code?: string\n title?: string\n description?: string\n action?: string\n}\n\nexport type ErrorPageProps = Omit<HTMLAttributes<HTMLDivElement>, 'title'> & {\n /** `'404'` / `'500'` fill default title and description. */\n code?: ErrorPageCode | number | (string & {})\n /** Overrides the preset title; `null` suppresses it. */\n title?: ReactNode\n /** Overrides the preset description; `null` suppresses it. */\n description?: ReactNode\n /** Slot below the text: one or more `Button`s, which wrap on narrow screens. */\n action?: ReactNode\n dataTestId?: ErrorPageDataTestId\n}\n\nconst presets: Record<ErrorPageCode, { title: string; description: string }> = {\n '404': {\n title: 'Page not found',\n description:\n 'The page you’re looking for doesn’t exist or has been moved. Check the URL or return to your dashboard.',\n },\n '500': {\n title: 'Something went wrong',\n description:\n 'We’re having trouble loading this page. Please try again in a moment.',\n },\n}\n\nconst isPresetCode = (code?: string): code is ErrorPageCode =>\n code === '404' || code === '500'\n\nconst isEmpty = (node: ReactNode) =>\n node == null || node === '' || typeof node === 'boolean'\n\n/** Centered 404 / 500 block with its own page gutters; render it directly in the page, not inside a container that already adds them. */\nexport const ErrorPage = forwardRef<HTMLDivElement, ErrorPageProps>(\n (\n { code, title, description, action, className, dataTestId, ...rest },\n ref,\n ) => {\n const codeStr = code == null ? undefined : String(code)\n const preset = isPresetCode(codeStr) ? presets[codeStr] : undefined\n const resolvedTitle = title !== undefined ? title : preset?.title\n const resolvedDescription =\n description !== undefined ? description : preset?.description\n\n return (\n <div\n ref={ref}\n className={cn(styles.root, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <div className={styles.inner}>\n {codeStr != null ? (\n <div className={styles.code} data-testid={dataTestId?.code}>\n {codeStr}\n </div>\n ) : null}\n <div className={styles.text}>\n {!isEmpty(resolvedTitle) ? (\n <h1 className={styles.title} data-testid={dataTestId?.title}>\n {resolvedTitle}\n </h1>\n ) : null}\n {!isEmpty(resolvedDescription) ? (\n <p\n className={styles.description}\n data-testid={dataTestId?.description}\n >\n {resolvedDescription}\n </p>\n ) : null}\n </div>\n {action != null ? (\n <div className={styles.action} data-testid={dataTestId?.action}>\n {action}\n </div>\n ) : null}\n </div>\n </div>\n )\n },\n)\n\nErrorPage.displayName = 'ErrorPage'\n"],"names":["presets","title","description","isPresetCode","code","isEmpty","node","ErrorPage","forwardRef","_ref","ref","action","className","dataTestId","rest","codeStr","undefined","String","preset","resolvedTitle","resolvedDescription","_jsx","cn","styles","root","children","_jsxs","inner","text","displayName"],"mappings":"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"}