@lidofinance/lido-app-ui 1.8.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -1
- package/dist/README.md +30 -1
- package/dist/cjs/breadcrumbs/Breadcrumbs.cjs +92 -0
- package/dist/cjs/breadcrumbs/Breadcrumbs.cjs.map +1 -0
- package/dist/cjs/breadcrumbs/Breadcrumbs.module.css.cjs +6 -0
- package/dist/cjs/breadcrumbs/Breadcrumbs.module.css.cjs.map +1 -0
- package/dist/cjs/button/Button.cjs +11 -3
- package/dist/cjs/button/Button.cjs.map +1 -1
- package/dist/cjs/counter/Counter.module.css.cjs +1 -1
- package/dist/cjs/counter/CounterSlot.cjs +22 -0
- package/dist/cjs/counter/CounterSlot.cjs.map +1 -0
- package/dist/cjs/counter/CounterSlot.module.css.cjs +6 -0
- package/dist/cjs/counter/CounterSlot.module.css.cjs.map +1 -0
- package/dist/cjs/disclaimer/Disclaimer.cjs +33 -0
- package/dist/cjs/disclaimer/Disclaimer.cjs.map +1 -0
- package/dist/cjs/disclaimer/Disclaimer.module.css.cjs +6 -0
- package/dist/cjs/disclaimer/Disclaimer.module.css.cjs.map +1 -0
- package/dist/cjs/divider/Divider.cjs +26 -0
- package/dist/cjs/divider/Divider.cjs.map +1 -0
- package/dist/cjs/divider/Divider.module.css.cjs +6 -0
- package/dist/cjs/divider/Divider.module.css.cjs.map +1 -0
- package/dist/cjs/error-page/ErrorPage.cjs +64 -0
- package/dist/cjs/error-page/ErrorPage.cjs.map +1 -0
- package/dist/cjs/error-page/ErrorPage.module.css.cjs +6 -0
- package/dist/cjs/error-page/ErrorPage.module.css.cjs.map +1 -0
- package/dist/cjs/footer/Footer.cjs +30 -0
- package/dist/cjs/footer/Footer.cjs.map +1 -0
- package/dist/cjs/footer/Footer.module.css.cjs +6 -0
- package/dist/cjs/footer/Footer.module.css.cjs.map +1 -0
- package/dist/cjs/grid/Grid.cjs +47 -0
- package/dist/cjs/grid/Grid.cjs.map +1 -0
- package/dist/cjs/grid/Grid.module.css.cjs +6 -0
- package/dist/cjs/grid/Grid.module.css.cjs.map +1 -0
- package/dist/cjs/grid/GridItem.cjs +39 -0
- package/dist/cjs/grid/GridItem.cjs.map +1 -0
- package/dist/cjs/grid/GridItem.module.css.cjs +6 -0
- package/dist/cjs/grid/GridItem.module.css.cjs.map +1 -0
- package/dist/cjs/header/Header.cjs +31 -0
- package/dist/cjs/header/Header.cjs.map +1 -0
- package/dist/cjs/header/Header.module.css.cjs +6 -0
- package/dist/cjs/header/Header.module.css.cjs.map +1 -0
- package/dist/cjs/header/HeaderNav.cjs +69 -0
- package/dist/cjs/header/HeaderNav.cjs.map +1 -0
- package/dist/cjs/header/HeaderNav.module.css.cjs +6 -0
- package/dist/cjs/header/HeaderNav.module.css.cjs.map +1 -0
- package/dist/cjs/hidden/Hidden.cjs +25 -0
- package/dist/cjs/hidden/Hidden.cjs.map +1 -0
- package/dist/cjs/hidden/Hidden.module.css.cjs +6 -0
- package/dist/cjs/hidden/Hidden.module.css.cjs.map +1 -0
- package/dist/cjs/hooks/Portal.cjs +57 -0
- package/dist/cjs/hooks/Portal.cjs.map +1 -0
- package/dist/cjs/hooks/overlayStack.cjs +26 -0
- package/dist/cjs/hooks/overlayStack.cjs.map +1 -0
- package/dist/cjs/hooks/useBodyScrollLock.cjs +50 -0
- package/dist/cjs/hooks/useBodyScrollLock.cjs.map +1 -0
- package/dist/cjs/hooks/useEscape.cjs +25 -0
- package/dist/cjs/hooks/useEscape.cjs.map +1 -0
- package/dist/cjs/hooks/useFocusTrap.cjs +66 -0
- package/dist/cjs/hooks/useFocusTrap.cjs.map +1 -0
- package/dist/cjs/hooks/useIsomorphicLayoutEffect.cjs +10 -0
- package/dist/cjs/hooks/useIsomorphicLayoutEffect.cjs.map +1 -0
- package/dist/cjs/hooks/useOutsideClick.cjs +15 -13
- package/dist/cjs/hooks/useOutsideClick.cjs.map +1 -1
- package/dist/cjs/icon-button/IconButton.cjs +13 -5
- package/dist/cjs/icon-button/IconButton.cjs.map +1 -1
- package/dist/cjs/icon-button/IconButton.module.css.cjs +1 -1
- package/dist/cjs/index.cjs +34 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.css +3 -3
- package/dist/cjs/link-provider/Anchor.cjs +48 -0
- package/dist/cjs/link-provider/Anchor.cjs.map +1 -0
- package/dist/cjs/link-provider/LinkProvider.cjs +29 -0
- package/dist/cjs/link-provider/LinkProvider.cjs.map +1 -0
- package/dist/cjs/logo/Logo.cjs +84 -0
- package/dist/cjs/logo/Logo.cjs.map +1 -0
- package/dist/cjs/logo/Logo.module.css.cjs +6 -0
- package/dist/cjs/logo/Logo.module.css.cjs.map +1 -0
- package/dist/cjs/modal/Modal.cjs +36 -29
- package/dist/cjs/modal/Modal.cjs.map +1 -1
- package/dist/cjs/nav-link/NavLink.cjs +44 -0
- package/dist/cjs/nav-link/NavLink.cjs.map +1 -0
- package/dist/cjs/nav-link/NavLink.module.css.cjs +6 -0
- package/dist/cjs/nav-link/NavLink.module.css.cjs.map +1 -0
- package/dist/cjs/notification/Notification.cjs +20 -4
- package/dist/cjs/notification/Notification.cjs.map +1 -1
- package/dist/cjs/notification/Notification.module.css.cjs +1 -1
- package/dist/cjs/popover/Popover.cjs +136 -0
- package/dist/cjs/popover/Popover.cjs.map +1 -0
- package/dist/cjs/popover/Popover.module.css.cjs +6 -0
- package/dist/cjs/popover/Popover.module.css.cjs.map +1 -0
- package/dist/cjs/segmented-control/SegmentedControl.cjs +2 -1
- package/dist/cjs/segmented-control/SegmentedControl.cjs.map +1 -1
- package/dist/cjs/segmented-control/SegmentedControlCard.cjs +2 -1
- package/dist/cjs/segmented-control/SegmentedControlCard.cjs.map +1 -1
- package/dist/cjs/skeleton/Skeleton.cjs +40 -0
- package/dist/cjs/skeleton/Skeleton.cjs.map +1 -0
- package/dist/cjs/skeleton/Skeleton.module.css.cjs +6 -0
- package/dist/cjs/skeleton/Skeleton.module.css.cjs.map +1 -0
- package/dist/cjs/small-card/SmallCard.cjs +2 -1
- package/dist/cjs/small-card/SmallCard.cjs.map +1 -1
- package/dist/cjs/stack/Stack.cjs +41 -0
- package/dist/cjs/stack/Stack.cjs.map +1 -0
- package/dist/cjs/stack/Stack.module.css.cjs +6 -0
- package/dist/cjs/stack/Stack.module.css.cjs.map +1 -0
- package/dist/cjs/tabs/Tabs.cjs +2 -1
- package/dist/cjs/tabs/Tabs.cjs.map +1 -1
- package/dist/cjs/tag/Tag.cjs +1 -1
- 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 +2 -1
- package/dist/cjs/text-link/TextLink.cjs.map +1 -1
- package/dist/cjs/theme-switcher/ThemeSwitcher.cjs +39 -0
- package/dist/cjs/theme-switcher/ThemeSwitcher.cjs.map +1 -0
- package/dist/cjs/token-selector/TokenSelector.cjs +3 -3
- package/dist/cjs/token-selector/TokenSelector.cjs.map +1 -1
- package/dist/cjs/tooltip/Tooltip.cjs +2 -1
- package/dist/cjs/tooltip/Tooltip.cjs.map +1 -1
- package/dist/cjs/utils/ActionElement.cjs +41 -0
- package/dist/cjs/utils/ActionElement.cjs.map +1 -0
- package/dist/cjs/utils/responsive.cjs +67 -0
- package/dist/cjs/utils/responsive.cjs.map +1 -0
- package/dist/esm/breadcrumbs/Breadcrumbs.mjs +88 -0
- package/dist/esm/breadcrumbs/Breadcrumbs.mjs.map +1 -0
- package/dist/esm/breadcrumbs/Breadcrumbs.module.css.mjs +4 -0
- package/dist/esm/breadcrumbs/Breadcrumbs.module.css.mjs.map +1 -0
- package/dist/esm/button/Button.mjs +11 -3
- package/dist/esm/button/Button.mjs.map +1 -1
- package/dist/esm/counter/Counter.module.css.mjs +1 -1
- package/dist/esm/counter/CounterSlot.mjs +18 -0
- package/dist/esm/counter/CounterSlot.mjs.map +1 -0
- package/dist/esm/counter/CounterSlot.module.css.mjs +4 -0
- package/dist/esm/counter/CounterSlot.module.css.mjs.map +1 -0
- package/dist/esm/disclaimer/Disclaimer.mjs +29 -0
- package/dist/esm/disclaimer/Disclaimer.mjs.map +1 -0
- package/dist/esm/disclaimer/Disclaimer.module.css.mjs +4 -0
- package/dist/esm/disclaimer/Disclaimer.module.css.mjs.map +1 -0
- package/dist/esm/divider/Divider.mjs +22 -0
- package/dist/esm/divider/Divider.mjs.map +1 -0
- package/dist/esm/divider/Divider.module.css.mjs +4 -0
- package/dist/esm/divider/Divider.module.css.mjs.map +1 -0
- package/dist/esm/error-page/ErrorPage.mjs +60 -0
- package/dist/esm/error-page/ErrorPage.mjs.map +1 -0
- package/dist/esm/error-page/ErrorPage.module.css.mjs +4 -0
- package/dist/esm/error-page/ErrorPage.module.css.mjs.map +1 -0
- package/dist/esm/footer/Footer.mjs +26 -0
- package/dist/esm/footer/Footer.mjs.map +1 -0
- package/dist/esm/footer/Footer.module.css.mjs +4 -0
- package/dist/esm/footer/Footer.module.css.mjs.map +1 -0
- package/dist/esm/grid/Grid.mjs +43 -0
- package/dist/esm/grid/Grid.mjs.map +1 -0
- package/dist/esm/grid/Grid.module.css.mjs +4 -0
- package/dist/esm/grid/Grid.module.css.mjs.map +1 -0
- package/dist/esm/grid/GridItem.mjs +35 -0
- package/dist/esm/grid/GridItem.mjs.map +1 -0
- package/dist/esm/grid/GridItem.module.css.mjs +4 -0
- package/dist/esm/grid/GridItem.module.css.mjs.map +1 -0
- package/dist/esm/header/Header.mjs +27 -0
- package/dist/esm/header/Header.mjs.map +1 -0
- package/dist/esm/header/Header.module.css.mjs +4 -0
- package/dist/esm/header/Header.module.css.mjs.map +1 -0
- package/dist/esm/header/HeaderNav.mjs +65 -0
- package/dist/esm/header/HeaderNav.mjs.map +1 -0
- package/dist/esm/header/HeaderNav.module.css.mjs +4 -0
- package/dist/esm/header/HeaderNav.module.css.mjs.map +1 -0
- package/dist/esm/hidden/Hidden.mjs +21 -0
- package/dist/esm/hidden/Hidden.mjs.map +1 -0
- package/dist/esm/hidden/Hidden.module.css.mjs +4 -0
- package/dist/esm/hidden/Hidden.module.css.mjs.map +1 -0
- package/dist/esm/hooks/Portal.mjs +53 -0
- package/dist/esm/hooks/Portal.mjs.map +1 -0
- package/dist/esm/hooks/overlayStack.mjs +22 -0
- package/dist/esm/hooks/overlayStack.mjs.map +1 -0
- package/dist/esm/hooks/useBodyScrollLock.mjs +46 -0
- package/dist/esm/hooks/useBodyScrollLock.mjs.map +1 -0
- package/dist/esm/hooks/useEscape.mjs +21 -0
- package/dist/esm/hooks/useEscape.mjs.map +1 -0
- package/dist/esm/hooks/useFocusTrap.mjs +62 -0
- package/dist/esm/hooks/useFocusTrap.mjs.map +1 -0
- package/dist/esm/hooks/useIsomorphicLayoutEffect.mjs +6 -0
- package/dist/esm/hooks/useIsomorphicLayoutEffect.mjs.map +1 -0
- package/dist/esm/hooks/useOutsideClick.mjs +16 -14
- package/dist/esm/hooks/useOutsideClick.mjs.map +1 -1
- package/dist/esm/icon-button/IconButton.mjs +14 -6
- package/dist/esm/icon-button/IconButton.mjs.map +1 -1
- package/dist/esm/icon-button/IconButton.module.css.mjs +1 -1
- package/dist/esm/index.css +3 -3
- package/dist/esm/index.mjs +17 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/link-provider/Anchor.mjs +44 -0
- package/dist/esm/link-provider/Anchor.mjs.map +1 -0
- package/dist/esm/link-provider/LinkProvider.mjs +24 -0
- package/dist/esm/link-provider/LinkProvider.mjs.map +1 -0
- package/dist/esm/logo/Logo.mjs +80 -0
- package/dist/esm/logo/Logo.mjs.map +1 -0
- package/dist/esm/logo/Logo.module.css.mjs +4 -0
- package/dist/esm/logo/Logo.module.css.mjs.map +1 -0
- package/dist/esm/modal/Modal.mjs +38 -31
- package/dist/esm/modal/Modal.mjs.map +1 -1
- package/dist/esm/nav-link/NavLink.mjs +40 -0
- package/dist/esm/nav-link/NavLink.mjs.map +1 -0
- package/dist/esm/nav-link/NavLink.module.css.mjs +4 -0
- package/dist/esm/nav-link/NavLink.module.css.mjs.map +1 -0
- package/dist/esm/notification/Notification.mjs +20 -4
- package/dist/esm/notification/Notification.mjs.map +1 -1
- package/dist/esm/notification/Notification.module.css.mjs +1 -1
- package/dist/esm/popover/Popover.mjs +132 -0
- package/dist/esm/popover/Popover.mjs.map +1 -0
- package/dist/esm/popover/Popover.module.css.mjs +4 -0
- package/dist/esm/popover/Popover.module.css.mjs.map +1 -0
- package/dist/esm/segmented-control/SegmentedControl.mjs +3 -2
- package/dist/esm/segmented-control/SegmentedControl.mjs.map +1 -1
- package/dist/esm/segmented-control/SegmentedControlCard.mjs +3 -2
- package/dist/esm/segmented-control/SegmentedControlCard.mjs.map +1 -1
- package/dist/esm/skeleton/Skeleton.mjs +36 -0
- package/dist/esm/skeleton/Skeleton.mjs.map +1 -0
- package/dist/esm/skeleton/Skeleton.module.css.mjs +4 -0
- package/dist/esm/skeleton/Skeleton.module.css.mjs.map +1 -0
- package/dist/esm/small-card/SmallCard.mjs +2 -1
- package/dist/esm/small-card/SmallCard.mjs.map +1 -1
- package/dist/esm/stack/Stack.mjs +37 -0
- package/dist/esm/stack/Stack.mjs.map +1 -0
- package/dist/esm/stack/Stack.module.css.mjs +4 -0
- package/dist/esm/stack/Stack.module.css.mjs.map +1 -0
- package/dist/esm/tabs/Tabs.mjs +3 -2
- package/dist/esm/tabs/Tabs.mjs.map +1 -1
- package/dist/esm/tag/Tag.mjs +1 -1
- 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 +2 -1
- package/dist/esm/text-link/TextLink.mjs.map +1 -1
- package/dist/esm/theme-switcher/ThemeSwitcher.mjs +35 -0
- package/dist/esm/theme-switcher/ThemeSwitcher.mjs.map +1 -0
- package/dist/esm/token-selector/TokenSelector.mjs +3 -3
- package/dist/esm/token-selector/TokenSelector.mjs.map +1 -1
- package/dist/esm/tooltip/Tooltip.mjs +3 -2
- package/dist/esm/tooltip/Tooltip.mjs.map +1 -1
- package/dist/esm/utils/ActionElement.mjs +37 -0
- package/dist/esm/utils/ActionElement.mjs.map +1 -0
- package/dist/esm/utils/responsive.mjs +58 -0
- package/dist/esm/utils/responsive.mjs.map +1 -0
- package/dist/index.css +3 -3
- package/dist/styles/breakpoints.css +6 -0
- package/dist/styles/typography-mixins.css +8 -0
- package/dist/types/breadcrumbs/Breadcrumbs.d.ts +11 -0
- package/dist/types/breadcrumbs/Breadcrumbs.d.ts.map +1 -0
- package/dist/types/breadcrumbs/index.d.ts +3 -0
- package/dist/types/breadcrumbs/index.d.ts.map +1 -0
- package/dist/types/button/Button.d.ts +14 -2
- package/dist/types/button/Button.d.ts.map +1 -1
- package/dist/types/colors/colorTokens.d.ts.map +1 -1
- package/dist/types/counter/CounterSlot.d.ts +8 -0
- package/dist/types/counter/CounterSlot.d.ts.map +1 -0
- package/dist/types/disclaimer/Disclaimer.d.ts +9 -0
- package/dist/types/disclaimer/Disclaimer.d.ts.map +1 -0
- package/dist/types/disclaimer/index.d.ts +3 -0
- package/dist/types/disclaimer/index.d.ts.map +1 -0
- package/dist/types/divider/Divider.d.ts +10 -0
- package/dist/types/divider/Divider.d.ts.map +1 -0
- package/dist/types/divider/index.d.ts +3 -0
- package/dist/types/divider/index.d.ts.map +1 -0
- package/dist/types/error-page/ErrorPage.d.ts +20 -0
- package/dist/types/error-page/ErrorPage.d.ts.map +1 -0
- package/dist/types/error-page/index.d.ts +3 -0
- package/dist/types/error-page/index.d.ts.map +1 -0
- package/dist/types/footer/Footer.d.ts +7 -0
- package/dist/types/footer/Footer.d.ts.map +1 -0
- package/dist/types/footer/index.d.ts +3 -0
- package/dist/types/footer/index.d.ts.map +1 -0
- package/dist/types/grid/Grid.d.ts +31 -0
- package/dist/types/grid/Grid.d.ts.map +1 -0
- package/dist/types/grid/GridItem.d.ts +16 -0
- package/dist/types/grid/GridItem.d.ts.map +1 -0
- package/dist/types/grid/index.d.ts +5 -0
- package/dist/types/grid/index.d.ts.map +1 -0
- package/dist/types/header/Header.d.ts +9 -0
- package/dist/types/header/Header.d.ts.map +1 -0
- package/dist/types/header/HeaderNav.d.ts +4 -0
- package/dist/types/header/HeaderNav.d.ts.map +1 -0
- package/dist/types/header/index.d.ts +5 -0
- package/dist/types/header/index.d.ts.map +1 -0
- package/dist/types/hidden/Hidden.d.ts +11 -0
- package/dist/types/hidden/Hidden.d.ts.map +1 -0
- package/dist/types/hidden/index.d.ts +3 -0
- package/dist/types/hidden/index.d.ts.map +1 -0
- package/dist/types/hooks/Portal.d.ts +12 -0
- package/dist/types/hooks/Portal.d.ts.map +1 -0
- package/dist/types/hooks/index.d.ts +9 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/overlayStack.d.ts +7 -0
- package/dist/types/hooks/overlayStack.d.ts.map +1 -0
- package/dist/types/hooks/useBodyScrollLock.d.ts +3 -0
- package/dist/types/hooks/useBodyScrollLock.d.ts.map +1 -0
- package/dist/types/hooks/useEscape.d.ts +3 -0
- package/dist/types/hooks/useEscape.d.ts.map +1 -0
- package/dist/types/hooks/useFocusTrap.d.ts +10 -0
- package/dist/types/hooks/useFocusTrap.d.ts.map +1 -0
- package/dist/types/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
- package/dist/types/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/dist/types/hooks/useOutsideClick.d.ts +2 -2
- package/dist/types/hooks/useOutsideClick.d.ts.map +1 -1
- package/dist/types/icon-button/IconButton.d.ts +14 -3
- package/dist/types/icon-button/IconButton.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/link-provider/Anchor.d.ts +4 -0
- package/dist/types/link-provider/Anchor.d.ts.map +1 -0
- package/dist/types/link-provider/LinkProvider.d.ts +17 -0
- package/dist/types/link-provider/LinkProvider.d.ts.map +1 -0
- package/dist/types/link-provider/index.d.ts +3 -0
- package/dist/types/link-provider/index.d.ts.map +1 -0
- package/dist/types/logo/Logo.d.ts +13 -0
- package/dist/types/logo/Logo.d.ts.map +1 -0
- package/dist/types/logo/index.d.ts +3 -0
- package/dist/types/logo/index.d.ts.map +1 -0
- package/dist/types/modal/Modal.d.ts +23 -1
- package/dist/types/modal/Modal.d.ts.map +1 -1
- package/dist/types/nav-link/NavLink.d.ts +12 -0
- package/dist/types/nav-link/NavLink.d.ts.map +1 -0
- package/dist/types/nav-link/index.d.ts +3 -0
- package/dist/types/nav-link/index.d.ts.map +1 -0
- package/dist/types/notification/Notification.d.ts +15 -2
- package/dist/types/notification/Notification.d.ts.map +1 -1
- package/dist/types/popover/Popover.d.ts +21 -0
- package/dist/types/popover/Popover.d.ts.map +1 -0
- package/dist/types/popover/index.d.ts +3 -0
- package/dist/types/popover/index.d.ts.map +1 -0
- package/dist/types/segmented-control/SegmentedControl.d.ts.map +1 -1
- package/dist/types/segmented-control/SegmentedControlCard.d.ts.map +1 -1
- package/dist/types/skeleton/Skeleton.d.ts +9 -0
- package/dist/types/skeleton/Skeleton.d.ts.map +1 -0
- package/dist/types/skeleton/index.d.ts +2 -0
- package/dist/types/skeleton/index.d.ts.map +1 -0
- package/dist/types/small-card/SmallCard.d.ts.map +1 -1
- package/dist/types/stack/Stack.d.ts +25 -0
- package/dist/types/stack/Stack.d.ts.map +1 -0
- package/dist/types/stack/index.d.ts +3 -0
- package/dist/types/stack/index.d.ts.map +1 -0
- package/dist/types/tabs/Tabs.d.ts.map +1 -1
- package/dist/types/tag/Tag.d.ts.map +1 -1
- package/dist/types/text-link/TextLink.d.ts.map +1 -1
- package/dist/types/theme-switcher/ThemeSwitcher.d.ts +5 -0
- package/dist/types/theme-switcher/ThemeSwitcher.d.ts.map +1 -0
- package/dist/types/theme-switcher/index.d.ts +3 -0
- package/dist/types/theme-switcher/index.d.ts.map +1 -0
- package/dist/types/tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/utils/ActionElement.d.ts +10 -0
- package/dist/types/utils/ActionElement.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +5 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/responsive.d.ts +27 -0
- package/dist/types/utils/responsive.d.ts.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -28,7 +28,36 @@ function Widget() {
|
|
|
28
28
|
}
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
Theme providers (`ThemeProvider`, `CookieThemeProvider`, `ThemeToggler`) are re-exported from `@lidofinance/lido-shared-ui`. The color tokens follow the `data-lido-theme` attribute they set, so switching to the dark theme restyles these components.
|
|
31
|
+
Theme providers (`ThemeProvider`, `CookieThemeProvider`, `ThemeToggler`) are re-exported from `@lidofinance/lido-shared-ui`. The color tokens follow the `data-lido-theme` attribute they set, so switching to the dark theme restyles these components. `ThemeSwitcher` is the app-ui-styled theme toggle, since the shared `ThemeToggler` relies on `--lido-ui-*` tokens that app-ui doesn't define.
|
|
32
|
+
|
|
33
|
+
## Router links
|
|
34
|
+
|
|
35
|
+
Link components (`TextLink`, `SmallCard`) render a plain `<a>` by default. Wrap the app in `LinkProvider` to route in-app hrefs through your router's link component; `externalComponent` does the same for absolute URLs. Hash links, `download` links and links with a non-`_self` `target` always stay a plain `<a>`.
|
|
36
|
+
|
|
37
|
+
Next.js 12 — `next/link` needs an `<a>` child, so wrap it once at module level:
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
import { forwardRef } from 'react'
|
|
41
|
+
import type { AppProps } from 'next/app'
|
|
42
|
+
import NextLink from 'next/link'
|
|
43
|
+
import { LinkProvider, type LinkComponentProps } from '@lidofinance/lido-app-ui'
|
|
44
|
+
|
|
45
|
+
const AppLink = forwardRef<HTMLAnchorElement, LinkComponentProps>(
|
|
46
|
+
({ href, ...rest }, ref) => (
|
|
47
|
+
<NextLink href={href}>
|
|
48
|
+
<a ref={ref} {...rest} />
|
|
49
|
+
</NextLink>
|
|
50
|
+
),
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
export default function App({ Component, pageProps }: AppProps) {
|
|
54
|
+
return (
|
|
55
|
+
<LinkProvider component={AppLink}>
|
|
56
|
+
<Component {...pageProps} />
|
|
57
|
+
</LinkProvider>
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
```
|
|
32
61
|
|
|
33
62
|
## Customization
|
|
34
63
|
|
package/dist/README.md
CHANGED
|
@@ -28,7 +28,36 @@ function Widget() {
|
|
|
28
28
|
}
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
Theme providers (`ThemeProvider`, `CookieThemeProvider`, `ThemeToggler`) are re-exported from `@lidofinance/lido-shared-ui`. The color tokens follow the `data-lido-theme` attribute they set, so switching to the dark theme restyles these components.
|
|
31
|
+
Theme providers (`ThemeProvider`, `CookieThemeProvider`, `ThemeToggler`) are re-exported from `@lidofinance/lido-shared-ui`. The color tokens follow the `data-lido-theme` attribute they set, so switching to the dark theme restyles these components. `ThemeSwitcher` is the app-ui-styled theme toggle, since the shared `ThemeToggler` relies on `--lido-ui-*` tokens that app-ui doesn't define.
|
|
32
|
+
|
|
33
|
+
## Router links
|
|
34
|
+
|
|
35
|
+
Link components (`TextLink`, `SmallCard`) render a plain `<a>` by default. Wrap the app in `LinkProvider` to route in-app hrefs through your router's link component; `externalComponent` does the same for absolute URLs. Hash links, `download` links and links with a non-`_self` `target` always stay a plain `<a>`.
|
|
36
|
+
|
|
37
|
+
Next.js 12 — `next/link` needs an `<a>` child, so wrap it once at module level:
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
import { forwardRef } from 'react'
|
|
41
|
+
import type { AppProps } from 'next/app'
|
|
42
|
+
import NextLink from 'next/link'
|
|
43
|
+
import { LinkProvider, type LinkComponentProps } from '@lidofinance/lido-app-ui'
|
|
44
|
+
|
|
45
|
+
const AppLink = forwardRef<HTMLAnchorElement, LinkComponentProps>(
|
|
46
|
+
({ href, ...rest }, ref) => (
|
|
47
|
+
<NextLink href={href}>
|
|
48
|
+
<a ref={ref} {...rest} />
|
|
49
|
+
</NextLink>
|
|
50
|
+
),
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
export default function App({ Component, pageProps }: AppProps) {
|
|
54
|
+
return (
|
|
55
|
+
<LinkProvider component={AppLink}>
|
|
56
|
+
<Component {...pageProps} />
|
|
57
|
+
</LinkProvider>
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
```
|
|
32
61
|
|
|
33
62
|
## Customization
|
|
34
63
|
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const react = require('react');
|
|
6
|
+
const cn = require('classnames');
|
|
7
|
+
const Breadcrumbs_module = require('./Breadcrumbs.module.css.cjs');
|
|
8
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
const ActionElement = require('../utils/ActionElement.cjs');
|
|
10
|
+
const IconChevronRight = require('../icons/components/base/IconChevronRight.cjs');
|
|
11
|
+
|
|
12
|
+
const syncFade = list => {
|
|
13
|
+
list.toggleAttribute('data-fade-start', list.scrollLeft > 0);
|
|
14
|
+
list.toggleAttribute('data-fade-end', list.scrollLeft < list.scrollWidth - list.clientWidth - 1);
|
|
15
|
+
};
|
|
16
|
+
const syncTitle = e => {
|
|
17
|
+
const el = e.target.closest('[data-label]');
|
|
18
|
+
if (!el) return;
|
|
19
|
+
if (el.scrollWidth > el.clientWidth) el.setAttribute('title', el.textContent ?? '');else el.removeAttribute('title');
|
|
20
|
+
};
|
|
21
|
+
const Breadcrumbs = _ref => {
|
|
22
|
+
let {
|
|
23
|
+
items,
|
|
24
|
+
className,
|
|
25
|
+
...rest
|
|
26
|
+
} = _ref;
|
|
27
|
+
const listRef = react.useRef(null);
|
|
28
|
+
react.useLayoutEffect(() => {
|
|
29
|
+
const list = listRef.current;
|
|
30
|
+
if (!list) return;
|
|
31
|
+
list.scrollLeft = list.scrollWidth;
|
|
32
|
+
syncFade(list);
|
|
33
|
+
}, [items]);
|
|
34
|
+
react.useEffect(() => {
|
|
35
|
+
const list = listRef.current;
|
|
36
|
+
if (!list || typeof ResizeObserver === 'undefined') return;
|
|
37
|
+
const observer = new ResizeObserver(() => syncFade(list));
|
|
38
|
+
observer.observe(list);
|
|
39
|
+
return () => observer.disconnect();
|
|
40
|
+
}, []);
|
|
41
|
+
return /*#__PURE__*/jsxRuntime.jsx("nav", {
|
|
42
|
+
"aria-label": "Breadcrumb",
|
|
43
|
+
className: cn(Breadcrumbs_module.nav, className),
|
|
44
|
+
...rest,
|
|
45
|
+
children: /*#__PURE__*/jsxRuntime.jsx("ol", {
|
|
46
|
+
ref: listRef,
|
|
47
|
+
className: Breadcrumbs_module.list,
|
|
48
|
+
onScroll: e => syncFade(e.currentTarget),
|
|
49
|
+
onPointerOver: syncTitle,
|
|
50
|
+
children: items.map((_ref2, index) => {
|
|
51
|
+
let {
|
|
52
|
+
label,
|
|
53
|
+
...itemProps
|
|
54
|
+
} = _ref2;
|
|
55
|
+
const labelAttrs = itemProps.title === undefined ? {
|
|
56
|
+
'data-label': ''
|
|
57
|
+
} : {};
|
|
58
|
+
if (index === items.length - 1) {
|
|
59
|
+
return /*#__PURE__*/jsxRuntime.jsx("li", {
|
|
60
|
+
className: Breadcrumbs_module.item,
|
|
61
|
+
children: /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
62
|
+
"aria-current": "page",
|
|
63
|
+
className: cn(Breadcrumbs_module.label, Breadcrumbs_module.current),
|
|
64
|
+
...labelAttrs,
|
|
65
|
+
children: label
|
|
66
|
+
})
|
|
67
|
+
}, index);
|
|
68
|
+
}
|
|
69
|
+
const interactive = itemProps.href !== undefined || itemProps.onClick !== undefined;
|
|
70
|
+
return /*#__PURE__*/jsxRuntime.jsxs("li", {
|
|
71
|
+
className: Breadcrumbs_module.item,
|
|
72
|
+
children: [interactive ? /*#__PURE__*/jsxRuntime.jsx(ActionElement.ActionElement, {
|
|
73
|
+
...itemProps,
|
|
74
|
+
...labelAttrs,
|
|
75
|
+
className: cn(Breadcrumbs_module.label, Breadcrumbs_module.link, itemProps.className),
|
|
76
|
+
children: label
|
|
77
|
+
}) : /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
78
|
+
className: Breadcrumbs_module.label,
|
|
79
|
+
...labelAttrs,
|
|
80
|
+
children: label
|
|
81
|
+
}), /*#__PURE__*/jsxRuntime.jsx(IconChevronRight.IconChevronRight, {
|
|
82
|
+
className: Breadcrumbs_module.separator,
|
|
83
|
+
"aria-hidden": "true"
|
|
84
|
+
})]
|
|
85
|
+
}, index);
|
|
86
|
+
})
|
|
87
|
+
})
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
exports.Breadcrumbs = Breadcrumbs;
|
|
92
|
+
//# sourceMappingURL=Breadcrumbs.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Breadcrumbs.cjs","sources":["../../../src/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef } from 'react'\nimport type { HTMLAttributes, PointerEvent, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { IconChevronRight } from '../icons'\nimport { ActionElement, type ActionElementProps } from '../utils'\nimport styles from './Breadcrumbs.module.css'\n\nexport type BreadcrumbItem = ActionElementProps & {\n label: ReactNode\n children?: never\n}\n\nexport type BreadcrumbsProps = HTMLAttributes<HTMLElement> & {\n items: BreadcrumbItem[]\n}\n\nconst syncFade = (list: HTMLElement) => {\n list.toggleAttribute('data-fade-start', list.scrollLeft > 0)\n list.toggleAttribute(\n 'data-fade-end',\n list.scrollLeft < list.scrollWidth - list.clientWidth - 1,\n )\n}\n\nconst syncTitle = (e: PointerEvent<HTMLElement>) => {\n const el = (e.target as Element).closest('[data-label]')\n if (!el) return\n if (el.scrollWidth > el.clientWidth)\n el.setAttribute('title', el.textContent ?? '')\n else el.removeAttribute('title')\n}\n\nexport const Breadcrumbs = ({\n items,\n className,\n ...rest\n}: BreadcrumbsProps) => {\n const listRef = useRef<HTMLOListElement>(null)\n\n useLayoutEffect(() => {\n const list = listRef.current\n if (!list) return\n list.scrollLeft = list.scrollWidth\n syncFade(list)\n }, [items])\n\n useEffect(() => {\n const list = listRef.current\n if (!list || typeof ResizeObserver === 'undefined') return\n const observer = new ResizeObserver(() => syncFade(list))\n observer.observe(list)\n return () => observer.disconnect()\n }, [])\n\n return (\n <nav\n aria-label='Breadcrumb'\n className={cn(styles.nav, className)}\n {...rest}\n >\n <ol\n ref={listRef}\n className={styles.list}\n onScroll={(e) => syncFade(e.currentTarget)}\n onPointerOver={syncTitle}\n >\n {items.map(({ label, ...itemProps }, index) => {\n const labelAttrs =\n itemProps.title === undefined ? { 'data-label': '' } : {}\n if (index === items.length - 1) {\n return (\n <li key={index} className={styles.item}>\n <span\n aria-current='page'\n className={cn(styles.label, styles.current)}\n {...labelAttrs}\n >\n {label}\n </span>\n </li>\n )\n }\n const interactive =\n itemProps.href !== undefined || itemProps.onClick !== undefined\n return (\n <li key={index} className={styles.item}>\n {interactive ? (\n <ActionElement\n {...itemProps}\n {...labelAttrs}\n className={cn(styles.label, styles.link, itemProps.className)}\n >\n {label}\n </ActionElement>\n ) : (\n <span className={styles.label} {...labelAttrs}>\n {label}\n </span>\n )}\n <IconChevronRight\n className={styles.separator}\n aria-hidden='true'\n />\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n"],"names":["syncFade","list","toggleAttribute","scrollLeft","scrollWidth","clientWidth","syncTitle","e","el","target","closest","setAttribute","textContent","removeAttribute","Breadcrumbs","_ref","items","className","rest","listRef","useRef","useLayoutEffect","current","useEffect","ResizeObserver","observer","observe","disconnect","_jsx","cn","styles","nav","children","ref","onScroll","currentTarget","onPointerOver","map","_ref2","index","label","itemProps","labelAttrs","title","undefined","length","item","interactive","href","onClick","_jsxs","ActionElement","link","IconChevronRight","separator"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const styles = {"nav":"Breadcrumbs-module_nav__cDuA5","list":"Breadcrumbs-module_list__A6dlB","item":"Breadcrumbs-module_item__3t-Zj","label":"Breadcrumbs-module_label__gVU35","link":"Breadcrumbs-module_link__KJ87-","current":"Breadcrumbs-module_current__XK0a2","separator":"Breadcrumbs-module_separator__k-Tmd"};
|
|
4
|
+
|
|
5
|
+
module.exports = styles;
|
|
6
|
+
//# sourceMappingURL=Breadcrumbs.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Breadcrumbs.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
+
const react = require('react');
|
|
5
6
|
const cn = require('classnames');
|
|
7
|
+
const CounterSlot = require('../counter/CounterSlot.cjs');
|
|
6
8
|
const Button_module = require('./Button.module.css.cjs');
|
|
7
9
|
const jsxRuntime = require('react/jsx-runtime');
|
|
8
10
|
const IconLoaderCircle = require('../icons/components/base/IconLoaderCircle.cjs');
|
|
9
11
|
|
|
10
|
-
const Button = _ref => {
|
|
12
|
+
const Button = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
11
13
|
let {
|
|
12
14
|
className,
|
|
13
15
|
children,
|
|
@@ -18,10 +20,12 @@ const Button = _ref => {
|
|
|
18
20
|
disabled = false,
|
|
19
21
|
iconLeft,
|
|
20
22
|
iconRight,
|
|
23
|
+
counter,
|
|
21
24
|
dataTestId,
|
|
22
25
|
...rest
|
|
23
26
|
} = _ref;
|
|
24
27
|
return /*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
28
|
+
ref: ref,
|
|
25
29
|
type: type,
|
|
26
30
|
disabled: disabled || loading,
|
|
27
31
|
"aria-busy": loading || undefined,
|
|
@@ -45,9 +49,13 @@ const Button = _ref => {
|
|
|
45
49
|
"aria-hidden": "true",
|
|
46
50
|
"data-testid": dataTestId?.iconRight,
|
|
47
51
|
children: iconRight
|
|
48
|
-
}) : null
|
|
52
|
+
}) : null, /*#__PURE__*/jsxRuntime.jsx(CounterSlot.CounterSlot, {
|
|
53
|
+
dataTestId: dataTestId?.counter,
|
|
54
|
+
children: counter
|
|
55
|
+
})]
|
|
49
56
|
});
|
|
50
|
-
};
|
|
57
|
+
});
|
|
58
|
+
Button.displayName = 'Button';
|
|
51
59
|
|
|
52
60
|
exports.Button = Button;
|
|
53
61
|
//# sourceMappingURL=Button.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.cjs","sources":["../../../src/button/Button.tsx"],"sourcesContent":["import type
|
|
1
|
+
{"version":3,"file":"Button.cjs","sources":["../../../src/button/Button.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport { CounterSlot } from '../counter/CounterSlot'\nimport { IconLoaderCircle } from '../icons'\nimport styles from './Button.module.css'\n\nexport type ButtonVariant = 'primary' | 'outline' | 'subtle' | 'ghost' | 'error'\n\nexport type ButtonSize = 'big' | 'small'\n\nexport type ButtonDataTestId = {\n root?: string\n iconLeft?: string\n iconRight?: string\n content?: string\n counter?: string\n}\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n variant?: ButtonVariant\n size?: ButtonSize\n loading?: boolean\n iconLeft?: ReactNode\n iconRight?: ReactNode\n /** Corner slot, aria-hidden: put the count into `aria-label`. */\n counter?: ReactNode\n dataTestId?: ButtonDataTestId\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n children,\n type = 'button',\n variant = 'primary',\n size = 'big',\n loading = false,\n disabled = false,\n iconLeft,\n iconRight,\n counter,\n dataTestId,\n ...rest\n },\n ref,\n ) => (\n <button\n ref={ref}\n type={type}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n className={cn(\n styles.button,\n styles[variant],\n styles[size],\n loading && styles.loading,\n className,\n )}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {loading ? (\n <IconLoaderCircle className={styles.spinner} aria-hidden='true' />\n ) : (\n iconLeft != null && (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.iconLeft}\n >\n {iconLeft}\n </span>\n )\n )}\n <span className={styles.content} data-testid={dataTestId?.content}>\n {children}\n </span>\n {!loading && iconRight != null ? (\n <span\n className={styles.icon}\n aria-hidden='true'\n data-testid={dataTestId?.iconRight}\n >\n {iconRight}\n </span>\n ) : null}\n <CounterSlot dataTestId={dataTestId?.counter}>{counter}</CounterSlot>\n </button>\n ),\n)\n\nButton.displayName = 'Button'\n"],"names":["Button","forwardRef","_ref","ref","className","children","type","variant","size","loading","disabled","iconLeft","iconRight","counter","dataTestId","rest","_jsxs","undefined","cn","styles","button","root","_jsx","IconLoaderCircle","spinner","icon","content","CounterSlot","displayName"],"mappings":";;;;;;;;;;;AA+BO,MAAMA,MAAM,gBAAGC,gBAAU,CAC9B,CAAAC,IAAA,EAeEC,GAAG,KAAA;EAAA,IAdH;IACEC,SAAS;IACTC,QAAQ;AACRC,IAAAA,IAAI,GAAG,QAAQ;AACfC,IAAAA,OAAO,GAAG,SAAS;AACnBC,IAAAA,IAAI,GAAG,KAAK;AACZC,IAAAA,OAAO,GAAG,KAAK;AACfC,IAAAA,QAAQ,GAAG,KAAK;IAChBC,QAAQ;IACRC,SAAS;IACTC,OAAO;IACPC,UAAU;IACV,GAAGC,IAAAA;AACL,GAAC,GAAAb,IAAA,CAAA;AAAA,EAAA,oBAGDc,eAAA,CAAA,QAAA,EAAA;AACEb,IAAAA,GAAG,EAAEA,GAAI;AACTG,IAAAA,IAAI,EAAEA,IAAK;IACXI,QAAQ,EAAEA,QAAQ,IAAID,OAAQ;IAC9B,WAAWA,EAAAA,OAAO,IAAIQ,SAAU;IAChCb,SAAS,EAAEc,EAAE,CACXC,aAAM,CAACC,MAAM,EACbD,aAAM,CAACZ,OAAO,CAAC,EACfY,aAAM,CAACX,IAAI,CAAC,EACZC,OAAO,IAAIU,aAAM,CAACV,OAAO,EACzBL,SACF,CAAE;IACF,aAAaU,EAAAA,UAAU,EAAEO,IAAK;AAAA,IAAA,GAC1BN,IAAI;AAAAV,IAAAA,QAAA,EAEPI,CAAAA,OAAO,gBACNa,cAAA,CAACC,iCAAgB,EAAA;MAACnB,SAAS,EAAEe,aAAM,CAACK,OAAQ;MAAC,aAAY,EAAA,MAAA;AAAM,KAAE,CAAC,GAElEb,QAAQ,IAAI,IAAI,iBACdW,cAAA,CAAA,MAAA,EAAA;MACElB,SAAS,EAAEe,aAAM,CAACM,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaX,EAAAA,UAAU,EAAEH,QAAS;AAAAN,MAAAA,QAAA,EAEjCM,QAAAA;KACG,CAET,eACDW,cAAA,CAAA,MAAA,EAAA;MAAMlB,SAAS,EAAEe,aAAM,CAACO,OAAQ;MAAC,aAAaZ,EAAAA,UAAU,EAAEY,OAAQ;AAAArB,MAAAA,QAAA,EAC/DA,QAAAA;KACG,CAAC,EACN,CAACI,OAAO,IAAIG,SAAS,IAAI,IAAI,gBAC5BU,cAAA,CAAA,MAAA,EAAA;MACElB,SAAS,EAAEe,aAAM,CAACM,IAAK;AACvB,MAAA,aAAA,EAAY,MAAM;MAClB,aAAaX,EAAAA,UAAU,EAAEF,SAAU;AAAAP,MAAAA,QAAA,EAElCO,SAAAA;AAAS,KACN,CAAC,GACL,IAAI,eACRU,cAAA,CAACK,uBAAW,EAAA;MAACb,UAAU,EAAEA,UAAU,EAAED,OAAQ;AAAAR,MAAAA,QAAA,EAAEQ,OAAAA;AAAO,KAAc,CAAC,CAAA;AAAA,GAC/D,CAAC,CAAA;AAAA,CAEb,EAAC;AAEDb,MAAM,CAAC4B,WAAW,GAAG,QAAQ;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const styles = {"counter":"Counter-module_counter__qutVl","neutral":"Counter-module_neutral__Z5iCI","error":"Counter-module_error__srNOJ","warning":"Counter-module_warning__5OY4o","action":"Counter-module_action__ywkeX","active":"Counter-module_active__AZ4oD"};
|
|
3
|
+
const styles = {"counter":"Counter-module_counter__qutVl","neutral":"Counter-module_neutral__Z5iCI","default":"Counter-module_default__W0-pw","error":"Counter-module_error__srNOJ","warning":"Counter-module_warning__5OY4o","action":"Counter-module_action__ywkeX","active":"Counter-module_active__AZ4oD"};
|
|
4
4
|
|
|
5
5
|
module.exports = styles;
|
|
6
6
|
//# sourceMappingURL=Counter.module.css.cjs.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const CounterSlot_module = require('./CounterSlot.module.css.cjs');
|
|
6
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
const CounterSlot = _ref => {
|
|
9
|
+
let {
|
|
10
|
+
children,
|
|
11
|
+
dataTestId
|
|
12
|
+
} = _ref;
|
|
13
|
+
return children == null || children === false ? null : /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
14
|
+
className: CounterSlot_module.slot,
|
|
15
|
+
"aria-hidden": "true",
|
|
16
|
+
"data-testid": dataTestId,
|
|
17
|
+
children: children
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.CounterSlot = CounterSlot;
|
|
22
|
+
//# sourceMappingURL=CounterSlot.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CounterSlot.cjs","sources":["../../../src/counter/CounterSlot.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nimport styles from './CounterSlot.module.css'\n\ntype CounterSlotProps = {\n children?: ReactNode\n dataTestId?: string\n}\n\nexport const CounterSlot = ({ children, dataTestId }: CounterSlotProps) =>\n children == null || children === false ? null : (\n <span className={styles.slot} aria-hidden='true' data-testid={dataTestId}>\n {children}\n </span>\n )\n"],"names":["CounterSlot","_ref","children","dataTestId","_jsx","className","styles","slot"],"mappings":";;;;;;;AASO,MAAMA,WAAW,GAAGC,IAAA,IAAA;EAAA,IAAC;IAAEC,QAAQ;AAAEC,IAAAA,UAAAA;AAA6B,GAAC,GAAAF,IAAA,CAAA;EAAA,OACpEC,QAAQ,IAAI,IAAI,IAAIA,QAAQ,KAAK,KAAK,GAAG,IAAI,gBAC3CE,cAAA,CAAA,MAAA,EAAA;IAAMC,SAAS,EAAEC,kBAAM,CAACC,IAAK;AAAC,IAAA,aAAA,EAAY,MAAM;AAAC,IAAA,aAAA,EAAaJ,UAAW;AAAAD,IAAAA,QAAA,EACtEA,QAAAA;AAAQ,GACL,CACP,CAAA;AAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CounterSlot.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const cn = require('classnames');
|
|
6
|
+
const Disclaimer_module = require('./Disclaimer.module.css.cjs');
|
|
7
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
const TextLink = require('../text-link/TextLink.cjs');
|
|
9
|
+
|
|
10
|
+
const defaultContent = /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
11
|
+
children: ["Your privacy matters. We use cookieless analytics and collect only anonymized data for improvements. Cookies are used for functionality only. For more info read", ' ', /*#__PURE__*/jsxRuntime.jsx(TextLink.TextLink, {
|
|
12
|
+
href: "https://lido.fi/privacy-notice",
|
|
13
|
+
external: true,
|
|
14
|
+
children: "Privacy Notice"
|
|
15
|
+
}), "."]
|
|
16
|
+
});
|
|
17
|
+
const Disclaimer = _ref => {
|
|
18
|
+
let {
|
|
19
|
+
className,
|
|
20
|
+
children = defaultContent,
|
|
21
|
+
dataTestId,
|
|
22
|
+
...rest
|
|
23
|
+
} = _ref;
|
|
24
|
+
return /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
25
|
+
className: cn(Disclaimer_module.root, className),
|
|
26
|
+
"data-testid": dataTestId?.root,
|
|
27
|
+
...rest,
|
|
28
|
+
children: children
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
exports.Disclaimer = Disclaimer;
|
|
33
|
+
//# sourceMappingURL=Disclaimer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Disclaimer.cjs","sources":["../../../src/disclaimer/Disclaimer.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react'\n\nimport cn from 'classnames'\n\nimport { TextLink } from '../text-link'\nimport styles from './Disclaimer.module.css'\n\nexport type DisclaimerDataTestId = {\n root?: string\n}\n\nexport type DisclaimerProps = ComponentPropsWithoutRef<'p'> & {\n dataTestId?: DisclaimerDataTestId\n}\n\nconst defaultContent = (\n <>\n Your privacy matters. We use cookieless analytics and collect only\n anonymized data for improvements. Cookies are used for functionality only.\n For more info read{' '}\n <TextLink href='https://lido.fi/privacy-notice' external>\n Privacy Notice\n </TextLink>\n .\n </>\n)\n\nexport const Disclaimer = ({\n className,\n children = defaultContent,\n dataTestId,\n ...rest\n}: DisclaimerProps) => (\n <p\n className={cn(styles.root, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n {children}\n </p>\n)\n"],"names":["defaultContent","_jsxs","_Fragment","children","_jsx","TextLink","href","external","Disclaimer","_ref","className","dataTestId","rest","cn","styles","root"],"mappings":";;;;;;;;;AAeA,MAAMA,cAAc,gBAClBC,eAAA,CAAAC,mBAAA,EAAA;AAAAC,EAAAA,QAAA,GAAE,kKAGkB,EAAC,GAAG,eACtBC,cAAA,CAACC,iBAAQ,EAAA;AAACC,IAAAA,IAAI,EAAC,gCAAgC;IAACC,QAAQ,EAAA,IAAA;AAAAJ,IAAAA,QAAA,EAAC,gBAAA;AAEzD,GAAU,CAAC,EAEb,GAAA,CAAA;AAAA,CAAE,CACH,CAAA;AAEM,MAAMK,UAAU,GAAGC,IAAA,IAAA;EAAA,IAAC;IACzBC,SAAS;AACTP,IAAAA,QAAQ,GAAGH,cAAc;IACzBW,UAAU;IACV,GAAGC,IAAAA;AACY,GAAC,GAAAH,IAAA,CAAA;AAAA,EAAA,oBAChBL,cAAA,CAAA,GAAA,EAAA;IACEM,SAAS,EAAEG,EAAE,CAACC,iBAAM,CAACC,IAAI,EAAEL,SAAS,CAAE;IACtC,aAAaC,EAAAA,UAAU,EAAEI,IAAK;AAAA,IAAA,GAC1BH,IAAI;AAAAT,IAAAA,QAAA,EAEPA,QAAAA;AAAQ,GACR,CAAC,CAAA;AAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Disclaimer.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const react = require('react');
|
|
6
|
+
const cn = require('classnames');
|
|
7
|
+
const Divider_module = require('./Divider.module.css.cjs');
|
|
8
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
|
|
10
|
+
/** Visual-only 1px line in the default border color; stretches along the cross axis of a flex parent. Pass role='separator' for semantics. */
|
|
11
|
+
const Divider = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
12
|
+
let {
|
|
13
|
+
orientation = 'horizontal',
|
|
14
|
+
className,
|
|
15
|
+
...rest
|
|
16
|
+
} = _ref;
|
|
17
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
18
|
+
ref: ref,
|
|
19
|
+
className: cn(Divider_module.root, Divider_module[orientation], className),
|
|
20
|
+
...rest
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
Divider.displayName = 'Divider';
|
|
24
|
+
|
|
25
|
+
exports.Divider = Divider;
|
|
26
|
+
//# sourceMappingURL=Divider.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Divider.cjs","sources":["../../../src/divider/Divider.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Divider.module.css'\n\nexport type DividerOrientation = 'horizontal' | 'vertical'\n\nexport type DividerProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {\n orientation?: DividerOrientation\n}\n\n/** Visual-only 1px line in the default border color; stretches along the cross axis of a flex parent. Pass role='separator' for semantics. */\nexport const Divider = forwardRef<HTMLDivElement, DividerProps>(\n ({ orientation = 'horizontal', className, ...rest }, ref) => (\n <div\n ref={ref}\n className={cn(styles.root, styles[orientation], className)}\n {...rest}\n />\n ),\n)\n\nDivider.displayName = 'Divider'\n"],"names":["Divider","forwardRef","_ref","ref","orientation","className","rest","_jsx","cn","styles","root","displayName"],"mappings":";;;;;;;;;AAYA;AACO,MAAMA,OAAO,gBAAGC,gBAAU,CAC/B,CAAAC,IAAA,EAAqDC,GAAG,KAAA;EAAA,IAAvD;AAAEC,IAAAA,WAAW,GAAG,YAAY;IAAEC,SAAS;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAAJ,IAAA,CAAA;AAAA,EAAA,oBACjDK,cAAA,CAAA,KAAA,EAAA;AACEJ,IAAAA,GAAG,EAAEA,GAAI;AACTE,IAAAA,SAAS,EAAEG,EAAE,CAACC,cAAM,CAACC,IAAI,EAAED,cAAM,CAACL,WAAW,CAAC,EAAEC,SAAS,CAAE;IAAA,GACvDC,IAAAA;AAAI,GACT,CAAC,CAAA;AAAA,CAEN,EAAC;AAEDN,OAAO,CAACW,WAAW,GAAG,SAAS;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Divider.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const cn = require('classnames');
|
|
6
|
+
const ErrorPage_module = require('./ErrorPage.module.css.cjs');
|
|
7
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
|
|
9
|
+
const presets = {
|
|
10
|
+
'404': {
|
|
11
|
+
title: 'Page not found',
|
|
12
|
+
description: 'The page you’re looking for doesn’t exist or has been moved. Check the URL or return to your dashboard.'
|
|
13
|
+
},
|
|
14
|
+
'500': {
|
|
15
|
+
title: 'Something went wrong',
|
|
16
|
+
description: 'We’re having trouble loading this page. Please try again in a moment.'
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const isPresetCode = code => code === '404' || code === '500';
|
|
20
|
+
const ErrorPage = _ref => {
|
|
21
|
+
let {
|
|
22
|
+
code,
|
|
23
|
+
title,
|
|
24
|
+
description,
|
|
25
|
+
action,
|
|
26
|
+
className,
|
|
27
|
+
dataTestId,
|
|
28
|
+
...rest
|
|
29
|
+
} = _ref;
|
|
30
|
+
const preset = isPresetCode(code) ? presets[code] : undefined;
|
|
31
|
+
const resolvedTitle = title !== undefined ? title : preset?.title;
|
|
32
|
+
const resolvedDescription = description !== undefined ? description : preset?.description;
|
|
33
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
34
|
+
className: cn(ErrorPage_module.root, className),
|
|
35
|
+
"data-testid": dataTestId?.root,
|
|
36
|
+
...rest,
|
|
37
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
38
|
+
className: ErrorPage_module.inner,
|
|
39
|
+
children: [code != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
40
|
+
className: ErrorPage_module.code,
|
|
41
|
+
"data-testid": dataTestId?.code,
|
|
42
|
+
children: code
|
|
43
|
+
}) : null, /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
44
|
+
className: ErrorPage_module.text,
|
|
45
|
+
children: [resolvedTitle != null ? /*#__PURE__*/jsxRuntime.jsx("h1", {
|
|
46
|
+
className: ErrorPage_module.title,
|
|
47
|
+
"data-testid": dataTestId?.title,
|
|
48
|
+
children: resolvedTitle
|
|
49
|
+
}) : null, resolvedDescription != null ? /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
50
|
+
className: ErrorPage_module.description,
|
|
51
|
+
"data-testid": dataTestId?.description,
|
|
52
|
+
children: resolvedDescription
|
|
53
|
+
}) : null]
|
|
54
|
+
}), action != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
55
|
+
className: ErrorPage_module.action,
|
|
56
|
+
"data-testid": dataTestId?.action,
|
|
57
|
+
children: action
|
|
58
|
+
}) : null]
|
|
59
|
+
})
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
exports.ErrorPage = ErrorPage;
|
|
64
|
+
//# sourceMappingURL=ErrorPage.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorPage.cjs","sources":["../../../src/error-page/ErrorPage.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './ErrorPage.module.css'\n\nexport type ErrorPageCode = '404' | '500'\n\nexport type ErrorPageDataTestId = {\n root?: string\n code?: string\n title?: string\n description?: string\n action?: string\n}\n\nexport type ErrorPageProps = Omit<HTMLAttributes<HTMLDivElement>, 'title'> & {\n /** `'404'` / `'500'` fill default title and description. */\n code?: ErrorPageCode | (string & {})\n title?: ReactNode\n description?: ReactNode\n /** Slot below the text, usually a `Button`. */\n action?: ReactNode\n dataTestId?: ErrorPageDataTestId\n}\n\nconst presets: Record<ErrorPageCode, { title: string; description: string }> = {\n '404': {\n title: 'Page not found',\n description:\n 'The page you’re looking for doesn’t exist or has been moved. Check the URL or return to your dashboard.',\n },\n '500': {\n title: 'Something went wrong',\n description:\n 'We’re having trouble loading this page. Please try again in a moment.',\n },\n}\n\nconst isPresetCode = (code?: string): code is ErrorPageCode =>\n code === '404' || code === '500'\n\nexport const ErrorPage = ({\n code,\n title,\n description,\n action,\n className,\n dataTestId,\n ...rest\n}: ErrorPageProps) => {\n const preset = isPresetCode(code) ? presets[code] : undefined\n const resolvedTitle = title !== undefined ? title : preset?.title\n const resolvedDescription =\n description !== undefined ? description : preset?.description\n\n return (\n <div\n className={cn(styles.root, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <div className={styles.inner}>\n {code != null ? (\n <div className={styles.code} data-testid={dataTestId?.code}>\n {code}\n </div>\n ) : null}\n <div className={styles.text}>\n {resolvedTitle != null ? (\n <h1 className={styles.title} data-testid={dataTestId?.title}>\n {resolvedTitle}\n </h1>\n ) : null}\n {resolvedDescription != null ? (\n <p\n className={styles.description}\n data-testid={dataTestId?.description}\n >\n {resolvedDescription}\n </p>\n ) : null}\n </div>\n {action != null ? (\n <div className={styles.action} data-testid={dataTestId?.action}>\n {action}\n </div>\n ) : null}\n </div>\n </div>\n )\n}\n"],"names":["presets","title","description","isPresetCode","code","ErrorPage","_ref","action","className","dataTestId","rest","preset","undefined","resolvedTitle","resolvedDescription","_jsx","cn","styles","root","children","_jsxs","inner","text"],"mappings":";;;;;;;;AA0BA,MAAMA,OAAsE,GAAG;AAC7E,EAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAE,gBAAgB;AACvBC,IAAAA,WAAW,EACT,yGAAA;GACH;AACD,EAAA,KAAK,EAAE;AACLD,IAAAA,KAAK,EAAE,sBAAsB;AAC7BC,IAAAA,WAAW,EACT,uEAAA;AACJ,GAAA;AACF,CAAC,CAAA;AAED,MAAMC,YAAY,GAAIC,IAAa,IACjCA,IAAI,KAAK,KAAK,IAAIA,IAAI,KAAK,KAAK,CAAA;AAErBC,MAAAA,SAAS,GAAGC,IAAA,IAQH;EAAA,IARI;IACxBF,IAAI;IACJH,KAAK;IACLC,WAAW;IACXK,MAAM;IACNC,SAAS;IACTC,UAAU;IACV,GAAGC,IAAAA;AACW,GAAC,GAAAJ,IAAA,CAAA;AACf,EAAA,MAAMK,MAAM,GAAGR,YAAY,CAACC,IAAI,CAAC,GAAGJ,OAAO,CAACI,IAAI,CAAC,GAAGQ,SAAS,CAAA;EAC7D,MAAMC,aAAa,GAAGZ,KAAK,KAAKW,SAAS,GAAGX,KAAK,GAAGU,MAAM,EAAEV,KAAK,CAAA;EACjE,MAAMa,mBAAmB,GACvBZ,WAAW,KAAKU,SAAS,GAAGV,WAAW,GAAGS,MAAM,EAAET,WAAW,CAAA;AAE/D,EAAA,oBACEa,cAAA,CAAA,KAAA,EAAA;IACEP,SAAS,EAAEQ,EAAE,CAACC,gBAAM,CAACC,IAAI,EAAEV,SAAS,CAAE;IACtC,aAAaC,EAAAA,UAAU,EAAES,IAAK;AAAA,IAAA,GAC1BR,IAAI;AAAAS,IAAAA,QAAA,eAERC,eAAA,CAAA,KAAA,EAAA;MAAKZ,SAAS,EAAES,gBAAM,CAACI,KAAM;AAAAF,MAAAA,QAAA,EAC1Bf,CAAAA,IAAI,IAAI,IAAI,gBACXW,cAAA,CAAA,KAAA,EAAA;QAAKP,SAAS,EAAES,gBAAM,CAACb,IAAK;QAAC,aAAaK,EAAAA,UAAU,EAAEL,IAAK;AAAAe,QAAAA,QAAA,EACxDf,IAAAA;AAAI,OACF,CAAC,GACJ,IAAI,eACRgB,eAAA,CAAA,KAAA,EAAA;QAAKZ,SAAS,EAAES,gBAAM,CAACK,IAAK;AAAAH,QAAAA,QAAA,EACzBN,CAAAA,aAAa,IAAI,IAAI,gBACpBE,cAAA,CAAA,IAAA,EAAA;UAAIP,SAAS,EAAES,gBAAM,CAAChB,KAAM;UAAC,aAAaQ,EAAAA,UAAU,EAAER,KAAM;AAAAkB,UAAAA,QAAA,EACzDN,aAAAA;SACC,CAAC,GACH,IAAI,EACPC,mBAAmB,IAAI,IAAI,gBAC1BC,cAAA,CAAA,GAAA,EAAA;UACEP,SAAS,EAAES,gBAAM,CAACf,WAAY;UAC9B,aAAaO,EAAAA,UAAU,EAAEP,WAAY;AAAAiB,UAAAA,QAAA,EAEpCL,mBAAAA;SACA,CAAC,GACF,IAAI,CAAA;AAAA,OACL,CAAC,EACLP,MAAM,IAAI,IAAI,gBACbQ,cAAA,CAAA,KAAA,EAAA;QAAKP,SAAS,EAAES,gBAAM,CAACV,MAAO;QAAC,aAAaE,EAAAA,UAAU,EAAEF,MAAO;AAAAY,QAAAA,QAAA,EAC5DZ,MAAAA;OACE,CAAC,GACJ,IAAI,CAAA;KACL,CAAA;AAAC,GACH,CAAC,CAAA;AAEV;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const styles = {"root":"ErrorPage-module_root__sdAsZ","inner":"ErrorPage-module_inner__rf3pT","code":"ErrorPage-module_code__sXtwL","text":"ErrorPage-module_text__SIHr-","title":"ErrorPage-module_title__1gYNN","description":"ErrorPage-module_description__VILdD","action":"ErrorPage-module_action__euwDk"};
|
|
4
|
+
|
|
5
|
+
module.exports = styles;
|
|
6
|
+
//# sourceMappingURL=ErrorPage.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorPage.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const cn = require('classnames');
|
|
6
|
+
const Footer_module = require('./Footer.module.css.cjs');
|
|
7
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
|
|
9
|
+
const Footer = _ref => {
|
|
10
|
+
let {
|
|
11
|
+
children,
|
|
12
|
+
aside,
|
|
13
|
+
className,
|
|
14
|
+
...rest
|
|
15
|
+
} = _ref;
|
|
16
|
+
return /*#__PURE__*/jsxRuntime.jsxs("footer", {
|
|
17
|
+
className: cn(Footer_module.footer, className),
|
|
18
|
+
...rest,
|
|
19
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
20
|
+
className: Footer_module.content,
|
|
21
|
+
children: children
|
|
22
|
+
}), aside != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
23
|
+
className: Footer_module.aside,
|
|
24
|
+
children: aside
|
|
25
|
+
}) : null]
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.Footer = Footer;
|
|
30
|
+
//# sourceMappingURL=Footer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Footer.cjs","sources":["../../../src/footer/Footer.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Footer.module.css'\n\nexport type FooterProps = ComponentPropsWithoutRef<'footer'> & {\n /** Right slot, e.g. version tag. */\n aside?: ReactNode\n}\n\nexport const Footer = ({\n children,\n aside,\n className,\n ...rest\n}: FooterProps) => (\n <footer className={cn(styles.footer, className)} {...rest}>\n <div className={styles.content}>{children}</div>\n {aside != null ? <div className={styles.aside}>{aside}</div> : null}\n </footer>\n)\n"],"names":["Footer","_ref","children","aside","className","rest","_jsxs","cn","styles","footer","_jsx","content"],"mappings":";;;;;;;;AAWO,MAAMA,MAAM,GAAGC,IAAA,IAAA;EAAA,IAAC;IACrBC,QAAQ;IACRC,KAAK;IACLC,SAAS;IACT,GAAGC,IAAAA;AACQ,GAAC,GAAAJ,IAAA,CAAA;AAAA,EAAA,oBACZK,eAAA,CAAA,QAAA,EAAA;IAAQF,SAAS,EAAEG,EAAE,CAACC,aAAM,CAACC,MAAM,EAAEL,SAAS,CAAE;AAAA,IAAA,GAAKC,IAAI;AAAAH,IAAAA,QAAA,gBACvDQ,cAAA,CAAA,KAAA,EAAA;MAAKN,SAAS,EAAEI,aAAM,CAACG,OAAQ;AAAAT,MAAAA,QAAA,EAAEA,QAAAA;AAAQ,KAAM,CAAC,EAC/CC,KAAK,IAAI,IAAI,gBAAGO,cAAA,CAAA,KAAA,EAAA;MAAKN,SAAS,EAAEI,aAAM,CAACL,KAAM;AAAAD,MAAAA,QAAA,EAAEC,KAAAA;KAAW,CAAC,GAAG,IAAI,CAAA;AAAA,GAC7D,CAAC,CAAA;AAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Footer.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const react = require('react');
|
|
6
|
+
const cn = require('classnames');
|
|
7
|
+
const Grid_module = require('./Grid.module.css.cjs');
|
|
8
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
const responsive = require('../utils/responsive.cjs');
|
|
10
|
+
|
|
11
|
+
const columnsToCss = columns => typeof columns === 'number' ? `repeat(${columns}, minmax(0, 1fr))` : columns;
|
|
12
|
+
|
|
13
|
+
/** CSS grid container with equal, templated or auto-fit columns and a spacing scale. */
|
|
14
|
+
const Grid = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
15
|
+
let {
|
|
16
|
+
as: Component = 'div',
|
|
17
|
+
columns,
|
|
18
|
+
minItemWidth,
|
|
19
|
+
gap,
|
|
20
|
+
rowGap,
|
|
21
|
+
columnGap,
|
|
22
|
+
align,
|
|
23
|
+
className,
|
|
24
|
+
style,
|
|
25
|
+
...rest
|
|
26
|
+
} = _ref;
|
|
27
|
+
const minWidth = typeof minItemWidth === 'number' ? `${minItemWidth}px` : minItemWidth;
|
|
28
|
+
const template = minItemWidth !== undefined ? `repeat(auto-fit, minmax(min(${minWidth}, 100%), 1fr))` : columns;
|
|
29
|
+
const vars = {
|
|
30
|
+
...responsive.responsiveVars('columns', template, columnsToCss),
|
|
31
|
+
...responsive.responsiveVars('rowGap', responsive.mergeResponsive(gap, rowGap), responsive.spaceToCss),
|
|
32
|
+
...responsive.responsiveVars('columnGap', responsive.mergeResponsive(gap, columnGap), responsive.spaceToCss)
|
|
33
|
+
};
|
|
34
|
+
return /*#__PURE__*/jsxRuntime.jsx(Component, {
|
|
35
|
+
ref: ref,
|
|
36
|
+
className: cn(Grid_module.root, align && Grid_module[`align${responsive.capitalize(align)}`], className),
|
|
37
|
+
style: {
|
|
38
|
+
...vars,
|
|
39
|
+
...style
|
|
40
|
+
},
|
|
41
|
+
...rest
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
Grid.displayName = 'Grid';
|
|
45
|
+
|
|
46
|
+
exports.Grid = Grid;
|
|
47
|
+
//# sourceMappingURL=Grid.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Grid.cjs","sources":["../../../src/grid/Grid.tsx"],"sourcesContent":["import { forwardRef, type ElementType, type HTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport {\n capitalize,\n mergeResponsive,\n responsiveVars,\n spaceToCss,\n type Responsive,\n type Space,\n} from '../utils'\nimport styles from './Grid.module.css'\n\nexport type GridAlign = 'start' | 'center' | 'end' | 'stretch'\n\nexport type GridProps = HTMLAttributes<HTMLElement> & {\n as?: ElementType\n /** A number makes equal columns; a string is used as raw `grid-template-columns`. */\n columns?: Responsive<number | string>\n /** Auto-fit columns of at least this width (number = px). Takes precedence over `columns`. */\n minItemWidth?: number | string\n gap?: Responsive<Space>\n /** Overrides `gap` for rows, per breakpoint. */\n rowGap?: Responsive<Space>\n /** Overrides `gap` for columns, per breakpoint. */\n columnGap?: Responsive<Space>\n align?: GridAlign\n}\n\nconst columnsToCss = (columns: number | string) =>\n typeof columns === 'number' ? `repeat(${columns}, minmax(0, 1fr))` : columns\n\n/** CSS grid container with equal, templated or auto-fit columns and a spacing scale. */\nexport const Grid = forwardRef<HTMLElement, GridProps>(\n (\n {\n as: Component = 'div',\n columns,\n minItemWidth,\n gap,\n rowGap,\n columnGap,\n align,\n className,\n style,\n ...rest\n },\n ref,\n ) => {\n const minWidth =\n typeof minItemWidth === 'number' ? `${minItemWidth}px` : minItemWidth\n const template =\n minItemWidth !== undefined\n ? `repeat(auto-fit, minmax(min(${minWidth}, 100%), 1fr))`\n : columns\n\n const vars = {\n ...responsiveVars('columns', template, columnsToCss),\n ...responsiveVars('rowGap', mergeResponsive(gap, rowGap), spaceToCss),\n ...responsiveVars(\n 'columnGap',\n mergeResponsive(gap, columnGap),\n spaceToCss,\n ),\n }\n\n return (\n <Component\n ref={ref}\n className={cn(\n styles.root,\n align && styles[`align${capitalize(align)}`],\n className,\n )}\n style={{ ...vars, ...style }}\n {...rest}\n />\n )\n },\n)\n\nGrid.displayName = 'Grid'\n"],"names":["columnsToCss","columns","Grid","forwardRef","_ref","ref","as","Component","minItemWidth","gap","rowGap","columnGap","align","className","style","rest","minWidth","template","undefined","vars","responsiveVars","mergeResponsive","spaceToCss","_jsx","cn","styles","root","capitalize","displayName"],"mappings":";;;;;;;;;;AA8BA,MAAMA,YAAY,GAAIC,OAAwB,IAC5C,OAAOA,OAAO,KAAK,QAAQ,GAAG,CAAA,OAAA,EAAUA,OAAO,CAAA,iBAAA,CAAmB,GAAGA,OAAO,CAAA;;AAE9E;AACO,MAAMC,IAAI,gBAAGC,gBAAU,CAC5B,CAAAC,IAAA,EAaEC,GAAG,KACA;EAAA,IAbH;IACEC,EAAE,EAAEC,SAAS,GAAG,KAAK;IACrBN,OAAO;IACPO,YAAY;IACZC,GAAG;IACHC,MAAM;IACNC,SAAS;IACTC,KAAK;IACLC,SAAS;IACTC,KAAK;IACL,GAAGC,IAAAA;AACL,GAAC,GAAAX,IAAA,CAAA;EAGD,MAAMY,QAAQ,GACZ,OAAOR,YAAY,KAAK,QAAQ,GAAG,CAAGA,EAAAA,YAAY,CAAI,EAAA,CAAA,GAAGA,YAAY,CAAA;EACvE,MAAMS,QAAQ,GACZT,YAAY,KAAKU,SAAS,GACtB,CAA+BF,4BAAAA,EAAAA,QAAQ,CAAgB,cAAA,CAAA,GACvDf,OAAO,CAAA;AAEb,EAAA,MAAMkB,IAAI,GAAG;AACX,IAAA,GAAGC,yBAAc,CAAC,SAAS,EAAEH,QAAQ,EAAEjB,YAAY,CAAC;AACpD,IAAA,GAAGoB,yBAAc,CAAC,QAAQ,EAAEC,0BAAe,CAACZ,GAAG,EAAEC,MAAM,CAAC,EAAEY,qBAAU,CAAC;IACrE,GAAGF,yBAAc,CACf,WAAW,EACXC,0BAAe,CAACZ,GAAG,EAAEE,SAAS,CAAC,EAC/BW,qBACF,CAAA;GACD,CAAA;EAED,oBACEC,cAAA,CAAChB,SAAS,EAAA;AACRF,IAAAA,GAAG,EAAEA,GAAI;IACTQ,SAAS,EAAEW,EAAE,CACXC,WAAM,CAACC,IAAI,EACXd,KAAK,IAAIa,WAAM,CAAC,CAAQE,KAAAA,EAAAA,qBAAU,CAACf,KAAK,CAAC,EAAE,CAAC,EAC5CC,SACF,CAAE;AACFC,IAAAA,KAAK,EAAE;AAAE,MAAA,GAAGK,IAAI;MAAE,GAAGL,KAAAA;KAAQ;IAAA,GACzBC,IAAAA;AAAI,GACT,CAAC,CAAA;AAEN,CACF,EAAC;AAEDb,IAAI,CAAC0B,WAAW,GAAG,MAAM;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const styles = {"root":"Grid-module_root__WQ5eA","alignStart":"Grid-module_alignStart__tJzED","alignCenter":"Grid-module_alignCenter__Br-nr","alignEnd":"Grid-module_alignEnd__oWTV-","alignStretch":"Grid-module_alignStretch__v1rgi"};
|
|
4
|
+
|
|
5
|
+
module.exports = styles;
|
|
6
|
+
//# sourceMappingURL=Grid.module.css.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Grid.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|