@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.
- package/README.md +120 -20
- package/dist/README.md +120 -20
- package/dist/cjs/accordion/Accordion.cjs +13 -7
- package/dist/cjs/accordion/Accordion.cjs.map +1 -1
- package/dist/cjs/accordion/Accordion.module.css.cjs +1 -1
- package/dist/cjs/address-button/AddressButton.cjs +4 -3
- package/dist/cjs/address-button/AddressButton.cjs.map +1 -1
- package/dist/cjs/address-button/AddressButton.module.css.cjs +1 -1
- package/dist/cjs/badge/Badge.cjs +5 -1
- package/dist/cjs/badge/Badge.cjs.map +1 -1
- package/dist/cjs/badge/Badge.module.css.cjs +1 -1
- package/dist/cjs/banner/Banner.cjs +28 -24
- package/dist/cjs/banner/Banner.cjs.map +1 -1
- package/dist/cjs/banner/Banner.module.css.cjs +1 -1
- package/dist/cjs/breadcrumbs/Breadcrumbs.cjs +61 -36
- package/dist/cjs/breadcrumbs/Breadcrumbs.cjs.map +1 -1
- package/dist/cjs/breadcrumbs/Breadcrumbs.module.css.cjs +1 -1
- package/dist/cjs/button/Button.cjs +20 -28
- package/dist/cjs/button/Button.cjs.map +1 -1
- package/dist/cjs/button/Button.module.css.cjs +1 -1
- package/dist/cjs/button/ButtonContent.cjs +48 -0
- package/dist/cjs/button/ButtonContent.cjs.map +1 -0
- package/dist/cjs/button/LinkButton.cjs +17 -0
- package/dist/cjs/button/LinkButton.cjs.map +1 -0
- package/dist/cjs/callout/Callout.cjs +75 -0
- package/dist/cjs/callout/Callout.cjs.map +1 -0
- package/dist/cjs/callout/Callout.module.css.cjs +6 -0
- package/dist/cjs/callout/Callout.module.css.cjs.map +1 -0
- package/dist/cjs/card/Card.cjs +1 -0
- package/dist/cjs/card/Card.cjs.map +1 -1
- package/dist/cjs/checkbox/Checkbox.cjs +56 -24
- package/dist/cjs/checkbox/Checkbox.cjs.map +1 -1
- package/dist/cjs/checkbox/Checkbox.module.css.cjs +1 -1
- package/dist/cjs/checkbox-row/CheckboxList.cjs +33 -0
- package/dist/cjs/checkbox-row/CheckboxList.cjs.map +1 -0
- package/dist/cjs/checkbox-row/CheckboxList.module.css.cjs +6 -0
- package/dist/cjs/checkbox-row/CheckboxList.module.css.cjs.map +1 -0
- package/dist/cjs/checkbox-row/CheckboxRow.cjs +80 -0
- package/dist/cjs/checkbox-row/CheckboxRow.cjs.map +1 -0
- package/dist/cjs/checkbox-row/CheckboxRow.module.css.cjs +6 -0
- package/dist/cjs/checkbox-row/CheckboxRow.module.css.cjs.map +1 -0
- package/dist/cjs/counter/Counter.cjs +6 -2
- package/dist/cjs/counter/Counter.cjs.map +1 -1
- package/dist/cjs/counter/Counter.module.css.cjs +1 -1
- package/dist/cjs/counter/CounterSlot.cjs +19 -2
- package/dist/cjs/counter/CounterSlot.cjs.map +1 -1
- package/dist/cjs/counter/CounterSlot.module.css.cjs +1 -1
- package/dist/cjs/data-list/DataList.cjs +1 -0
- package/dist/cjs/data-list/DataList.cjs.map +1 -1
- package/dist/cjs/data-list/DataListRow.cjs +2 -0
- package/dist/cjs/data-list/DataListRow.cjs.map +1 -1
- package/dist/cjs/disclaimer/Disclaimer.cjs +10 -4
- package/dist/cjs/disclaimer/Disclaimer.cjs.map +1 -1
- package/dist/cjs/disclosure/Disclosure.cjs +73 -0
- package/dist/cjs/disclosure/Disclosure.cjs.map +1 -0
- package/dist/cjs/disclosure/Disclosure.module.css.cjs +6 -0
- package/dist/cjs/disclosure/Disclosure.module.css.cjs.map +1 -0
- package/dist/cjs/divider/Divider.cjs +5 -0
- package/dist/cjs/divider/Divider.cjs.map +1 -1
- package/dist/cjs/drawer/Drawer.cjs +110 -0
- package/dist/cjs/drawer/Drawer.cjs.map +1 -0
- package/dist/cjs/drawer/Drawer.module.css.cjs +6 -0
- package/dist/cjs/drawer/Drawer.module.css.cjs.map +1 -0
- package/dist/cjs/empty-state/EmptyState.cjs +54 -0
- package/dist/cjs/empty-state/EmptyState.cjs.map +1 -0
- package/dist/cjs/empty-state/EmptyState.module.css.cjs +6 -0
- package/dist/cjs/empty-state/EmptyState.module.css.cjs.map +1 -0
- package/dist/cjs/error-page/ErrorPage.cjs +32 -24
- package/dist/cjs/error-page/ErrorPage.cjs.map +1 -1
- package/dist/cjs/error-page/ErrorPage.module.css.cjs +1 -1
- package/dist/cjs/footer/Footer.cjs +10 -2
- package/dist/cjs/footer/Footer.cjs.map +1 -1
- package/dist/cjs/grid/Grid.cjs +7 -3
- package/dist/cjs/grid/Grid.cjs.map +1 -1
- package/dist/cjs/grid/Grid.module.css.cjs +1 -1
- package/dist/cjs/grid/GridItem.cjs +2 -0
- package/dist/cjs/grid/GridItem.cjs.map +1 -1
- package/dist/cjs/header/Header.cjs +10 -2
- package/dist/cjs/header/Header.cjs.map +1 -1
- package/dist/cjs/header/HeaderNav.cjs +26 -30
- package/dist/cjs/header/HeaderNav.cjs.map +1 -1
- package/dist/cjs/header/HeaderNav.module.css.cjs +1 -1
- package/dist/cjs/hidden/Hidden.cjs +10 -4
- package/dist/cjs/hidden/Hidden.cjs.map +1 -1
- package/dist/cjs/hidden/Hidden.module.css.cjs +1 -1
- package/dist/cjs/hooks/DialogLayer.cjs +94 -0
- package/dist/cjs/hooks/DialogLayer.cjs.map +1 -0
- package/dist/cjs/hooks/Portal.cjs +14 -11
- package/dist/cjs/hooks/Portal.cjs.map +1 -1
- package/dist/cjs/hooks/useBodyScrollLock.cjs +49 -13
- package/dist/cjs/hooks/useBodyScrollLock.cjs.map +1 -1
- package/dist/cjs/hooks/useDialogLayer.cjs +69 -0
- package/dist/cjs/hooks/useDialogLayer.cjs.map +1 -0
- package/dist/cjs/hooks/useEdgeFade.cjs +60 -0
- package/dist/cjs/hooks/useEdgeFade.cjs.map +1 -0
- package/dist/cjs/hooks/useEscape.cjs +8 -5
- package/dist/cjs/hooks/useEscape.cjs.map +1 -1
- package/dist/cjs/hooks/useExitLatch.cjs +19 -0
- package/dist/cjs/hooks/useExitLatch.cjs.map +1 -0
- package/dist/cjs/hooks/useFocusTrap.cjs +61 -24
- package/dist/cjs/hooks/useFocusTrap.cjs.map +1 -1
- package/dist/cjs/hooks/useHeaderOffset.cjs +20 -0
- package/dist/cjs/hooks/useHeaderOffset.cjs.map +1 -0
- package/dist/cjs/hooks/useHideOthers.cjs +51 -0
- package/dist/cjs/hooks/useHideOthers.cjs.map +1 -0
- package/dist/cjs/hooks/useOpenerElement.cjs +15 -0
- package/dist/cjs/hooks/useOpenerElement.cjs.map +1 -0
- package/dist/cjs/hooks/useOutsideClick.cjs +31 -4
- package/dist/cjs/hooks/useOutsideClick.cjs.map +1 -1
- package/dist/cjs/hooks/usePresence.cjs +154 -0
- package/dist/cjs/hooks/usePresence.cjs.map +1 -0
- package/dist/cjs/hooks/useResizeObserver.cjs +22 -0
- package/dist/cjs/hooks/useResizeObserver.cjs.map +1 -0
- package/dist/cjs/hooks/useSelectionIndicator.cjs +52 -0
- package/dist/cjs/hooks/useSelectionIndicator.cjs.map +1 -0
- package/dist/cjs/icon-button/CloseButton.cjs.map +1 -1
- package/dist/cjs/icon-button/IconButton.cjs +13 -9
- package/dist/cjs/icon-button/IconButton.cjs.map +1 -1
- package/dist/cjs/icon-button/IconButton.module.css.cjs +1 -1
- package/dist/cjs/icons/TokenIcon.cjs +2 -0
- package/dist/cjs/icons/TokenIcon.cjs.map +1 -1
- package/dist/cjs/identicon/Identicon.cjs +2 -0
- package/dist/cjs/identicon/Identicon.cjs.map +1 -1
- package/dist/cjs/index.cjs +75 -4
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.css +20 -4
- package/dist/cjs/info-tooltip/InfoTooltip.cjs +4 -4
- package/dist/cjs/info-tooltip/InfoTooltip.cjs.map +1 -1
- package/dist/cjs/info-tooltip/InfoTooltip.module.css.cjs +1 -1
- package/dist/cjs/input/Field.cjs +79 -0
- package/dist/cjs/input/Field.cjs.map +1 -0
- package/dist/cjs/input/Field.module.css.cjs +6 -0
- package/dist/cjs/input/Field.module.css.cjs.map +1 -0
- package/dist/cjs/input/Input.cjs +37 -40
- package/dist/cjs/input/Input.cjs.map +1 -1
- package/dist/cjs/input/Input.module.css.cjs +1 -1
- package/dist/cjs/link-provider/Anchor.cjs +39 -5
- package/dist/cjs/link-provider/Anchor.cjs.map +1 -1
- package/dist/cjs/link-provider/LinkProvider.cjs +1 -1
- package/dist/cjs/link-provider/LinkProvider.cjs.map +1 -1
- package/dist/cjs/logo/Logo.cjs +8 -0
- package/dist/cjs/logo/Logo.cjs.map +1 -1
- package/dist/cjs/message-box/MessageBox.cjs +1 -0
- package/dist/cjs/message-box/MessageBox.cjs.map +1 -1
- package/dist/cjs/modal/Modal.cjs +61 -47
- package/dist/cjs/modal/Modal.cjs.map +1 -1
- package/dist/cjs/nav-link/NavLink.cjs +12 -6
- package/dist/cjs/nav-link/NavLink.cjs.map +1 -1
- package/dist/cjs/notification/Notification.cjs +14 -7
- package/dist/cjs/notification/Notification.cjs.map +1 -1
- package/dist/cjs/notification/Notification.module.css.cjs +1 -1
- package/dist/cjs/page-layout/FormLayout.cjs +42 -0
- package/dist/cjs/page-layout/FormLayout.cjs.map +1 -0
- package/dist/cjs/page-layout/FormLayout.module.css.cjs +6 -0
- package/dist/cjs/page-layout/FormLayout.module.css.cjs.map +1 -0
- package/dist/cjs/pagination/Pagination.cjs +14 -12
- package/dist/cjs/pagination/Pagination.cjs.map +1 -1
- package/dist/cjs/pagination/Pagination.module.css.cjs +1 -1
- package/dist/cjs/popover/Popover.cjs +129 -21
- package/dist/cjs/popover/Popover.cjs.map +1 -1
- package/dist/cjs/progress-bar/ProgressBar.cjs +87 -0
- package/dist/cjs/progress-bar/ProgressBar.cjs.map +1 -0
- package/dist/cjs/progress-bar/ProgressBar.module.css.cjs +6 -0
- package/dist/cjs/progress-bar/ProgressBar.module.css.cjs.map +1 -0
- package/dist/cjs/progress-bar/SegmentedBar.cjs +53 -0
- package/dist/cjs/progress-bar/SegmentedBar.cjs.map +1 -0
- package/dist/cjs/progress-bar/SegmentedBar.module.css.cjs +6 -0
- package/dist/cjs/progress-bar/SegmentedBar.module.css.cjs.map +1 -0
- package/dist/cjs/radio-button/RadioButton.cjs +32 -24
- package/dist/cjs/radio-button/RadioButton.cjs.map +1 -1
- package/dist/cjs/rich-input/RichInput.cjs +63 -54
- package/dist/cjs/rich-input/RichInput.cjs.map +1 -1
- package/dist/cjs/rich-input/RichInput.module.css.cjs +1 -1
- package/dist/cjs/section-title/SectionTitle.cjs +1 -0
- package/dist/cjs/section-title/SectionTitle.cjs.map +1 -1
- package/dist/cjs/segmented-control/SegmentedControl.cjs +10 -37
- package/dist/cjs/segmented-control/SegmentedControl.cjs.map +1 -1
- package/dist/cjs/segmented-control/SegmentedControlCard.cjs +15 -33
- package/dist/cjs/segmented-control/SegmentedControlCard.cjs.map +1 -1
- package/dist/cjs/select/Select.cjs +338 -0
- package/dist/cjs/select/Select.cjs.map +1 -0
- package/dist/cjs/select/Select.module.css.cjs +6 -0
- package/dist/cjs/select/Select.module.css.cjs.map +1 -0
- package/dist/cjs/select/SelectItem.cjs +97 -0
- package/dist/cjs/select/SelectItem.cjs.map +1 -0
- package/dist/cjs/select/SelectItem.module.css.cjs +6 -0
- package/dist/cjs/select/SelectItem.module.css.cjs.map +1 -0
- package/dist/cjs/sidebar/Sidebar.cjs +13 -8
- package/dist/cjs/sidebar/Sidebar.cjs.map +1 -1
- package/dist/cjs/sidebar/SidebarToggle.cjs +1 -1
- package/dist/cjs/sidebar/SidebarToggle.cjs.map +1 -1
- package/dist/cjs/skeleton/Skeleton.cjs +18 -20
- package/dist/cjs/skeleton/Skeleton.cjs.map +1 -1
- package/dist/cjs/slider/Slider.cjs +1 -0
- package/dist/cjs/slider/Slider.cjs.map +1 -1
- package/dist/cjs/small-card/SmallCard.cjs +6 -2
- package/dist/cjs/small-card/SmallCard.cjs.map +1 -1
- package/dist/cjs/spinner/Spinner.cjs +43 -0
- package/dist/cjs/spinner/Spinner.cjs.map +1 -0
- package/dist/cjs/spinner/Spinner.module.css.cjs +6 -0
- package/dist/cjs/spinner/Spinner.module.css.cjs.map +1 -0
- package/dist/cjs/stack/Stack.cjs +20 -11
- package/dist/cjs/stack/Stack.cjs.map +1 -1
- package/dist/cjs/stack/Stack.module.css.cjs +1 -1
- package/dist/cjs/stat-card/StatCard.cjs +132 -0
- package/dist/cjs/stat-card/StatCard.cjs.map +1 -0
- package/dist/cjs/stat-card/StatCard.module.css.cjs +6 -0
- package/dist/cjs/stat-card/StatCard.module.css.cjs.map +1 -0
- package/dist/cjs/stat-item/StatItem.cjs +1 -0
- package/dist/cjs/stat-item/StatItem.cjs.map +1 -1
- package/dist/cjs/stat-item/StatItem.module.css.cjs +1 -1
- package/dist/cjs/steps/Steps.cjs +85 -0
- package/dist/cjs/steps/Steps.cjs.map +1 -0
- package/dist/cjs/steps/Steps.module.css.cjs +6 -0
- package/dist/cjs/steps/Steps.module.css.cjs.map +1 -0
- package/dist/cjs/switch/Switch.cjs +33 -25
- package/dist/cjs/switch/Switch.cjs.map +1 -1
- package/dist/cjs/table/Table.cjs +280 -0
- package/dist/cjs/table/Table.cjs.map +1 -0
- package/dist/cjs/table/Table.module.css.cjs +6 -0
- package/dist/cjs/table/Table.module.css.cjs.map +1 -0
- package/dist/cjs/tabs/Tabs.cjs +18 -26
- package/dist/cjs/tabs/Tabs.cjs.map +1 -1
- package/dist/cjs/tabs/Tabs.module.css.cjs +1 -1
- package/dist/cjs/tag/Tag.cjs +74 -8
- package/dist/cjs/tag/Tag.cjs.map +1 -1
- package/dist/cjs/tag/Tag.module.css.cjs +1 -1
- package/dist/cjs/text-link/TextLink.cjs +9 -14
- package/dist/cjs/text-link/TextLink.cjs.map +1 -1
- package/dist/cjs/text-link/TextLink.module.css.cjs +1 -1
- package/dist/cjs/textarea/Textarea.cjs +108 -0
- package/dist/cjs/textarea/Textarea.cjs.map +1 -0
- package/dist/cjs/textarea/Textarea.module.css.cjs +6 -0
- package/dist/cjs/textarea/Textarea.module.css.cjs.map +1 -0
- package/dist/cjs/theme-switcher/ThemeSwitcher.cjs +13 -5
- package/dist/cjs/theme-switcher/ThemeSwitcher.cjs.map +1 -1
- package/dist/cjs/theme-switcher/ThemeSwitcher.module.css.cjs +6 -0
- package/dist/cjs/theme-switcher/ThemeSwitcher.module.css.cjs.map +1 -0
- package/dist/cjs/toast/ToastStack.cjs +34 -0
- package/dist/cjs/toast/ToastStack.cjs.map +1 -0
- package/dist/cjs/toast/ToastStack.module.css.cjs +6 -0
- package/dist/cjs/toast/ToastStack.module.css.cjs.map +1 -0
- package/dist/cjs/toast/Toaster.cjs +172 -0
- package/dist/cjs/toast/Toaster.cjs.map +1 -0
- package/dist/cjs/toast/toastStore.cjs +49 -0
- package/dist/cjs/toast/toastStore.cjs.map +1 -0
- package/dist/cjs/toast/useToasts.cjs +14 -0
- package/dist/cjs/toast/useToasts.cjs.map +1 -0
- package/dist/cjs/token-amount/TokenAmount.cjs +1 -0
- package/dist/cjs/token-amount/TokenAmount.cjs.map +1 -1
- package/dist/cjs/token-selector/TokenSelector.cjs +25 -145
- package/dist/cjs/token-selector/TokenSelector.cjs.map +1 -1
- package/dist/cjs/tooltip/Tooltip.cjs +53 -27
- package/dist/cjs/tooltip/Tooltip.cjs.map +1 -1
- package/dist/cjs/tx-status/TxStatus.cjs +6 -3
- package/dist/cjs/tx-status/TxStatus.cjs.map +1 -1
- package/dist/cjs/tx-status/TxStatus.module.css.cjs +1 -1
- package/dist/cjs/typography/Typography.cjs +23 -8
- package/dist/cjs/typography/Typography.cjs.map +1 -1
- package/dist/cjs/typography/Typography.module.css.cjs +1 -1
- package/dist/cjs/utils/ActionElement.cjs +2 -13
- package/dist/cjs/utils/ActionElement.cjs.map +1 -1
- package/dist/cjs/utils/breakpoints.cjs +25 -0
- package/dist/cjs/utils/breakpoints.cjs.map +1 -0
- package/dist/cjs/utils/dom.cjs +14 -0
- package/dist/cjs/utils/dom.cjs.map +1 -0
- package/dist/cjs/utils/joinAriaLabel.cjs +8 -0
- package/dist/cjs/utils/joinAriaLabel.cjs.map +1 -0
- package/dist/cjs/utils/responsive.cjs +19 -30
- package/dist/cjs/utils/responsive.cjs.map +1 -1
- package/dist/esm/accordion/Accordion.mjs +13 -7
- package/dist/esm/accordion/Accordion.mjs.map +1 -1
- package/dist/esm/accordion/Accordion.module.css.mjs +1 -1
- package/dist/esm/address-button/AddressButton.mjs +4 -3
- package/dist/esm/address-button/AddressButton.mjs.map +1 -1
- package/dist/esm/address-button/AddressButton.module.css.mjs +1 -1
- package/dist/esm/badge/Badge.mjs +5 -1
- package/dist/esm/badge/Badge.mjs.map +1 -1
- package/dist/esm/badge/Badge.module.css.mjs +1 -1
- package/dist/esm/banner/Banner.mjs +29 -25
- package/dist/esm/banner/Banner.mjs.map +1 -1
- package/dist/esm/banner/Banner.module.css.mjs +1 -1
- package/dist/esm/breadcrumbs/Breadcrumbs.mjs +62 -37
- package/dist/esm/breadcrumbs/Breadcrumbs.mjs.map +1 -1
- package/dist/esm/breadcrumbs/Breadcrumbs.module.css.mjs +1 -1
- package/dist/esm/button/Button.mjs +21 -29
- package/dist/esm/button/Button.mjs.map +1 -1
- package/dist/esm/button/Button.module.css.mjs +1 -1
- package/dist/esm/button/ButtonContent.mjs +44 -0
- package/dist/esm/button/ButtonContent.mjs.map +1 -0
- package/dist/esm/button/LinkButton.mjs +13 -0
- package/dist/esm/button/LinkButton.mjs.map +1 -0
- package/dist/esm/callout/Callout.mjs +71 -0
- package/dist/esm/callout/Callout.mjs.map +1 -0
- package/dist/esm/callout/Callout.module.css.mjs +4 -0
- package/dist/esm/callout/Callout.module.css.mjs.map +1 -0
- package/dist/esm/card/Card.mjs +1 -0
- package/dist/esm/card/Card.mjs.map +1 -1
- package/dist/esm/checkbox/Checkbox.mjs +57 -25
- package/dist/esm/checkbox/Checkbox.mjs.map +1 -1
- package/dist/esm/checkbox/Checkbox.module.css.mjs +1 -1
- package/dist/esm/checkbox-row/CheckboxList.mjs +29 -0
- package/dist/esm/checkbox-row/CheckboxList.mjs.map +1 -0
- package/dist/esm/checkbox-row/CheckboxList.module.css.mjs +4 -0
- package/dist/esm/checkbox-row/CheckboxList.module.css.mjs.map +1 -0
- package/dist/esm/checkbox-row/CheckboxRow.mjs +76 -0
- package/dist/esm/checkbox-row/CheckboxRow.mjs.map +1 -0
- package/dist/esm/checkbox-row/CheckboxRow.module.css.mjs +4 -0
- package/dist/esm/checkbox-row/CheckboxRow.module.css.mjs.map +1 -0
- package/dist/esm/counter/Counter.mjs +6 -2
- package/dist/esm/counter/Counter.mjs.map +1 -1
- package/dist/esm/counter/Counter.module.css.mjs +1 -1
- package/dist/esm/counter/CounterSlot.mjs +19 -3
- package/dist/esm/counter/CounterSlot.mjs.map +1 -1
- package/dist/esm/counter/CounterSlot.module.css.mjs +1 -1
- package/dist/esm/data-list/DataList.mjs +1 -0
- package/dist/esm/data-list/DataList.mjs.map +1 -1
- package/dist/esm/data-list/DataListRow.mjs +2 -0
- package/dist/esm/data-list/DataListRow.mjs.map +1 -1
- package/dist/esm/disclaimer/Disclaimer.mjs +10 -4
- package/dist/esm/disclaimer/Disclaimer.mjs.map +1 -1
- package/dist/esm/disclosure/Disclosure.mjs +69 -0
- package/dist/esm/disclosure/Disclosure.mjs.map +1 -0
- package/dist/esm/disclosure/Disclosure.module.css.mjs +4 -0
- package/dist/esm/disclosure/Disclosure.module.css.mjs.map +1 -0
- package/dist/esm/divider/Divider.mjs +5 -0
- package/dist/esm/divider/Divider.mjs.map +1 -1
- package/dist/esm/drawer/Drawer.mjs +106 -0
- package/dist/esm/drawer/Drawer.mjs.map +1 -0
- package/dist/esm/drawer/Drawer.module.css.mjs +4 -0
- package/dist/esm/drawer/Drawer.module.css.mjs.map +1 -0
- package/dist/esm/empty-state/EmptyState.mjs +50 -0
- package/dist/esm/empty-state/EmptyState.mjs.map +1 -0
- package/dist/esm/empty-state/EmptyState.module.css.mjs +4 -0
- package/dist/esm/empty-state/EmptyState.module.css.mjs.map +1 -0
- package/dist/esm/error-page/ErrorPage.mjs +33 -25
- package/dist/esm/error-page/ErrorPage.mjs.map +1 -1
- package/dist/esm/error-page/ErrorPage.module.css.mjs +1 -1
- package/dist/esm/footer/Footer.mjs +10 -2
- package/dist/esm/footer/Footer.mjs.map +1 -1
- package/dist/esm/grid/Grid.mjs +8 -4
- package/dist/esm/grid/Grid.mjs.map +1 -1
- package/dist/esm/grid/Grid.module.css.mjs +1 -1
- package/dist/esm/grid/GridItem.mjs +2 -0
- package/dist/esm/grid/GridItem.mjs.map +1 -1
- package/dist/esm/header/Header.mjs +10 -2
- package/dist/esm/header/Header.mjs.map +1 -1
- package/dist/esm/header/HeaderNav.mjs +27 -31
- package/dist/esm/header/HeaderNav.mjs.map +1 -1
- package/dist/esm/header/HeaderNav.module.css.mjs +1 -1
- package/dist/esm/hidden/Hidden.mjs +10 -4
- package/dist/esm/hidden/Hidden.mjs.map +1 -1
- package/dist/esm/hidden/Hidden.module.css.mjs +1 -1
- package/dist/esm/hooks/DialogLayer.mjs +90 -0
- package/dist/esm/hooks/DialogLayer.mjs.map +1 -0
- package/dist/esm/hooks/Portal.mjs +16 -13
- package/dist/esm/hooks/Portal.mjs.map +1 -1
- package/dist/esm/hooks/useBodyScrollLock.mjs +49 -13
- package/dist/esm/hooks/useBodyScrollLock.mjs.map +1 -1
- package/dist/esm/hooks/useDialogLayer.mjs +65 -0
- package/dist/esm/hooks/useDialogLayer.mjs.map +1 -0
- package/dist/esm/hooks/useEdgeFade.mjs +56 -0
- package/dist/esm/hooks/useEdgeFade.mjs.map +1 -0
- package/dist/esm/hooks/useEscape.mjs +8 -5
- package/dist/esm/hooks/useEscape.mjs.map +1 -1
- package/dist/esm/hooks/useExitLatch.mjs +15 -0
- package/dist/esm/hooks/useExitLatch.mjs.map +1 -0
- package/dist/esm/hooks/useFocusTrap.mjs +61 -24
- package/dist/esm/hooks/useFocusTrap.mjs.map +1 -1
- package/dist/esm/hooks/useHeaderOffset.mjs +16 -0
- package/dist/esm/hooks/useHeaderOffset.mjs.map +1 -0
- package/dist/esm/hooks/useHideOthers.mjs +47 -0
- package/dist/esm/hooks/useHideOthers.mjs.map +1 -0
- package/dist/esm/hooks/useOpenerElement.mjs +11 -0
- package/dist/esm/hooks/useOpenerElement.mjs.map +1 -0
- package/dist/esm/hooks/useOutsideClick.mjs +31 -4
- package/dist/esm/hooks/useOutsideClick.mjs.map +1 -1
- package/dist/esm/hooks/usePresence.mjs +150 -0
- package/dist/esm/hooks/usePresence.mjs.map +1 -0
- package/dist/esm/hooks/useResizeObserver.mjs +18 -0
- package/dist/esm/hooks/useResizeObserver.mjs.map +1 -0
- package/dist/esm/hooks/useSelectionIndicator.mjs +48 -0
- package/dist/esm/hooks/useSelectionIndicator.mjs.map +1 -0
- package/dist/esm/icon-button/CloseButton.mjs.map +1 -1
- package/dist/esm/icon-button/IconButton.mjs +13 -9
- package/dist/esm/icon-button/IconButton.mjs.map +1 -1
- package/dist/esm/icon-button/IconButton.module.css.mjs +1 -1
- package/dist/esm/icons/TokenIcon.mjs +2 -0
- package/dist/esm/icons/TokenIcon.mjs.map +1 -1
- package/dist/esm/identicon/Identicon.mjs +2 -0
- package/dist/esm/identicon/Identicon.mjs.map +1 -1
- package/dist/esm/index.css +20 -4
- package/dist/esm/index.mjs +30 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/info-tooltip/InfoTooltip.mjs +4 -4
- package/dist/esm/info-tooltip/InfoTooltip.mjs.map +1 -1
- package/dist/esm/info-tooltip/InfoTooltip.module.css.mjs +1 -1
- package/dist/esm/input/Field.mjs +70 -0
- package/dist/esm/input/Field.mjs.map +1 -0
- package/dist/esm/input/Field.module.css.mjs +4 -0
- package/dist/esm/input/Field.module.css.mjs.map +1 -0
- package/dist/esm/input/Input.mjs +38 -41
- package/dist/esm/input/Input.mjs.map +1 -1
- package/dist/esm/input/Input.module.css.mjs +1 -1
- package/dist/esm/link-provider/Anchor.mjs +39 -6
- package/dist/esm/link-provider/Anchor.mjs.map +1 -1
- package/dist/esm/link-provider/LinkProvider.mjs +1 -1
- package/dist/esm/link-provider/LinkProvider.mjs.map +1 -1
- package/dist/esm/logo/Logo.mjs +9 -1
- package/dist/esm/logo/Logo.mjs.map +1 -1
- package/dist/esm/message-box/MessageBox.mjs +1 -0
- package/dist/esm/message-box/MessageBox.mjs.map +1 -1
- package/dist/esm/modal/Modal.mjs +62 -49
- package/dist/esm/modal/Modal.mjs.map +1 -1
- package/dist/esm/nav-link/NavLink.mjs +13 -7
- package/dist/esm/nav-link/NavLink.mjs.map +1 -1
- package/dist/esm/notification/Notification.mjs +15 -8
- package/dist/esm/notification/Notification.mjs.map +1 -1
- package/dist/esm/notification/Notification.module.css.mjs +1 -1
- package/dist/esm/page-layout/FormLayout.mjs +38 -0
- package/dist/esm/page-layout/FormLayout.mjs.map +1 -0
- package/dist/esm/page-layout/FormLayout.module.css.mjs +4 -0
- package/dist/esm/page-layout/FormLayout.module.css.mjs.map +1 -0
- package/dist/esm/pagination/Pagination.mjs +16 -14
- package/dist/esm/pagination/Pagination.mjs.map +1 -1
- package/dist/esm/pagination/Pagination.module.css.mjs +1 -1
- package/dist/esm/popover/Popover.mjs +130 -22
- package/dist/esm/popover/Popover.mjs.map +1 -1
- package/dist/esm/progress-bar/ProgressBar.mjs +83 -0
- package/dist/esm/progress-bar/ProgressBar.mjs.map +1 -0
- package/dist/esm/progress-bar/ProgressBar.module.css.mjs +4 -0
- package/dist/esm/progress-bar/ProgressBar.module.css.mjs.map +1 -0
- package/dist/esm/progress-bar/SegmentedBar.mjs +49 -0
- package/dist/esm/progress-bar/SegmentedBar.mjs.map +1 -0
- package/dist/esm/progress-bar/SegmentedBar.module.css.mjs +4 -0
- package/dist/esm/progress-bar/SegmentedBar.module.css.mjs.map +1 -0
- package/dist/esm/radio-button/RadioButton.mjs +32 -24
- package/dist/esm/radio-button/RadioButton.mjs.map +1 -1
- package/dist/esm/rich-input/RichInput.mjs +64 -55
- package/dist/esm/rich-input/RichInput.mjs.map +1 -1
- package/dist/esm/rich-input/RichInput.module.css.mjs +1 -1
- package/dist/esm/section-title/SectionTitle.mjs +1 -0
- package/dist/esm/section-title/SectionTitle.mjs.map +1 -1
- package/dist/esm/segmented-control/SegmentedControl.mjs +10 -37
- package/dist/esm/segmented-control/SegmentedControl.mjs.map +1 -1
- package/dist/esm/segmented-control/SegmentedControlCard.mjs +15 -33
- package/dist/esm/segmented-control/SegmentedControlCard.mjs.map +1 -1
- package/dist/esm/select/Select.mjs +334 -0
- package/dist/esm/select/Select.mjs.map +1 -0
- package/dist/esm/select/Select.module.css.mjs +4 -0
- package/dist/esm/select/Select.module.css.mjs.map +1 -0
- package/dist/esm/select/SelectItem.mjs +92 -0
- package/dist/esm/select/SelectItem.mjs.map +1 -0
- package/dist/esm/select/SelectItem.module.css.mjs +4 -0
- package/dist/esm/select/SelectItem.module.css.mjs.map +1 -0
- package/dist/esm/sidebar/Sidebar.mjs +13 -8
- package/dist/esm/sidebar/Sidebar.mjs.map +1 -1
- package/dist/esm/sidebar/SidebarToggle.mjs +1 -1
- package/dist/esm/sidebar/SidebarToggle.mjs.map +1 -1
- package/dist/esm/skeleton/Skeleton.mjs +18 -20
- package/dist/esm/skeleton/Skeleton.mjs.map +1 -1
- package/dist/esm/slider/Slider.mjs +1 -0
- package/dist/esm/slider/Slider.mjs.map +1 -1
- package/dist/esm/small-card/SmallCard.mjs +6 -2
- package/dist/esm/small-card/SmallCard.mjs.map +1 -1
- package/dist/esm/spinner/Spinner.mjs +39 -0
- package/dist/esm/spinner/Spinner.mjs.map +1 -0
- package/dist/esm/spinner/Spinner.module.css.mjs +4 -0
- package/dist/esm/spinner/Spinner.module.css.mjs.map +1 -0
- package/dist/esm/stack/Stack.mjs +21 -13
- package/dist/esm/stack/Stack.mjs.map +1 -1
- package/dist/esm/stack/Stack.module.css.mjs +1 -1
- package/dist/esm/stat-card/StatCard.mjs +127 -0
- package/dist/esm/stat-card/StatCard.mjs.map +1 -0
- package/dist/esm/stat-card/StatCard.module.css.mjs +4 -0
- package/dist/esm/stat-card/StatCard.module.css.mjs.map +1 -0
- package/dist/esm/stat-item/StatItem.mjs +1 -0
- package/dist/esm/stat-item/StatItem.mjs.map +1 -1
- package/dist/esm/stat-item/StatItem.module.css.mjs +1 -1
- package/dist/esm/steps/Steps.mjs +81 -0
- package/dist/esm/steps/Steps.mjs.map +1 -0
- package/dist/esm/steps/Steps.module.css.mjs +4 -0
- package/dist/esm/steps/Steps.module.css.mjs.map +1 -0
- package/dist/esm/switch/Switch.mjs +33 -25
- package/dist/esm/switch/Switch.mjs.map +1 -1
- package/dist/esm/table/Table.mjs +269 -0
- package/dist/esm/table/Table.mjs.map +1 -0
- package/dist/esm/table/Table.module.css.mjs +4 -0
- package/dist/esm/table/Table.module.css.mjs.map +1 -0
- package/dist/esm/tabs/Tabs.mjs +18 -26
- package/dist/esm/tabs/Tabs.mjs.map +1 -1
- package/dist/esm/tabs/Tabs.module.css.mjs +1 -1
- package/dist/esm/tag/Tag.mjs +75 -9
- package/dist/esm/tag/Tag.mjs.map +1 -1
- package/dist/esm/tag/Tag.module.css.mjs +1 -1
- package/dist/esm/text-link/TextLink.mjs +9 -14
- package/dist/esm/text-link/TextLink.mjs.map +1 -1
- package/dist/esm/text-link/TextLink.module.css.mjs +1 -1
- package/dist/esm/textarea/Textarea.mjs +104 -0
- package/dist/esm/textarea/Textarea.mjs.map +1 -0
- package/dist/esm/textarea/Textarea.module.css.mjs +4 -0
- package/dist/esm/textarea/Textarea.module.css.mjs.map +1 -0
- package/dist/esm/theme-switcher/ThemeSwitcher.mjs +14 -6
- package/dist/esm/theme-switcher/ThemeSwitcher.mjs.map +1 -1
- package/dist/esm/theme-switcher/ThemeSwitcher.module.css.mjs +4 -0
- package/dist/esm/theme-switcher/ThemeSwitcher.module.css.mjs.map +1 -0
- package/dist/esm/toast/ToastStack.mjs +30 -0
- package/dist/esm/toast/ToastStack.mjs.map +1 -0
- package/dist/esm/toast/ToastStack.module.css.mjs +4 -0
- package/dist/esm/toast/ToastStack.module.css.mjs.map +1 -0
- package/dist/esm/toast/Toaster.mjs +167 -0
- package/dist/esm/toast/Toaster.mjs.map +1 -0
- package/dist/esm/toast/toastStore.mjs +43 -0
- package/dist/esm/toast/toastStore.mjs.map +1 -0
- package/dist/esm/toast/useToasts.mjs +10 -0
- package/dist/esm/toast/useToasts.mjs.map +1 -0
- package/dist/esm/token-amount/TokenAmount.mjs +1 -0
- package/dist/esm/token-amount/TokenAmount.mjs.map +1 -1
- package/dist/esm/token-selector/TokenSelector.mjs +27 -147
- package/dist/esm/token-selector/TokenSelector.mjs.map +1 -1
- package/dist/esm/tooltip/Tooltip.mjs +53 -27
- package/dist/esm/tooltip/Tooltip.mjs.map +1 -1
- package/dist/esm/tx-status/TxStatus.mjs +6 -3
- package/dist/esm/tx-status/TxStatus.mjs.map +1 -1
- package/dist/esm/tx-status/TxStatus.module.css.mjs +1 -1
- package/dist/esm/typography/Typography.mjs +21 -9
- package/dist/esm/typography/Typography.mjs.map +1 -1
- package/dist/esm/typography/Typography.module.css.mjs +1 -1
- package/dist/esm/utils/ActionElement.mjs +2 -13
- package/dist/esm/utils/ActionElement.mjs.map +1 -1
- package/dist/esm/utils/breakpoints.mjs +18 -0
- package/dist/esm/utils/breakpoints.mjs.map +1 -0
- package/dist/esm/utils/dom.mjs +10 -0
- package/dist/esm/utils/dom.mjs.map +1 -0
- package/dist/esm/utils/joinAriaLabel.mjs +4 -0
- package/dist/esm/utils/joinAriaLabel.mjs.map +1 -0
- package/dist/esm/utils/responsive.mjs +17 -27
- package/dist/esm/utils/responsive.mjs.map +1 -1
- package/dist/index.css +20 -4
- package/dist/styles/breakpoints.css +10 -12
- package/dist/styles/motion-mixins.css +167 -0
- package/dist/styles/typography-mixins.css +22 -4
- package/dist/types/accordion/Accordion.d.ts +3 -0
- package/dist/types/accordion/Accordion.d.ts.map +1 -1
- package/dist/types/badge/Badge.d.ts +1 -0
- package/dist/types/badge/Badge.d.ts.map +1 -1
- package/dist/types/banner/Banner.d.ts +1 -0
- package/dist/types/banner/Banner.d.ts.map +1 -1
- package/dist/types/breadcrumbs/Breadcrumbs.d.ts +17 -1
- package/dist/types/breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/types/breadcrumbs/index.d.ts +1 -1
- package/dist/types/breadcrumbs/index.d.ts.map +1 -1
- package/dist/types/button/Button.d.ts +4 -30
- package/dist/types/button/Button.d.ts.map +1 -1
- package/dist/types/button/ButtonContent.d.ts +9 -0
- package/dist/types/button/ButtonContent.d.ts.map +1 -0
- package/dist/types/button/LinkButton.d.ts +11 -0
- package/dist/types/button/LinkButton.d.ts.map +1 -0
- package/dist/types/button/index.d.ts +3 -1
- package/dist/types/button/index.d.ts.map +1 -1
- package/dist/types/button/types.d.ts +32 -0
- package/dist/types/button/types.d.ts.map +1 -0
- package/dist/types/callout/Callout.d.ts +32 -0
- package/dist/types/callout/Callout.d.ts.map +1 -0
- package/dist/types/callout/index.d.ts +3 -0
- package/dist/types/callout/index.d.ts.map +1 -0
- package/dist/types/card/Card.d.ts +1 -0
- package/dist/types/card/Card.d.ts.map +1 -1
- package/dist/types/checkbox/Checkbox.d.ts +7 -0
- package/dist/types/checkbox/Checkbox.d.ts.map +1 -1
- package/dist/types/checkbox-row/CheckboxList.d.ts +17 -0
- package/dist/types/checkbox-row/CheckboxList.d.ts.map +1 -0
- package/dist/types/checkbox-row/CheckboxRow.d.ts +32 -0
- package/dist/types/checkbox-row/CheckboxRow.d.ts.map +1 -0
- package/dist/types/checkbox-row/index.d.ts +5 -0
- package/dist/types/checkbox-row/index.d.ts.map +1 -0
- package/dist/types/colors/colorTokens.d.ts.map +1 -1
- package/dist/types/counter/Counter.d.ts +6 -2
- package/dist/types/counter/Counter.d.ts.map +1 -1
- package/dist/types/counter/CounterSlot.d.ts +3 -0
- package/dist/types/counter/CounterSlot.d.ts.map +1 -1
- package/dist/types/data-list/DataList.d.ts +1 -0
- package/dist/types/data-list/DataList.d.ts.map +1 -1
- package/dist/types/data-list/DataListRow.d.ts +1 -0
- package/dist/types/data-list/DataListRow.d.ts.map +1 -1
- package/dist/types/disclaimer/Disclaimer.d.ts +9 -2
- package/dist/types/disclaimer/Disclaimer.d.ts.map +1 -1
- package/dist/types/disclosure/Disclosure.d.ts +24 -0
- package/dist/types/disclosure/Disclosure.d.ts.map +1 -0
- package/dist/types/disclosure/index.d.ts +3 -0
- package/dist/types/disclosure/index.d.ts.map +1 -0
- package/dist/types/divider/Divider.d.ts +5 -0
- package/dist/types/divider/Divider.d.ts.map +1 -1
- package/dist/types/divider/index.d.ts +1 -1
- package/dist/types/divider/index.d.ts.map +1 -1
- package/dist/types/drawer/Drawer.d.ts +55 -0
- package/dist/types/drawer/Drawer.d.ts.map +1 -0
- package/dist/types/drawer/index.d.ts +3 -0
- package/dist/types/drawer/index.d.ts.map +1 -0
- package/dist/types/empty-state/EmptyState.d.ts +33 -0
- package/dist/types/empty-state/EmptyState.d.ts.map +1 -0
- package/dist/types/empty-state/index.d.ts +3 -0
- package/dist/types/empty-state/index.d.ts.map +1 -0
- package/dist/types/error-page/ErrorPage.d.ts +17 -4
- package/dist/types/error-page/ErrorPage.d.ts.map +1 -1
- package/dist/types/footer/Footer.d.ts +17 -2
- package/dist/types/footer/Footer.d.ts.map +1 -1
- package/dist/types/footer/index.d.ts +1 -1
- package/dist/types/footer/index.d.ts.map +1 -1
- package/dist/types/grid/Grid.d.ts +21 -22
- package/dist/types/grid/Grid.d.ts.map +1 -1
- package/dist/types/grid/GridItem.d.ts +14 -10
- package/dist/types/grid/GridItem.d.ts.map +1 -1
- package/dist/types/grid/index.d.ts +2 -2
- package/dist/types/grid/index.d.ts.map +1 -1
- package/dist/types/header/Header.d.ts +15 -2
- package/dist/types/header/Header.d.ts.map +1 -1
- package/dist/types/header/HeaderNav.d.ts +10 -2
- package/dist/types/header/HeaderNav.d.ts.map +1 -1
- package/dist/types/header/index.d.ts +2 -2
- package/dist/types/header/index.d.ts.map +1 -1
- package/dist/types/hidden/Hidden.d.ts +19 -5
- package/dist/types/hidden/Hidden.d.ts.map +1 -1
- package/dist/types/hidden/index.d.ts +1 -1
- package/dist/types/hidden/index.d.ts.map +1 -1
- package/dist/types/hooks/DialogLayer.d.ts +21 -0
- package/dist/types/hooks/DialogLayer.d.ts.map +1 -0
- package/dist/types/hooks/Portal.d.ts +2 -5
- package/dist/types/hooks/Portal.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +10 -0
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/hooks/useBodyScrollLock.d.ts +4 -2
- package/dist/types/hooks/useBodyScrollLock.d.ts.map +1 -1
- package/dist/types/hooks/useDialogLayer.d.ts +16 -0
- package/dist/types/hooks/useDialogLayer.d.ts.map +1 -0
- package/dist/types/hooks/useEdgeFade.d.ts +6 -0
- package/dist/types/hooks/useEdgeFade.d.ts.map +1 -0
- package/dist/types/hooks/useEscape.d.ts +4 -2
- package/dist/types/hooks/useEscape.d.ts.map +1 -1
- package/dist/types/hooks/useExitLatch.d.ts +6 -0
- package/dist/types/hooks/useExitLatch.d.ts.map +1 -0
- package/dist/types/hooks/useFocusTrap.d.ts +7 -3
- package/dist/types/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/types/hooks/useHeaderOffset.d.ts +3 -0
- package/dist/types/hooks/useHeaderOffset.d.ts.map +1 -0
- package/dist/types/hooks/useHideOthers.d.ts +3 -0
- package/dist/types/hooks/useHideOthers.d.ts.map +1 -0
- package/dist/types/hooks/useOpenerElement.d.ts +3 -0
- package/dist/types/hooks/useOpenerElement.d.ts.map +1 -0
- package/dist/types/hooks/useOutsideClick.d.ts +4 -2
- package/dist/types/hooks/useOutsideClick.d.ts.map +1 -1
- package/dist/types/hooks/usePresence.d.ts +28 -0
- package/dist/types/hooks/usePresence.d.ts.map +1 -0
- package/dist/types/hooks/useResizeObserver.d.ts +4 -0
- package/dist/types/hooks/useResizeObserver.d.ts.map +1 -0
- package/dist/types/hooks/useSelectionIndicator.d.ts +13 -0
- package/dist/types/hooks/useSelectionIndicator.d.ts.map +1 -0
- package/dist/types/icon-button/CloseButton.d.ts +3 -3
- package/dist/types/icon-button/CloseButton.d.ts.map +1 -1
- package/dist/types/icon-button/IconButton.d.ts +4 -25
- package/dist/types/icon-button/IconButton.d.ts.map +1 -1
- package/dist/types/icon-button/index.d.ts +1 -1
- package/dist/types/icon-button/index.d.ts.map +1 -1
- package/dist/types/icon-button/types.d.ts +26 -0
- package/dist/types/icon-button/types.d.ts.map +1 -0
- package/dist/types/icons/TokenIcon.d.ts +1 -0
- package/dist/types/icons/TokenIcon.d.ts.map +1 -1
- package/dist/types/identicon/Identicon.d.ts +5 -0
- package/dist/types/identicon/Identicon.d.ts.map +1 -1
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/info-tooltip/InfoTooltip.d.ts +4 -1
- package/dist/types/info-tooltip/InfoTooltip.d.ts.map +1 -1
- package/dist/types/input/Field.d.ts +35 -0
- package/dist/types/input/Field.d.ts.map +1 -0
- package/dist/types/input/Input.d.ts +5 -0
- package/dist/types/input/Input.d.ts.map +1 -1
- package/dist/types/link-provider/Anchor.d.ts +18 -1
- package/dist/types/link-provider/Anchor.d.ts.map +1 -1
- package/dist/types/link-provider/LinkProvider.d.ts +8 -2
- package/dist/types/link-provider/LinkProvider.d.ts.map +1 -1
- package/dist/types/link-provider/index.d.ts +1 -1
- package/dist/types/link-provider/index.d.ts.map +1 -1
- package/dist/types/logo/Logo.d.ts +19 -5
- package/dist/types/logo/Logo.d.ts.map +1 -1
- package/dist/types/logo/index.d.ts +1 -1
- package/dist/types/logo/index.d.ts.map +1 -1
- package/dist/types/message-box/MessageBox.d.ts +3 -0
- package/dist/types/message-box/MessageBox.d.ts.map +1 -1
- package/dist/types/modal/Modal.d.ts +21 -3
- package/dist/types/modal/Modal.d.ts.map +1 -1
- package/dist/types/modal/index.d.ts +2 -2
- package/dist/types/modal/index.d.ts.map +1 -1
- package/dist/types/nav-link/NavLink.d.ts +17 -0
- package/dist/types/nav-link/NavLink.d.ts.map +1 -1
- package/dist/types/nav-link/index.d.ts +1 -1
- package/dist/types/nav-link/index.d.ts.map +1 -1
- package/dist/types/notification/Notification.d.ts +11 -2
- package/dist/types/notification/Notification.d.ts.map +1 -1
- package/dist/types/page-layout/FormLayout.d.ts +15 -0
- package/dist/types/page-layout/FormLayout.d.ts.map +1 -0
- package/dist/types/page-layout/index.d.ts +2 -0
- package/dist/types/page-layout/index.d.ts.map +1 -1
- package/dist/types/pagination/Pagination.d.ts +3 -0
- package/dist/types/pagination/Pagination.d.ts.map +1 -1
- package/dist/types/popover/Popover.d.ts +34 -6
- package/dist/types/popover/Popover.d.ts.map +1 -1
- package/dist/types/popover/index.d.ts +1 -1
- package/dist/types/popover/index.d.ts.map +1 -1
- package/dist/types/progress-bar/ProgressBar.d.ts +30 -0
- package/dist/types/progress-bar/ProgressBar.d.ts.map +1 -0
- package/dist/types/progress-bar/SegmentedBar.d.ts +22 -0
- package/dist/types/progress-bar/SegmentedBar.d.ts.map +1 -0
- package/dist/types/progress-bar/index.d.ts +5 -0
- package/dist/types/progress-bar/index.d.ts.map +1 -0
- package/dist/types/radio-button/RadioButton.d.ts +3 -0
- package/dist/types/radio-button/RadioButton.d.ts.map +1 -1
- package/dist/types/rich-input/RichInput.d.ts +16 -2
- package/dist/types/rich-input/RichInput.d.ts.map +1 -1
- package/dist/types/section-title/SectionTitle.d.ts +1 -0
- package/dist/types/section-title/SectionTitle.d.ts.map +1 -1
- package/dist/types/segmented-control/SegmentedControl.d.ts +1 -0
- package/dist/types/segmented-control/SegmentedControl.d.ts.map +1 -1
- package/dist/types/segmented-control/SegmentedControlCard.d.ts +2 -1
- package/dist/types/segmented-control/SegmentedControlCard.d.ts.map +1 -1
- package/dist/types/select/Select.d.ts +70 -0
- package/dist/types/select/Select.d.ts.map +1 -0
- package/dist/types/select/SelectItem.d.ts +58 -0
- package/dist/types/select/SelectItem.d.ts.map +1 -0
- package/dist/types/select/index.d.ts +5 -0
- package/dist/types/select/index.d.ts.map +1 -0
- package/dist/types/sidebar/Sidebar.d.ts +2 -2
- package/dist/types/sidebar/Sidebar.d.ts.map +1 -1
- package/dist/types/sidebar/SidebarItem.d.ts +1 -1
- package/dist/types/sidebar/SidebarToggle.d.ts +4 -4
- package/dist/types/sidebar/SidebarToggle.d.ts.map +1 -1
- package/dist/types/skeleton/Skeleton.d.ts +17 -3
- package/dist/types/skeleton/Skeleton.d.ts.map +1 -1
- package/dist/types/slider/Slider.d.ts +2 -1
- package/dist/types/slider/Slider.d.ts.map +1 -1
- package/dist/types/small-card/SmallCard.d.ts +16 -3
- package/dist/types/small-card/SmallCard.d.ts.map +1 -1
- package/dist/types/spinner/Spinner.d.ts +28 -0
- package/dist/types/spinner/Spinner.d.ts.map +1 -0
- package/dist/types/spinner/index.d.ts +2 -0
- package/dist/types/spinner/index.d.ts.map +1 -0
- package/dist/types/stack/Stack.d.ts +21 -16
- package/dist/types/stack/Stack.d.ts.map +1 -1
- package/dist/types/stack/index.d.ts +1 -1
- package/dist/types/stack/index.d.ts.map +1 -1
- package/dist/types/stat-card/StatCard.d.ts +86 -0
- package/dist/types/stat-card/StatCard.d.ts.map +1 -0
- package/dist/types/stat-card/index.d.ts +3 -0
- package/dist/types/stat-card/index.d.ts.map +1 -0
- package/dist/types/stat-item/StatItem.d.ts +6 -0
- package/dist/types/stat-item/StatItem.d.ts.map +1 -1
- package/dist/types/steps/Steps.d.ts +30 -0
- package/dist/types/steps/Steps.d.ts.map +1 -0
- package/dist/types/steps/index.d.ts +3 -0
- package/dist/types/steps/index.d.ts.map +1 -0
- package/dist/types/switch/Switch.d.ts +3 -0
- package/dist/types/switch/Switch.d.ts.map +1 -1
- package/dist/types/table/Table.d.ts +111 -0
- package/dist/types/table/Table.d.ts.map +1 -0
- package/dist/types/table/index.d.ts +3 -0
- package/dist/types/table/index.d.ts.map +1 -0
- package/dist/types/tabs/Tabs.d.ts +1 -0
- package/dist/types/tabs/Tabs.d.ts.map +1 -1
- package/dist/types/tag/Tag.d.ts +34 -4
- package/dist/types/tag/Tag.d.ts.map +1 -1
- package/dist/types/text-link/TextLink.d.ts +21 -4
- package/dist/types/text-link/TextLink.d.ts.map +1 -1
- package/dist/types/text-link/index.d.ts +1 -1
- package/dist/types/text-link/index.d.ts.map +1 -1
- package/dist/types/textarea/Textarea.d.ts +30 -0
- package/dist/types/textarea/Textarea.d.ts.map +1 -0
- package/dist/types/textarea/index.d.ts +2 -0
- package/dist/types/textarea/index.d.ts.map +1 -0
- package/dist/types/theme-switcher/ThemeSwitcher.d.ts +10 -4
- package/dist/types/theme-switcher/ThemeSwitcher.d.ts.map +1 -1
- package/dist/types/toast/ToastStack.d.ts +12 -0
- package/dist/types/toast/ToastStack.d.ts.map +1 -0
- package/dist/types/toast/Toaster.d.ts +11 -0
- package/dist/types/toast/Toaster.d.ts.map +1 -0
- package/dist/types/toast/index.d.ts +6 -0
- package/dist/types/toast/index.d.ts.map +1 -0
- package/dist/types/toast/toastStore.d.ts +26 -0
- package/dist/types/toast/toastStore.d.ts.map +1 -0
- package/dist/types/toast/useToasts.d.ts +4 -0
- package/dist/types/toast/useToasts.d.ts.map +1 -0
- package/dist/types/token-amount/TokenAmount.d.ts +1 -0
- package/dist/types/token-amount/TokenAmount.d.ts.map +1 -1
- package/dist/types/token-selector/TokenSelector.d.ts +10 -31
- package/dist/types/token-selector/TokenSelector.d.ts.map +1 -1
- package/dist/types/tooltip/Tooltip.d.ts +2 -0
- package/dist/types/tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/tx-status/TxStatus.d.ts +3 -0
- package/dist/types/tx-status/TxStatus.d.ts.map +1 -1
- package/dist/types/typography/Typography.d.ts +18 -5
- package/dist/types/typography/Typography.d.ts.map +1 -1
- package/dist/types/utils/ActionElement.d.ts +15 -5
- package/dist/types/utils/ActionElement.d.ts.map +1 -1
- package/dist/types/utils/breakpoints.d.ts +15 -0
- package/dist/types/utils/breakpoints.d.ts.map +1 -0
- package/dist/types/utils/dom.d.ts +3 -0
- package/dist/types/utils/dom.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +7 -3
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/joinAriaLabel.d.ts +2 -0
- package/dist/types/utils/joinAriaLabel.d.ts.map +1 -0
- package/dist/types/utils/polymorphic.d.ts +15 -0
- package/dist/types/utils/polymorphic.d.ts.map +1 -0
- package/dist/types/utils/responsive.d.ts +25 -14
- package/dist/types/utils/responsive.d.ts.map +1 -1
- 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
|
-
|
|
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
|
|
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.
|
|
77
|
-
import
|
|
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
|
-
|
|
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
|
|
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.
|
|
77
|
-
import
|
|
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
|
|
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:
|
|
59
|
+
children: /*#__PURE__*/jsxRuntime.jsx(IconChevronDown.IconChevronDown, {})
|
|
53
60
|
})]
|
|
54
61
|
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
55
62
|
id: contentId,
|
|
56
|
-
|
|
57
|
-
|
|
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
|
|
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","
|
|
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
|
|
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(
|
|
36
|
-
|
|
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 {
|
|
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"
|
|
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
|
package/dist/cjs/badge/Badge.cjs
CHANGED
|
@@ -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
|
-
}),
|
|
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}
|
|
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.
|
|
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:
|
|
24
|
-
className: Banner_module.
|
|
25
|
-
children: [
|
|
26
|
-
className: Banner_module.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
className: Banner_module.
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
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';
|