@lidofinance/lido-app-ui 1.8.0 → 1.10.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 (352) hide show
  1. package/README.md +30 -1
  2. package/dist/README.md +30 -1
  3. package/dist/cjs/breadcrumbs/Breadcrumbs.cjs +92 -0
  4. package/dist/cjs/breadcrumbs/Breadcrumbs.cjs.map +1 -0
  5. package/dist/cjs/breadcrumbs/Breadcrumbs.module.css.cjs +6 -0
  6. package/dist/cjs/breadcrumbs/Breadcrumbs.module.css.cjs.map +1 -0
  7. package/dist/cjs/button/Button.cjs +11 -3
  8. package/dist/cjs/button/Button.cjs.map +1 -1
  9. package/dist/cjs/counter/Counter.module.css.cjs +1 -1
  10. package/dist/cjs/counter/CounterSlot.cjs +22 -0
  11. package/dist/cjs/counter/CounterSlot.cjs.map +1 -0
  12. package/dist/cjs/counter/CounterSlot.module.css.cjs +6 -0
  13. package/dist/cjs/counter/CounterSlot.module.css.cjs.map +1 -0
  14. package/dist/cjs/disclaimer/Disclaimer.cjs +33 -0
  15. package/dist/cjs/disclaimer/Disclaimer.cjs.map +1 -0
  16. package/dist/cjs/disclaimer/Disclaimer.module.css.cjs +6 -0
  17. package/dist/cjs/disclaimer/Disclaimer.module.css.cjs.map +1 -0
  18. package/dist/cjs/divider/Divider.cjs +26 -0
  19. package/dist/cjs/divider/Divider.cjs.map +1 -0
  20. package/dist/cjs/divider/Divider.module.css.cjs +6 -0
  21. package/dist/cjs/divider/Divider.module.css.cjs.map +1 -0
  22. package/dist/cjs/error-page/ErrorPage.cjs +64 -0
  23. package/dist/cjs/error-page/ErrorPage.cjs.map +1 -0
  24. package/dist/cjs/error-page/ErrorPage.module.css.cjs +6 -0
  25. package/dist/cjs/error-page/ErrorPage.module.css.cjs.map +1 -0
  26. package/dist/cjs/footer/Footer.cjs +30 -0
  27. package/dist/cjs/footer/Footer.cjs.map +1 -0
  28. package/dist/cjs/footer/Footer.module.css.cjs +6 -0
  29. package/dist/cjs/footer/Footer.module.css.cjs.map +1 -0
  30. package/dist/cjs/grid/Grid.cjs +47 -0
  31. package/dist/cjs/grid/Grid.cjs.map +1 -0
  32. package/dist/cjs/grid/Grid.module.css.cjs +6 -0
  33. package/dist/cjs/grid/Grid.module.css.cjs.map +1 -0
  34. package/dist/cjs/grid/GridItem.cjs +39 -0
  35. package/dist/cjs/grid/GridItem.cjs.map +1 -0
  36. package/dist/cjs/grid/GridItem.module.css.cjs +6 -0
  37. package/dist/cjs/grid/GridItem.module.css.cjs.map +1 -0
  38. package/dist/cjs/header/Header.cjs +31 -0
  39. package/dist/cjs/header/Header.cjs.map +1 -0
  40. package/dist/cjs/header/Header.module.css.cjs +6 -0
  41. package/dist/cjs/header/Header.module.css.cjs.map +1 -0
  42. package/dist/cjs/header/HeaderNav.cjs +69 -0
  43. package/dist/cjs/header/HeaderNav.cjs.map +1 -0
  44. package/dist/cjs/header/HeaderNav.module.css.cjs +6 -0
  45. package/dist/cjs/header/HeaderNav.module.css.cjs.map +1 -0
  46. package/dist/cjs/hidden/Hidden.cjs +25 -0
  47. package/dist/cjs/hidden/Hidden.cjs.map +1 -0
  48. package/dist/cjs/hidden/Hidden.module.css.cjs +6 -0
  49. package/dist/cjs/hidden/Hidden.module.css.cjs.map +1 -0
  50. package/dist/cjs/hooks/Portal.cjs +57 -0
  51. package/dist/cjs/hooks/Portal.cjs.map +1 -0
  52. package/dist/cjs/hooks/overlayStack.cjs +26 -0
  53. package/dist/cjs/hooks/overlayStack.cjs.map +1 -0
  54. package/dist/cjs/hooks/useBodyScrollLock.cjs +50 -0
  55. package/dist/cjs/hooks/useBodyScrollLock.cjs.map +1 -0
  56. package/dist/cjs/hooks/useEscape.cjs +25 -0
  57. package/dist/cjs/hooks/useEscape.cjs.map +1 -0
  58. package/dist/cjs/hooks/useFocusTrap.cjs +66 -0
  59. package/dist/cjs/hooks/useFocusTrap.cjs.map +1 -0
  60. package/dist/cjs/hooks/useIsomorphicLayoutEffect.cjs +10 -0
  61. package/dist/cjs/hooks/useIsomorphicLayoutEffect.cjs.map +1 -0
  62. package/dist/cjs/hooks/useOutsideClick.cjs +15 -13
  63. package/dist/cjs/hooks/useOutsideClick.cjs.map +1 -1
  64. package/dist/cjs/icon-button/IconButton.cjs +13 -5
  65. package/dist/cjs/icon-button/IconButton.cjs.map +1 -1
  66. package/dist/cjs/icon-button/IconButton.module.css.cjs +1 -1
  67. package/dist/cjs/index.cjs +34 -0
  68. package/dist/cjs/index.cjs.map +1 -1
  69. package/dist/cjs/index.css +3 -3
  70. package/dist/cjs/link-provider/Anchor.cjs +48 -0
  71. package/dist/cjs/link-provider/Anchor.cjs.map +1 -0
  72. package/dist/cjs/link-provider/LinkProvider.cjs +29 -0
  73. package/dist/cjs/link-provider/LinkProvider.cjs.map +1 -0
  74. package/dist/cjs/logo/Logo.cjs +84 -0
  75. package/dist/cjs/logo/Logo.cjs.map +1 -0
  76. package/dist/cjs/logo/Logo.module.css.cjs +6 -0
  77. package/dist/cjs/logo/Logo.module.css.cjs.map +1 -0
  78. package/dist/cjs/modal/Modal.cjs +36 -29
  79. package/dist/cjs/modal/Modal.cjs.map +1 -1
  80. package/dist/cjs/nav-link/NavLink.cjs +44 -0
  81. package/dist/cjs/nav-link/NavLink.cjs.map +1 -0
  82. package/dist/cjs/nav-link/NavLink.module.css.cjs +6 -0
  83. package/dist/cjs/nav-link/NavLink.module.css.cjs.map +1 -0
  84. package/dist/cjs/notification/Notification.cjs +20 -4
  85. package/dist/cjs/notification/Notification.cjs.map +1 -1
  86. package/dist/cjs/notification/Notification.module.css.cjs +1 -1
  87. package/dist/cjs/popover/Popover.cjs +136 -0
  88. package/dist/cjs/popover/Popover.cjs.map +1 -0
  89. package/dist/cjs/popover/Popover.module.css.cjs +6 -0
  90. package/dist/cjs/popover/Popover.module.css.cjs.map +1 -0
  91. package/dist/cjs/segmented-control/SegmentedControl.cjs +2 -1
  92. package/dist/cjs/segmented-control/SegmentedControl.cjs.map +1 -1
  93. package/dist/cjs/segmented-control/SegmentedControlCard.cjs +2 -1
  94. package/dist/cjs/segmented-control/SegmentedControlCard.cjs.map +1 -1
  95. package/dist/cjs/skeleton/Skeleton.cjs +40 -0
  96. package/dist/cjs/skeleton/Skeleton.cjs.map +1 -0
  97. package/dist/cjs/skeleton/Skeleton.module.css.cjs +6 -0
  98. package/dist/cjs/skeleton/Skeleton.module.css.cjs.map +1 -0
  99. package/dist/cjs/small-card/SmallCard.cjs +2 -1
  100. package/dist/cjs/small-card/SmallCard.cjs.map +1 -1
  101. package/dist/cjs/stack/Stack.cjs +41 -0
  102. package/dist/cjs/stack/Stack.cjs.map +1 -0
  103. package/dist/cjs/stack/Stack.module.css.cjs +6 -0
  104. package/dist/cjs/stack/Stack.module.css.cjs.map +1 -0
  105. package/dist/cjs/tabs/Tabs.cjs +2 -1
  106. package/dist/cjs/tabs/Tabs.cjs.map +1 -1
  107. package/dist/cjs/tag/Tag.cjs +1 -1
  108. package/dist/cjs/tag/Tag.cjs.map +1 -1
  109. package/dist/cjs/tag/Tag.module.css.cjs +1 -1
  110. package/dist/cjs/text-link/TextLink.cjs +2 -1
  111. package/dist/cjs/text-link/TextLink.cjs.map +1 -1
  112. package/dist/cjs/theme-switcher/ThemeSwitcher.cjs +39 -0
  113. package/dist/cjs/theme-switcher/ThemeSwitcher.cjs.map +1 -0
  114. package/dist/cjs/token-selector/TokenSelector.cjs +3 -3
  115. package/dist/cjs/token-selector/TokenSelector.cjs.map +1 -1
  116. package/dist/cjs/tooltip/Tooltip.cjs +2 -1
  117. package/dist/cjs/tooltip/Tooltip.cjs.map +1 -1
  118. package/dist/cjs/utils/ActionElement.cjs +41 -0
  119. package/dist/cjs/utils/ActionElement.cjs.map +1 -0
  120. package/dist/cjs/utils/responsive.cjs +67 -0
  121. package/dist/cjs/utils/responsive.cjs.map +1 -0
  122. package/dist/esm/breadcrumbs/Breadcrumbs.mjs +88 -0
  123. package/dist/esm/breadcrumbs/Breadcrumbs.mjs.map +1 -0
  124. package/dist/esm/breadcrumbs/Breadcrumbs.module.css.mjs +4 -0
  125. package/dist/esm/breadcrumbs/Breadcrumbs.module.css.mjs.map +1 -0
  126. package/dist/esm/button/Button.mjs +11 -3
  127. package/dist/esm/button/Button.mjs.map +1 -1
  128. package/dist/esm/counter/Counter.module.css.mjs +1 -1
  129. package/dist/esm/counter/CounterSlot.mjs +18 -0
  130. package/dist/esm/counter/CounterSlot.mjs.map +1 -0
  131. package/dist/esm/counter/CounterSlot.module.css.mjs +4 -0
  132. package/dist/esm/counter/CounterSlot.module.css.mjs.map +1 -0
  133. package/dist/esm/disclaimer/Disclaimer.mjs +29 -0
  134. package/dist/esm/disclaimer/Disclaimer.mjs.map +1 -0
  135. package/dist/esm/disclaimer/Disclaimer.module.css.mjs +4 -0
  136. package/dist/esm/disclaimer/Disclaimer.module.css.mjs.map +1 -0
  137. package/dist/esm/divider/Divider.mjs +22 -0
  138. package/dist/esm/divider/Divider.mjs.map +1 -0
  139. package/dist/esm/divider/Divider.module.css.mjs +4 -0
  140. package/dist/esm/divider/Divider.module.css.mjs.map +1 -0
  141. package/dist/esm/error-page/ErrorPage.mjs +60 -0
  142. package/dist/esm/error-page/ErrorPage.mjs.map +1 -0
  143. package/dist/esm/error-page/ErrorPage.module.css.mjs +4 -0
  144. package/dist/esm/error-page/ErrorPage.module.css.mjs.map +1 -0
  145. package/dist/esm/footer/Footer.mjs +26 -0
  146. package/dist/esm/footer/Footer.mjs.map +1 -0
  147. package/dist/esm/footer/Footer.module.css.mjs +4 -0
  148. package/dist/esm/footer/Footer.module.css.mjs.map +1 -0
  149. package/dist/esm/grid/Grid.mjs +43 -0
  150. package/dist/esm/grid/Grid.mjs.map +1 -0
  151. package/dist/esm/grid/Grid.module.css.mjs +4 -0
  152. package/dist/esm/grid/Grid.module.css.mjs.map +1 -0
  153. package/dist/esm/grid/GridItem.mjs +35 -0
  154. package/dist/esm/grid/GridItem.mjs.map +1 -0
  155. package/dist/esm/grid/GridItem.module.css.mjs +4 -0
  156. package/dist/esm/grid/GridItem.module.css.mjs.map +1 -0
  157. package/dist/esm/header/Header.mjs +27 -0
  158. package/dist/esm/header/Header.mjs.map +1 -0
  159. package/dist/esm/header/Header.module.css.mjs +4 -0
  160. package/dist/esm/header/Header.module.css.mjs.map +1 -0
  161. package/dist/esm/header/HeaderNav.mjs +65 -0
  162. package/dist/esm/header/HeaderNav.mjs.map +1 -0
  163. package/dist/esm/header/HeaderNav.module.css.mjs +4 -0
  164. package/dist/esm/header/HeaderNav.module.css.mjs.map +1 -0
  165. package/dist/esm/hidden/Hidden.mjs +21 -0
  166. package/dist/esm/hidden/Hidden.mjs.map +1 -0
  167. package/dist/esm/hidden/Hidden.module.css.mjs +4 -0
  168. package/dist/esm/hidden/Hidden.module.css.mjs.map +1 -0
  169. package/dist/esm/hooks/Portal.mjs +53 -0
  170. package/dist/esm/hooks/Portal.mjs.map +1 -0
  171. package/dist/esm/hooks/overlayStack.mjs +22 -0
  172. package/dist/esm/hooks/overlayStack.mjs.map +1 -0
  173. package/dist/esm/hooks/useBodyScrollLock.mjs +46 -0
  174. package/dist/esm/hooks/useBodyScrollLock.mjs.map +1 -0
  175. package/dist/esm/hooks/useEscape.mjs +21 -0
  176. package/dist/esm/hooks/useEscape.mjs.map +1 -0
  177. package/dist/esm/hooks/useFocusTrap.mjs +62 -0
  178. package/dist/esm/hooks/useFocusTrap.mjs.map +1 -0
  179. package/dist/esm/hooks/useIsomorphicLayoutEffect.mjs +6 -0
  180. package/dist/esm/hooks/useIsomorphicLayoutEffect.mjs.map +1 -0
  181. package/dist/esm/hooks/useOutsideClick.mjs +16 -14
  182. package/dist/esm/hooks/useOutsideClick.mjs.map +1 -1
  183. package/dist/esm/icon-button/IconButton.mjs +14 -6
  184. package/dist/esm/icon-button/IconButton.mjs.map +1 -1
  185. package/dist/esm/icon-button/IconButton.module.css.mjs +1 -1
  186. package/dist/esm/index.css +3 -3
  187. package/dist/esm/index.mjs +17 -0
  188. package/dist/esm/index.mjs.map +1 -1
  189. package/dist/esm/link-provider/Anchor.mjs +44 -0
  190. package/dist/esm/link-provider/Anchor.mjs.map +1 -0
  191. package/dist/esm/link-provider/LinkProvider.mjs +24 -0
  192. package/dist/esm/link-provider/LinkProvider.mjs.map +1 -0
  193. package/dist/esm/logo/Logo.mjs +80 -0
  194. package/dist/esm/logo/Logo.mjs.map +1 -0
  195. package/dist/esm/logo/Logo.module.css.mjs +4 -0
  196. package/dist/esm/logo/Logo.module.css.mjs.map +1 -0
  197. package/dist/esm/modal/Modal.mjs +38 -31
  198. package/dist/esm/modal/Modal.mjs.map +1 -1
  199. package/dist/esm/nav-link/NavLink.mjs +40 -0
  200. package/dist/esm/nav-link/NavLink.mjs.map +1 -0
  201. package/dist/esm/nav-link/NavLink.module.css.mjs +4 -0
  202. package/dist/esm/nav-link/NavLink.module.css.mjs.map +1 -0
  203. package/dist/esm/notification/Notification.mjs +20 -4
  204. package/dist/esm/notification/Notification.mjs.map +1 -1
  205. package/dist/esm/notification/Notification.module.css.mjs +1 -1
  206. package/dist/esm/popover/Popover.mjs +132 -0
  207. package/dist/esm/popover/Popover.mjs.map +1 -0
  208. package/dist/esm/popover/Popover.module.css.mjs +4 -0
  209. package/dist/esm/popover/Popover.module.css.mjs.map +1 -0
  210. package/dist/esm/segmented-control/SegmentedControl.mjs +3 -2
  211. package/dist/esm/segmented-control/SegmentedControl.mjs.map +1 -1
  212. package/dist/esm/segmented-control/SegmentedControlCard.mjs +3 -2
  213. package/dist/esm/segmented-control/SegmentedControlCard.mjs.map +1 -1
  214. package/dist/esm/skeleton/Skeleton.mjs +36 -0
  215. package/dist/esm/skeleton/Skeleton.mjs.map +1 -0
  216. package/dist/esm/skeleton/Skeleton.module.css.mjs +4 -0
  217. package/dist/esm/skeleton/Skeleton.module.css.mjs.map +1 -0
  218. package/dist/esm/small-card/SmallCard.mjs +2 -1
  219. package/dist/esm/small-card/SmallCard.mjs.map +1 -1
  220. package/dist/esm/stack/Stack.mjs +37 -0
  221. package/dist/esm/stack/Stack.mjs.map +1 -0
  222. package/dist/esm/stack/Stack.module.css.mjs +4 -0
  223. package/dist/esm/stack/Stack.module.css.mjs.map +1 -0
  224. package/dist/esm/tabs/Tabs.mjs +3 -2
  225. package/dist/esm/tabs/Tabs.mjs.map +1 -1
  226. package/dist/esm/tag/Tag.mjs +1 -1
  227. package/dist/esm/tag/Tag.mjs.map +1 -1
  228. package/dist/esm/tag/Tag.module.css.mjs +1 -1
  229. package/dist/esm/text-link/TextLink.mjs +2 -1
  230. package/dist/esm/text-link/TextLink.mjs.map +1 -1
  231. package/dist/esm/theme-switcher/ThemeSwitcher.mjs +35 -0
  232. package/dist/esm/theme-switcher/ThemeSwitcher.mjs.map +1 -0
  233. package/dist/esm/token-selector/TokenSelector.mjs +3 -3
  234. package/dist/esm/token-selector/TokenSelector.mjs.map +1 -1
  235. package/dist/esm/tooltip/Tooltip.mjs +3 -2
  236. package/dist/esm/tooltip/Tooltip.mjs.map +1 -1
  237. package/dist/esm/utils/ActionElement.mjs +37 -0
  238. package/dist/esm/utils/ActionElement.mjs.map +1 -0
  239. package/dist/esm/utils/responsive.mjs +58 -0
  240. package/dist/esm/utils/responsive.mjs.map +1 -0
  241. package/dist/index.css +3 -3
  242. package/dist/styles/breakpoints.css +6 -0
  243. package/dist/styles/typography-mixins.css +8 -0
  244. package/dist/types/breadcrumbs/Breadcrumbs.d.ts +11 -0
  245. package/dist/types/breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  246. package/dist/types/breadcrumbs/index.d.ts +3 -0
  247. package/dist/types/breadcrumbs/index.d.ts.map +1 -0
  248. package/dist/types/button/Button.d.ts +14 -2
  249. package/dist/types/button/Button.d.ts.map +1 -1
  250. package/dist/types/colors/colorTokens.d.ts.map +1 -1
  251. package/dist/types/counter/CounterSlot.d.ts +8 -0
  252. package/dist/types/counter/CounterSlot.d.ts.map +1 -0
  253. package/dist/types/disclaimer/Disclaimer.d.ts +9 -0
  254. package/dist/types/disclaimer/Disclaimer.d.ts.map +1 -0
  255. package/dist/types/disclaimer/index.d.ts +3 -0
  256. package/dist/types/disclaimer/index.d.ts.map +1 -0
  257. package/dist/types/divider/Divider.d.ts +10 -0
  258. package/dist/types/divider/Divider.d.ts.map +1 -0
  259. package/dist/types/divider/index.d.ts +3 -0
  260. package/dist/types/divider/index.d.ts.map +1 -0
  261. package/dist/types/error-page/ErrorPage.d.ts +20 -0
  262. package/dist/types/error-page/ErrorPage.d.ts.map +1 -0
  263. package/dist/types/error-page/index.d.ts +3 -0
  264. package/dist/types/error-page/index.d.ts.map +1 -0
  265. package/dist/types/footer/Footer.d.ts +7 -0
  266. package/dist/types/footer/Footer.d.ts.map +1 -0
  267. package/dist/types/footer/index.d.ts +3 -0
  268. package/dist/types/footer/index.d.ts.map +1 -0
  269. package/dist/types/grid/Grid.d.ts +31 -0
  270. package/dist/types/grid/Grid.d.ts.map +1 -0
  271. package/dist/types/grid/GridItem.d.ts +16 -0
  272. package/dist/types/grid/GridItem.d.ts.map +1 -0
  273. package/dist/types/grid/index.d.ts +5 -0
  274. package/dist/types/grid/index.d.ts.map +1 -0
  275. package/dist/types/header/Header.d.ts +9 -0
  276. package/dist/types/header/Header.d.ts.map +1 -0
  277. package/dist/types/header/HeaderNav.d.ts +4 -0
  278. package/dist/types/header/HeaderNav.d.ts.map +1 -0
  279. package/dist/types/header/index.d.ts +5 -0
  280. package/dist/types/header/index.d.ts.map +1 -0
  281. package/dist/types/hidden/Hidden.d.ts +11 -0
  282. package/dist/types/hidden/Hidden.d.ts.map +1 -0
  283. package/dist/types/hidden/index.d.ts +3 -0
  284. package/dist/types/hidden/index.d.ts.map +1 -0
  285. package/dist/types/hooks/Portal.d.ts +12 -0
  286. package/dist/types/hooks/Portal.d.ts.map +1 -0
  287. package/dist/types/hooks/index.d.ts +9 -0
  288. package/dist/types/hooks/index.d.ts.map +1 -0
  289. package/dist/types/hooks/overlayStack.d.ts +7 -0
  290. package/dist/types/hooks/overlayStack.d.ts.map +1 -0
  291. package/dist/types/hooks/useBodyScrollLock.d.ts +3 -0
  292. package/dist/types/hooks/useBodyScrollLock.d.ts.map +1 -0
  293. package/dist/types/hooks/useEscape.d.ts +3 -0
  294. package/dist/types/hooks/useEscape.d.ts.map +1 -0
  295. package/dist/types/hooks/useFocusTrap.d.ts +10 -0
  296. package/dist/types/hooks/useFocusTrap.d.ts.map +1 -0
  297. package/dist/types/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
  298. package/dist/types/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
  299. package/dist/types/hooks/useOutsideClick.d.ts +2 -2
  300. package/dist/types/hooks/useOutsideClick.d.ts.map +1 -1
  301. package/dist/types/icon-button/IconButton.d.ts +14 -3
  302. package/dist/types/icon-button/IconButton.d.ts.map +1 -1
  303. package/dist/types/index.d.ts +16 -0
  304. package/dist/types/index.d.ts.map +1 -1
  305. package/dist/types/link-provider/Anchor.d.ts +4 -0
  306. package/dist/types/link-provider/Anchor.d.ts.map +1 -0
  307. package/dist/types/link-provider/LinkProvider.d.ts +17 -0
  308. package/dist/types/link-provider/LinkProvider.d.ts.map +1 -0
  309. package/dist/types/link-provider/index.d.ts +3 -0
  310. package/dist/types/link-provider/index.d.ts.map +1 -0
  311. package/dist/types/logo/Logo.d.ts +13 -0
  312. package/dist/types/logo/Logo.d.ts.map +1 -0
  313. package/dist/types/logo/index.d.ts +3 -0
  314. package/dist/types/logo/index.d.ts.map +1 -0
  315. package/dist/types/modal/Modal.d.ts +23 -1
  316. package/dist/types/modal/Modal.d.ts.map +1 -1
  317. package/dist/types/nav-link/NavLink.d.ts +12 -0
  318. package/dist/types/nav-link/NavLink.d.ts.map +1 -0
  319. package/dist/types/nav-link/index.d.ts +3 -0
  320. package/dist/types/nav-link/index.d.ts.map +1 -0
  321. package/dist/types/notification/Notification.d.ts +15 -2
  322. package/dist/types/notification/Notification.d.ts.map +1 -1
  323. package/dist/types/popover/Popover.d.ts +21 -0
  324. package/dist/types/popover/Popover.d.ts.map +1 -0
  325. package/dist/types/popover/index.d.ts +3 -0
  326. package/dist/types/popover/index.d.ts.map +1 -0
  327. package/dist/types/segmented-control/SegmentedControl.d.ts.map +1 -1
  328. package/dist/types/segmented-control/SegmentedControlCard.d.ts.map +1 -1
  329. package/dist/types/skeleton/Skeleton.d.ts +9 -0
  330. package/dist/types/skeleton/Skeleton.d.ts.map +1 -0
  331. package/dist/types/skeleton/index.d.ts +2 -0
  332. package/dist/types/skeleton/index.d.ts.map +1 -0
  333. package/dist/types/small-card/SmallCard.d.ts.map +1 -1
  334. package/dist/types/stack/Stack.d.ts +25 -0
  335. package/dist/types/stack/Stack.d.ts.map +1 -0
  336. package/dist/types/stack/index.d.ts +3 -0
  337. package/dist/types/stack/index.d.ts.map +1 -0
  338. package/dist/types/tabs/Tabs.d.ts.map +1 -1
  339. package/dist/types/tag/Tag.d.ts.map +1 -1
  340. package/dist/types/text-link/TextLink.d.ts.map +1 -1
  341. package/dist/types/theme-switcher/ThemeSwitcher.d.ts +5 -0
  342. package/dist/types/theme-switcher/ThemeSwitcher.d.ts.map +1 -0
  343. package/dist/types/theme-switcher/index.d.ts +3 -0
  344. package/dist/types/theme-switcher/index.d.ts.map +1 -0
  345. package/dist/types/tooltip/Tooltip.d.ts.map +1 -1
  346. package/dist/types/utils/ActionElement.d.ts +10 -0
  347. package/dist/types/utils/ActionElement.d.ts.map +1 -0
  348. package/dist/types/utils/index.d.ts +5 -0
  349. package/dist/types/utils/index.d.ts.map +1 -0
  350. package/dist/types/utils/responsive.d.ts +27 -0
  351. package/dist/types/utils/responsive.d.ts.map +1 -0
  352. package/package.json +2 -2
package/README.md CHANGED
@@ -28,7 +28,36 @@ function Widget() {
28
28
  }
29
29
  ```
30
30
 
31
- Theme providers (`ThemeProvider`, `CookieThemeProvider`, `ThemeToggler`) are re-exported from `@lidofinance/lido-shared-ui`. The color tokens follow the `data-lido-theme` attribute they set, so switching to the dark theme restyles these components.
31
+ Theme providers (`ThemeProvider`, `CookieThemeProvider`, `ThemeToggler`) are re-exported from `@lidofinance/lido-shared-ui`. The color tokens follow the `data-lido-theme` attribute they set, so switching to the dark theme restyles these components. `ThemeSwitcher` is the app-ui-styled theme toggle, since the shared `ThemeToggler` relies on `--lido-ui-*` tokens that app-ui doesn't define.
32
+
33
+ ## Router links
34
+
35
+ Link components (`TextLink`, `SmallCard`) render a plain `<a>` by default. Wrap the app in `LinkProvider` to route in-app hrefs through your router's link component; `externalComponent` does the same for absolute URLs. Hash links, `download` links and links with a non-`_self` `target` always stay a plain `<a>`.
36
+
37
+ Next.js 12 — `next/link` needs an `<a>` child, so wrap it once at module level:
38
+
39
+ ```tsx
40
+ import { forwardRef } from 'react'
41
+ import type { AppProps } from 'next/app'
42
+ import NextLink from 'next/link'
43
+ import { LinkProvider, type LinkComponentProps } from '@lidofinance/lido-app-ui'
44
+
45
+ const AppLink = forwardRef<HTMLAnchorElement, LinkComponentProps>(
46
+ ({ href, ...rest }, ref) => (
47
+ <NextLink href={href}>
48
+ <a ref={ref} {...rest} />
49
+ </NextLink>
50
+ ),
51
+ )
52
+
53
+ export default function App({ Component, pageProps }: AppProps) {
54
+ return (
55
+ <LinkProvider component={AppLink}>
56
+ <Component {...pageProps} />
57
+ </LinkProvider>
58
+ )
59
+ }
60
+ ```
32
61
 
33
62
  ## Customization
34
63
 
package/dist/README.md CHANGED
@@ -28,7 +28,36 @@ function Widget() {
28
28
  }
29
29
  ```
30
30
 
31
- Theme providers (`ThemeProvider`, `CookieThemeProvider`, `ThemeToggler`) are re-exported from `@lidofinance/lido-shared-ui`. The color tokens follow the `data-lido-theme` attribute they set, so switching to the dark theme restyles these components.
31
+ Theme providers (`ThemeProvider`, `CookieThemeProvider`, `ThemeToggler`) are re-exported from `@lidofinance/lido-shared-ui`. The color tokens follow the `data-lido-theme` attribute they set, so switching to the dark theme restyles these components. `ThemeSwitcher` is the app-ui-styled theme toggle, since the shared `ThemeToggler` relies on `--lido-ui-*` tokens that app-ui doesn't define.
32
+
33
+ ## Router links
34
+
35
+ Link components (`TextLink`, `SmallCard`) render a plain `<a>` by default. Wrap the app in `LinkProvider` to route in-app hrefs through your router's link component; `externalComponent` does the same for absolute URLs. Hash links, `download` links and links with a non-`_self` `target` always stay a plain `<a>`.
36
+
37
+ Next.js 12 — `next/link` needs an `<a>` child, so wrap it once at module level:
38
+
39
+ ```tsx
40
+ import { forwardRef } from 'react'
41
+ import type { AppProps } from 'next/app'
42
+ import NextLink from 'next/link'
43
+ import { LinkProvider, type LinkComponentProps } from '@lidofinance/lido-app-ui'
44
+
45
+ const AppLink = forwardRef<HTMLAnchorElement, LinkComponentProps>(
46
+ ({ href, ...rest }, ref) => (
47
+ <NextLink href={href}>
48
+ <a ref={ref} {...rest} />
49
+ </NextLink>
50
+ ),
51
+ )
52
+
53
+ export default function App({ Component, pageProps }: AppProps) {
54
+ return (
55
+ <LinkProvider component={AppLink}>
56
+ <Component {...pageProps} />
57
+ </LinkProvider>
58
+ )
59
+ }
60
+ ```
32
61
 
33
62
  ## Customization
34
63
 
@@ -0,0 +1,92 @@
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 Breadcrumbs_module = require('./Breadcrumbs.module.css.cjs');
8
+ const jsxRuntime = require('react/jsx-runtime');
9
+ const ActionElement = require('../utils/ActionElement.cjs');
10
+ const IconChevronRight = require('../icons/components/base/IconChevronRight.cjs');
11
+
12
+ const syncFade = list => {
13
+ list.toggleAttribute('data-fade-start', list.scrollLeft > 0);
14
+ list.toggleAttribute('data-fade-end', list.scrollLeft < list.scrollWidth - list.clientWidth - 1);
15
+ };
16
+ const syncTitle = e => {
17
+ const el = e.target.closest('[data-label]');
18
+ if (!el) return;
19
+ if (el.scrollWidth > el.clientWidth) el.setAttribute('title', el.textContent ?? '');else el.removeAttribute('title');
20
+ };
21
+ const Breadcrumbs = _ref => {
22
+ let {
23
+ items,
24
+ className,
25
+ ...rest
26
+ } = _ref;
27
+ const listRef = react.useRef(null);
28
+ react.useLayoutEffect(() => {
29
+ const list = listRef.current;
30
+ if (!list) return;
31
+ list.scrollLeft = list.scrollWidth;
32
+ syncFade(list);
33
+ }, [items]);
34
+ react.useEffect(() => {
35
+ const list = listRef.current;
36
+ if (!list || typeof ResizeObserver === 'undefined') return;
37
+ const observer = new ResizeObserver(() => syncFade(list));
38
+ observer.observe(list);
39
+ return () => observer.disconnect();
40
+ }, []);
41
+ return /*#__PURE__*/jsxRuntime.jsx("nav", {
42
+ "aria-label": "Breadcrumb",
43
+ className: cn(Breadcrumbs_module.nav, className),
44
+ ...rest,
45
+ children: /*#__PURE__*/jsxRuntime.jsx("ol", {
46
+ ref: listRef,
47
+ className: Breadcrumbs_module.list,
48
+ onScroll: e => syncFade(e.currentTarget),
49
+ onPointerOver: syncTitle,
50
+ children: items.map((_ref2, index) => {
51
+ let {
52
+ label,
53
+ ...itemProps
54
+ } = _ref2;
55
+ const labelAttrs = itemProps.title === undefined ? {
56
+ 'data-label': ''
57
+ } : {};
58
+ if (index === items.length - 1) {
59
+ return /*#__PURE__*/jsxRuntime.jsx("li", {
60
+ className: Breadcrumbs_module.item,
61
+ children: /*#__PURE__*/jsxRuntime.jsx("span", {
62
+ "aria-current": "page",
63
+ className: cn(Breadcrumbs_module.label, Breadcrumbs_module.current),
64
+ ...labelAttrs,
65
+ children: label
66
+ })
67
+ }, index);
68
+ }
69
+ const interactive = itemProps.href !== undefined || itemProps.onClick !== undefined;
70
+ return /*#__PURE__*/jsxRuntime.jsxs("li", {
71
+ className: Breadcrumbs_module.item,
72
+ children: [interactive ? /*#__PURE__*/jsxRuntime.jsx(ActionElement.ActionElement, {
73
+ ...itemProps,
74
+ ...labelAttrs,
75
+ className: cn(Breadcrumbs_module.label, Breadcrumbs_module.link, itemProps.className),
76
+ children: label
77
+ }) : /*#__PURE__*/jsxRuntime.jsx("span", {
78
+ className: Breadcrumbs_module.label,
79
+ ...labelAttrs,
80
+ children: label
81
+ }), /*#__PURE__*/jsxRuntime.jsx(IconChevronRight.IconChevronRight, {
82
+ className: Breadcrumbs_module.separator,
83
+ "aria-hidden": "true"
84
+ })]
85
+ }, index);
86
+ })
87
+ })
88
+ });
89
+ };
90
+
91
+ exports.Breadcrumbs = Breadcrumbs;
92
+ //# sourceMappingURL=Breadcrumbs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.cjs","sources":["../../../src/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react'\nimport type { HTMLAttributes, PointerEvent, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { IconChevronRight } from '../icons'\nimport { ActionElement, type ActionElementProps } from '../utils'\nimport styles from './Breadcrumbs.module.css'\n\nexport type BreadcrumbItem = ActionElementProps & {\n label: ReactNode\n children?: never\n}\n\nexport type BreadcrumbsProps = HTMLAttributes<HTMLElement> & {\n items: BreadcrumbItem[]\n}\n\nconst syncFade = (list: HTMLElement) => {\n list.toggleAttribute('data-fade-start', list.scrollLeft > 0)\n list.toggleAttribute(\n 'data-fade-end',\n list.scrollLeft < list.scrollWidth - list.clientWidth - 1,\n )\n}\n\nconst syncTitle = (e: PointerEvent<HTMLElement>) => {\n const el = (e.target as Element).closest('[data-label]')\n if (!el) return\n if (el.scrollWidth > el.clientWidth)\n el.setAttribute('title', el.textContent ?? '')\n else el.removeAttribute('title')\n}\n\nexport const Breadcrumbs = ({\n items,\n className,\n ...rest\n}: BreadcrumbsProps) => {\n const listRef = useRef<HTMLOListElement>(null)\n\n useLayoutEffect(() => {\n const list = listRef.current\n if (!list) return\n list.scrollLeft = list.scrollWidth\n syncFade(list)\n }, [items])\n\n useEffect(() => {\n const list = listRef.current\n if (!list || typeof ResizeObserver === 'undefined') return\n const observer = new ResizeObserver(() => syncFade(list))\n observer.observe(list)\n return () => observer.disconnect()\n }, [])\n\n return (\n <nav\n aria-label='Breadcrumb'\n className={cn(styles.nav, className)}\n {...rest}\n >\n <ol\n ref={listRef}\n className={styles.list}\n onScroll={(e) => syncFade(e.currentTarget)}\n onPointerOver={syncTitle}\n >\n {items.map(({ label, ...itemProps }, index) => {\n const labelAttrs =\n itemProps.title === undefined ? { 'data-label': '' } : {}\n if (index === items.length - 1) {\n return (\n <li key={index} className={styles.item}>\n <span\n aria-current='page'\n className={cn(styles.label, styles.current)}\n {...labelAttrs}\n >\n {label}\n </span>\n </li>\n )\n }\n const interactive =\n itemProps.href !== undefined || itemProps.onClick !== undefined\n return (\n <li key={index} className={styles.item}>\n {interactive ? (\n <ActionElement\n {...itemProps}\n {...labelAttrs}\n className={cn(styles.label, styles.link, itemProps.className)}\n >\n {label}\n </ActionElement>\n ) : (\n <span className={styles.label} {...labelAttrs}>\n {label}\n </span>\n )}\n <IconChevronRight\n className={styles.separator}\n aria-hidden='true'\n />\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n"],"names":["syncFade","list","toggleAttribute","scrollLeft","scrollWidth","clientWidth","syncTitle","e","el","target","closest","setAttribute","textContent","removeAttribute","Breadcrumbs","_ref","items","className","rest","listRef","useRef","useLayoutEffect","current","useEffect","ResizeObserver","observer","observe","disconnect","_jsx","cn","styles","nav","children","ref","onScroll","currentTarget","onPointerOver","map","_ref2","index","label","itemProps","labelAttrs","title","undefined","length","item","interactive","href","onClick","_jsxs","ActionElement","link","IconChevronRight","separator"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const styles = {"nav":"Breadcrumbs-module_nav__cDuA5","list":"Breadcrumbs-module_list__A6dlB","item":"Breadcrumbs-module_item__3t-Zj","label":"Breadcrumbs-module_label__gVU35","link":"Breadcrumbs-module_link__KJ87-","current":"Breadcrumbs-module_current__XK0a2","separator":"Breadcrumbs-module_separator__k-Tmd"};
4
+
5
+ module.exports = styles;
6
+ //# sourceMappingURL=Breadcrumbs.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -2,12 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
+ const react = require('react');
5
6
  const cn = require('classnames');
7
+ const CounterSlot = require('../counter/CounterSlot.cjs');
6
8
  const Button_module = require('./Button.module.css.cjs');
7
9
  const jsxRuntime = require('react/jsx-runtime');
8
10
  const IconLoaderCircle = require('../icons/components/base/IconLoaderCircle.cjs');
9
11
 
10
- const Button = _ref => {
12
+ const Button = /*#__PURE__*/react.forwardRef((_ref, ref) => {
11
13
  let {
12
14
  className,
13
15
  children,
@@ -18,10 +20,12 @@ const Button = _ref => {
18
20
  disabled = false,
19
21
  iconLeft,
20
22
  iconRight,
23
+ counter,
21
24
  dataTestId,
22
25
  ...rest
23
26
  } = _ref;
24
27
  return /*#__PURE__*/jsxRuntime.jsxs("button", {
28
+ ref: ref,
25
29
  type: type,
26
30
  disabled: disabled || loading,
27
31
  "aria-busy": loading || undefined,
@@ -45,9 +49,13 @@ const Button = _ref => {
45
49
  "aria-hidden": "true",
46
50
  "data-testid": dataTestId?.iconRight,
47
51
  children: iconRight
48
- }) : null]
52
+ }) : null, /*#__PURE__*/jsxRuntime.jsx(CounterSlot.CounterSlot, {
53
+ dataTestId: dataTestId?.counter,
54
+ children: counter
55
+ })]
49
56
  });
50
- };
57
+ });
58
+ Button.displayName = 'Button';
51
59
 
52
60
  exports.Button = Button;
53
61
  //# sourceMappingURL=Button.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.cjs","sources":["../../../src/button/Button.tsx"],"sourcesContent":["import type { ButtonHTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\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}\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n variant?: ButtonVariant\n size?: ButtonSize\n loading?: boolean\n iconLeft?: ReactNode\n iconRight?: ReactNode\n dataTestId?: ButtonDataTestId\n}\n\nexport const Button = ({\n className,\n children,\n type = 'button',\n variant = 'primary',\n size = 'big',\n loading = false,\n disabled = false,\n iconLeft,\n iconRight,\n dataTestId,\n ...rest\n}: ButtonProps) => (\n <button\n type={type}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n className={cn(\n styles.button,\n styles[variant],\n styles[size],\n loading && styles.loading,\n className,\n )}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {loading ? (\n <IconLoaderCircle className={styles.spinner} aria-hidden='true' />\n ) : (\n iconLeft != null && (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.iconLeft}\n >\n {iconLeft}\n </span>\n )\n )}\n <span className={styles.content} data-testid={dataTestId?.content}>\n {children}\n </span>\n {!loading && iconRight != null ? (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.iconRight}\n >\n {iconRight}\n </span>\n ) : null}\n </button>\n)\n"],"names":["Button","_ref","className","children","type","variant","size","loading","disabled","iconLeft","iconRight","dataTestId","rest","_jsxs","undefined","cn","styles","button","root","_jsx","IconLoaderCircle","spinner","icon","content"],"mappings":";;;;;;;;;AA2BO,MAAMA,MAAM,GAAGC,IAAA,IAAA;EAAA,IAAC;IACrBC,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,UAAU;IACV,GAAGC,IAAAA;AACQ,GAAC,GAAAX,IAAA,CAAA;AAAA,EAAA,oBACZY,eAAA,CAAA,QAAA,EAAA;AACET,IAAAA,IAAI,EAAEA,IAAK;IACXI,QAAQ,EAAEA,QAAQ,IAAID,OAAQ;IAC9B,WAAWA,EAAAA,OAAO,IAAIO,SAAU;IAChCZ,SAAS,EAAEa,EAAE,CACXC,aAAM,CAACC,MAAM,EACbD,aAAM,CAACX,OAAO,CAAC,EACfW,aAAM,CAACV,IAAI,CAAC,EACZC,OAAO,IAAIS,aAAM,CAACT,OAAO,EACzBL,SACF,CAAE;IACF,aAAaS,EAAAA,UAAU,EAAEO,IAAK;AAAA,IAAA,GAC1BN,IAAI;AAAAT,IAAAA,QAAA,EAEPI,CAAAA,OAAO,gBACNY,cAAA,CAACC,iCAAgB,EAAA;MAAClB,SAAS,EAAEc,aAAM,CAACK,OAAQ;MAAC,aAAY,EAAA,MAAA;AAAM,KAAE,CAAC,GAElEZ,QAAQ,IAAI,IAAI,iBACdU,cAAA,CAAA,MAAA,EAAA;MACEjB,SAAS,EAAEc,aAAM,CAACM,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaX,EAAAA,UAAU,EAAEF,QAAS;AAAAN,MAAAA,QAAA,EAEjCM,QAAAA;KACG,CAET,eACDU,cAAA,CAAA,MAAA,EAAA;MAAMjB,SAAS,EAAEc,aAAM,CAACO,OAAQ;MAAC,aAAaZ,EAAAA,UAAU,EAAEY,OAAQ;AAAApB,MAAAA,QAAA,EAC/DA,QAAAA;KACG,CAAC,EACN,CAACI,OAAO,IAAIG,SAAS,IAAI,IAAI,gBAC5BS,cAAA,CAAA,MAAA,EAAA;MACEjB,SAAS,EAAEc,aAAM,CAACM,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaX,EAAAA,UAAU,EAAED,SAAU;AAAAP,MAAAA,QAAA,EAElCO,SAAAA;KACG,CAAC,GACL,IAAI,CAAA;AAAA,GACF,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"Button.cjs","sources":["../../../src/button/Button.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { CounterSlot } from '../counter/CounterSlot'\nimport { IconLoaderCircle } from '../icons'\nimport styles from './Button.module.css'\n\nexport type ButtonVariant = 'primary' | 'outline' | 'subtle' | 'ghost' | 'error'\n\nexport type ButtonSize = 'big' | 'small'\n\nexport type ButtonDataTestId = {\n root?: string\n iconLeft?: string\n iconRight?: string\n content?: string\n counter?: string\n}\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n variant?: ButtonVariant\n size?: ButtonSize\n loading?: boolean\n iconLeft?: ReactNode\n iconRight?: ReactNode\n /** Corner slot, aria-hidden: put the count into `aria-label`. */\n counter?: ReactNode\n dataTestId?: ButtonDataTestId\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n children,\n type = 'button',\n variant = 'primary',\n size = 'big',\n loading = false,\n disabled = false,\n iconLeft,\n iconRight,\n counter,\n dataTestId,\n ...rest\n },\n ref,\n ) => (\n <button\n ref={ref}\n type={type}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n className={cn(\n styles.button,\n styles[variant],\n styles[size],\n loading && styles.loading,\n className,\n )}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {loading ? (\n <IconLoaderCircle className={styles.spinner} aria-hidden='true' />\n ) : (\n iconLeft != null && (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.iconLeft}\n >\n {iconLeft}\n </span>\n )\n )}\n <span className={styles.content} data-testid={dataTestId?.content}>\n {children}\n </span>\n {!loading && iconRight != null ? (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.iconRight}\n >\n {iconRight}\n </span>\n ) : null}\n <CounterSlot dataTestId={dataTestId?.counter}>{counter}</CounterSlot>\n </button>\n ),\n)\n\nButton.displayName = 'Button'\n"],"names":["Button","forwardRef","_ref","ref","className","children","type","variant","size","loading","disabled","iconLeft","iconRight","counter","dataTestId","rest","_jsxs","undefined","cn","styles","button","root","_jsx","IconLoaderCircle","spinner","icon","content","CounterSlot","displayName"],"mappings":";;;;;;;;;;;AA+BO,MAAMA,MAAM,gBAAGC,gBAAU,CAC9B,CAAAC,IAAA,EAeEC,GAAG,KAAA;EAAA,IAdH;IACEC,SAAS;IACTC,QAAQ;AACRC,IAAAA,IAAI,GAAG,QAAQ;AACfC,IAAAA,OAAO,GAAG,SAAS;AACnBC,IAAAA,IAAI,GAAG,KAAK;AACZC,IAAAA,OAAO,GAAG,KAAK;AACfC,IAAAA,QAAQ,GAAG,KAAK;IAChBC,QAAQ;IACRC,SAAS;IACTC,OAAO;IACPC,UAAU;IACV,GAAGC,IAAAA;AACL,GAAC,GAAAb,IAAA,CAAA;AAAA,EAAA,oBAGDc,eAAA,CAAA,QAAA,EAAA;AACEb,IAAAA,GAAG,EAAEA,GAAI;AACTG,IAAAA,IAAI,EAAEA,IAAK;IACXI,QAAQ,EAAEA,QAAQ,IAAID,OAAQ;IAC9B,WAAWA,EAAAA,OAAO,IAAIQ,SAAU;IAChCb,SAAS,EAAEc,EAAE,CACXC,aAAM,CAACC,MAAM,EACbD,aAAM,CAACZ,OAAO,CAAC,EACfY,aAAM,CAACX,IAAI,CAAC,EACZC,OAAO,IAAIU,aAAM,CAACV,OAAO,EACzBL,SACF,CAAE;IACF,aAAaU,EAAAA,UAAU,EAAEO,IAAK;AAAA,IAAA,GAC1BN,IAAI;AAAAV,IAAAA,QAAA,EAEPI,CAAAA,OAAO,gBACNa,cAAA,CAACC,iCAAgB,EAAA;MAACnB,SAAS,EAAEe,aAAM,CAACK,OAAQ;MAAC,aAAY,EAAA,MAAA;AAAM,KAAE,CAAC,GAElEb,QAAQ,IAAI,IAAI,iBACdW,cAAA,CAAA,MAAA,EAAA;MACElB,SAAS,EAAEe,aAAM,CAACM,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaX,EAAAA,UAAU,EAAEH,QAAS;AAAAN,MAAAA,QAAA,EAEjCM,QAAAA;KACG,CAET,eACDW,cAAA,CAAA,MAAA,EAAA;MAAMlB,SAAS,EAAEe,aAAM,CAACO,OAAQ;MAAC,aAAaZ,EAAAA,UAAU,EAAEY,OAAQ;AAAArB,MAAAA,QAAA,EAC/DA,QAAAA;KACG,CAAC,EACN,CAACI,OAAO,IAAIG,SAAS,IAAI,IAAI,gBAC5BU,cAAA,CAAA,MAAA,EAAA;MACElB,SAAS,EAAEe,aAAM,CAACM,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaX,EAAAA,UAAU,EAAEF,SAAU;AAAAP,MAAAA,QAAA,EAElCO,SAAAA;AAAS,KACN,CAAC,GACL,IAAI,eACRU,cAAA,CAACK,uBAAW,EAAA;MAACb,UAAU,EAAEA,UAAU,EAAED,OAAQ;AAAAR,MAAAA,QAAA,EAAEQ,OAAAA;AAAO,KAAc,CAAC,CAAA;AAAA,GAC/D,CAAC,CAAA;AAAA,CAEb,EAAC;AAEDb,MAAM,CAAC4B,WAAW,GAAG,QAAQ;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const styles = {"counter":"Counter-module_counter__qutVl","neutral":"Counter-module_neutral__Z5iCI","error":"Counter-module_error__srNOJ","warning":"Counter-module_warning__5OY4o","action":"Counter-module_action__ywkeX","active":"Counter-module_active__AZ4oD"};
3
+ const styles = {"counter":"Counter-module_counter__qutVl","neutral":"Counter-module_neutral__Z5iCI","default":"Counter-module_default__W0-pw","error":"Counter-module_error__srNOJ","warning":"Counter-module_warning__5OY4o","action":"Counter-module_action__ywkeX","active":"Counter-module_active__AZ4oD"};
4
4
 
5
5
  module.exports = styles;
6
6
  //# sourceMappingURL=Counter.module.css.cjs.map
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const CounterSlot_module = require('./CounterSlot.module.css.cjs');
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+
8
+ const CounterSlot = _ref => {
9
+ let {
10
+ children,
11
+ dataTestId
12
+ } = _ref;
13
+ return children == null || children === false ? null : /*#__PURE__*/jsxRuntime.jsx("span", {
14
+ className: CounterSlot_module.slot,
15
+ "aria-hidden": "true",
16
+ "data-testid": dataTestId,
17
+ children: children
18
+ });
19
+ };
20
+
21
+ exports.CounterSlot = CounterSlot;
22
+ //# sourceMappingURL=CounterSlot.cjs.map
@@ -0,0 +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;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const styles = {"slot":"CounterSlot-module_slot__EhyeG"};
4
+
5
+ module.exports = styles;
6
+ //# sourceMappingURL=CounterSlot.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CounterSlot.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const cn = require('classnames');
6
+ const Disclaimer_module = require('./Disclaimer.module.css.cjs');
7
+ const jsxRuntime = require('react/jsx-runtime');
8
+ const TextLink = require('../text-link/TextLink.cjs');
9
+
10
+ const defaultContent = /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
11
+ 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
+ href: "https://lido.fi/privacy-notice",
13
+ external: true,
14
+ children: "Privacy Notice"
15
+ }), "."]
16
+ });
17
+ const Disclaimer = _ref => {
18
+ let {
19
+ className,
20
+ children = defaultContent,
21
+ dataTestId,
22
+ ...rest
23
+ } = _ref;
24
+ return /*#__PURE__*/jsxRuntime.jsx("p", {
25
+ className: cn(Disclaimer_module.root, className),
26
+ "data-testid": dataTestId?.root,
27
+ ...rest,
28
+ children: children
29
+ });
30
+ };
31
+
32
+ exports.Disclaimer = Disclaimer;
33
+ //# sourceMappingURL=Disclaimer.cjs.map
@@ -0,0 +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;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const styles = {"root":"Disclaimer-module_root__ELwsa"};
4
+
5
+ module.exports = styles;
6
+ //# sourceMappingURL=Disclaimer.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Disclaimer.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,26 @@
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 Divider_module = require('./Divider.module.css.cjs');
8
+ const jsxRuntime = require('react/jsx-runtime');
9
+
10
+ /** Visual-only 1px line in the default border color; stretches along the cross axis of a flex parent. Pass role='separator' for semantics. */
11
+ const Divider = /*#__PURE__*/react.forwardRef((_ref, ref) => {
12
+ let {
13
+ orientation = 'horizontal',
14
+ className,
15
+ ...rest
16
+ } = _ref;
17
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
18
+ ref: ref,
19
+ className: cn(Divider_module.root, Divider_module[orientation], className),
20
+ ...rest
21
+ });
22
+ });
23
+ Divider.displayName = 'Divider';
24
+
25
+ exports.Divider = Divider;
26
+ //# sourceMappingURL=Divider.cjs.map
@@ -0,0 +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;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const styles = {"root":"Divider-module_root__SVXVb","horizontal":"Divider-module_horizontal__1RnR-","vertical":"Divider-module_vertical__pIPZy"};
4
+
5
+ module.exports = styles;
6
+ //# sourceMappingURL=Divider.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Divider.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,64 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const cn = require('classnames');
6
+ const ErrorPage_module = require('./ErrorPage.module.css.cjs');
7
+ const jsxRuntime = require('react/jsx-runtime');
8
+
9
+ const presets = {
10
+ '404': {
11
+ title: 'Page not found',
12
+ description: 'The page you’re looking for doesn’t exist or has been moved. Check the URL or return to your dashboard.'
13
+ },
14
+ '500': {
15
+ title: 'Something went wrong',
16
+ description: 'We’re having trouble loading this page. Please try again in a moment.'
17
+ }
18
+ };
19
+ const isPresetCode = code => code === '404' || code === '500';
20
+ const ErrorPage = _ref => {
21
+ let {
22
+ code,
23
+ title,
24
+ description,
25
+ action,
26
+ className,
27
+ dataTestId,
28
+ ...rest
29
+ } = _ref;
30
+ const preset = isPresetCode(code) ? presets[code] : undefined;
31
+ const resolvedTitle = title !== undefined ? title : preset?.title;
32
+ const resolvedDescription = description !== undefined ? description : preset?.description;
33
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
34
+ className: cn(ErrorPage_module.root, className),
35
+ "data-testid": dataTestId?.root,
36
+ ...rest,
37
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
38
+ className: ErrorPage_module.inner,
39
+ children: [code != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
40
+ className: ErrorPage_module.code,
41
+ "data-testid": dataTestId?.code,
42
+ children: code
43
+ }) : null, /*#__PURE__*/jsxRuntime.jsxs("div", {
44
+ className: ErrorPage_module.text,
45
+ children: [resolvedTitle != null ? /*#__PURE__*/jsxRuntime.jsx("h1", {
46
+ className: ErrorPage_module.title,
47
+ "data-testid": dataTestId?.title,
48
+ children: resolvedTitle
49
+ }) : null, resolvedDescription != null ? /*#__PURE__*/jsxRuntime.jsx("p", {
50
+ className: ErrorPage_module.description,
51
+ "data-testid": dataTestId?.description,
52
+ children: resolvedDescription
53
+ }) : null]
54
+ }), action != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
55
+ className: ErrorPage_module.action,
56
+ "data-testid": dataTestId?.action,
57
+ children: action
58
+ }) : null]
59
+ })
60
+ });
61
+ };
62
+
63
+ exports.ErrorPage = ErrorPage;
64
+ //# sourceMappingURL=ErrorPage.cjs.map
@@ -0,0 +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;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const styles = {"root":"ErrorPage-module_root__sdAsZ","inner":"ErrorPage-module_inner__rf3pT","code":"ErrorPage-module_code__sXtwL","text":"ErrorPage-module_text__SIHr-","title":"ErrorPage-module_title__1gYNN","description":"ErrorPage-module_description__VILdD","action":"ErrorPage-module_action__euwDk"};
4
+
5
+ module.exports = styles;
6
+ //# sourceMappingURL=ErrorPage.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorPage.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const cn = require('classnames');
6
+ const Footer_module = require('./Footer.module.css.cjs');
7
+ const jsxRuntime = require('react/jsx-runtime');
8
+
9
+ const Footer = _ref => {
10
+ let {
11
+ children,
12
+ aside,
13
+ className,
14
+ ...rest
15
+ } = _ref;
16
+ return /*#__PURE__*/jsxRuntime.jsxs("footer", {
17
+ className: cn(Footer_module.footer, className),
18
+ ...rest,
19
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
20
+ className: Footer_module.content,
21
+ children: children
22
+ }), aside != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
23
+ className: Footer_module.aside,
24
+ children: aside
25
+ }) : null]
26
+ });
27
+ };
28
+
29
+ exports.Footer = Footer;
30
+ //# sourceMappingURL=Footer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.cjs","sources":["../../../src/footer/Footer.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Footer.module.css'\n\nexport type FooterProps = ComponentPropsWithoutRef<'footer'> & {\n /** Right slot, e.g. version tag. */\n aside?: ReactNode\n}\n\nexport const Footer = ({\n children,\n aside,\n className,\n ...rest\n}: FooterProps) => (\n <footer className={cn(styles.footer, className)} {...rest}>\n <div className={styles.content}>{children}</div>\n {aside != null ? <div className={styles.aside}>{aside}</div> : null}\n </footer>\n)\n"],"names":["Footer","_ref","children","aside","className","rest","_jsxs","cn","styles","footer","_jsx","content"],"mappings":";;;;;;;;AAWO,MAAMA,MAAM,GAAGC,IAAA,IAAA;EAAA,IAAC;IACrBC,QAAQ;IACRC,KAAK;IACLC,SAAS;IACT,GAAGC,IAAAA;AACQ,GAAC,GAAAJ,IAAA,CAAA;AAAA,EAAA,oBACZK,eAAA,CAAA,QAAA,EAAA;IAAQF,SAAS,EAAEG,EAAE,CAACC,aAAM,CAACC,MAAM,EAAEL,SAAS,CAAE;AAAA,IAAA,GAAKC,IAAI;AAAAH,IAAAA,QAAA,gBACvDQ,cAAA,CAAA,KAAA,EAAA;MAAKN,SAAS,EAAEI,aAAM,CAACG,OAAQ;AAAAT,MAAAA,QAAA,EAAEA,QAAAA;AAAQ,KAAM,CAAC,EAC/CC,KAAK,IAAI,IAAI,gBAAGO,cAAA,CAAA,KAAA,EAAA;MAAKN,SAAS,EAAEI,aAAM,CAACL,KAAM;AAAAD,MAAAA,QAAA,EAAEC,KAAAA;KAAW,CAAC,GAAG,IAAI,CAAA;AAAA,GAC7D,CAAC,CAAA;AAAA;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const styles = {"footer":"Footer-module_footer__N4WWk","content":"Footer-module_content__czurW","aside":"Footer-module_aside__r3tkL"};
4
+
5
+ module.exports = styles;
6
+ //# sourceMappingURL=Footer.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,47 @@
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 Grid_module = require('./Grid.module.css.cjs');
8
+ const jsxRuntime = require('react/jsx-runtime');
9
+ const responsive = require('../utils/responsive.cjs');
10
+
11
+ const columnsToCss = columns => typeof columns === 'number' ? `repeat(${columns}, minmax(0, 1fr))` : columns;
12
+
13
+ /** CSS grid container with equal, templated or auto-fit columns and a spacing scale. */
14
+ const Grid = /*#__PURE__*/react.forwardRef((_ref, ref) => {
15
+ let {
16
+ as: Component = 'div',
17
+ columns,
18
+ minItemWidth,
19
+ gap,
20
+ rowGap,
21
+ columnGap,
22
+ align,
23
+ className,
24
+ style,
25
+ ...rest
26
+ } = _ref;
27
+ const minWidth = typeof minItemWidth === 'number' ? `${minItemWidth}px` : minItemWidth;
28
+ const template = minItemWidth !== undefined ? `repeat(auto-fit, minmax(min(${minWidth}, 100%), 1fr))` : columns;
29
+ const vars = {
30
+ ...responsive.responsiveVars('columns', template, columnsToCss),
31
+ ...responsive.responsiveVars('rowGap', responsive.mergeResponsive(gap, rowGap), responsive.spaceToCss),
32
+ ...responsive.responsiveVars('columnGap', responsive.mergeResponsive(gap, columnGap), responsive.spaceToCss)
33
+ };
34
+ return /*#__PURE__*/jsxRuntime.jsx(Component, {
35
+ ref: ref,
36
+ className: cn(Grid_module.root, align && Grid_module[`align${responsive.capitalize(align)}`], className),
37
+ style: {
38
+ ...vars,
39
+ ...style
40
+ },
41
+ ...rest
42
+ });
43
+ });
44
+ Grid.displayName = 'Grid';
45
+
46
+ exports.Grid = Grid;
47
+ //# sourceMappingURL=Grid.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grid.cjs","sources":["../../../src/grid/Grid.tsx"],"sourcesContent":["import { forwardRef, type ElementType, type HTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport {\n capitalize,\n mergeResponsive,\n responsiveVars,\n spaceToCss,\n type Responsive,\n type Space,\n} from '../utils'\nimport styles from './Grid.module.css'\n\nexport type GridAlign = 'start' | 'center' | 'end' | 'stretch'\n\nexport type GridProps = HTMLAttributes<HTMLElement> & {\n as?: ElementType\n /** A number makes equal columns; a string is used as raw `grid-template-columns`. */\n columns?: Responsive<number | string>\n /** Auto-fit columns of at least this width (number = px). Takes precedence over `columns`. */\n minItemWidth?: number | string\n gap?: Responsive<Space>\n /** Overrides `gap` for rows, per breakpoint. */\n rowGap?: Responsive<Space>\n /** Overrides `gap` for columns, per breakpoint. */\n columnGap?: Responsive<Space>\n align?: GridAlign\n}\n\nconst columnsToCss = (columns: number | string) =>\n typeof columns === 'number' ? `repeat(${columns}, minmax(0, 1fr))` : columns\n\n/** CSS grid container with equal, templated or auto-fit columns and a spacing scale. */\nexport const Grid = forwardRef<HTMLElement, GridProps>(\n (\n {\n as: Component = 'div',\n columns,\n minItemWidth,\n gap,\n rowGap,\n columnGap,\n align,\n className,\n style,\n ...rest\n },\n ref,\n ) => {\n const minWidth =\n typeof minItemWidth === 'number' ? `${minItemWidth}px` : minItemWidth\n const template =\n minItemWidth !== undefined\n ? `repeat(auto-fit, minmax(min(${minWidth}, 100%), 1fr))`\n : columns\n\n const vars = {\n ...responsiveVars('columns', template, columnsToCss),\n ...responsiveVars('rowGap', mergeResponsive(gap, rowGap), spaceToCss),\n ...responsiveVars(\n 'columnGap',\n mergeResponsive(gap, columnGap),\n spaceToCss,\n ),\n }\n\n return (\n <Component\n ref={ref}\n className={cn(\n styles.root,\n align && styles[`align${capitalize(align)}`],\n className,\n )}\n style={{ ...vars, ...style }}\n {...rest}\n />\n )\n },\n)\n\nGrid.displayName = 'Grid'\n"],"names":["columnsToCss","columns","Grid","forwardRef","_ref","ref","as","Component","minItemWidth","gap","rowGap","columnGap","align","className","style","rest","minWidth","template","undefined","vars","responsiveVars","mergeResponsive","spaceToCss","_jsx","cn","styles","root","capitalize","displayName"],"mappings":";;;;;;;;;;AA8BA,MAAMA,YAAY,GAAIC,OAAwB,IAC5C,OAAOA,OAAO,KAAK,QAAQ,GAAG,CAAA,OAAA,EAAUA,OAAO,CAAA,iBAAA,CAAmB,GAAGA,OAAO,CAAA;;AAE9E;AACO,MAAMC,IAAI,gBAAGC,gBAAU,CAC5B,CAAAC,IAAA,EAaEC,GAAG,KACA;EAAA,IAbH;IACEC,EAAE,EAAEC,SAAS,GAAG,KAAK;IACrBN,OAAO;IACPO,YAAY;IACZC,GAAG;IACHC,MAAM;IACNC,SAAS;IACTC,KAAK;IACLC,SAAS;IACTC,KAAK;IACL,GAAGC,IAAAA;AACL,GAAC,GAAAX,IAAA,CAAA;EAGD,MAAMY,QAAQ,GACZ,OAAOR,YAAY,KAAK,QAAQ,GAAG,CAAGA,EAAAA,YAAY,CAAI,EAAA,CAAA,GAAGA,YAAY,CAAA;EACvE,MAAMS,QAAQ,GACZT,YAAY,KAAKU,SAAS,GACtB,CAA+BF,4BAAAA,EAAAA,QAAQ,CAAgB,cAAA,CAAA,GACvDf,OAAO,CAAA;AAEb,EAAA,MAAMkB,IAAI,GAAG;AACX,IAAA,GAAGC,yBAAc,CAAC,SAAS,EAAEH,QAAQ,EAAEjB,YAAY,CAAC;AACpD,IAAA,GAAGoB,yBAAc,CAAC,QAAQ,EAAEC,0BAAe,CAACZ,GAAG,EAAEC,MAAM,CAAC,EAAEY,qBAAU,CAAC;IACrE,GAAGF,yBAAc,CACf,WAAW,EACXC,0BAAe,CAACZ,GAAG,EAAEE,SAAS,CAAC,EAC/BW,qBACF,CAAA;GACD,CAAA;EAED,oBACEC,cAAA,CAAChB,SAAS,EAAA;AACRF,IAAAA,GAAG,EAAEA,GAAI;IACTQ,SAAS,EAAEW,EAAE,CACXC,WAAM,CAACC,IAAI,EACXd,KAAK,IAAIa,WAAM,CAAC,CAAQE,KAAAA,EAAAA,qBAAU,CAACf,KAAK,CAAC,EAAE,CAAC,EAC5CC,SACF,CAAE;AACFC,IAAAA,KAAK,EAAE;AAAE,MAAA,GAAGK,IAAI;MAAE,GAAGL,KAAAA;KAAQ;IAAA,GACzBC,IAAAA;AAAI,GACT,CAAC,CAAA;AAEN,CACF,EAAC;AAEDb,IAAI,CAAC0B,WAAW,GAAG,MAAM;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const styles = {"root":"Grid-module_root__WQ5eA","alignStart":"Grid-module_alignStart__tJzED","alignCenter":"Grid-module_alignCenter__Br-nr","alignEnd":"Grid-module_alignEnd__oWTV-","alignStretch":"Grid-module_alignStretch__v1rgi"};
4
+
5
+ module.exports = styles;
6
+ //# sourceMappingURL=Grid.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grid.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}