@exromany/lido-app-ui 0.0.1-pre.3 → 0.0.1-pre.5

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 (815) hide show
  1. package/README.md +120 -20
  2. package/dist/README.md +120 -20
  3. package/dist/cjs/accordion/Accordion.cjs +13 -7
  4. package/dist/cjs/accordion/Accordion.cjs.map +1 -1
  5. package/dist/cjs/accordion/Accordion.module.css.cjs +1 -1
  6. package/dist/cjs/address-button/AddressButton.cjs +4 -3
  7. package/dist/cjs/address-button/AddressButton.cjs.map +1 -1
  8. package/dist/cjs/address-button/AddressButton.module.css.cjs +1 -1
  9. package/dist/cjs/badge/Badge.cjs +5 -1
  10. package/dist/cjs/badge/Badge.cjs.map +1 -1
  11. package/dist/cjs/badge/Badge.module.css.cjs +1 -1
  12. package/dist/cjs/banner/Banner.cjs +28 -24
  13. package/dist/cjs/banner/Banner.cjs.map +1 -1
  14. package/dist/cjs/banner/Banner.module.css.cjs +1 -1
  15. package/dist/cjs/breadcrumbs/Breadcrumbs.cjs +61 -36
  16. package/dist/cjs/breadcrumbs/Breadcrumbs.cjs.map +1 -1
  17. package/dist/cjs/breadcrumbs/Breadcrumbs.module.css.cjs +1 -1
  18. package/dist/cjs/button/Button.cjs +20 -28
  19. package/dist/cjs/button/Button.cjs.map +1 -1
  20. package/dist/cjs/button/Button.module.css.cjs +1 -1
  21. package/dist/cjs/button/ButtonContent.cjs +48 -0
  22. package/dist/cjs/button/ButtonContent.cjs.map +1 -0
  23. package/dist/cjs/button/LinkButton.cjs +17 -0
  24. package/dist/cjs/button/LinkButton.cjs.map +1 -0
  25. package/dist/cjs/callout/Callout.cjs +75 -0
  26. package/dist/cjs/callout/Callout.cjs.map +1 -0
  27. package/dist/cjs/callout/Callout.module.css.cjs +6 -0
  28. package/dist/cjs/callout/Callout.module.css.cjs.map +1 -0
  29. package/dist/cjs/card/Card.cjs +1 -0
  30. package/dist/cjs/card/Card.cjs.map +1 -1
  31. package/dist/cjs/checkbox/Checkbox.cjs +56 -24
  32. package/dist/cjs/checkbox/Checkbox.cjs.map +1 -1
  33. package/dist/cjs/checkbox/Checkbox.module.css.cjs +1 -1
  34. package/dist/cjs/checkbox-row/CheckboxList.cjs +33 -0
  35. package/dist/cjs/checkbox-row/CheckboxList.cjs.map +1 -0
  36. package/dist/cjs/checkbox-row/CheckboxList.module.css.cjs +6 -0
  37. package/dist/cjs/checkbox-row/CheckboxList.module.css.cjs.map +1 -0
  38. package/dist/cjs/checkbox-row/CheckboxRow.cjs +80 -0
  39. package/dist/cjs/checkbox-row/CheckboxRow.cjs.map +1 -0
  40. package/dist/cjs/checkbox-row/CheckboxRow.module.css.cjs +6 -0
  41. package/dist/cjs/checkbox-row/CheckboxRow.module.css.cjs.map +1 -0
  42. package/dist/cjs/counter/Counter.cjs +6 -2
  43. package/dist/cjs/counter/Counter.cjs.map +1 -1
  44. package/dist/cjs/counter/Counter.module.css.cjs +1 -1
  45. package/dist/cjs/counter/CounterSlot.cjs +19 -2
  46. package/dist/cjs/counter/CounterSlot.cjs.map +1 -1
  47. package/dist/cjs/counter/CounterSlot.module.css.cjs +1 -1
  48. package/dist/cjs/data-list/DataList.cjs +1 -0
  49. package/dist/cjs/data-list/DataList.cjs.map +1 -1
  50. package/dist/cjs/data-list/DataListRow.cjs +2 -0
  51. package/dist/cjs/data-list/DataListRow.cjs.map +1 -1
  52. package/dist/cjs/disclaimer/Disclaimer.cjs +10 -4
  53. package/dist/cjs/disclaimer/Disclaimer.cjs.map +1 -1
  54. package/dist/cjs/disclosure/Disclosure.cjs +73 -0
  55. package/dist/cjs/disclosure/Disclosure.cjs.map +1 -0
  56. package/dist/cjs/disclosure/Disclosure.module.css.cjs +6 -0
  57. package/dist/cjs/disclosure/Disclosure.module.css.cjs.map +1 -0
  58. package/dist/cjs/divider/Divider.cjs +5 -0
  59. package/dist/cjs/divider/Divider.cjs.map +1 -1
  60. package/dist/cjs/drawer/Drawer.cjs +110 -0
  61. package/dist/cjs/drawer/Drawer.cjs.map +1 -0
  62. package/dist/cjs/drawer/Drawer.module.css.cjs +6 -0
  63. package/dist/cjs/drawer/Drawer.module.css.cjs.map +1 -0
  64. package/dist/cjs/empty-state/EmptyState.cjs +54 -0
  65. package/dist/cjs/empty-state/EmptyState.cjs.map +1 -0
  66. package/dist/cjs/empty-state/EmptyState.module.css.cjs +6 -0
  67. package/dist/cjs/empty-state/EmptyState.module.css.cjs.map +1 -0
  68. package/dist/cjs/error-page/ErrorPage.cjs +32 -24
  69. package/dist/cjs/error-page/ErrorPage.cjs.map +1 -1
  70. package/dist/cjs/error-page/ErrorPage.module.css.cjs +1 -1
  71. package/dist/cjs/footer/Footer.cjs +10 -2
  72. package/dist/cjs/footer/Footer.cjs.map +1 -1
  73. package/dist/cjs/grid/Grid.cjs +7 -3
  74. package/dist/cjs/grid/Grid.cjs.map +1 -1
  75. package/dist/cjs/grid/Grid.module.css.cjs +1 -1
  76. package/dist/cjs/grid/GridItem.cjs +2 -0
  77. package/dist/cjs/grid/GridItem.cjs.map +1 -1
  78. package/dist/cjs/header/Header.cjs +10 -2
  79. package/dist/cjs/header/Header.cjs.map +1 -1
  80. package/dist/cjs/header/HeaderNav.cjs +26 -30
  81. package/dist/cjs/header/HeaderNav.cjs.map +1 -1
  82. package/dist/cjs/header/HeaderNav.module.css.cjs +1 -1
  83. package/dist/cjs/hidden/Hidden.cjs +10 -4
  84. package/dist/cjs/hidden/Hidden.cjs.map +1 -1
  85. package/dist/cjs/hidden/Hidden.module.css.cjs +1 -1
  86. package/dist/cjs/hooks/DialogLayer.cjs +94 -0
  87. package/dist/cjs/hooks/DialogLayer.cjs.map +1 -0
  88. package/dist/cjs/hooks/Portal.cjs +14 -11
  89. package/dist/cjs/hooks/Portal.cjs.map +1 -1
  90. package/dist/cjs/hooks/useBodyScrollLock.cjs +49 -13
  91. package/dist/cjs/hooks/useBodyScrollLock.cjs.map +1 -1
  92. package/dist/cjs/hooks/useDialogLayer.cjs +69 -0
  93. package/dist/cjs/hooks/useDialogLayer.cjs.map +1 -0
  94. package/dist/cjs/hooks/useEdgeFade.cjs +60 -0
  95. package/dist/cjs/hooks/useEdgeFade.cjs.map +1 -0
  96. package/dist/cjs/hooks/useEscape.cjs +8 -5
  97. package/dist/cjs/hooks/useEscape.cjs.map +1 -1
  98. package/dist/cjs/hooks/useExitLatch.cjs +19 -0
  99. package/dist/cjs/hooks/useExitLatch.cjs.map +1 -0
  100. package/dist/cjs/hooks/useFocusTrap.cjs +61 -24
  101. package/dist/cjs/hooks/useFocusTrap.cjs.map +1 -1
  102. package/dist/cjs/hooks/useHeaderOffset.cjs +20 -0
  103. package/dist/cjs/hooks/useHeaderOffset.cjs.map +1 -0
  104. package/dist/cjs/hooks/useHideOthers.cjs +51 -0
  105. package/dist/cjs/hooks/useHideOthers.cjs.map +1 -0
  106. package/dist/cjs/hooks/useOpenerElement.cjs +15 -0
  107. package/dist/cjs/hooks/useOpenerElement.cjs.map +1 -0
  108. package/dist/cjs/hooks/useOutsideClick.cjs +31 -4
  109. package/dist/cjs/hooks/useOutsideClick.cjs.map +1 -1
  110. package/dist/cjs/hooks/usePresence.cjs +154 -0
  111. package/dist/cjs/hooks/usePresence.cjs.map +1 -0
  112. package/dist/cjs/hooks/useResizeObserver.cjs +22 -0
  113. package/dist/cjs/hooks/useResizeObserver.cjs.map +1 -0
  114. package/dist/cjs/hooks/useSelectionIndicator.cjs +52 -0
  115. package/dist/cjs/hooks/useSelectionIndicator.cjs.map +1 -0
  116. package/dist/cjs/icon-button/CloseButton.cjs.map +1 -1
  117. package/dist/cjs/icon-button/IconButton.cjs +13 -9
  118. package/dist/cjs/icon-button/IconButton.cjs.map +1 -1
  119. package/dist/cjs/icon-button/IconButton.module.css.cjs +1 -1
  120. package/dist/cjs/icons/TokenIcon.cjs +2 -0
  121. package/dist/cjs/icons/TokenIcon.cjs.map +1 -1
  122. package/dist/cjs/identicon/Identicon.cjs +2 -0
  123. package/dist/cjs/identicon/Identicon.cjs.map +1 -1
  124. package/dist/cjs/index.cjs +75 -4
  125. package/dist/cjs/index.cjs.map +1 -1
  126. package/dist/cjs/index.css +20 -4
  127. package/dist/cjs/info-tooltip/InfoTooltip.cjs +4 -4
  128. package/dist/cjs/info-tooltip/InfoTooltip.cjs.map +1 -1
  129. package/dist/cjs/info-tooltip/InfoTooltip.module.css.cjs +1 -1
  130. package/dist/cjs/input/Field.cjs +79 -0
  131. package/dist/cjs/input/Field.cjs.map +1 -0
  132. package/dist/cjs/input/Field.module.css.cjs +6 -0
  133. package/dist/cjs/input/Field.module.css.cjs.map +1 -0
  134. package/dist/cjs/input/Input.cjs +37 -40
  135. package/dist/cjs/input/Input.cjs.map +1 -1
  136. package/dist/cjs/input/Input.module.css.cjs +1 -1
  137. package/dist/cjs/link-provider/Anchor.cjs +39 -5
  138. package/dist/cjs/link-provider/Anchor.cjs.map +1 -1
  139. package/dist/cjs/link-provider/LinkProvider.cjs +1 -1
  140. package/dist/cjs/link-provider/LinkProvider.cjs.map +1 -1
  141. package/dist/cjs/logo/Logo.cjs +8 -0
  142. package/dist/cjs/logo/Logo.cjs.map +1 -1
  143. package/dist/cjs/message-box/MessageBox.cjs +1 -0
  144. package/dist/cjs/message-box/MessageBox.cjs.map +1 -1
  145. package/dist/cjs/modal/Modal.cjs +61 -47
  146. package/dist/cjs/modal/Modal.cjs.map +1 -1
  147. package/dist/cjs/nav-link/NavLink.cjs +12 -6
  148. package/dist/cjs/nav-link/NavLink.cjs.map +1 -1
  149. package/dist/cjs/notification/Notification.cjs +14 -7
  150. package/dist/cjs/notification/Notification.cjs.map +1 -1
  151. package/dist/cjs/notification/Notification.module.css.cjs +1 -1
  152. package/dist/cjs/page-layout/FormLayout.cjs +42 -0
  153. package/dist/cjs/page-layout/FormLayout.cjs.map +1 -0
  154. package/dist/cjs/page-layout/FormLayout.module.css.cjs +6 -0
  155. package/dist/cjs/page-layout/FormLayout.module.css.cjs.map +1 -0
  156. package/dist/cjs/pagination/Pagination.cjs +14 -12
  157. package/dist/cjs/pagination/Pagination.cjs.map +1 -1
  158. package/dist/cjs/pagination/Pagination.module.css.cjs +1 -1
  159. package/dist/cjs/popover/Popover.cjs +129 -21
  160. package/dist/cjs/popover/Popover.cjs.map +1 -1
  161. package/dist/cjs/progress-bar/ProgressBar.cjs +87 -0
  162. package/dist/cjs/progress-bar/ProgressBar.cjs.map +1 -0
  163. package/dist/cjs/progress-bar/ProgressBar.module.css.cjs +6 -0
  164. package/dist/cjs/progress-bar/ProgressBar.module.css.cjs.map +1 -0
  165. package/dist/cjs/progress-bar/SegmentedBar.cjs +53 -0
  166. package/dist/cjs/progress-bar/SegmentedBar.cjs.map +1 -0
  167. package/dist/cjs/progress-bar/SegmentedBar.module.css.cjs +6 -0
  168. package/dist/cjs/progress-bar/SegmentedBar.module.css.cjs.map +1 -0
  169. package/dist/cjs/radio-button/RadioButton.cjs +32 -24
  170. package/dist/cjs/radio-button/RadioButton.cjs.map +1 -1
  171. package/dist/cjs/rich-input/RichInput.cjs +63 -54
  172. package/dist/cjs/rich-input/RichInput.cjs.map +1 -1
  173. package/dist/cjs/rich-input/RichInput.module.css.cjs +1 -1
  174. package/dist/cjs/section-title/SectionTitle.cjs +1 -0
  175. package/dist/cjs/section-title/SectionTitle.cjs.map +1 -1
  176. package/dist/cjs/segmented-control/SegmentedControl.cjs +10 -37
  177. package/dist/cjs/segmented-control/SegmentedControl.cjs.map +1 -1
  178. package/dist/cjs/segmented-control/SegmentedControlCard.cjs +15 -33
  179. package/dist/cjs/segmented-control/SegmentedControlCard.cjs.map +1 -1
  180. package/dist/cjs/select/Select.cjs +338 -0
  181. package/dist/cjs/select/Select.cjs.map +1 -0
  182. package/dist/cjs/select/Select.module.css.cjs +6 -0
  183. package/dist/cjs/select/Select.module.css.cjs.map +1 -0
  184. package/dist/cjs/select/SelectItem.cjs +97 -0
  185. package/dist/cjs/select/SelectItem.cjs.map +1 -0
  186. package/dist/cjs/select/SelectItem.module.css.cjs +6 -0
  187. package/dist/cjs/select/SelectItem.module.css.cjs.map +1 -0
  188. package/dist/cjs/sidebar/Sidebar.cjs +13 -8
  189. package/dist/cjs/sidebar/Sidebar.cjs.map +1 -1
  190. package/dist/cjs/sidebar/SidebarToggle.cjs +1 -1
  191. package/dist/cjs/sidebar/SidebarToggle.cjs.map +1 -1
  192. package/dist/cjs/skeleton/Skeleton.cjs +18 -20
  193. package/dist/cjs/skeleton/Skeleton.cjs.map +1 -1
  194. package/dist/cjs/slider/Slider.cjs +1 -0
  195. package/dist/cjs/slider/Slider.cjs.map +1 -1
  196. package/dist/cjs/small-card/SmallCard.cjs +6 -2
  197. package/dist/cjs/small-card/SmallCard.cjs.map +1 -1
  198. package/dist/cjs/spinner/Spinner.cjs +43 -0
  199. package/dist/cjs/spinner/Spinner.cjs.map +1 -0
  200. package/dist/cjs/spinner/Spinner.module.css.cjs +6 -0
  201. package/dist/cjs/spinner/Spinner.module.css.cjs.map +1 -0
  202. package/dist/cjs/stack/Stack.cjs +20 -11
  203. package/dist/cjs/stack/Stack.cjs.map +1 -1
  204. package/dist/cjs/stack/Stack.module.css.cjs +1 -1
  205. package/dist/cjs/stat-card/StatCard.cjs +132 -0
  206. package/dist/cjs/stat-card/StatCard.cjs.map +1 -0
  207. package/dist/cjs/stat-card/StatCard.module.css.cjs +6 -0
  208. package/dist/cjs/stat-card/StatCard.module.css.cjs.map +1 -0
  209. package/dist/cjs/stat-item/StatItem.cjs +1 -0
  210. package/dist/cjs/stat-item/StatItem.cjs.map +1 -1
  211. package/dist/cjs/stat-item/StatItem.module.css.cjs +1 -1
  212. package/dist/cjs/steps/Steps.cjs +85 -0
  213. package/dist/cjs/steps/Steps.cjs.map +1 -0
  214. package/dist/cjs/steps/Steps.module.css.cjs +6 -0
  215. package/dist/cjs/steps/Steps.module.css.cjs.map +1 -0
  216. package/dist/cjs/switch/Switch.cjs +33 -25
  217. package/dist/cjs/switch/Switch.cjs.map +1 -1
  218. package/dist/cjs/table/Table.cjs +280 -0
  219. package/dist/cjs/table/Table.cjs.map +1 -0
  220. package/dist/cjs/table/Table.module.css.cjs +6 -0
  221. package/dist/cjs/table/Table.module.css.cjs.map +1 -0
  222. package/dist/cjs/tabs/Tabs.cjs +18 -26
  223. package/dist/cjs/tabs/Tabs.cjs.map +1 -1
  224. package/dist/cjs/tabs/Tabs.module.css.cjs +1 -1
  225. package/dist/cjs/tag/Tag.cjs +74 -8
  226. package/dist/cjs/tag/Tag.cjs.map +1 -1
  227. package/dist/cjs/tag/Tag.module.css.cjs +1 -1
  228. package/dist/cjs/text-link/TextLink.cjs +9 -14
  229. package/dist/cjs/text-link/TextLink.cjs.map +1 -1
  230. package/dist/cjs/text-link/TextLink.module.css.cjs +1 -1
  231. package/dist/cjs/textarea/Textarea.cjs +108 -0
  232. package/dist/cjs/textarea/Textarea.cjs.map +1 -0
  233. package/dist/cjs/textarea/Textarea.module.css.cjs +6 -0
  234. package/dist/cjs/textarea/Textarea.module.css.cjs.map +1 -0
  235. package/dist/cjs/theme-switcher/ThemeSwitcher.cjs +13 -5
  236. package/dist/cjs/theme-switcher/ThemeSwitcher.cjs.map +1 -1
  237. package/dist/cjs/theme-switcher/ThemeSwitcher.module.css.cjs +6 -0
  238. package/dist/cjs/theme-switcher/ThemeSwitcher.module.css.cjs.map +1 -0
  239. package/dist/cjs/toast/ToastStack.cjs +34 -0
  240. package/dist/cjs/toast/ToastStack.cjs.map +1 -0
  241. package/dist/cjs/toast/ToastStack.module.css.cjs +6 -0
  242. package/dist/cjs/toast/ToastStack.module.css.cjs.map +1 -0
  243. package/dist/cjs/toast/Toaster.cjs +172 -0
  244. package/dist/cjs/toast/Toaster.cjs.map +1 -0
  245. package/dist/cjs/toast/toastStore.cjs +49 -0
  246. package/dist/cjs/toast/toastStore.cjs.map +1 -0
  247. package/dist/cjs/toast/useToasts.cjs +14 -0
  248. package/dist/cjs/toast/useToasts.cjs.map +1 -0
  249. package/dist/cjs/token-amount/TokenAmount.cjs +1 -0
  250. package/dist/cjs/token-amount/TokenAmount.cjs.map +1 -1
  251. package/dist/cjs/token-selector/TokenSelector.cjs +25 -145
  252. package/dist/cjs/token-selector/TokenSelector.cjs.map +1 -1
  253. package/dist/cjs/tooltip/Tooltip.cjs +53 -27
  254. package/dist/cjs/tooltip/Tooltip.cjs.map +1 -1
  255. package/dist/cjs/tx-status/TxStatus.cjs +6 -3
  256. package/dist/cjs/tx-status/TxStatus.cjs.map +1 -1
  257. package/dist/cjs/tx-status/TxStatus.module.css.cjs +1 -1
  258. package/dist/cjs/typography/Typography.cjs +23 -8
  259. package/dist/cjs/typography/Typography.cjs.map +1 -1
  260. package/dist/cjs/typography/Typography.module.css.cjs +1 -1
  261. package/dist/cjs/utils/ActionElement.cjs +2 -13
  262. package/dist/cjs/utils/ActionElement.cjs.map +1 -1
  263. package/dist/cjs/utils/breakpoints.cjs +25 -0
  264. package/dist/cjs/utils/breakpoints.cjs.map +1 -0
  265. package/dist/cjs/utils/dom.cjs +14 -0
  266. package/dist/cjs/utils/dom.cjs.map +1 -0
  267. package/dist/cjs/utils/joinAriaLabel.cjs +8 -0
  268. package/dist/cjs/utils/joinAriaLabel.cjs.map +1 -0
  269. package/dist/cjs/utils/responsive.cjs +19 -30
  270. package/dist/cjs/utils/responsive.cjs.map +1 -1
  271. package/dist/esm/accordion/Accordion.mjs +13 -7
  272. package/dist/esm/accordion/Accordion.mjs.map +1 -1
  273. package/dist/esm/accordion/Accordion.module.css.mjs +1 -1
  274. package/dist/esm/address-button/AddressButton.mjs +4 -3
  275. package/dist/esm/address-button/AddressButton.mjs.map +1 -1
  276. package/dist/esm/address-button/AddressButton.module.css.mjs +1 -1
  277. package/dist/esm/badge/Badge.mjs +5 -1
  278. package/dist/esm/badge/Badge.mjs.map +1 -1
  279. package/dist/esm/badge/Badge.module.css.mjs +1 -1
  280. package/dist/esm/banner/Banner.mjs +29 -25
  281. package/dist/esm/banner/Banner.mjs.map +1 -1
  282. package/dist/esm/banner/Banner.module.css.mjs +1 -1
  283. package/dist/esm/breadcrumbs/Breadcrumbs.mjs +62 -37
  284. package/dist/esm/breadcrumbs/Breadcrumbs.mjs.map +1 -1
  285. package/dist/esm/breadcrumbs/Breadcrumbs.module.css.mjs +1 -1
  286. package/dist/esm/button/Button.mjs +21 -29
  287. package/dist/esm/button/Button.mjs.map +1 -1
  288. package/dist/esm/button/Button.module.css.mjs +1 -1
  289. package/dist/esm/button/ButtonContent.mjs +44 -0
  290. package/dist/esm/button/ButtonContent.mjs.map +1 -0
  291. package/dist/esm/button/LinkButton.mjs +13 -0
  292. package/dist/esm/button/LinkButton.mjs.map +1 -0
  293. package/dist/esm/callout/Callout.mjs +71 -0
  294. package/dist/esm/callout/Callout.mjs.map +1 -0
  295. package/dist/esm/callout/Callout.module.css.mjs +4 -0
  296. package/dist/esm/callout/Callout.module.css.mjs.map +1 -0
  297. package/dist/esm/card/Card.mjs +1 -0
  298. package/dist/esm/card/Card.mjs.map +1 -1
  299. package/dist/esm/checkbox/Checkbox.mjs +57 -25
  300. package/dist/esm/checkbox/Checkbox.mjs.map +1 -1
  301. package/dist/esm/checkbox/Checkbox.module.css.mjs +1 -1
  302. package/dist/esm/checkbox-row/CheckboxList.mjs +29 -0
  303. package/dist/esm/checkbox-row/CheckboxList.mjs.map +1 -0
  304. package/dist/esm/checkbox-row/CheckboxList.module.css.mjs +4 -0
  305. package/dist/esm/checkbox-row/CheckboxList.module.css.mjs.map +1 -0
  306. package/dist/esm/checkbox-row/CheckboxRow.mjs +76 -0
  307. package/dist/esm/checkbox-row/CheckboxRow.mjs.map +1 -0
  308. package/dist/esm/checkbox-row/CheckboxRow.module.css.mjs +4 -0
  309. package/dist/esm/checkbox-row/CheckboxRow.module.css.mjs.map +1 -0
  310. package/dist/esm/counter/Counter.mjs +6 -2
  311. package/dist/esm/counter/Counter.mjs.map +1 -1
  312. package/dist/esm/counter/Counter.module.css.mjs +1 -1
  313. package/dist/esm/counter/CounterSlot.mjs +19 -3
  314. package/dist/esm/counter/CounterSlot.mjs.map +1 -1
  315. package/dist/esm/counter/CounterSlot.module.css.mjs +1 -1
  316. package/dist/esm/data-list/DataList.mjs +1 -0
  317. package/dist/esm/data-list/DataList.mjs.map +1 -1
  318. package/dist/esm/data-list/DataListRow.mjs +2 -0
  319. package/dist/esm/data-list/DataListRow.mjs.map +1 -1
  320. package/dist/esm/disclaimer/Disclaimer.mjs +10 -4
  321. package/dist/esm/disclaimer/Disclaimer.mjs.map +1 -1
  322. package/dist/esm/disclosure/Disclosure.mjs +69 -0
  323. package/dist/esm/disclosure/Disclosure.mjs.map +1 -0
  324. package/dist/esm/disclosure/Disclosure.module.css.mjs +4 -0
  325. package/dist/esm/disclosure/Disclosure.module.css.mjs.map +1 -0
  326. package/dist/esm/divider/Divider.mjs +5 -0
  327. package/dist/esm/divider/Divider.mjs.map +1 -1
  328. package/dist/esm/drawer/Drawer.mjs +106 -0
  329. package/dist/esm/drawer/Drawer.mjs.map +1 -0
  330. package/dist/esm/drawer/Drawer.module.css.mjs +4 -0
  331. package/dist/esm/drawer/Drawer.module.css.mjs.map +1 -0
  332. package/dist/esm/empty-state/EmptyState.mjs +50 -0
  333. package/dist/esm/empty-state/EmptyState.mjs.map +1 -0
  334. package/dist/esm/empty-state/EmptyState.module.css.mjs +4 -0
  335. package/dist/esm/empty-state/EmptyState.module.css.mjs.map +1 -0
  336. package/dist/esm/error-page/ErrorPage.mjs +33 -25
  337. package/dist/esm/error-page/ErrorPage.mjs.map +1 -1
  338. package/dist/esm/error-page/ErrorPage.module.css.mjs +1 -1
  339. package/dist/esm/footer/Footer.mjs +10 -2
  340. package/dist/esm/footer/Footer.mjs.map +1 -1
  341. package/dist/esm/grid/Grid.mjs +8 -4
  342. package/dist/esm/grid/Grid.mjs.map +1 -1
  343. package/dist/esm/grid/Grid.module.css.mjs +1 -1
  344. package/dist/esm/grid/GridItem.mjs +2 -0
  345. package/dist/esm/grid/GridItem.mjs.map +1 -1
  346. package/dist/esm/header/Header.mjs +10 -2
  347. package/dist/esm/header/Header.mjs.map +1 -1
  348. package/dist/esm/header/HeaderNav.mjs +27 -31
  349. package/dist/esm/header/HeaderNav.mjs.map +1 -1
  350. package/dist/esm/header/HeaderNav.module.css.mjs +1 -1
  351. package/dist/esm/hidden/Hidden.mjs +10 -4
  352. package/dist/esm/hidden/Hidden.mjs.map +1 -1
  353. package/dist/esm/hidden/Hidden.module.css.mjs +1 -1
  354. package/dist/esm/hooks/DialogLayer.mjs +90 -0
  355. package/dist/esm/hooks/DialogLayer.mjs.map +1 -0
  356. package/dist/esm/hooks/Portal.mjs +16 -13
  357. package/dist/esm/hooks/Portal.mjs.map +1 -1
  358. package/dist/esm/hooks/useBodyScrollLock.mjs +49 -13
  359. package/dist/esm/hooks/useBodyScrollLock.mjs.map +1 -1
  360. package/dist/esm/hooks/useDialogLayer.mjs +65 -0
  361. package/dist/esm/hooks/useDialogLayer.mjs.map +1 -0
  362. package/dist/esm/hooks/useEdgeFade.mjs +56 -0
  363. package/dist/esm/hooks/useEdgeFade.mjs.map +1 -0
  364. package/dist/esm/hooks/useEscape.mjs +8 -5
  365. package/dist/esm/hooks/useEscape.mjs.map +1 -1
  366. package/dist/esm/hooks/useExitLatch.mjs +15 -0
  367. package/dist/esm/hooks/useExitLatch.mjs.map +1 -0
  368. package/dist/esm/hooks/useFocusTrap.mjs +61 -24
  369. package/dist/esm/hooks/useFocusTrap.mjs.map +1 -1
  370. package/dist/esm/hooks/useHeaderOffset.mjs +16 -0
  371. package/dist/esm/hooks/useHeaderOffset.mjs.map +1 -0
  372. package/dist/esm/hooks/useHideOthers.mjs +47 -0
  373. package/dist/esm/hooks/useHideOthers.mjs.map +1 -0
  374. package/dist/esm/hooks/useOpenerElement.mjs +11 -0
  375. package/dist/esm/hooks/useOpenerElement.mjs.map +1 -0
  376. package/dist/esm/hooks/useOutsideClick.mjs +31 -4
  377. package/dist/esm/hooks/useOutsideClick.mjs.map +1 -1
  378. package/dist/esm/hooks/usePresence.mjs +150 -0
  379. package/dist/esm/hooks/usePresence.mjs.map +1 -0
  380. package/dist/esm/hooks/useResizeObserver.mjs +18 -0
  381. package/dist/esm/hooks/useResizeObserver.mjs.map +1 -0
  382. package/dist/esm/hooks/useSelectionIndicator.mjs +48 -0
  383. package/dist/esm/hooks/useSelectionIndicator.mjs.map +1 -0
  384. package/dist/esm/icon-button/CloseButton.mjs.map +1 -1
  385. package/dist/esm/icon-button/IconButton.mjs +13 -9
  386. package/dist/esm/icon-button/IconButton.mjs.map +1 -1
  387. package/dist/esm/icon-button/IconButton.module.css.mjs +1 -1
  388. package/dist/esm/icons/TokenIcon.mjs +2 -0
  389. package/dist/esm/icons/TokenIcon.mjs.map +1 -1
  390. package/dist/esm/identicon/Identicon.mjs +2 -0
  391. package/dist/esm/identicon/Identicon.mjs.map +1 -1
  392. package/dist/esm/index.css +20 -4
  393. package/dist/esm/index.mjs +30 -2
  394. package/dist/esm/index.mjs.map +1 -1
  395. package/dist/esm/info-tooltip/InfoTooltip.mjs +4 -4
  396. package/dist/esm/info-tooltip/InfoTooltip.mjs.map +1 -1
  397. package/dist/esm/info-tooltip/InfoTooltip.module.css.mjs +1 -1
  398. package/dist/esm/input/Field.mjs +70 -0
  399. package/dist/esm/input/Field.mjs.map +1 -0
  400. package/dist/esm/input/Field.module.css.mjs +4 -0
  401. package/dist/esm/input/Field.module.css.mjs.map +1 -0
  402. package/dist/esm/input/Input.mjs +38 -41
  403. package/dist/esm/input/Input.mjs.map +1 -1
  404. package/dist/esm/input/Input.module.css.mjs +1 -1
  405. package/dist/esm/link-provider/Anchor.mjs +39 -6
  406. package/dist/esm/link-provider/Anchor.mjs.map +1 -1
  407. package/dist/esm/link-provider/LinkProvider.mjs +1 -1
  408. package/dist/esm/link-provider/LinkProvider.mjs.map +1 -1
  409. package/dist/esm/logo/Logo.mjs +9 -1
  410. package/dist/esm/logo/Logo.mjs.map +1 -1
  411. package/dist/esm/message-box/MessageBox.mjs +1 -0
  412. package/dist/esm/message-box/MessageBox.mjs.map +1 -1
  413. package/dist/esm/modal/Modal.mjs +62 -49
  414. package/dist/esm/modal/Modal.mjs.map +1 -1
  415. package/dist/esm/nav-link/NavLink.mjs +13 -7
  416. package/dist/esm/nav-link/NavLink.mjs.map +1 -1
  417. package/dist/esm/notification/Notification.mjs +15 -8
  418. package/dist/esm/notification/Notification.mjs.map +1 -1
  419. package/dist/esm/notification/Notification.module.css.mjs +1 -1
  420. package/dist/esm/page-layout/FormLayout.mjs +38 -0
  421. package/dist/esm/page-layout/FormLayout.mjs.map +1 -0
  422. package/dist/esm/page-layout/FormLayout.module.css.mjs +4 -0
  423. package/dist/esm/page-layout/FormLayout.module.css.mjs.map +1 -0
  424. package/dist/esm/pagination/Pagination.mjs +16 -14
  425. package/dist/esm/pagination/Pagination.mjs.map +1 -1
  426. package/dist/esm/pagination/Pagination.module.css.mjs +1 -1
  427. package/dist/esm/popover/Popover.mjs +130 -22
  428. package/dist/esm/popover/Popover.mjs.map +1 -1
  429. package/dist/esm/progress-bar/ProgressBar.mjs +83 -0
  430. package/dist/esm/progress-bar/ProgressBar.mjs.map +1 -0
  431. package/dist/esm/progress-bar/ProgressBar.module.css.mjs +4 -0
  432. package/dist/esm/progress-bar/ProgressBar.module.css.mjs.map +1 -0
  433. package/dist/esm/progress-bar/SegmentedBar.mjs +49 -0
  434. package/dist/esm/progress-bar/SegmentedBar.mjs.map +1 -0
  435. package/dist/esm/progress-bar/SegmentedBar.module.css.mjs +4 -0
  436. package/dist/esm/progress-bar/SegmentedBar.module.css.mjs.map +1 -0
  437. package/dist/esm/radio-button/RadioButton.mjs +32 -24
  438. package/dist/esm/radio-button/RadioButton.mjs.map +1 -1
  439. package/dist/esm/rich-input/RichInput.mjs +64 -55
  440. package/dist/esm/rich-input/RichInput.mjs.map +1 -1
  441. package/dist/esm/rich-input/RichInput.module.css.mjs +1 -1
  442. package/dist/esm/section-title/SectionTitle.mjs +1 -0
  443. package/dist/esm/section-title/SectionTitle.mjs.map +1 -1
  444. package/dist/esm/segmented-control/SegmentedControl.mjs +10 -37
  445. package/dist/esm/segmented-control/SegmentedControl.mjs.map +1 -1
  446. package/dist/esm/segmented-control/SegmentedControlCard.mjs +15 -33
  447. package/dist/esm/segmented-control/SegmentedControlCard.mjs.map +1 -1
  448. package/dist/esm/select/Select.mjs +334 -0
  449. package/dist/esm/select/Select.mjs.map +1 -0
  450. package/dist/esm/select/Select.module.css.mjs +4 -0
  451. package/dist/esm/select/Select.module.css.mjs.map +1 -0
  452. package/dist/esm/select/SelectItem.mjs +92 -0
  453. package/dist/esm/select/SelectItem.mjs.map +1 -0
  454. package/dist/esm/select/SelectItem.module.css.mjs +4 -0
  455. package/dist/esm/select/SelectItem.module.css.mjs.map +1 -0
  456. package/dist/esm/sidebar/Sidebar.mjs +13 -8
  457. package/dist/esm/sidebar/Sidebar.mjs.map +1 -1
  458. package/dist/esm/sidebar/SidebarToggle.mjs +1 -1
  459. package/dist/esm/sidebar/SidebarToggle.mjs.map +1 -1
  460. package/dist/esm/skeleton/Skeleton.mjs +18 -20
  461. package/dist/esm/skeleton/Skeleton.mjs.map +1 -1
  462. package/dist/esm/slider/Slider.mjs +1 -0
  463. package/dist/esm/slider/Slider.mjs.map +1 -1
  464. package/dist/esm/small-card/SmallCard.mjs +6 -2
  465. package/dist/esm/small-card/SmallCard.mjs.map +1 -1
  466. package/dist/esm/spinner/Spinner.mjs +39 -0
  467. package/dist/esm/spinner/Spinner.mjs.map +1 -0
  468. package/dist/esm/spinner/Spinner.module.css.mjs +4 -0
  469. package/dist/esm/spinner/Spinner.module.css.mjs.map +1 -0
  470. package/dist/esm/stack/Stack.mjs +21 -13
  471. package/dist/esm/stack/Stack.mjs.map +1 -1
  472. package/dist/esm/stack/Stack.module.css.mjs +1 -1
  473. package/dist/esm/stat-card/StatCard.mjs +127 -0
  474. package/dist/esm/stat-card/StatCard.mjs.map +1 -0
  475. package/dist/esm/stat-card/StatCard.module.css.mjs +4 -0
  476. package/dist/esm/stat-card/StatCard.module.css.mjs.map +1 -0
  477. package/dist/esm/stat-item/StatItem.mjs +1 -0
  478. package/dist/esm/stat-item/StatItem.mjs.map +1 -1
  479. package/dist/esm/stat-item/StatItem.module.css.mjs +1 -1
  480. package/dist/esm/steps/Steps.mjs +81 -0
  481. package/dist/esm/steps/Steps.mjs.map +1 -0
  482. package/dist/esm/steps/Steps.module.css.mjs +4 -0
  483. package/dist/esm/steps/Steps.module.css.mjs.map +1 -0
  484. package/dist/esm/switch/Switch.mjs +33 -25
  485. package/dist/esm/switch/Switch.mjs.map +1 -1
  486. package/dist/esm/table/Table.mjs +269 -0
  487. package/dist/esm/table/Table.mjs.map +1 -0
  488. package/dist/esm/table/Table.module.css.mjs +4 -0
  489. package/dist/esm/table/Table.module.css.mjs.map +1 -0
  490. package/dist/esm/tabs/Tabs.mjs +18 -26
  491. package/dist/esm/tabs/Tabs.mjs.map +1 -1
  492. package/dist/esm/tabs/Tabs.module.css.mjs +1 -1
  493. package/dist/esm/tag/Tag.mjs +75 -9
  494. package/dist/esm/tag/Tag.mjs.map +1 -1
  495. package/dist/esm/tag/Tag.module.css.mjs +1 -1
  496. package/dist/esm/text-link/TextLink.mjs +9 -14
  497. package/dist/esm/text-link/TextLink.mjs.map +1 -1
  498. package/dist/esm/text-link/TextLink.module.css.mjs +1 -1
  499. package/dist/esm/textarea/Textarea.mjs +104 -0
  500. package/dist/esm/textarea/Textarea.mjs.map +1 -0
  501. package/dist/esm/textarea/Textarea.module.css.mjs +4 -0
  502. package/dist/esm/textarea/Textarea.module.css.mjs.map +1 -0
  503. package/dist/esm/theme-switcher/ThemeSwitcher.mjs +14 -6
  504. package/dist/esm/theme-switcher/ThemeSwitcher.mjs.map +1 -1
  505. package/dist/esm/theme-switcher/ThemeSwitcher.module.css.mjs +4 -0
  506. package/dist/esm/theme-switcher/ThemeSwitcher.module.css.mjs.map +1 -0
  507. package/dist/esm/toast/ToastStack.mjs +30 -0
  508. package/dist/esm/toast/ToastStack.mjs.map +1 -0
  509. package/dist/esm/toast/ToastStack.module.css.mjs +4 -0
  510. package/dist/esm/toast/ToastStack.module.css.mjs.map +1 -0
  511. package/dist/esm/toast/Toaster.mjs +167 -0
  512. package/dist/esm/toast/Toaster.mjs.map +1 -0
  513. package/dist/esm/toast/toastStore.mjs +43 -0
  514. package/dist/esm/toast/toastStore.mjs.map +1 -0
  515. package/dist/esm/toast/useToasts.mjs +10 -0
  516. package/dist/esm/toast/useToasts.mjs.map +1 -0
  517. package/dist/esm/token-amount/TokenAmount.mjs +1 -0
  518. package/dist/esm/token-amount/TokenAmount.mjs.map +1 -1
  519. package/dist/esm/token-selector/TokenSelector.mjs +27 -147
  520. package/dist/esm/token-selector/TokenSelector.mjs.map +1 -1
  521. package/dist/esm/tooltip/Tooltip.mjs +53 -27
  522. package/dist/esm/tooltip/Tooltip.mjs.map +1 -1
  523. package/dist/esm/tx-status/TxStatus.mjs +6 -3
  524. package/dist/esm/tx-status/TxStatus.mjs.map +1 -1
  525. package/dist/esm/tx-status/TxStatus.module.css.mjs +1 -1
  526. package/dist/esm/typography/Typography.mjs +21 -9
  527. package/dist/esm/typography/Typography.mjs.map +1 -1
  528. package/dist/esm/typography/Typography.module.css.mjs +1 -1
  529. package/dist/esm/utils/ActionElement.mjs +2 -13
  530. package/dist/esm/utils/ActionElement.mjs.map +1 -1
  531. package/dist/esm/utils/breakpoints.mjs +18 -0
  532. package/dist/esm/utils/breakpoints.mjs.map +1 -0
  533. package/dist/esm/utils/dom.mjs +10 -0
  534. package/dist/esm/utils/dom.mjs.map +1 -0
  535. package/dist/esm/utils/joinAriaLabel.mjs +4 -0
  536. package/dist/esm/utils/joinAriaLabel.mjs.map +1 -0
  537. package/dist/esm/utils/responsive.mjs +17 -27
  538. package/dist/esm/utils/responsive.mjs.map +1 -1
  539. package/dist/index.css +20 -4
  540. package/dist/styles/breakpoints.css +10 -12
  541. package/dist/styles/motion-mixins.css +167 -0
  542. package/dist/styles/typography-mixins.css +22 -4
  543. package/dist/types/accordion/Accordion.d.ts +3 -0
  544. package/dist/types/accordion/Accordion.d.ts.map +1 -1
  545. package/dist/types/badge/Badge.d.ts +1 -0
  546. package/dist/types/badge/Badge.d.ts.map +1 -1
  547. package/dist/types/banner/Banner.d.ts +1 -0
  548. package/dist/types/banner/Banner.d.ts.map +1 -1
  549. package/dist/types/breadcrumbs/Breadcrumbs.d.ts +17 -1
  550. package/dist/types/breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  551. package/dist/types/breadcrumbs/index.d.ts +1 -1
  552. package/dist/types/breadcrumbs/index.d.ts.map +1 -1
  553. package/dist/types/button/Button.d.ts +4 -30
  554. package/dist/types/button/Button.d.ts.map +1 -1
  555. package/dist/types/button/ButtonContent.d.ts +9 -0
  556. package/dist/types/button/ButtonContent.d.ts.map +1 -0
  557. package/dist/types/button/LinkButton.d.ts +11 -0
  558. package/dist/types/button/LinkButton.d.ts.map +1 -0
  559. package/dist/types/button/index.d.ts +3 -1
  560. package/dist/types/button/index.d.ts.map +1 -1
  561. package/dist/types/button/types.d.ts +32 -0
  562. package/dist/types/button/types.d.ts.map +1 -0
  563. package/dist/types/callout/Callout.d.ts +32 -0
  564. package/dist/types/callout/Callout.d.ts.map +1 -0
  565. package/dist/types/callout/index.d.ts +3 -0
  566. package/dist/types/callout/index.d.ts.map +1 -0
  567. package/dist/types/card/Card.d.ts +1 -0
  568. package/dist/types/card/Card.d.ts.map +1 -1
  569. package/dist/types/checkbox/Checkbox.d.ts +7 -0
  570. package/dist/types/checkbox/Checkbox.d.ts.map +1 -1
  571. package/dist/types/checkbox-row/CheckboxList.d.ts +17 -0
  572. package/dist/types/checkbox-row/CheckboxList.d.ts.map +1 -0
  573. package/dist/types/checkbox-row/CheckboxRow.d.ts +32 -0
  574. package/dist/types/checkbox-row/CheckboxRow.d.ts.map +1 -0
  575. package/dist/types/checkbox-row/index.d.ts +5 -0
  576. package/dist/types/checkbox-row/index.d.ts.map +1 -0
  577. package/dist/types/colors/colorTokens.d.ts.map +1 -1
  578. package/dist/types/counter/Counter.d.ts +6 -2
  579. package/dist/types/counter/Counter.d.ts.map +1 -1
  580. package/dist/types/counter/CounterSlot.d.ts +3 -0
  581. package/dist/types/counter/CounterSlot.d.ts.map +1 -1
  582. package/dist/types/data-list/DataList.d.ts +1 -0
  583. package/dist/types/data-list/DataList.d.ts.map +1 -1
  584. package/dist/types/data-list/DataListRow.d.ts +1 -0
  585. package/dist/types/data-list/DataListRow.d.ts.map +1 -1
  586. package/dist/types/disclaimer/Disclaimer.d.ts +9 -2
  587. package/dist/types/disclaimer/Disclaimer.d.ts.map +1 -1
  588. package/dist/types/disclosure/Disclosure.d.ts +24 -0
  589. package/dist/types/disclosure/Disclosure.d.ts.map +1 -0
  590. package/dist/types/disclosure/index.d.ts +3 -0
  591. package/dist/types/disclosure/index.d.ts.map +1 -0
  592. package/dist/types/divider/Divider.d.ts +5 -0
  593. package/dist/types/divider/Divider.d.ts.map +1 -1
  594. package/dist/types/divider/index.d.ts +1 -1
  595. package/dist/types/divider/index.d.ts.map +1 -1
  596. package/dist/types/drawer/Drawer.d.ts +55 -0
  597. package/dist/types/drawer/Drawer.d.ts.map +1 -0
  598. package/dist/types/drawer/index.d.ts +3 -0
  599. package/dist/types/drawer/index.d.ts.map +1 -0
  600. package/dist/types/empty-state/EmptyState.d.ts +33 -0
  601. package/dist/types/empty-state/EmptyState.d.ts.map +1 -0
  602. package/dist/types/empty-state/index.d.ts +3 -0
  603. package/dist/types/empty-state/index.d.ts.map +1 -0
  604. package/dist/types/error-page/ErrorPage.d.ts +17 -4
  605. package/dist/types/error-page/ErrorPage.d.ts.map +1 -1
  606. package/dist/types/footer/Footer.d.ts +17 -2
  607. package/dist/types/footer/Footer.d.ts.map +1 -1
  608. package/dist/types/footer/index.d.ts +1 -1
  609. package/dist/types/footer/index.d.ts.map +1 -1
  610. package/dist/types/grid/Grid.d.ts +21 -22
  611. package/dist/types/grid/Grid.d.ts.map +1 -1
  612. package/dist/types/grid/GridItem.d.ts +14 -10
  613. package/dist/types/grid/GridItem.d.ts.map +1 -1
  614. package/dist/types/grid/index.d.ts +2 -2
  615. package/dist/types/grid/index.d.ts.map +1 -1
  616. package/dist/types/header/Header.d.ts +15 -2
  617. package/dist/types/header/Header.d.ts.map +1 -1
  618. package/dist/types/header/HeaderNav.d.ts +10 -2
  619. package/dist/types/header/HeaderNav.d.ts.map +1 -1
  620. package/dist/types/header/index.d.ts +2 -2
  621. package/dist/types/header/index.d.ts.map +1 -1
  622. package/dist/types/hidden/Hidden.d.ts +19 -5
  623. package/dist/types/hidden/Hidden.d.ts.map +1 -1
  624. package/dist/types/hidden/index.d.ts +1 -1
  625. package/dist/types/hidden/index.d.ts.map +1 -1
  626. package/dist/types/hooks/DialogLayer.d.ts +21 -0
  627. package/dist/types/hooks/DialogLayer.d.ts.map +1 -0
  628. package/dist/types/hooks/Portal.d.ts +2 -5
  629. package/dist/types/hooks/Portal.d.ts.map +1 -1
  630. package/dist/types/hooks/index.d.ts +10 -0
  631. package/dist/types/hooks/index.d.ts.map +1 -1
  632. package/dist/types/hooks/useBodyScrollLock.d.ts +4 -2
  633. package/dist/types/hooks/useBodyScrollLock.d.ts.map +1 -1
  634. package/dist/types/hooks/useDialogLayer.d.ts +16 -0
  635. package/dist/types/hooks/useDialogLayer.d.ts.map +1 -0
  636. package/dist/types/hooks/useEdgeFade.d.ts +6 -0
  637. package/dist/types/hooks/useEdgeFade.d.ts.map +1 -0
  638. package/dist/types/hooks/useEscape.d.ts +4 -2
  639. package/dist/types/hooks/useEscape.d.ts.map +1 -1
  640. package/dist/types/hooks/useExitLatch.d.ts +6 -0
  641. package/dist/types/hooks/useExitLatch.d.ts.map +1 -0
  642. package/dist/types/hooks/useFocusTrap.d.ts +7 -3
  643. package/dist/types/hooks/useFocusTrap.d.ts.map +1 -1
  644. package/dist/types/hooks/useHeaderOffset.d.ts +3 -0
  645. package/dist/types/hooks/useHeaderOffset.d.ts.map +1 -0
  646. package/dist/types/hooks/useHideOthers.d.ts +3 -0
  647. package/dist/types/hooks/useHideOthers.d.ts.map +1 -0
  648. package/dist/types/hooks/useOpenerElement.d.ts +3 -0
  649. package/dist/types/hooks/useOpenerElement.d.ts.map +1 -0
  650. package/dist/types/hooks/useOutsideClick.d.ts +4 -2
  651. package/dist/types/hooks/useOutsideClick.d.ts.map +1 -1
  652. package/dist/types/hooks/usePresence.d.ts +28 -0
  653. package/dist/types/hooks/usePresence.d.ts.map +1 -0
  654. package/dist/types/hooks/useResizeObserver.d.ts +4 -0
  655. package/dist/types/hooks/useResizeObserver.d.ts.map +1 -0
  656. package/dist/types/hooks/useSelectionIndicator.d.ts +13 -0
  657. package/dist/types/hooks/useSelectionIndicator.d.ts.map +1 -0
  658. package/dist/types/icon-button/CloseButton.d.ts +3 -3
  659. package/dist/types/icon-button/CloseButton.d.ts.map +1 -1
  660. package/dist/types/icon-button/IconButton.d.ts +4 -25
  661. package/dist/types/icon-button/IconButton.d.ts.map +1 -1
  662. package/dist/types/icon-button/index.d.ts +1 -1
  663. package/dist/types/icon-button/index.d.ts.map +1 -1
  664. package/dist/types/icon-button/types.d.ts +26 -0
  665. package/dist/types/icon-button/types.d.ts.map +1 -0
  666. package/dist/types/icons/TokenIcon.d.ts +1 -0
  667. package/dist/types/icons/TokenIcon.d.ts.map +1 -1
  668. package/dist/types/identicon/Identicon.d.ts +5 -0
  669. package/dist/types/identicon/Identicon.d.ts.map +1 -1
  670. package/dist/types/index.d.ts +16 -0
  671. package/dist/types/index.d.ts.map +1 -1
  672. package/dist/types/info-tooltip/InfoTooltip.d.ts +4 -1
  673. package/dist/types/info-tooltip/InfoTooltip.d.ts.map +1 -1
  674. package/dist/types/input/Field.d.ts +35 -0
  675. package/dist/types/input/Field.d.ts.map +1 -0
  676. package/dist/types/input/Input.d.ts +5 -0
  677. package/dist/types/input/Input.d.ts.map +1 -1
  678. package/dist/types/link-provider/Anchor.d.ts +18 -1
  679. package/dist/types/link-provider/Anchor.d.ts.map +1 -1
  680. package/dist/types/link-provider/LinkProvider.d.ts +8 -2
  681. package/dist/types/link-provider/LinkProvider.d.ts.map +1 -1
  682. package/dist/types/link-provider/index.d.ts +1 -1
  683. package/dist/types/link-provider/index.d.ts.map +1 -1
  684. package/dist/types/logo/Logo.d.ts +19 -5
  685. package/dist/types/logo/Logo.d.ts.map +1 -1
  686. package/dist/types/logo/index.d.ts +1 -1
  687. package/dist/types/logo/index.d.ts.map +1 -1
  688. package/dist/types/message-box/MessageBox.d.ts +3 -0
  689. package/dist/types/message-box/MessageBox.d.ts.map +1 -1
  690. package/dist/types/modal/Modal.d.ts +21 -3
  691. package/dist/types/modal/Modal.d.ts.map +1 -1
  692. package/dist/types/modal/index.d.ts +2 -2
  693. package/dist/types/modal/index.d.ts.map +1 -1
  694. package/dist/types/nav-link/NavLink.d.ts +17 -0
  695. package/dist/types/nav-link/NavLink.d.ts.map +1 -1
  696. package/dist/types/nav-link/index.d.ts +1 -1
  697. package/dist/types/nav-link/index.d.ts.map +1 -1
  698. package/dist/types/notification/Notification.d.ts +11 -2
  699. package/dist/types/notification/Notification.d.ts.map +1 -1
  700. package/dist/types/page-layout/FormLayout.d.ts +15 -0
  701. package/dist/types/page-layout/FormLayout.d.ts.map +1 -0
  702. package/dist/types/page-layout/index.d.ts +2 -0
  703. package/dist/types/page-layout/index.d.ts.map +1 -1
  704. package/dist/types/pagination/Pagination.d.ts +3 -0
  705. package/dist/types/pagination/Pagination.d.ts.map +1 -1
  706. package/dist/types/popover/Popover.d.ts +34 -6
  707. package/dist/types/popover/Popover.d.ts.map +1 -1
  708. package/dist/types/popover/index.d.ts +1 -1
  709. package/dist/types/popover/index.d.ts.map +1 -1
  710. package/dist/types/progress-bar/ProgressBar.d.ts +30 -0
  711. package/dist/types/progress-bar/ProgressBar.d.ts.map +1 -0
  712. package/dist/types/progress-bar/SegmentedBar.d.ts +22 -0
  713. package/dist/types/progress-bar/SegmentedBar.d.ts.map +1 -0
  714. package/dist/types/progress-bar/index.d.ts +5 -0
  715. package/dist/types/progress-bar/index.d.ts.map +1 -0
  716. package/dist/types/radio-button/RadioButton.d.ts +3 -0
  717. package/dist/types/radio-button/RadioButton.d.ts.map +1 -1
  718. package/dist/types/rich-input/RichInput.d.ts +16 -2
  719. package/dist/types/rich-input/RichInput.d.ts.map +1 -1
  720. package/dist/types/section-title/SectionTitle.d.ts +1 -0
  721. package/dist/types/section-title/SectionTitle.d.ts.map +1 -1
  722. package/dist/types/segmented-control/SegmentedControl.d.ts +1 -0
  723. package/dist/types/segmented-control/SegmentedControl.d.ts.map +1 -1
  724. package/dist/types/segmented-control/SegmentedControlCard.d.ts +2 -1
  725. package/dist/types/segmented-control/SegmentedControlCard.d.ts.map +1 -1
  726. package/dist/types/select/Select.d.ts +70 -0
  727. package/dist/types/select/Select.d.ts.map +1 -0
  728. package/dist/types/select/SelectItem.d.ts +58 -0
  729. package/dist/types/select/SelectItem.d.ts.map +1 -0
  730. package/dist/types/select/index.d.ts +5 -0
  731. package/dist/types/select/index.d.ts.map +1 -0
  732. package/dist/types/sidebar/Sidebar.d.ts +2 -2
  733. package/dist/types/sidebar/Sidebar.d.ts.map +1 -1
  734. package/dist/types/sidebar/SidebarItem.d.ts +1 -1
  735. package/dist/types/sidebar/SidebarToggle.d.ts +4 -4
  736. package/dist/types/sidebar/SidebarToggle.d.ts.map +1 -1
  737. package/dist/types/skeleton/Skeleton.d.ts +17 -3
  738. package/dist/types/skeleton/Skeleton.d.ts.map +1 -1
  739. package/dist/types/slider/Slider.d.ts +2 -1
  740. package/dist/types/slider/Slider.d.ts.map +1 -1
  741. package/dist/types/small-card/SmallCard.d.ts +16 -3
  742. package/dist/types/small-card/SmallCard.d.ts.map +1 -1
  743. package/dist/types/spinner/Spinner.d.ts +28 -0
  744. package/dist/types/spinner/Spinner.d.ts.map +1 -0
  745. package/dist/types/spinner/index.d.ts +2 -0
  746. package/dist/types/spinner/index.d.ts.map +1 -0
  747. package/dist/types/stack/Stack.d.ts +21 -16
  748. package/dist/types/stack/Stack.d.ts.map +1 -1
  749. package/dist/types/stack/index.d.ts +1 -1
  750. package/dist/types/stack/index.d.ts.map +1 -1
  751. package/dist/types/stat-card/StatCard.d.ts +86 -0
  752. package/dist/types/stat-card/StatCard.d.ts.map +1 -0
  753. package/dist/types/stat-card/index.d.ts +3 -0
  754. package/dist/types/stat-card/index.d.ts.map +1 -0
  755. package/dist/types/stat-item/StatItem.d.ts +6 -0
  756. package/dist/types/stat-item/StatItem.d.ts.map +1 -1
  757. package/dist/types/steps/Steps.d.ts +30 -0
  758. package/dist/types/steps/Steps.d.ts.map +1 -0
  759. package/dist/types/steps/index.d.ts +3 -0
  760. package/dist/types/steps/index.d.ts.map +1 -0
  761. package/dist/types/switch/Switch.d.ts +3 -0
  762. package/dist/types/switch/Switch.d.ts.map +1 -1
  763. package/dist/types/table/Table.d.ts +111 -0
  764. package/dist/types/table/Table.d.ts.map +1 -0
  765. package/dist/types/table/index.d.ts +3 -0
  766. package/dist/types/table/index.d.ts.map +1 -0
  767. package/dist/types/tabs/Tabs.d.ts +1 -0
  768. package/dist/types/tabs/Tabs.d.ts.map +1 -1
  769. package/dist/types/tag/Tag.d.ts +34 -4
  770. package/dist/types/tag/Tag.d.ts.map +1 -1
  771. package/dist/types/text-link/TextLink.d.ts +21 -4
  772. package/dist/types/text-link/TextLink.d.ts.map +1 -1
  773. package/dist/types/text-link/index.d.ts +1 -1
  774. package/dist/types/text-link/index.d.ts.map +1 -1
  775. package/dist/types/textarea/Textarea.d.ts +30 -0
  776. package/dist/types/textarea/Textarea.d.ts.map +1 -0
  777. package/dist/types/textarea/index.d.ts +2 -0
  778. package/dist/types/textarea/index.d.ts.map +1 -0
  779. package/dist/types/theme-switcher/ThemeSwitcher.d.ts +10 -4
  780. package/dist/types/theme-switcher/ThemeSwitcher.d.ts.map +1 -1
  781. package/dist/types/toast/ToastStack.d.ts +12 -0
  782. package/dist/types/toast/ToastStack.d.ts.map +1 -0
  783. package/dist/types/toast/Toaster.d.ts +11 -0
  784. package/dist/types/toast/Toaster.d.ts.map +1 -0
  785. package/dist/types/toast/index.d.ts +6 -0
  786. package/dist/types/toast/index.d.ts.map +1 -0
  787. package/dist/types/toast/toastStore.d.ts +26 -0
  788. package/dist/types/toast/toastStore.d.ts.map +1 -0
  789. package/dist/types/toast/useToasts.d.ts +4 -0
  790. package/dist/types/toast/useToasts.d.ts.map +1 -0
  791. package/dist/types/token-amount/TokenAmount.d.ts +1 -0
  792. package/dist/types/token-amount/TokenAmount.d.ts.map +1 -1
  793. package/dist/types/token-selector/TokenSelector.d.ts +10 -31
  794. package/dist/types/token-selector/TokenSelector.d.ts.map +1 -1
  795. package/dist/types/tooltip/Tooltip.d.ts +2 -0
  796. package/dist/types/tooltip/Tooltip.d.ts.map +1 -1
  797. package/dist/types/tx-status/TxStatus.d.ts +3 -0
  798. package/dist/types/tx-status/TxStatus.d.ts.map +1 -1
  799. package/dist/types/typography/Typography.d.ts +18 -5
  800. package/dist/types/typography/Typography.d.ts.map +1 -1
  801. package/dist/types/utils/ActionElement.d.ts +15 -5
  802. package/dist/types/utils/ActionElement.d.ts.map +1 -1
  803. package/dist/types/utils/breakpoints.d.ts +15 -0
  804. package/dist/types/utils/breakpoints.d.ts.map +1 -0
  805. package/dist/types/utils/dom.d.ts +3 -0
  806. package/dist/types/utils/dom.d.ts.map +1 -0
  807. package/dist/types/utils/index.d.ts +7 -3
  808. package/dist/types/utils/index.d.ts.map +1 -1
  809. package/dist/types/utils/joinAriaLabel.d.ts +2 -0
  810. package/dist/types/utils/joinAriaLabel.d.ts.map +1 -0
  811. package/dist/types/utils/polymorphic.d.ts +15 -0
  812. package/dist/types/utils/polymorphic.d.ts.map +1 -0
  813. package/dist/types/utils/responsive.d.ts +25 -14
  814. package/dist/types/utils/responsive.d.ts.map +1 -1
  815. package/package.json +7 -4
package/README.md CHANGED
@@ -28,13 +28,25 @@ function Widget() {
28
28
  }
29
29
  ```
30
30
 
31
- Theme providers (`ThemeProvider`, `CookieThemeProvider`) 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.
31
+ Theme providers (`ThemeProvider`, `CookieThemeProvider`) 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. `ThemeSwitcher` needs `CookieThemeProvider`; the static `ThemeProvider` has no toggle, so the switcher renders but clicking does nothing. In SSR apps pass the request cookie as `initialThemeName` so the label is right on first paint (the icon already follows `data-lido-theme` in CSS).
32
+
33
+ Set `color: var(--lido-app-ui-color-text-default)` and `font-family: var(--lido-app-ui-font-family)` on `body`: app-ui sets no default text color.
34
+
35
+ Optional mono font: `--lido-app-ui-font-family-mono` (system stack by default) is for keys and hashes (the Operators design renders them in Manrope, so this is opt-in). To use a webfont, load it yourself and override the token on `:root`. See the Foundations/Setup story for the full setup.
32
36
 
33
37
  ## Router links
34
38
 
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>`.
39
+ Every app-ui link (`TextLink`, `NavLink`, `Button` and `IconButton` with `href`, `SmallCard`, `Tag` with `href`, `Breadcrumbs` items with `href`, `Logo` with `href`) renders 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. In-app hash links, `download` links and links with a non-`_self` `target` stay a plain `<a>`; absolute URLs always go to `externalComponent` when one is set. Absolute `http(s)` URLs open in a new tab (`target="_blank"`, `rel="noopener noreferrer"`) unless `target` is passed. Adapters must be `forwardRef` components: under React 18 `ref` is never passed as a prop.
40
+
41
+ Next.js 13+ — `next/link` renders its own `<a>` and forwards its ref, so pass it directly:
42
+
43
+ ```tsx
44
+ import NextLink from 'next/link'
45
+ import { LinkProvider } from '@lidofinance/lido-app-ui'
46
+ ;<LinkProvider component={NextLink}>{children}</LinkProvider>
47
+ ```
36
48
 
37
- Next.js 12 — `next/link` needs an `<a>` child, so wrap it once at module level:
49
+ Next.js 12 — `next/link` needs an `<a>` child, so wrap it once at module level. Router-only props set per link with `linkProps` are split out so they don't land on the `<a>`; this requires the `LinkRouterProps` augmentation shown below:
38
50
 
39
51
  ```tsx
40
52
  import { forwardRef } from 'react'
@@ -43,8 +55,8 @@ import NextLink from 'next/link'
43
55
  import { LinkProvider, type LinkComponentProps } from '@lidofinance/lido-app-ui'
44
56
 
45
57
  const AppLink = forwardRef<HTMLAnchorElement, LinkComponentProps>(
46
- ({ href, ...rest }, ref) => (
47
- <NextLink href={href}>
58
+ ({ href, prefetch, replace, scroll, ...rest }, ref) => (
59
+ <NextLink href={href} prefetch={prefetch} replace={replace} scroll={scroll}>
48
60
  <a ref={ref} {...rest} />
49
61
  </NextLink>
50
62
  ),
@@ -59,42 +71,130 @@ export default function App({ Component, pageProps }: AppProps) {
59
71
  }
60
72
  ```
61
73
 
74
+ react-router — it takes `to` instead of `href`:
75
+
76
+ ```tsx
77
+ import { forwardRef } from 'react'
78
+ import { Link } from 'react-router-dom'
79
+ import type { LinkComponentProps } from '@lidofinance/lido-app-ui'
80
+
81
+ const AppLink = forwardRef<HTMLAnchorElement, LinkComponentProps>(
82
+ ({ href, ...rest }, ref) => <Link ref={ref} to={href} {...rest} />,
83
+ )
84
+ ```
85
+
86
+ Router-only options such as `prefetch` are typed by augmenting `LinkRouterProps` once, then set per link with `linkProps`. They reach only the `LinkProvider` components, never a plain `<a>`:
87
+
88
+ ```tsx
89
+ declare module '@lidofinance/lido-app-ui' {
90
+ interface LinkRouterProps {
91
+ prefetch?: boolean
92
+ replace?: boolean
93
+ scroll?: boolean
94
+ }
95
+ }
96
+
97
+ ;<SmallCard href='/keys' title='Keys' linkProps={{ prefetch: false }} />
98
+ ```
99
+
100
+ ## Typography
101
+
102
+ `Typography` renders the type scale; it sets no color unless asked.
103
+
104
+ - `variant`: `h1`, `h2`, `h3`, `amount`, `bodyLarge`, `body` (default), `description`, `caption`. Also decides the tag; override with `as`.
105
+ - `weight`: `thin` | `regular` | `medium` | `semibold` | `bold`; overrides the variant's weight on any variant. `thin` is Manrope ExtraLight (200).
106
+ - `color`: `default`, `secondary`, `tertiary`, `neutral`, `active`, `success`, `warning`, `error`, `info`, `inverse`, `disabled`. Omit to inherit.
107
+ - Shortcuts: `H1`, `H2`, `H3`, `BodyLarge`, `Body`, `Description`, `Caption`.
108
+
109
+ app-ui sets no default text color, so set it once in the app:
110
+
111
+ ```css
112
+ body {
113
+ color: var(--lido-app-ui-color-text-default);
114
+ }
115
+ ```
116
+
117
+ PostCSS mixins: `font-amount`, `font-caption` (plus `font-h1`, `font-body`, ...). `font-rich-input` and `font-group-name` are deprecated.
118
+
119
+ Deprecated aliases: `GroupName` (use `Caption`), variants `richInput` (use `amount`) and `groupName` (use `caption`).
120
+
62
121
  ## Customization
63
122
 
64
- Override any token after importing the stylesheet:
123
+ Override any token after importing the stylesheet. Non-color tokens (radii, typography, z-index, spacing) are theme-independent and live on `:root`. Color tokens and `--lido-app-ui-shadow-default` (it reads color tokens) are redeclared on every theme scope, so override them on `:root, [data-lido-theme]` or per theme, not on `:root` alone:
65
124
 
66
125
  ```css
67
126
  :root {
68
- --lido-app-ui-color-border-active: #0085ff;
69
127
  --lido-app-ui-border-radius-card: 20px;
70
128
  }
129
+
130
+ :root,
131
+ [data-lido-theme='light'] {
132
+ --lido-app-ui-color-border-active: #0085ff;
133
+ }
134
+
135
+ [data-lido-theme='dark'] {
136
+ --lido-app-ui-color-border-active: #339dff;
137
+ }
71
138
  ```
72
139
 
73
- The typography mixins and breakpoint definitions are published too, for products running `postcss-mixins` / `postcss-custom-media`:
140
+ The typography and motion mixins (`typography-mixins.css`, `motion-mixins.css`) and breakpoint definitions are published too under `@lidofinance/lido-app-ui/styles/*`, for products running `postcss-mixins` / `postcss-custom-media`. `mixinsDir` picks up both mixin files. The motion mixins use nested rules, so keep `postcss-nested` (or target browsers with native CSS nesting):
74
141
 
75
142
  ```js
76
- // postcss.config.js
77
- import path from 'path'
143
+ // postcss.config.mjs
144
+ import { createRequire } from 'node:module'
145
+ import path from 'node:path'
146
+
147
+ const require = createRequire(import.meta.url)
148
+ const stylesDir = path.dirname(
149
+ require.resolve('@lidofinance/lido-app-ui/styles/breakpoints.css'),
150
+ )
78
151
 
79
152
  export default {
80
153
  plugins: {
81
154
  '@csstools/postcss-global-data': {
82
- files: [
83
- require.resolve('@lidofinance/lido-app-ui/styles/breakpoints.css'),
84
- ],
85
- },
86
- 'postcss-mixins': {
87
- mixinsDir: path.dirname(
88
- require.resolve(
89
- '@lidofinance/lido-app-ui/styles/typography-mixins.css',
90
- ),
91
- ),
155
+ files: [path.join(stylesDir, 'breakpoints.css')],
92
156
  },
157
+ 'postcss-mixins': { mixinsDir: stylesDir },
158
+ 'postcss-nested': {},
93
159
  'postcss-custom-media': { preserve: false },
94
160
  },
95
161
  }
96
162
  ```
97
163
 
164
+ ## Motion
165
+
166
+ Durations, easings and amplitudes are tokens: enter `--lido-app-ui-duration-{fast,base,slow}`, exit `-exit` variants (shorter), `--lido-app-ui-easing-*`, `--lido-app-ui-motion-{shift,shift-lg,scale}`, `--lido-app-ui-transition-colors`. Override them on `:root` to retune.
167
+
168
+ Custom components can reuse the mixins (`motion-fade`, `motion-pop`, `motion-slide`, `motion-scrim`, `motion-collapse`, `motion-press`; see the `postcss-mixins` setup above) together with the `usePresence` hook. It keeps an element mounted through its exit and returns `{ mounted, status, ref, motionProps }`; spread `motionProps` (`data-state`, `data-motion`) on the element the CSS keys on. Mixins respect `prefers-reduced-motion`.
169
+
170
+ ## Layout
171
+
172
+ Breakpoints are desktop-first: `-down` is `(width <= N)`, `-up` is `(width > N)`. The queries use range syntax (Safari 16.4+, Chrome 104+, Firefox 63+).
173
+
174
+ | Name | N |
175
+ | ---- | ------ |
176
+ | `xl` | 1280px |
177
+ | `lg` | 1024px |
178
+ | `md` | 900px |
179
+ | `sm` | 600px |
180
+ | `xs` | 400px |
181
+
182
+ The Sidebar drawer and Logo `auto` switch at `lg`. In JS, `downQuery('md')` / `upQuery('md')` build the matching `matchMedia` strings.
183
+
184
+ In CSS use `@media (--lido-app-ui-breakpoint-md-down)`. Responsive props such as `Stack` `gap` take `{ base, mdDown, smDown, … }` (bare `md`/`sm` are aliases), where a key applies at that width and below:
185
+
186
+ ```tsx
187
+ <Stack gap={{ base: 24, smDown: 12 }}>{children}</Stack>
188
+ ```
189
+
190
+ For `@container`, which `postcss-custom-media` doesn't resolve, use raw values such as `@container (width <= 400px)`.
191
+
192
+ `Banner`, `Callout`, `EmptyState` and `StatCard` size their layout to their own width via container queries, so give them a definite-width parent; in a shrink-to-fit parent they collapse.
193
+
194
+ Page shells align to the page gutter, which shrinks on narrow screens: `padding-inline: var(--lido-app-ui-page-gutter)`.
195
+
196
+ Popovers, tooltips, drawers and modals with `withOverlay` portal to `<body>` and stack by `--lido-app-ui-z-index-*`: header 250, drawer, popover and modal 1000, toast 1050, tooltip 1100. Keep your own app chrome below 1000. `Modal` `inertOthers` makes the rest of `<body>` inert; mark body-level toast or live-region roots with `data-lido-overlay-keep` to keep them live.
197
+
98
198
  ## More
99
199
 
100
200
  This package is part of the [`lidofinance/ui`](https://github.com/lidofinance/ui) monorepo — see the [repo README](https://github.com/lidofinance/ui#readme) for the full package overview, theming, CSS variable customization, and contribution guide.
package/dist/README.md CHANGED
@@ -28,13 +28,25 @@ function Widget() {
28
28
  }
29
29
  ```
30
30
 
31
- Theme providers (`ThemeProvider`, `CookieThemeProvider`) 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.
31
+ Theme providers (`ThemeProvider`, `CookieThemeProvider`) 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. `ThemeSwitcher` needs `CookieThemeProvider`; the static `ThemeProvider` has no toggle, so the switcher renders but clicking does nothing. In SSR apps pass the request cookie as `initialThemeName` so the label is right on first paint (the icon already follows `data-lido-theme` in CSS).
32
+
33
+ Set `color: var(--lido-app-ui-color-text-default)` and `font-family: var(--lido-app-ui-font-family)` on `body`: app-ui sets no default text color.
34
+
35
+ Optional mono font: `--lido-app-ui-font-family-mono` (system stack by default) is for keys and hashes (the Operators design renders them in Manrope, so this is opt-in). To use a webfont, load it yourself and override the token on `:root`. See the Foundations/Setup story for the full setup.
32
36
 
33
37
  ## Router links
34
38
 
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>`.
39
+ Every app-ui link (`TextLink`, `NavLink`, `Button` and `IconButton` with `href`, `SmallCard`, `Tag` with `href`, `Breadcrumbs` items with `href`, `Logo` with `href`) renders 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. In-app hash links, `download` links and links with a non-`_self` `target` stay a plain `<a>`; absolute URLs always go to `externalComponent` when one is set. Absolute `http(s)` URLs open in a new tab (`target="_blank"`, `rel="noopener noreferrer"`) unless `target` is passed. Adapters must be `forwardRef` components: under React 18 `ref` is never passed as a prop.
40
+
41
+ Next.js 13+ — `next/link` renders its own `<a>` and forwards its ref, so pass it directly:
42
+
43
+ ```tsx
44
+ import NextLink from 'next/link'
45
+ import { LinkProvider } from '@lidofinance/lido-app-ui'
46
+ ;<LinkProvider component={NextLink}>{children}</LinkProvider>
47
+ ```
36
48
 
37
- Next.js 12 — `next/link` needs an `<a>` child, so wrap it once at module level:
49
+ Next.js 12 — `next/link` needs an `<a>` child, so wrap it once at module level. Router-only props set per link with `linkProps` are split out so they don't land on the `<a>`; this requires the `LinkRouterProps` augmentation shown below:
38
50
 
39
51
  ```tsx
40
52
  import { forwardRef } from 'react'
@@ -43,8 +55,8 @@ import NextLink from 'next/link'
43
55
  import { LinkProvider, type LinkComponentProps } from '@lidofinance/lido-app-ui'
44
56
 
45
57
  const AppLink = forwardRef<HTMLAnchorElement, LinkComponentProps>(
46
- ({ href, ...rest }, ref) => (
47
- <NextLink href={href}>
58
+ ({ href, prefetch, replace, scroll, ...rest }, ref) => (
59
+ <NextLink href={href} prefetch={prefetch} replace={replace} scroll={scroll}>
48
60
  <a ref={ref} {...rest} />
49
61
  </NextLink>
50
62
  ),
@@ -59,42 +71,130 @@ export default function App({ Component, pageProps }: AppProps) {
59
71
  }
60
72
  ```
61
73
 
74
+ react-router — it takes `to` instead of `href`:
75
+
76
+ ```tsx
77
+ import { forwardRef } from 'react'
78
+ import { Link } from 'react-router-dom'
79
+ import type { LinkComponentProps } from '@lidofinance/lido-app-ui'
80
+
81
+ const AppLink = forwardRef<HTMLAnchorElement, LinkComponentProps>(
82
+ ({ href, ...rest }, ref) => <Link ref={ref} to={href} {...rest} />,
83
+ )
84
+ ```
85
+
86
+ Router-only options such as `prefetch` are typed by augmenting `LinkRouterProps` once, then set per link with `linkProps`. They reach only the `LinkProvider` components, never a plain `<a>`:
87
+
88
+ ```tsx
89
+ declare module '@lidofinance/lido-app-ui' {
90
+ interface LinkRouterProps {
91
+ prefetch?: boolean
92
+ replace?: boolean
93
+ scroll?: boolean
94
+ }
95
+ }
96
+
97
+ ;<SmallCard href='/keys' title='Keys' linkProps={{ prefetch: false }} />
98
+ ```
99
+
100
+ ## Typography
101
+
102
+ `Typography` renders the type scale; it sets no color unless asked.
103
+
104
+ - `variant`: `h1`, `h2`, `h3`, `amount`, `bodyLarge`, `body` (default), `description`, `caption`. Also decides the tag; override with `as`.
105
+ - `weight`: `thin` | `regular` | `medium` | `semibold` | `bold`; overrides the variant's weight on any variant. `thin` is Manrope ExtraLight (200).
106
+ - `color`: `default`, `secondary`, `tertiary`, `neutral`, `active`, `success`, `warning`, `error`, `info`, `inverse`, `disabled`. Omit to inherit.
107
+ - Shortcuts: `H1`, `H2`, `H3`, `BodyLarge`, `Body`, `Description`, `Caption`.
108
+
109
+ app-ui sets no default text color, so set it once in the app:
110
+
111
+ ```css
112
+ body {
113
+ color: var(--lido-app-ui-color-text-default);
114
+ }
115
+ ```
116
+
117
+ PostCSS mixins: `font-amount`, `font-caption` (plus `font-h1`, `font-body`, ...). `font-rich-input` and `font-group-name` are deprecated.
118
+
119
+ Deprecated aliases: `GroupName` (use `Caption`), variants `richInput` (use `amount`) and `groupName` (use `caption`).
120
+
62
121
  ## Customization
63
122
 
64
- Override any token after importing the stylesheet:
123
+ Override any token after importing the stylesheet. Non-color tokens (radii, typography, z-index, spacing) are theme-independent and live on `:root`. Color tokens and `--lido-app-ui-shadow-default` (it reads color tokens) are redeclared on every theme scope, so override them on `:root, [data-lido-theme]` or per theme, not on `:root` alone:
65
124
 
66
125
  ```css
67
126
  :root {
68
- --lido-app-ui-color-border-active: #0085ff;
69
127
  --lido-app-ui-border-radius-card: 20px;
70
128
  }
129
+
130
+ :root,
131
+ [data-lido-theme='light'] {
132
+ --lido-app-ui-color-border-active: #0085ff;
133
+ }
134
+
135
+ [data-lido-theme='dark'] {
136
+ --lido-app-ui-color-border-active: #339dff;
137
+ }
71
138
  ```
72
139
 
73
- The typography mixins and breakpoint definitions are published too, for products running `postcss-mixins` / `postcss-custom-media`:
140
+ The typography and motion mixins (`typography-mixins.css`, `motion-mixins.css`) and breakpoint definitions are published too under `@lidofinance/lido-app-ui/styles/*`, for products running `postcss-mixins` / `postcss-custom-media`. `mixinsDir` picks up both mixin files. The motion mixins use nested rules, so keep `postcss-nested` (or target browsers with native CSS nesting):
74
141
 
75
142
  ```js
76
- // postcss.config.js
77
- import path from 'path'
143
+ // postcss.config.mjs
144
+ import { createRequire } from 'node:module'
145
+ import path from 'node:path'
146
+
147
+ const require = createRequire(import.meta.url)
148
+ const stylesDir = path.dirname(
149
+ require.resolve('@lidofinance/lido-app-ui/styles/breakpoints.css'),
150
+ )
78
151
 
79
152
  export default {
80
153
  plugins: {
81
154
  '@csstools/postcss-global-data': {
82
- files: [
83
- require.resolve('@lidofinance/lido-app-ui/styles/breakpoints.css'),
84
- ],
85
- },
86
- 'postcss-mixins': {
87
- mixinsDir: path.dirname(
88
- require.resolve(
89
- '@lidofinance/lido-app-ui/styles/typography-mixins.css',
90
- ),
91
- ),
155
+ files: [path.join(stylesDir, 'breakpoints.css')],
92
156
  },
157
+ 'postcss-mixins': { mixinsDir: stylesDir },
158
+ 'postcss-nested': {},
93
159
  'postcss-custom-media': { preserve: false },
94
160
  },
95
161
  }
96
162
  ```
97
163
 
164
+ ## Motion
165
+
166
+ Durations, easings and amplitudes are tokens: enter `--lido-app-ui-duration-{fast,base,slow}`, exit `-exit` variants (shorter), `--lido-app-ui-easing-*`, `--lido-app-ui-motion-{shift,shift-lg,scale}`, `--lido-app-ui-transition-colors`. Override them on `:root` to retune.
167
+
168
+ Custom components can reuse the mixins (`motion-fade`, `motion-pop`, `motion-slide`, `motion-scrim`, `motion-collapse`, `motion-press`; see the `postcss-mixins` setup above) together with the `usePresence` hook. It keeps an element mounted through its exit and returns `{ mounted, status, ref, motionProps }`; spread `motionProps` (`data-state`, `data-motion`) on the element the CSS keys on. Mixins respect `prefers-reduced-motion`.
169
+
170
+ ## Layout
171
+
172
+ Breakpoints are desktop-first: `-down` is `(width <= N)`, `-up` is `(width > N)`. The queries use range syntax (Safari 16.4+, Chrome 104+, Firefox 63+).
173
+
174
+ | Name | N |
175
+ | ---- | ------ |
176
+ | `xl` | 1280px |
177
+ | `lg` | 1024px |
178
+ | `md` | 900px |
179
+ | `sm` | 600px |
180
+ | `xs` | 400px |
181
+
182
+ The Sidebar drawer and Logo `auto` switch at `lg`. In JS, `downQuery('md')` / `upQuery('md')` build the matching `matchMedia` strings.
183
+
184
+ In CSS use `@media (--lido-app-ui-breakpoint-md-down)`. Responsive props such as `Stack` `gap` take `{ base, mdDown, smDown, … }` (bare `md`/`sm` are aliases), where a key applies at that width and below:
185
+
186
+ ```tsx
187
+ <Stack gap={{ base: 24, smDown: 12 }}>{children}</Stack>
188
+ ```
189
+
190
+ For `@container`, which `postcss-custom-media` doesn't resolve, use raw values such as `@container (width <= 400px)`.
191
+
192
+ `Banner`, `Callout`, `EmptyState` and `StatCard` size their layout to their own width via container queries, so give them a definite-width parent; in a shrink-to-fit parent they collapse.
193
+
194
+ Page shells align to the page gutter, which shrinks on narrow screens: `padding-inline: var(--lido-app-ui-page-gutter)`.
195
+
196
+ Popovers, tooltips, drawers and modals with `withOverlay` portal to `<body>` and stack by `--lido-app-ui-z-index-*`: header 250, drawer, popover and modal 1000, toast 1050, tooltip 1100. Keep your own app chrome below 1000. `Modal` `inertOthers` makes the rest of `<body>` inert; mark body-level toast or live-region roots with `data-lido-overlay-keep` to keep them live.
197
+
98
198
  ## More
99
199
 
100
200
  This package is part of the [`lidofinance/ui`](https://github.com/lidofinance/ui) monorepo — see the [repo README](https://github.com/lidofinance/ui#readme) for the full package overview, theming, CSS variable customization, and contribution guide.
@@ -6,9 +6,10 @@ const react = require('react');
6
6
  const cn = require('classnames');
7
7
  const Accordion_module = require('./Accordion.module.css.cjs');
8
8
  const jsxRuntime = require('react/jsx-runtime');
9
- const IconChevronUp = require('../icons/components/base/IconChevronUp.cjs');
9
+ const usePresence = require('../hooks/usePresence.cjs');
10
10
  const IconChevronDown = require('../icons/components/base/IconChevronDown.cjs');
11
11
 
12
+ /** Collapsible section, uncontrolled by default; pass `expanded` + `onExpandedChange` to drive it from your own state. */
12
13
  const Accordion = _ref => {
13
14
  let {
14
15
  title,
@@ -24,6 +25,12 @@ const Accordion = _ref => {
24
25
  const [uncontrolledExpanded, setUncontrolledExpanded] = react.useState(defaultExpanded);
25
26
  const isExpanded = expanded ?? uncontrolledExpanded;
26
27
  const contentId = react.useId();
28
+ const {
29
+ ref: presenceRef,
30
+ motionProps
31
+ } = usePresence.usePresence(isExpanded, {
32
+ keepMounted: true
33
+ });
27
34
  const handleToggle = () => {
28
35
  const next = !isExpanded;
29
36
  if (expanded == null) setUncontrolledExpanded(next);
@@ -47,17 +54,16 @@ const Accordion = _ref => {
47
54
  "data-testid": dataTestId?.title,
48
55
  children: title
49
56
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
50
- className: Accordion_module.chevron,
57
+ className: cn(Accordion_module.chevron, isExpanded && Accordion_module.chevronOpen),
51
58
  "aria-hidden": "true",
52
- children: isExpanded ? /*#__PURE__*/jsxRuntime.jsx(IconChevronUp.IconChevronUp, {}) : /*#__PURE__*/jsxRuntime.jsx(IconChevronDown.IconChevronDown, {})
59
+ children: /*#__PURE__*/jsxRuntime.jsx(IconChevronDown.IconChevronDown, {})
53
60
  })]
54
61
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
55
62
  id: contentId,
56
- className: cn(Accordion_module.contentWrapper, {
57
- [Accordion_module.expanded]: isExpanded
58
- }),
63
+ ref: presenceRef,
64
+ className: Accordion_module.contentWrapper,
65
+ ...motionProps,
59
66
  children: /*#__PURE__*/jsxRuntime.jsx("div", {
60
- className: Accordion_module.content,
61
67
  children: /*#__PURE__*/jsxRuntime.jsx("div", {
62
68
  className: Accordion_module.contentInner,
63
69
  "data-testid": dataTestId?.content,
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.cjs","sources":["../../../src/accordion/Accordion.tsx"],"sourcesContent":["import {\n useId,\n useState,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from 'react'\n\nimport { IconChevronDown, IconChevronUp } from '../icons'\nimport cn from 'classnames'\n\nimport styles from './Accordion.module.css'\n\nexport type AccordionDataTestId = {\n root?: string\n header?: string\n title?: string\n content?: string\n}\n\nexport type AccordionProps = Omit<ComponentPropsWithoutRef<'div'>, 'title'> & {\n title: ReactNode\n border?: boolean\n defaultExpanded?: boolean\n expanded?: boolean\n onExpandedChange?: (expanded: boolean) => void\n dataTestId?: AccordionDataTestId\n}\n\nexport const Accordion = ({\n title,\n border = true,\n defaultExpanded = false,\n expanded,\n onExpandedChange,\n children,\n className,\n dataTestId,\n ...rest\n}: AccordionProps) => {\n const [uncontrolledExpanded, setUncontrolledExpanded] =\n useState(defaultExpanded)\n const isExpanded = expanded ?? uncontrolledExpanded\n const contentId = useId()\n\n const handleToggle = () => {\n const next = !isExpanded\n if (expanded == null) setUncontrolledExpanded(next)\n onExpandedChange?.(next)\n }\n\n return (\n <div\n className={cn(styles.accordion, className, {\n [styles.borderless]: !border,\n })}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <button\n type='button'\n className={styles.header}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n onClick={handleToggle}\n data-testid={dataTestId?.header}\n >\n <span className={styles.title} data-testid={dataTestId?.title}>\n {title}\n </span>\n <span className={styles.chevron} aria-hidden='true'>\n {isExpanded ? <IconChevronUp /> : <IconChevronDown />}\n </span>\n </button>\n <div\n id={contentId}\n className={cn(styles.contentWrapper, {\n [styles.expanded]: isExpanded,\n })}\n >\n <div className={styles.content}>\n <div\n className={styles.contentInner}\n data-testid={dataTestId?.content}\n >\n {children}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nAccordion.displayName = 'Accordion'\n"],"names":["Accordion","_ref","title","border","defaultExpanded","expanded","onExpandedChange","children","className","dataTestId","rest","uncontrolledExpanded","setUncontrolledExpanded","useState","isExpanded","contentId","useId","handleToggle","next","_jsxs","cn","styles","accordion","borderless","root","type","header","onClick","_jsx","chevron","IconChevronUp","IconChevronDown","id","contentWrapper","content","contentInner","displayName"],"mappings":";;;;;;;;;;;AA4BaA,MAAAA,SAAS,GAAGC,IAAA,IAUH;EAAA,IAVI;IACxBC,KAAK;AACLC,IAAAA,MAAM,GAAG,IAAI;AACbC,IAAAA,eAAe,GAAG,KAAK;IACvBC,QAAQ;IACRC,gBAAgB;IAChBC,QAAQ;IACRC,SAAS;IACTC,UAAU;IACV,GAAGC,IAAAA;AACW,GAAC,GAAAT,IAAA,CAAA;EACf,MAAM,CAACU,oBAAoB,EAAEC,uBAAuB,CAAC,GACnDC,cAAQ,CAACT,eAAe,CAAC,CAAA;AAC3B,EAAA,MAAMU,UAAU,GAAGT,QAAQ,IAAIM,oBAAoB,CAAA;AACnD,EAAA,MAAMI,SAAS,GAAGC,WAAK,EAAE,CAAA;EAEzB,MAAMC,YAAY,GAAGA,MAAM;IACzB,MAAMC,IAAI,GAAG,CAACJ,UAAU,CAAA;AACxB,IAAA,IAAIT,QAAQ,IAAI,IAAI,EAAEO,uBAAuB,CAACM,IAAI,CAAC,CAAA;IACnDZ,gBAAgB,GAAGY,IAAI,CAAC,CAAA;GACzB,CAAA;AAED,EAAA,oBACEC,eAAA,CAAA,KAAA,EAAA;IACEX,SAAS,EAAEY,EAAE,CAACC,gBAAM,CAACC,SAAS,EAAEd,SAAS,EAAE;AACzC,MAAA,CAACa,gBAAM,CAACE,UAAU,GAAG,CAACpB,MAAAA;AACxB,KAAC,CAAE;IACH,aAAaM,EAAAA,UAAU,EAAEe,IAAK;AAAA,IAAA,GAC1Bd,IAAI;AAAAH,IAAAA,QAAA,gBAERY,eAAA,CAAA,QAAA,EAAA;AACEM,MAAAA,IAAI,EAAC,QAAQ;MACbjB,SAAS,EAAEa,gBAAM,CAACK,MAAO;AACzB,MAAA,eAAA,EAAeZ,UAAW;AAC1B,MAAA,eAAA,EAAeC,SAAU;AACzBY,MAAAA,OAAO,EAAEV,YAAa;MACtB,aAAaR,EAAAA,UAAU,EAAEiB,MAAO;AAAAnB,MAAAA,QAAA,gBAEhCqB,cAAA,CAAA,MAAA,EAAA;QAAMpB,SAAS,EAAEa,gBAAM,CAACnB,KAAM;QAAC,aAAaO,EAAAA,UAAU,EAAEP,KAAM;AAAAK,QAAAA,QAAA,EAC3DL,KAAAA;OACG,CAAC,eACP0B,cAAA,CAAA,MAAA,EAAA;QAAMpB,SAAS,EAAEa,gBAAM,CAACQ,OAAQ;AAAC,QAAA,aAAA,EAAY,MAAM;AAAAtB,QAAAA,QAAA,EAChDO,UAAU,gBAAGc,cAAA,CAACE,2BAAa,EAAE,EAAA,CAAC,gBAAGF,cAAA,CAACG,+BAAe,EAAE,EAAA,CAAA;AAAC,OACjD,CAAC,CAAA;KACD,CAAC,eACTH,cAAA,CAAA,KAAA,EAAA;AACEI,MAAAA,EAAE,EAAEjB,SAAU;AACdP,MAAAA,SAAS,EAAEY,EAAE,CAACC,gBAAM,CAACY,cAAc,EAAE;QACnC,CAACZ,gBAAM,CAAChB,QAAQ,GAAGS,UAAAA;AACrB,OAAC,CAAE;AAAAP,MAAAA,QAAA,eAEHqB,cAAA,CAAA,KAAA,EAAA;QAAKpB,SAAS,EAAEa,gBAAM,CAACa,OAAQ;AAAA3B,QAAAA,QAAA,eAC7BqB,cAAA,CAAA,KAAA,EAAA;UACEpB,SAAS,EAAEa,gBAAM,CAACc,YAAa;UAC/B,aAAa1B,EAAAA,UAAU,EAAEyB,OAAQ;AAAA3B,UAAAA,QAAA,EAEhCA,QAAAA;SACE,CAAA;OACF,CAAA;AAAC,KACH,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV,EAAC;AAEDP,SAAS,CAACoC,WAAW,GAAG,WAAW;;;;"}
1
+ {"version":3,"file":"Accordion.cjs","sources":["../../../src/accordion/Accordion.tsx"],"sourcesContent":["import {\n useId,\n useState,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from 'react'\n\nimport { usePresence } from '../hooks'\nimport { IconChevronDown } from '../icons'\nimport cn from 'classnames'\n\nimport styles from './Accordion.module.css'\n\nexport type AccordionDataTestId = {\n root?: string\n header?: string\n title?: string\n content?: string\n}\n\nexport type AccordionProps = Omit<ComponentPropsWithoutRef<'div'>, 'title'> & {\n title: ReactNode\n /** Bottom divider; turn it off on the last item of a list. */\n border?: boolean\n defaultExpanded?: boolean\n /** Controlled mode, pair with `onExpandedChange`. */\n expanded?: boolean\n onExpandedChange?: (expanded: boolean) => void\n dataTestId?: AccordionDataTestId\n}\n\n/** Collapsible section, uncontrolled by default; pass `expanded` + `onExpandedChange` to drive it from your own state. */\nexport const Accordion = ({\n title,\n border = true,\n defaultExpanded = false,\n expanded,\n onExpandedChange,\n children,\n className,\n dataTestId,\n ...rest\n}: AccordionProps) => {\n const [uncontrolledExpanded, setUncontrolledExpanded] =\n useState(defaultExpanded)\n const isExpanded = expanded ?? uncontrolledExpanded\n const contentId = useId()\n const { ref: presenceRef, motionProps } = usePresence<HTMLDivElement>(\n isExpanded,\n { keepMounted: true },\n )\n\n const handleToggle = () => {\n const next = !isExpanded\n if (expanded == null) setUncontrolledExpanded(next)\n onExpandedChange?.(next)\n }\n\n return (\n <div\n className={cn(styles.accordion, className, {\n [styles.borderless]: !border,\n })}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <button\n type='button'\n className={styles.header}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n onClick={handleToggle}\n data-testid={dataTestId?.header}\n >\n <span className={styles.title} data-testid={dataTestId?.title}>\n {title}\n </span>\n <span\n className={cn(styles.chevron, isExpanded && styles.chevronOpen)}\n aria-hidden='true'\n >\n <IconChevronDown />\n </span>\n </button>\n <div\n id={contentId}\n ref={presenceRef}\n className={styles.contentWrapper}\n {...motionProps}\n >\n <div>\n <div\n className={styles.contentInner}\n data-testid={dataTestId?.content}\n >\n {children}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nAccordion.displayName = 'Accordion'\n"],"names":["Accordion","_ref","title","border","defaultExpanded","expanded","onExpandedChange","children","className","dataTestId","rest","uncontrolledExpanded","setUncontrolledExpanded","useState","isExpanded","contentId","useId","ref","presenceRef","motionProps","usePresence","keepMounted","handleToggle","next","_jsxs","cn","styles","accordion","borderless","root","type","header","onClick","_jsx","chevron","chevronOpen","IconChevronDown","id","contentWrapper","contentInner","content","displayName"],"mappings":";;;;;;;;;;;AA+BA;AACaA,MAAAA,SAAS,GAAGC,IAAA,IAUH;EAAA,IAVI;IACxBC,KAAK;AACLC,IAAAA,MAAM,GAAG,IAAI;AACbC,IAAAA,eAAe,GAAG,KAAK;IACvBC,QAAQ;IACRC,gBAAgB;IAChBC,QAAQ;IACRC,SAAS;IACTC,UAAU;IACV,GAAGC,IAAAA;AACW,GAAC,GAAAT,IAAA,CAAA;EACf,MAAM,CAACU,oBAAoB,EAAEC,uBAAuB,CAAC,GACnDC,cAAQ,CAACT,eAAe,CAAC,CAAA;AAC3B,EAAA,MAAMU,UAAU,GAAGT,QAAQ,IAAIM,oBAAoB,CAAA;AACnD,EAAA,MAAMI,SAAS,GAAGC,WAAK,EAAE,CAAA;EACzB,MAAM;AAAEC,IAAAA,GAAG,EAAEC,WAAW;AAAEC,IAAAA,WAAAA;AAAY,GAAC,GAAGC,uBAAW,CACnDN,UAAU,EACV;AAAEO,IAAAA,WAAW,EAAE,IAAA;AAAK,GACtB,CAAC,CAAA;EAED,MAAMC,YAAY,GAAGA,MAAM;IACzB,MAAMC,IAAI,GAAG,CAACT,UAAU,CAAA;AACxB,IAAA,IAAIT,QAAQ,IAAI,IAAI,EAAEO,uBAAuB,CAACW,IAAI,CAAC,CAAA;IACnDjB,gBAAgB,GAAGiB,IAAI,CAAC,CAAA;GACzB,CAAA;AAED,EAAA,oBACEC,eAAA,CAAA,KAAA,EAAA;IACEhB,SAAS,EAAEiB,EAAE,CAACC,gBAAM,CAACC,SAAS,EAAEnB,SAAS,EAAE;AACzC,MAAA,CAACkB,gBAAM,CAACE,UAAU,GAAG,CAACzB,MAAAA;AACxB,KAAC,CAAE;IACH,aAAaM,EAAAA,UAAU,EAAEoB,IAAK;AAAA,IAAA,GAC1BnB,IAAI;AAAAH,IAAAA,QAAA,gBAERiB,eAAA,CAAA,QAAA,EAAA;AACEM,MAAAA,IAAI,EAAC,QAAQ;MACbtB,SAAS,EAAEkB,gBAAM,CAACK,MAAO;AACzB,MAAA,eAAA,EAAejB,UAAW;AAC1B,MAAA,eAAA,EAAeC,SAAU;AACzBiB,MAAAA,OAAO,EAAEV,YAAa;MACtB,aAAab,EAAAA,UAAU,EAAEsB,MAAO;AAAAxB,MAAAA,QAAA,gBAEhC0B,cAAA,CAAA,MAAA,EAAA;QAAMzB,SAAS,EAAEkB,gBAAM,CAACxB,KAAM;QAAC,aAAaO,EAAAA,UAAU,EAAEP,KAAM;AAAAK,QAAAA,QAAA,EAC3DL,KAAAA;OACG,CAAC,eACP+B,cAAA,CAAA,MAAA,EAAA;AACEzB,QAAAA,SAAS,EAAEiB,EAAE,CAACC,gBAAM,CAACQ,OAAO,EAAEpB,UAAU,IAAIY,gBAAM,CAACS,WAAW,CAAE;AAChE,QAAA,aAAA,EAAY,MAAM;AAAA5B,QAAAA,QAAA,eAElB0B,cAAA,CAACG,+BAAe,EAAE,EAAA,CAAA;AAAC,OACf,CAAC,CAAA;KACD,CAAC,eACTH,cAAA,CAAA,KAAA,EAAA;AACEI,MAAAA,EAAE,EAAEtB,SAAU;AACdE,MAAAA,GAAG,EAAEC,WAAY;MACjBV,SAAS,EAAEkB,gBAAM,CAACY,cAAe;AAAA,MAAA,GAC7BnB,WAAW;AAAAZ,MAAAA,QAAA,eAEf0B,cAAA,CAAA,KAAA,EAAA;AAAA1B,QAAAA,QAAA,eACE0B,cAAA,CAAA,KAAA,EAAA;UACEzB,SAAS,EAAEkB,gBAAM,CAACa,YAAa;UAC/B,aAAa9B,EAAAA,UAAU,EAAE+B,OAAQ;AAAAjC,UAAAA,QAAA,EAEhCA,QAAAA;SACE,CAAA;OACF,CAAA;AAAC,KACH,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV,EAAC;AAEDP,SAAS,CAACyC,WAAW,GAAG,WAAW;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const styles = {"accordion":"Accordion-module_accordion__Wzyid","borderless":"Accordion-module_borderless__AX3pr","header":"Accordion-module_header__xrik8","title":"Accordion-module_title__n-YUT","chevron":"Accordion-module_chevron__oFGVg","contentWrapper":"Accordion-module_contentWrapper__UEl1o","expanded":"Accordion-module_expanded__NRyM0","content":"Accordion-module_content__V9Ftc","contentInner":"Accordion-module_contentInner__9z222"};
3
+ const styles = {"accordion":"Accordion-module_accordion__Wzyid","borderless":"Accordion-module_borderless__AX3pr","header":"Accordion-module_header__xrik8","title":"Accordion-module_title__n-YUT","chevron":"Accordion-module_chevron__oFGVg","chevronOpen":"Accordion-module_chevronOpen__Lq6B4","contentWrapper":"Accordion-module_contentWrapper__UEl1o","contentInner":"Accordion-module_contentInner__9z222"};
4
4
 
5
5
  module.exports = styles;
6
6
  //# sourceMappingURL=Accordion.module.css.cjs.map
@@ -7,7 +7,7 @@ const cn = require('classnames');
7
7
  const surface_module = require('../utils/surface.module.css.cjs');
8
8
  const AddressButton_module = require('./AddressButton.module.css.cjs');
9
9
  const jsxRuntime = require('react/jsx-runtime');
10
- const IconLoaderCircle = require('../icons/components/base/IconLoaderCircle.cjs');
10
+ const Spinner = require('../spinner/Spinner.cjs');
11
11
  const Address = require('../address/Address.cjs');
12
12
 
13
13
  /** Pill button showing an identicon and the trimmed address. */
@@ -32,8 +32,9 @@ const AddressButton = /*#__PURE__*/react.forwardRef((_ref, ref) => {
32
32
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
33
33
  className: AddressButton_module.slot,
34
34
  "aria-hidden": "true",
35
- children: /*#__PURE__*/jsxRuntime.jsx(IconLoaderCircle.IconLoaderCircle, {
36
- className: AddressButton_module.spinner
35
+ children: /*#__PURE__*/jsxRuntime.jsx(Spinner.Spinner, {
36
+ size: "sm",
37
+ decorative: true
37
38
  })
38
39
  }), "Loading"]
39
40
  }) : /*#__PURE__*/jsxRuntime.jsx(Address.Address, {
@@ -1 +1 @@
1
- {"version":3,"file":"AddressButton.cjs","sources":["../../../src/address-button/AddressButton.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport { Address } from '../address'\nimport { IconLoaderCircle } from '../icons'\nimport surfaceStyles from '../utils/surface.module.css'\nimport styles from './AddressButton.module.css'\n\nexport type AddressButtonProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'children'\n> & {\n address: string\n symbols?: number\n loading?: boolean\n}\n\n/** Pill button showing an identicon and the trimmed address. */\nexport const AddressButton = forwardRef<HTMLButtonElement, AddressButtonProps>(\n (\n {\n address,\n symbols,\n loading = false,\n disabled = false,\n className,\n type = 'button',\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 surfaceStyles.surface,\n styles.button,\n loading && !disabled && styles.loading,\n className,\n )}\n {...rest}\n >\n {loading ? (\n <>\n <span className={styles.slot} aria-hidden='true'>\n <IconLoaderCircle className={styles.spinner} />\n </span>\n Loading\n </>\n ) : (\n <Address address={address} symbols={symbols} identicon={28} />\n )}\n </button>\n ),\n)\n\nAddressButton.displayName = 'AddressButton'\n"],"names":["AddressButton","forwardRef","_ref","ref","address","symbols","loading","disabled","className","type","rest","_jsx","undefined","cn","surfaceStyles","surface","styles","button","children","_jsxs","_Fragment","slot","IconLoaderCircle","spinner","Address","identicon","displayName"],"mappings":";;;;;;;;;;;;AAkBA;AACO,MAAMA,aAAa,gBAAGC,gBAAU,CACrC,CAAAC,IAAA,EAUEC,GAAG,KAAA;EAAA,IATH;IACEC,OAAO;IACPC,OAAO;AACPC,IAAAA,OAAO,GAAG,KAAK;AACfC,IAAAA,QAAQ,GAAG,KAAK;IAChBC,SAAS;AACTC,IAAAA,IAAI,GAAG,QAAQ;IACf,GAAGC,IAAAA;AACL,GAAC,GAAAR,IAAA,CAAA;AAAA,EAAA,oBAGDS,cAAA,CAAA,QAAA,EAAA;AACER,IAAAA,GAAG,EAAEA,GAAI;AACTM,IAAAA,IAAI,EAAEA,IAAK;IACXF,QAAQ,EAAEA,QAAQ,IAAID,OAAQ;IAC9B,WAAWA,EAAAA,OAAO,IAAIM,SAAU;IAChCJ,SAAS,EAAEK,EAAE,CACXC,cAAa,CAACC,OAAO,EACrBC,oBAAM,CAACC,MAAM,EACbX,OAAO,IAAI,CAACC,QAAQ,IAAIS,oBAAM,CAACV,OAAO,EACtCE,SACF,CAAE;AAAA,IAAA,GACEE,IAAI;AAAAQ,IAAAA,QAAA,EAEPZ,OAAO,gBACNa,eAAA,CAAAC,mBAAA,EAAA;AAAAF,MAAAA,QAAA,gBACEP,cAAA,CAAA,MAAA,EAAA;QAAMH,SAAS,EAAEQ,oBAAM,CAACK,IAAK;AAAC,QAAA,aAAA,EAAY,MAAM;QAAAH,QAAA,eAC9CP,cAAA,CAACW,iCAAgB,EAAA;UAACd,SAAS,EAAEQ,oBAAM,CAACO,OAAAA;SAAU,CAAA;AAAC,OAC3C,CAAC,EAET,SAAA,CAAA;AAAA,KAAE,CAAC,gBAEHZ,cAAA,CAACa,eAAO,EAAA;AAACpB,MAAAA,OAAO,EAAEA,OAAQ;AAACC,MAAAA,OAAO,EAAEA,OAAQ;AAACoB,MAAAA,SAAS,EAAE,EAAA;KAAK,CAAA;AAC9D,GACK,CAAC,CAAA;AAAA,CAEb,EAAC;AAEDzB,aAAa,CAAC0B,WAAW,GAAG,eAAe;;;;"}
1
+ {"version":3,"file":"AddressButton.cjs","sources":["../../../src/address-button/AddressButton.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport { Address } from '../address'\nimport { Spinner } from '../spinner'\nimport surfaceStyles from '../utils/surface.module.css'\nimport styles from './AddressButton.module.css'\n\nexport type AddressButtonProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'children'\n> & {\n address: string\n symbols?: number\n loading?: boolean\n}\n\n/** Pill button showing an identicon and the trimmed address. */\nexport const AddressButton = forwardRef<HTMLButtonElement, AddressButtonProps>(\n (\n {\n address,\n symbols,\n loading = false,\n disabled = false,\n className,\n type = 'button',\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 surfaceStyles.surface,\n styles.button,\n loading && !disabled && styles.loading,\n className,\n )}\n {...rest}\n >\n {loading ? (\n <>\n <span className={styles.slot} aria-hidden='true'>\n <Spinner size='sm' decorative />\n </span>\n Loading\n </>\n ) : (\n <Address address={address} symbols={symbols} identicon={28} />\n )}\n </button>\n ),\n)\n\nAddressButton.displayName = 'AddressButton'\n"],"names":["AddressButton","forwardRef","_ref","ref","address","symbols","loading","disabled","className","type","rest","_jsx","undefined","cn","surfaceStyles","surface","styles","button","children","_jsxs","_Fragment","slot","Spinner","size","decorative","Address","identicon","displayName"],"mappings":";;;;;;;;;;;;AAkBA;AACO,MAAMA,aAAa,gBAAGC,gBAAU,CACrC,CAAAC,IAAA,EAUEC,GAAG,KAAA;EAAA,IATH;IACEC,OAAO;IACPC,OAAO;AACPC,IAAAA,OAAO,GAAG,KAAK;AACfC,IAAAA,QAAQ,GAAG,KAAK;IAChBC,SAAS;AACTC,IAAAA,IAAI,GAAG,QAAQ;IACf,GAAGC,IAAAA;AACL,GAAC,GAAAR,IAAA,CAAA;AAAA,EAAA,oBAGDS,cAAA,CAAA,QAAA,EAAA;AACER,IAAAA,GAAG,EAAEA,GAAI;AACTM,IAAAA,IAAI,EAAEA,IAAK;IACXF,QAAQ,EAAEA,QAAQ,IAAID,OAAQ;IAC9B,WAAWA,EAAAA,OAAO,IAAIM,SAAU;IAChCJ,SAAS,EAAEK,EAAE,CACXC,cAAa,CAACC,OAAO,EACrBC,oBAAM,CAACC,MAAM,EACbX,OAAO,IAAI,CAACC,QAAQ,IAAIS,oBAAM,CAACV,OAAO,EACtCE,SACF,CAAE;AAAA,IAAA,GACEE,IAAI;AAAAQ,IAAAA,QAAA,EAEPZ,OAAO,gBACNa,eAAA,CAAAC,mBAAA,EAAA;AAAAF,MAAAA,QAAA,gBACEP,cAAA,CAAA,MAAA,EAAA;QAAMH,SAAS,EAAEQ,oBAAM,CAACK,IAAK;AAAC,QAAA,aAAA,EAAY,MAAM;QAAAH,QAAA,eAC9CP,cAAA,CAACW,eAAO,EAAA;AAACC,UAAAA,IAAI,EAAC,IAAI;UAACC,UAAU,EAAA,IAAA;SAAE,CAAA;AAAC,OAC5B,CAAC,EAET,SAAA,CAAA;AAAA,KAAE,CAAC,gBAEHb,cAAA,CAACc,eAAO,EAAA;AAACrB,MAAAA,OAAO,EAAEA,OAAQ;AAACC,MAAAA,OAAO,EAAEA,OAAQ;AAACqB,MAAAA,SAAS,EAAE,EAAA;KAAK,CAAA;AAC9D,GACK,CAAC,CAAA;AAAA,CAEb,EAAC;AAED1B,aAAa,CAAC2B,WAAW,GAAG,eAAe;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const styles = {"button":"AddressButton-module_button__cNJUm","loading":"AddressButton-module_loading__TmxUZ","slot":"AddressButton-module_slot__A5Xbe","spinner":"AddressButton-module_spinner__JztAP","spin":"AddressButton-module_spin__no7O5"};
3
+ const styles = {"button":"AddressButton-module_button__cNJUm","loading":"AddressButton-module_loading__TmxUZ","slot":"AddressButton-module_slot__A5Xbe"};
4
4
 
5
5
  module.exports = styles;
6
6
  //# sourceMappingURL=AddressButton.module.css.cjs.map
@@ -6,6 +6,7 @@ const cn = require('classnames');
6
6
  const Badge_module = require('./Badge.module.css.cjs');
7
7
  const jsxRuntime = require('react/jsx-runtime');
8
8
 
9
+ /** Bordered pill for a single trust/verification marker (audited, verified). */
9
10
  const Badge = _ref => {
10
11
  let {
11
12
  icon,
@@ -23,7 +24,10 @@ const Badge = _ref => {
23
24
  "aria-hidden": "true",
24
25
  "data-testid": dataTestId?.icon,
25
26
  children: icon
26
- }), children]
27
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
28
+ className: Badge_module.label,
29
+ children: children
30
+ })]
27
31
  });
28
32
  };
29
33
 
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.cjs","sources":["../../../src/badge/Badge.tsx"],"sourcesContent":["import cn from 'classnames'\nimport type { HTMLAttributes, ReactNode } from 'react'\nimport styles from './Badge.module.css'\n\nexport type BadgeDataTestId = {\n root?: string\n icon?: string\n}\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> & {\n /** Optional glyph before the label. Omitted entirely when not passed. */\n icon?: ReactNode\n dataTestId?: BadgeDataTestId\n}\n\nexport const Badge = ({\n icon,\n className,\n children,\n dataTestId,\n ...rest\n}: BadgeProps) => (\n <span\n className={cn(styles.badge, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {icon && (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.icon}\n >\n {icon}\n </span>\n )}\n {children}\n </span>\n)\n"],"names":["Badge","_ref","icon","className","children","dataTestId","rest","_jsxs","cn","styles","badge","root","_jsx"],"mappings":";;;;;;;;AAeO,MAAMA,KAAK,GAAGC,IAAA,IAAA;EAAA,IAAC;IACpBC,IAAI;IACJC,SAAS;IACTC,QAAQ;IACRC,UAAU;IACV,GAAGC,IAAAA;AACO,GAAC,GAAAL,IAAA,CAAA;AAAA,EAAA,oBACXM,eAAA,CAAA,MAAA,EAAA;IACEJ,SAAS,EAAEK,EAAE,CAACC,YAAM,CAACC,KAAK,EAAEP,SAAS,CAAE;IACvC,aAAaE,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;IAAAF,QAAA,EAAA,CAEPF,IAAI,iBACHU,cAAA,CAAA,MAAA,EAAA;MACET,SAAS,EAAEM,YAAM,CAACP,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaG,EAAAA,UAAU,EAAEH,IAAK;AAAAE,MAAAA,QAAA,EAE7BF,IAAAA;KACG,CACP,EACAE,QAAQ,CAAA;AAAA,GACL,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"Badge.cjs","sources":["../../../src/badge/Badge.tsx"],"sourcesContent":["import cn from 'classnames'\nimport type { HTMLAttributes, ReactNode } from 'react'\nimport styles from './Badge.module.css'\n\nexport type BadgeDataTestId = {\n root?: string\n icon?: string\n}\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> & {\n /** Optional glyph before the label. Omitted entirely when not passed. */\n icon?: ReactNode\n dataTestId?: BadgeDataTestId\n}\n\n/** Bordered pill for a single trust/verification marker (audited, verified). */\nexport const Badge = ({\n icon,\n className,\n children,\n dataTestId,\n ...rest\n}: BadgeProps) => (\n <span\n className={cn(styles.badge, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {icon && (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.icon}\n >\n {icon}\n </span>\n )}\n <span className={styles.label}>{children}</span>\n </span>\n)\n"],"names":["Badge","_ref","icon","className","children","dataTestId","rest","_jsxs","cn","styles","badge","root","_jsx","label"],"mappings":";;;;;;;;AAeA;AACO,MAAMA,KAAK,GAAGC,IAAA,IAAA;EAAA,IAAC;IACpBC,IAAI;IACJC,SAAS;IACTC,QAAQ;IACRC,UAAU;IACV,GAAGC,IAAAA;AACO,GAAC,GAAAL,IAAA,CAAA;AAAA,EAAA,oBACXM,eAAA,CAAA,MAAA,EAAA;IACEJ,SAAS,EAAEK,EAAE,CAACC,YAAM,CAACC,KAAK,EAAEP,SAAS,CAAE;IACvC,aAAaE,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;IAAAF,QAAA,EAAA,CAEPF,IAAI,iBACHU,cAAA,CAAA,MAAA,EAAA;MACET,SAAS,EAAEM,YAAM,CAACP,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaG,EAAAA,UAAU,EAAEH,IAAK;AAAAE,MAAAA,QAAA,EAE7BF,IAAAA;KACG,CACP,eACDU,cAAA,CAAA,MAAA,EAAA;MAAMT,SAAS,EAAEM,YAAM,CAACI,KAAM;AAAAT,MAAAA,QAAA,EAAEA,QAAAA;AAAQ,KAAO,CAAC,CAAA;AAAA,GAC5C,CAAC,CAAA;AAAA;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const styles = {"badge":"Badge-module_badge__ikDSa","icon":"Badge-module_icon__lkt9n"};
3
+ const styles = {"badge":"Badge-module_badge__ikDSa","label":"Badge-module_label__FUOSJ","icon":"Badge-module_icon__lkt9n"};
4
4
 
5
5
  module.exports = styles;
6
6
  //# sourceMappingURL=Badge.module.css.cjs.map
@@ -6,6 +6,7 @@ const cn = require('classnames');
6
6
  const Banner_module = require('./Banner.module.css.cjs');
7
7
  const jsxRuntime = require('react/jsx-runtime');
8
8
 
9
+ /** Compact card row: icon, title and description, with an optional `action` slot on the right (usually a `Button`). Needs a definite-width parent (it fills it). */
9
10
  const Banner = _ref => {
10
11
  let {
11
12
  icon,
@@ -16,33 +17,36 @@ const Banner = _ref => {
16
17
  dataTestId,
17
18
  ...rest
18
19
  } = _ref;
19
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
20
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
20
21
  className: cn(Banner_module.banner, className),
21
22
  "data-testid": dataTestId?.root,
22
23
  ...rest,
23
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
24
- className: Banner_module.content,
25
- children: [icon ? /*#__PURE__*/jsxRuntime.jsx("span", {
26
- className: Banner_module.icon,
27
- "data-testid": dataTestId?.icon,
28
- children: icon
29
- }) : null, /*#__PURE__*/jsxRuntime.jsxs("div", {
30
- className: Banner_module.text,
31
- children: [/*#__PURE__*/jsxRuntime.jsx("p", {
32
- className: Banner_module.title,
33
- "data-testid": dataTestId?.title,
34
- children: title
35
- }), description ? /*#__PURE__*/jsxRuntime.jsx("p", {
36
- className: Banner_module.description,
37
- "data-testid": dataTestId?.description,
38
- children: description
39
- }) : null]
40
- })]
41
- }), action ? /*#__PURE__*/jsxRuntime.jsx("div", {
42
- className: Banner_module.action,
43
- "data-testid": dataTestId?.action,
44
- children: action
45
- }) : null]
24
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
25
+ className: Banner_module.inner,
26
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
27
+ className: Banner_module.content,
28
+ children: [icon ? /*#__PURE__*/jsxRuntime.jsx("span", {
29
+ className: Banner_module.icon,
30
+ "data-testid": dataTestId?.icon,
31
+ children: icon
32
+ }) : null, /*#__PURE__*/jsxRuntime.jsxs("div", {
33
+ className: Banner_module.text,
34
+ children: [/*#__PURE__*/jsxRuntime.jsx("p", {
35
+ className: Banner_module.title,
36
+ "data-testid": dataTestId?.title,
37
+ children: title
38
+ }), description ? /*#__PURE__*/jsxRuntime.jsx("p", {
39
+ className: Banner_module.description,
40
+ "data-testid": dataTestId?.description,
41
+ children: description
42
+ }) : null]
43
+ })]
44
+ }), action ? /*#__PURE__*/jsxRuntime.jsx("div", {
45
+ className: Banner_module.action,
46
+ "data-testid": dataTestId?.action,
47
+ children: action
48
+ }) : null]
49
+ })
46
50
  });
47
51
  };
48
52
  Banner.displayName = 'Banner';