@lidofinance/lido-app-ui 1.13.0 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -19
- package/dist/README.md +85 -19
- package/dist/cjs/accordion/Accordion.cjs +1 -0
- package/dist/cjs/accordion/Accordion.cjs.map +1 -1
- package/dist/cjs/badge/Badge.cjs +1 -0
- package/dist/cjs/badge/Badge.cjs.map +1 -1
- package/dist/cjs/banner/Banner.cjs +1 -0
- package/dist/cjs/banner/Banner.cjs.map +1 -1
- package/dist/cjs/breadcrumbs/Breadcrumbs.cjs +55 -26
- 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 +14 -23
- package/dist/cjs/button/Button.cjs.map +1 -1
- package/dist/cjs/button/ButtonContent.cjs +50 -0
- package/dist/cjs/button/ButtonContent.cjs.map +1 -0
- package/dist/cjs/button/LinkButton.cjs +46 -0
- package/dist/cjs/button/LinkButton.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 +1 -0
- package/dist/cjs/checkbox/Checkbox.cjs.map +1 -1
- package/dist/cjs/counter/Counter.cjs +6 -2
- package/dist/cjs/counter/Counter.cjs.map +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 -3
- package/dist/cjs/disclaimer/Disclaimer.cjs.map +1 -1
- package/dist/cjs/divider/Divider.cjs +5 -0
- package/dist/cjs/divider/Divider.cjs.map +1 -1
- package/dist/cjs/error-page/ErrorPage.cjs +14 -7
- package/dist/cjs/error-page/ErrorPage.cjs.map +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 +33 -21
- 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/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/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/useFocusTrap.cjs +61 -24
- package/dist/cjs/hooks/useFocusTrap.cjs.map +1 -1
- package/dist/cjs/hooks/useHideOthers.cjs +51 -0
- package/dist/cjs/hooks/useHideOthers.cjs.map +1 -0
- package/dist/cjs/hooks/useOutsideClick.cjs +31 -4
- package/dist/cjs/hooks/useOutsideClick.cjs.map +1 -1
- package/dist/cjs/icon-button/IconButton.cjs +4 -0
- package/dist/cjs/icon-button/IconButton.cjs.map +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 +32 -4
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.css +12 -4
- package/dist/cjs/input/Input.cjs +1 -0
- package/dist/cjs/input/Input.cjs.map +1 -1
- package/dist/cjs/link-provider/Anchor.cjs +23 -2
- 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 +71 -9
- package/dist/cjs/modal/Modal.cjs.map +1 -1
- package/dist/cjs/nav-link/NavLink.cjs +6 -4
- package/dist/cjs/nav-link/NavLink.cjs.map +1 -1
- package/dist/cjs/notification/Notification.cjs +12 -6
- package/dist/cjs/notification/Notification.cjs.map +1 -1
- package/dist/cjs/page-layout/Layout.cjs +25 -0
- package/dist/cjs/page-layout/Layout.cjs.map +1 -0
- package/dist/cjs/page-layout/Layout.module.css.cjs +6 -0
- package/dist/cjs/page-layout/Layout.module.css.cjs.map +1 -0
- package/dist/cjs/page-layout/Main.cjs +29 -0
- package/dist/cjs/page-layout/Main.cjs.map +1 -0
- package/dist/cjs/page-layout/Main.module.css.cjs +6 -0
- package/dist/cjs/page-layout/Main.module.css.cjs.map +1 -0
- package/dist/cjs/page-layout/PageContent.cjs +22 -0
- package/dist/cjs/page-layout/PageContent.cjs.map +1 -0
- package/dist/cjs/page-layout/PageContent.module.css.cjs +6 -0
- package/dist/cjs/page-layout/PageContent.module.css.cjs.map +1 -0
- package/dist/cjs/pagination/Pagination.cjs +11 -6
- package/dist/cjs/pagination/Pagination.cjs.map +1 -1
- package/dist/cjs/popover/Popover.cjs +71 -15
- package/dist/cjs/popover/Popover.cjs.map +1 -1
- package/dist/cjs/radio-button/RadioButton.cjs +1 -0
- package/dist/cjs/radio-button/RadioButton.cjs.map +1 -1
- package/dist/cjs/rich-input/RichInput.cjs +18 -39
- 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 +1 -0
- package/dist/cjs/segmented-control/SegmentedControl.cjs.map +1 -1
- package/dist/cjs/segmented-control/SegmentedControlCard.cjs +1 -0
- package/dist/cjs/segmented-control/SegmentedControlCard.cjs.map +1 -1
- package/dist/cjs/sidebar/Sidebar.cjs +11 -4
- 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/skip-link/SkipLink.cjs +52 -0
- package/dist/cjs/skip-link/SkipLink.cjs.map +1 -0
- package/dist/cjs/skip-link/SkipLink.module.css.cjs +6 -0
- package/dist/cjs/skip-link/SkipLink.module.css.cjs.map +1 -0
- 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/stack/Stack.cjs +27 -7
- package/dist/cjs/stack/Stack.cjs.map +1 -1
- package/dist/cjs/stack/Stack.module.css.cjs +1 -1
- package/dist/cjs/stat-item/StatItem.cjs +1 -0
- package/dist/cjs/stat-item/StatItem.cjs.map +1 -1
- package/dist/cjs/switch/Switch.cjs +1 -0
- package/dist/cjs/switch/Switch.cjs.map +1 -1
- package/dist/cjs/tabs/Tabs.cjs +1 -0
- package/dist/cjs/tabs/Tabs.cjs.map +1 -1
- package/dist/cjs/tag/Tag.cjs +73 -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 +10 -13
- package/dist/cjs/text-link/TextLink.cjs.map +1 -1
- package/dist/cjs/text-link/TextLink.module.css.cjs +1 -1
- 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/token-amount/TokenAmount.cjs +1 -0
- package/dist/cjs/token-amount/TokenAmount.cjs.map +1 -1
- package/dist/cjs/token-selector/TokenSelector.cjs +56 -64
- package/dist/cjs/token-selector/TokenSelector.cjs.map +1 -1
- package/dist/cjs/tooltip/Tooltip.cjs +42 -27
- package/dist/cjs/tooltip/Tooltip.cjs.map +1 -1
- package/dist/cjs/tx-status/TxStatus.cjs +2 -0
- package/dist/cjs/tx-status/TxStatus.cjs.map +1 -1
- package/dist/cjs/typography/Typography.cjs +2 -0
- package/dist/cjs/typography/Typography.cjs.map +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 +26 -0
- package/dist/cjs/utils/breakpoints.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 +1 -0
- package/dist/esm/accordion/Accordion.mjs.map +1 -1
- package/dist/esm/badge/Badge.mjs +1 -0
- package/dist/esm/badge/Badge.mjs.map +1 -1
- package/dist/esm/banner/Banner.mjs +1 -0
- package/dist/esm/banner/Banner.mjs.map +1 -1
- package/dist/esm/breadcrumbs/Breadcrumbs.mjs +56 -27
- 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 +15 -24
- package/dist/esm/button/Button.mjs.map +1 -1
- package/dist/esm/button/ButtonContent.mjs +45 -0
- package/dist/esm/button/ButtonContent.mjs.map +1 -0
- package/dist/esm/button/LinkButton.mjs +42 -0
- package/dist/esm/button/LinkButton.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 +1 -0
- package/dist/esm/checkbox/Checkbox.mjs.map +1 -1
- package/dist/esm/counter/Counter.mjs +6 -2
- package/dist/esm/counter/Counter.mjs.map +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 -3
- package/dist/esm/disclaimer/Disclaimer.mjs.map +1 -1
- package/dist/esm/divider/Divider.mjs +5 -0
- package/dist/esm/divider/Divider.mjs.map +1 -1
- package/dist/esm/error-page/ErrorPage.mjs +14 -7
- package/dist/esm/error-page/ErrorPage.mjs.map +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 +34 -22
- 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/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/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/useFocusTrap.mjs +61 -24
- package/dist/esm/hooks/useFocusTrap.mjs.map +1 -1
- package/dist/esm/hooks/useHideOthers.mjs +47 -0
- package/dist/esm/hooks/useHideOthers.mjs.map +1 -0
- package/dist/esm/hooks/useOutsideClick.mjs +31 -4
- package/dist/esm/hooks/useOutsideClick.mjs.map +1 -1
- package/dist/esm/icon-button/IconButton.mjs +4 -0
- package/dist/esm/icon-button/IconButton.mjs.map +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 +12 -4
- package/dist/esm/index.mjs +13 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/input/Input.mjs +1 -0
- package/dist/esm/input/Input.mjs.map +1 -1
- package/dist/esm/link-provider/Anchor.mjs +23 -2
- 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 +72 -11
- package/dist/esm/modal/Modal.mjs.map +1 -1
- package/dist/esm/nav-link/NavLink.mjs +6 -4
- package/dist/esm/nav-link/NavLink.mjs.map +1 -1
- package/dist/esm/notification/Notification.mjs +13 -7
- package/dist/esm/notification/Notification.mjs.map +1 -1
- package/dist/esm/page-layout/Layout.mjs +21 -0
- package/dist/esm/page-layout/Layout.mjs.map +1 -0
- package/dist/esm/page-layout/Layout.module.css.mjs +4 -0
- package/dist/esm/page-layout/Layout.module.css.mjs.map +1 -0
- package/dist/esm/page-layout/Main.mjs +24 -0
- package/dist/esm/page-layout/Main.mjs.map +1 -0
- package/dist/esm/page-layout/Main.module.css.mjs +4 -0
- package/dist/esm/page-layout/Main.module.css.mjs.map +1 -0
- package/dist/esm/page-layout/PageContent.mjs +18 -0
- package/dist/esm/page-layout/PageContent.mjs.map +1 -0
- package/dist/esm/page-layout/PageContent.module.css.mjs +4 -0
- package/dist/esm/page-layout/PageContent.module.css.mjs.map +1 -0
- package/dist/esm/pagination/Pagination.mjs +12 -7
- package/dist/esm/pagination/Pagination.mjs.map +1 -1
- package/dist/esm/popover/Popover.mjs +72 -16
- package/dist/esm/popover/Popover.mjs.map +1 -1
- package/dist/esm/radio-button/RadioButton.mjs +1 -0
- package/dist/esm/radio-button/RadioButton.mjs.map +1 -1
- package/dist/esm/rich-input/RichInput.mjs +19 -40
- 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 +1 -0
- package/dist/esm/segmented-control/SegmentedControl.mjs.map +1 -1
- package/dist/esm/segmented-control/SegmentedControlCard.mjs +1 -0
- package/dist/esm/segmented-control/SegmentedControlCard.mjs.map +1 -1
- package/dist/esm/sidebar/Sidebar.mjs +11 -4
- 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/skip-link/SkipLink.mjs +48 -0
- package/dist/esm/skip-link/SkipLink.mjs.map +1 -0
- package/dist/esm/skip-link/SkipLink.module.css.mjs +4 -0
- package/dist/esm/skip-link/SkipLink.module.css.mjs.map +1 -0
- 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/stack/Stack.mjs +28 -9
- package/dist/esm/stack/Stack.mjs.map +1 -1
- package/dist/esm/stack/Stack.module.css.mjs +1 -1
- package/dist/esm/stat-item/StatItem.mjs +1 -0
- package/dist/esm/stat-item/StatItem.mjs.map +1 -1
- package/dist/esm/switch/Switch.mjs +1 -0
- package/dist/esm/switch/Switch.mjs.map +1 -1
- package/dist/esm/tabs/Tabs.mjs +1 -0
- package/dist/esm/tabs/Tabs.mjs.map +1 -1
- package/dist/esm/tag/Tag.mjs +74 -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 +10 -13
- package/dist/esm/text-link/TextLink.mjs.map +1 -1
- package/dist/esm/text-link/TextLink.module.css.mjs +1 -1
- 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/token-amount/TokenAmount.mjs +1 -0
- package/dist/esm/token-amount/TokenAmount.mjs.map +1 -1
- package/dist/esm/token-selector/TokenSelector.mjs +58 -66
- package/dist/esm/token-selector/TokenSelector.mjs.map +1 -1
- package/dist/esm/tooltip/Tooltip.mjs +42 -27
- package/dist/esm/tooltip/Tooltip.mjs.map +1 -1
- package/dist/esm/tx-status/TxStatus.mjs +2 -0
- package/dist/esm/tx-status/TxStatus.mjs.map +1 -1
- package/dist/esm/typography/Typography.mjs +2 -0
- package/dist/esm/typography/Typography.mjs.map +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 +19 -0
- package/dist/esm/utils/breakpoints.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 +12 -4
- package/dist/styles/breakpoints.css +16 -12
- package/dist/styles/typography-mixins.css +8 -0
- 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 +6 -26
- package/dist/types/button/Button.d.ts.map +1 -1
- package/dist/types/button/ButtonContent.d.ts +10 -0
- package/dist/types/button/ButtonContent.d.ts.map +1 -0
- package/dist/types/button/LinkButton.d.ts +10 -0
- package/dist/types/button/LinkButton.d.ts.map +1 -0
- package/dist/types/button/index.d.ts +2 -0
- package/dist/types/button/index.d.ts.map +1 -1
- package/dist/types/button/types.d.ts +26 -0
- package/dist/types/button/types.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 +3 -0
- package/dist/types/checkbox/Checkbox.d.ts.map +1 -1
- 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/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/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 +20 -6
- 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/Portal.d.ts +2 -5
- package/dist/types/hooks/Portal.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +2 -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/useEdgeFade.d.ts +7 -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/useFocusTrap.d.ts +7 -3
- package/dist/types/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/types/hooks/useHideOthers.d.ts +3 -0
- package/dist/types/hooks/useHideOthers.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/icon-button/IconButton.d.ts +15 -2
- package/dist/types/icon-button/IconButton.d.ts.map +1 -1
- 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 +5 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/input/Input.d.ts +1 -0
- package/dist/types/input/Input.d.ts.map +1 -1
- package/dist/types/link-provider/Anchor.d.ts +17 -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 +20 -3
- 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 +7 -2
- package/dist/types/notification/Notification.d.ts.map +1 -1
- package/dist/types/page-layout/Layout.d.ts +5 -0
- package/dist/types/page-layout/Layout.d.ts.map +1 -0
- package/dist/types/page-layout/Main.d.ts +6 -0
- package/dist/types/page-layout/Main.d.ts.map +1 -0
- package/dist/types/page-layout/PageContent.d.ts +7 -0
- package/dist/types/page-layout/PageContent.d.ts.map +1 -0
- package/dist/types/page-layout/index.d.ts +7 -0
- package/dist/types/page-layout/index.d.ts.map +1 -0
- 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 +32 -4
- 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/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 +8 -1
- 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 +1 -0
- package/dist/types/segmented-control/SegmentedControlCard.d.ts.map +1 -1
- package/dist/types/sidebar/Sidebar.d.ts +2 -2
- package/dist/types/sidebar/Sidebar.d.ts.map +1 -1
- package/dist/types/sidebar/SidebarToggle.d.ts +1 -1
- package/dist/types/skeleton/Skeleton.d.ts +17 -3
- package/dist/types/skeleton/Skeleton.d.ts.map +1 -1
- package/dist/types/skip-link/SkipLink.d.ts +11 -0
- package/dist/types/skip-link/SkipLink.d.ts.map +1 -0
- package/dist/types/skip-link/index.d.ts +3 -0
- package/dist/types/skip-link/index.d.ts.map +1 -0
- package/dist/types/slider/Slider.d.ts +1 -0
- package/dist/types/slider/Slider.d.ts.map +1 -1
- package/dist/types/small-card/SmallCard.d.ts +21 -2
- package/dist/types/small-card/SmallCard.d.ts.map +1 -1
- package/dist/types/stack/Stack.d.ts +24 -15
- 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-item/StatItem.d.ts +6 -0
- package/dist/types/stat-item/StatItem.d.ts.map +1 -1
- package/dist/types/switch/Switch.d.ts +3 -0
- package/dist/types/switch/Switch.d.ts.map +1 -1
- 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 +31 -3
- package/dist/types/tag/Tag.d.ts.map +1 -1
- package/dist/types/text-link/TextLink.d.ts +25 -2
- 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/theme-switcher/ThemeSwitcher.d.ts +9 -3
- package/dist/types/theme-switcher/ThemeSwitcher.d.ts.map +1 -1
- 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 +5 -1
- 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 +4 -0
- package/dist/types/typography/Typography.d.ts.map +1 -1
- package/dist/types/utils/ActionElement.d.ts +4 -4
- package/dist/types/utils/ActionElement.d.ts.map +1 -1
- package/dist/types/utils/breakpoints.d.ts +16 -0
- package/dist/types/utils/breakpoints.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +5 -2
- package/dist/types/utils/index.d.ts.map +1 -1
- 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 +29 -14
- package/dist/types/utils/responsive.d.ts.map +1 -1
- package/package.json +6 -2
|
@@ -2,29 +2,37 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
+
const react = require('react');
|
|
5
6
|
const cn = require('classnames');
|
|
6
7
|
const Footer_module = require('./Footer.module.css.cjs');
|
|
7
8
|
const jsxRuntime = require('react/jsx-runtime');
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
/** App footer shell with page background, top border and page gutters. */
|
|
11
|
+
const Footer = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
10
12
|
let {
|
|
11
13
|
children,
|
|
12
14
|
aside,
|
|
13
15
|
className,
|
|
16
|
+
dataTestId,
|
|
14
17
|
...rest
|
|
15
18
|
} = _ref;
|
|
16
19
|
return /*#__PURE__*/jsxRuntime.jsxs("footer", {
|
|
20
|
+
ref: ref,
|
|
17
21
|
className: cn(Footer_module.footer, className),
|
|
22
|
+
"data-testid": dataTestId?.root,
|
|
18
23
|
...rest,
|
|
19
24
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
20
25
|
className: Footer_module.content,
|
|
26
|
+
"data-testid": dataTestId?.content,
|
|
21
27
|
children: children
|
|
22
28
|
}), aside != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
23
29
|
className: Footer_module.aside,
|
|
30
|
+
"data-testid": dataTestId?.aside,
|
|
24
31
|
children: aside
|
|
25
32
|
}) : null]
|
|
26
33
|
});
|
|
27
|
-
};
|
|
34
|
+
});
|
|
35
|
+
Footer.displayName = 'Footer';
|
|
28
36
|
|
|
29
37
|
exports.Footer = Footer;
|
|
30
38
|
//# sourceMappingURL=Footer.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.cjs","sources":["../../../src/footer/Footer.tsx"],"sourcesContent":["import type
|
|
1
|
+
{"version":3,"file":"Footer.cjs","sources":["../../../src/footer/Footer.tsx"],"sourcesContent":["import {\n forwardRef,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Footer.module.css'\n\nexport type FooterDataTestId = {\n root?: string\n content?: string\n aside?: string\n}\n\nexport type FooterProps = ComponentPropsWithoutRef<'footer'> & {\n /** Left row of links or text; wraps. */\n children?: ReactNode\n /** Right slot, e.g. version tag. */\n aside?: ReactNode\n dataTestId?: FooterDataTestId\n}\n\n/** App footer shell with page background, top border and page gutters. */\nexport const Footer = forwardRef<HTMLElement, FooterProps>(\n ({ children, aside, className, dataTestId, ...rest }, ref) => (\n <footer\n ref={ref}\n className={cn(styles.footer, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <div className={styles.content} data-testid={dataTestId?.content}>\n {children}\n </div>\n {aside != null ? (\n <div className={styles.aside} data-testid={dataTestId?.aside}>\n {aside}\n </div>\n ) : null}\n </footer>\n ),\n)\n\nFooter.displayName = 'Footer'\n"],"names":["Footer","forwardRef","_ref","ref","children","aside","className","dataTestId","rest","_jsxs","cn","styles","footer","root","_jsx","content","displayName"],"mappings":";;;;;;;;;AAwBA;AACO,MAAMA,MAAM,gBAAGC,gBAAU,CAC9B,CAAAC,IAAA,EAAsDC,GAAG,KAAA;EAAA,IAAxD;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,SAAS;IAAEC,UAAU;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAAN,IAAA,CAAA;AAAA,EAAA,oBAClDO,eAAA,CAAA,QAAA,EAAA;AACEN,IAAAA,GAAG,EAAEA,GAAI;IACTG,SAAS,EAAEI,EAAE,CAACC,aAAM,CAACC,MAAM,EAAEN,SAAS,CAAE;IACxC,aAAaC,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;AAAAJ,IAAAA,QAAA,gBAERU,cAAA,CAAA,KAAA,EAAA;MAAKR,SAAS,EAAEK,aAAM,CAACI,OAAQ;MAAC,aAAaR,EAAAA,UAAU,EAAEQ,OAAQ;AAAAX,MAAAA,QAAA,EAC9DA,QAAAA;AAAQ,KACN,CAAC,EACLC,KAAK,IAAI,IAAI,gBACZS,cAAA,CAAA,KAAA,EAAA;MAAKR,SAAS,EAAEK,aAAM,CAACN,KAAM;MAAC,aAAaE,EAAAA,UAAU,EAAEF,KAAM;AAAAD,MAAAA,QAAA,EAC1DC,KAAAA;KACE,CAAC,GACJ,IAAI,CAAA;AAAA,GACF,CAAC,CAAA;AAAA,CAEb,EAAC;AAEDL,MAAM,CAACgB,WAAW,GAAG,QAAQ;;;;"}
|
package/dist/cjs/grid/Grid.cjs
CHANGED
|
@@ -4,13 +4,14 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
|
|
5
5
|
const react = require('react');
|
|
6
6
|
const cn = require('classnames');
|
|
7
|
+
const Stack = require('../stack/Stack.cjs');
|
|
7
8
|
const Grid_module = require('./Grid.module.css.cjs');
|
|
8
9
|
const jsxRuntime = require('react/jsx-runtime');
|
|
9
10
|
const responsive = require('../utils/responsive.cjs');
|
|
10
11
|
|
|
11
12
|
const columnsToCss = columns => typeof columns === 'number' ? `repeat(${columns}, minmax(0, 1fr))` : columns;
|
|
12
13
|
|
|
13
|
-
/** CSS grid container
|
|
14
|
+
/** CSS grid container; `columns`, `gap` and `align` take a value or a desktop-first per-breakpoint object like `{ base: 4, mdDown: 2 }`. Use `minItemWidth` to adapt to the container width instead of the viewport. */
|
|
14
15
|
const Grid = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
15
16
|
let {
|
|
16
17
|
as: Component = 'div',
|
|
@@ -22,6 +23,7 @@ const Grid = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
|
22
23
|
align,
|
|
23
24
|
className,
|
|
24
25
|
style,
|
|
26
|
+
dataTestId,
|
|
25
27
|
...rest
|
|
26
28
|
} = _ref;
|
|
27
29
|
const minWidth = typeof minItemWidth === 'number' ? `${minItemWidth}px` : minItemWidth;
|
|
@@ -29,15 +31,17 @@ const Grid = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
|
29
31
|
const vars = {
|
|
30
32
|
...responsive.responsiveVars('columns', template, columnsToCss),
|
|
31
33
|
...responsive.responsiveVars('rowGap', responsive.mergeResponsive(gap, rowGap), responsive.spaceToCss),
|
|
32
|
-
...responsive.responsiveVars('columnGap', responsive.mergeResponsive(gap, columnGap), responsive.spaceToCss)
|
|
34
|
+
...responsive.responsiveVars('columnGap', responsive.mergeResponsive(gap, columnGap), responsive.spaceToCss),
|
|
35
|
+
...responsive.responsiveVars('align', align, Stack.alignToCss)
|
|
33
36
|
};
|
|
34
37
|
return /*#__PURE__*/jsxRuntime.jsx(Component, {
|
|
35
38
|
ref: ref,
|
|
36
|
-
className: cn(Grid_module.root,
|
|
39
|
+
className: cn(Grid_module.root, className),
|
|
37
40
|
style: {
|
|
38
41
|
...vars,
|
|
39
42
|
...style
|
|
40
43
|
},
|
|
44
|
+
"data-testid": dataTestId?.root,
|
|
41
45
|
...rest
|
|
42
46
|
});
|
|
43
47
|
});
|
|
@@ -1 +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
|
|
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 mergeResponsive,\n responsiveVars,\n spaceToCss,\n type PolymorphicComponent,\n type PolymorphicProps,\n type Responsive,\n type Space,\n} from '../utils'\nimport { alignToCss, type StackAlign } from '../stack/Stack'\nimport styles from './Grid.module.css'\n\nexport type GridAlign = Exclude<StackAlign, 'baseline'>\n\nexport type GridDataTestId = { root?: string }\n\ntype GridOwnProps = {\n /** Per-breakpoint, desktop-first (see breakpointWidths); breakpoint keys follow the viewport width. 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). Responds to the Grid's own width, not the viewport; prefer it inside cards, panels and modals. Takes precedence over `columns`. */\n minItemWidth?: number | string\n /** Gap from the spacing scale in px. Per-breakpoint, desktop-first (see breakpointWidths). */\n gap?: Responsive<Space>\n /** Overrides `gap` for rows, merged per breakpoint key: keys you omit keep `gap`'s value. `16` and `{ base: 16 }` are the same. */\n rowGap?: Responsive<Space>\n /** Overrides `gap` for columns, merged per breakpoint key: keys you omit keep `gap`'s value. `16` and `{ base: 16 }` are the same. */\n columnGap?: Responsive<Space>\n /** Cross-axis alignment of items. Per-breakpoint, desktop-first (see breakpointWidths). */\n align?: Responsive<GridAlign | 'baseline'>\n dataTestId?: GridDataTestId\n}\n\ntype GridImplProps = HTMLAttributes<HTMLElement> &\n GridOwnProps & { as?: ElementType }\n\nexport type GridProps<E extends ElementType = never> = [E] extends [never]\n ? GridImplProps\n : PolymorphicProps<E, GridOwnProps>\n\nconst columnsToCss = (columns: number | string) =>\n typeof columns === 'number' ? `repeat(${columns}, minmax(0, 1fr))` : columns\n\n/** CSS grid container; `columns`, `gap` and `align` take a value or a desktop-first per-breakpoint object like `{ base: 4, mdDown: 2 }`. Use `minItemWidth` to adapt to the container width instead of the viewport. */\nexport const Grid = forwardRef<HTMLElement, GridImplProps>(\n (\n {\n as: Component = 'div',\n columns,\n minItemWidth,\n gap,\n rowGap,\n columnGap,\n align,\n className,\n style,\n dataTestId,\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 ...responsiveVars('align', align, alignToCss),\n }\n\n return (\n <Component\n ref={ref}\n className={cn(styles.root, className)}\n style={{ ...vars, ...style }}\n data-testid={dataTestId?.root}\n {...rest}\n />\n )\n },\n) as PolymorphicComponent<'div', GridOwnProps>\n\nGrid.displayName = 'Grid'\n"],"names":["columnsToCss","columns","Grid","forwardRef","_ref","ref","as","Component","minItemWidth","gap","rowGap","columnGap","align","className","style","dataTestId","rest","minWidth","template","undefined","vars","responsiveVars","mergeResponsive","spaceToCss","alignToCss","_jsx","cn","styles","root","displayName"],"mappings":";;;;;;;;;;;AA2CA,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,EAcEC,GAAG,KACA;EAAA,IAdH;IACEC,EAAE,EAAEC,SAAS,GAAG,KAAK;IACrBN,OAAO;IACPO,YAAY;IACZC,GAAG;IACHC,MAAM;IACNC,SAAS;IACTC,KAAK;IACLC,SAAS;IACTC,KAAK;IACLC,UAAU;IACV,GAAGC,IAAAA;AACL,GAAC,GAAAZ,IAAA,CAAA;EAGD,MAAMa,QAAQ,GACZ,OAAOT,YAAY,KAAK,QAAQ,GAAG,CAAGA,EAAAA,YAAY,CAAI,EAAA,CAAA,GAAGA,YAAY,CAAA;EACvE,MAAMU,QAAQ,GACZV,YAAY,KAAKW,SAAS,GACtB,CAA+BF,4BAAAA,EAAAA,QAAQ,CAAgB,cAAA,CAAA,GACvDhB,OAAO,CAAA;AAEb,EAAA,MAAMmB,IAAI,GAAG;AACX,IAAA,GAAGC,yBAAc,CAAC,SAAS,EAAEH,QAAQ,EAAElB,YAAY,CAAC;AACpD,IAAA,GAAGqB,yBAAc,CAAC,QAAQ,EAAEC,0BAAe,CAACb,GAAG,EAAEC,MAAM,CAAC,EAAEa,qBAAU,CAAC;AACrE,IAAA,GAAGF,yBAAc,CACf,WAAW,EACXC,0BAAe,CAACb,GAAG,EAAEE,SAAS,CAAC,EAC/BY,qBACF,CAAC;AACD,IAAA,GAAGF,yBAAc,CAAC,OAAO,EAAET,KAAK,EAAEY,gBAAU,CAAA;GAC7C,CAAA;EAED,oBACEC,cAAA,CAAClB,SAAS,EAAA;AACRF,IAAAA,GAAG,EAAEA,GAAI;IACTQ,SAAS,EAAEa,EAAE,CAACC,WAAM,CAACC,IAAI,EAAEf,SAAS,CAAE;AACtCC,IAAAA,KAAK,EAAE;AAAE,MAAA,GAAGM,IAAI;MAAE,GAAGN,KAAAA;KAAQ;IAC7B,aAAaC,EAAAA,UAAU,EAAEa,IAAK;IAAA,GAC1BZ,IAAAA;AAAI,GACT,CAAC,CAAA;AAEN,CACF,EAA8C;AAE9Cd,IAAI,CAAC2B,WAAW,GAAG,MAAM;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const styles = {"root":"Grid-module_root__WQ5eA"
|
|
3
|
+
const styles = {"root":"Grid-module_root__WQ5eA"};
|
|
4
4
|
|
|
5
5
|
module.exports = styles;
|
|
6
6
|
//# sourceMappingURL=Grid.module.css.cjs.map
|
|
@@ -18,6 +18,7 @@ const GridItem = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
|
18
18
|
area,
|
|
19
19
|
className,
|
|
20
20
|
style,
|
|
21
|
+
dataTestId,
|
|
21
22
|
...rest
|
|
22
23
|
} = _ref;
|
|
23
24
|
return /*#__PURE__*/jsxRuntime.jsx(Component, {
|
|
@@ -30,6 +31,7 @@ const GridItem = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
|
30
31
|
}),
|
|
31
32
|
...style
|
|
32
33
|
},
|
|
34
|
+
"data-testid": dataTestId?.root,
|
|
33
35
|
...rest
|
|
34
36
|
});
|
|
35
37
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridItem.cjs","sources":["../../../src/grid/GridItem.tsx"],"sourcesContent":["import { forwardRef, type ElementType, type HTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport {
|
|
1
|
+
{"version":3,"file":"GridItem.cjs","sources":["../../../src/grid/GridItem.tsx"],"sourcesContent":["import { forwardRef, type ElementType, type HTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport {\n responsiveVars,\n type PolymorphicComponent,\n type PolymorphicProps,\n type Responsive,\n} from '../utils'\nimport styles from './GridItem.module.css'\n\nexport type GridItemDataTestId = { root?: string }\n\ntype GridItemOwnProps = {\n /** Per-breakpoint, desktop-first (see breakpointWidths). Number of columns to span; `'full'` spans every column. When Grid `columns` shrinks, make `span` responsive too: a span wider than the current column count adds an empty implicit track, and its gap shortens every other cell. */\n span?: Responsive<number | 'full'>\n /** Places the item in a named `grid-template-areas` area. */\n area?: string\n dataTestId?: GridItemDataTestId\n}\n\ntype GridItemImplProps = HTMLAttributes<HTMLElement> &\n GridItemOwnProps & { as?: ElementType }\n\nexport type GridItemProps<E extends ElementType = never> = [E] extends [never]\n ? GridItemImplProps\n : PolymorphicProps<E, GridItemOwnProps>\n\nconst spanToCss = (span: number | 'full') =>\n span === 'full' ? '1 / -1' : `span ${span} / span ${span}`\n\n/** Grid child that can span columns or sit in a named area. */\nexport const GridItem = forwardRef<HTMLElement, GridItemImplProps>(\n (\n {\n as: Component = 'div',\n span,\n area,\n className,\n style,\n dataTestId,\n ...rest\n },\n ref,\n ) => {\n return (\n <Component\n ref={ref}\n className={cn(styles.root, className)}\n style={{\n ...responsiveVars('span', span, spanToCss),\n ...(area !== undefined && { gridArea: area }),\n ...style,\n }}\n data-testid={dataTestId?.root}\n {...rest}\n />\n )\n },\n) as PolymorphicComponent<'div', GridItemOwnProps>\n\nGridItem.displayName = 'GridItem'\n"],"names":["spanToCss","span","GridItem","forwardRef","_ref","ref","as","Component","area","className","style","dataTestId","rest","_jsx","cn","styles","root","responsiveVars","undefined","gridArea","displayName"],"mappings":";;;;;;;;;;AA6BA,MAAMA,SAAS,GAAIC,IAAqB,IACtCA,IAAI,KAAK,MAAM,GAAG,QAAQ,GAAG,CAAA,KAAA,EAAQA,IAAI,CAAA,QAAA,EAAWA,IAAI,CAAE,CAAA,CAAA;;AAE5D;AACO,MAAMC,QAAQ,gBAAGC,gBAAU,CAChC,CAAAC,IAAA,EAUEC,GAAG,KACA;EAAA,IAVH;IACEC,EAAE,EAAEC,SAAS,GAAG,KAAK;IACrBN,IAAI;IACJO,IAAI;IACJC,SAAS;IACTC,KAAK;IACLC,UAAU;IACV,GAAGC,IAAAA;AACL,GAAC,GAAAR,IAAA,CAAA;EAGD,oBACES,cAAA,CAACN,SAAS,EAAA;AACRF,IAAAA,GAAG,EAAEA,GAAI;IACTI,SAAS,EAAEK,EAAE,CAACC,eAAM,CAACC,IAAI,EAAEP,SAAS,CAAE;AACtCC,IAAAA,KAAK,EAAE;AACL,MAAA,GAAGO,yBAAc,CAAC,MAAM,EAAEhB,IAAI,EAAED,SAAS,CAAC;MAC1C,IAAIQ,IAAI,KAAKU,SAAS,IAAI;AAAEC,QAAAA,QAAQ,EAAEX,IAAAA;AAAK,OAAC,CAAC;MAC7C,GAAGE,KAAAA;KACH;IACF,aAAaC,EAAAA,UAAU,EAAEK,IAAK;IAAA,GAC1BJ,IAAAA;AAAI,GACT,CAAC,CAAA;AAEN,CACF,EAAkD;AAElDV,QAAQ,CAACkB,WAAW,GAAG,UAAU;;;;"}
|
|
@@ -2,30 +2,38 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
+
const react = require('react');
|
|
5
6
|
const cn = require('classnames');
|
|
6
7
|
const Header_module = require('./Header.module.css.cjs');
|
|
7
8
|
const jsxRuntime = require('react/jsx-runtime');
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
/** App top bar shell (64px, bottom border, page-gutter padding): `children` fill the left, `actions` sit right. Only the last child shrinks, so put Breadcrumbs or HeaderNav last. `sticky` needs no `overflow: hidden/auto` ancestor and sets `scroll-padding-top` on `html` to `--lido-app-ui-header-height`; your own `html` rule wins. */
|
|
11
|
+
const Header = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
10
12
|
let {
|
|
11
13
|
children,
|
|
12
14
|
actions,
|
|
13
15
|
sticky,
|
|
14
16
|
className,
|
|
17
|
+
dataTestId,
|
|
15
18
|
...rest
|
|
16
19
|
} = _ref;
|
|
17
20
|
return /*#__PURE__*/jsxRuntime.jsxs("header", {
|
|
21
|
+
ref: ref,
|
|
18
22
|
className: cn(Header_module.header, sticky && Header_module.sticky, className),
|
|
23
|
+
"data-testid": dataTestId?.root,
|
|
19
24
|
...rest,
|
|
20
25
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
21
26
|
className: Header_module.content,
|
|
27
|
+
"data-testid": dataTestId?.content,
|
|
22
28
|
children: children
|
|
23
29
|
}), actions != null ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
24
30
|
className: Header_module.actions,
|
|
31
|
+
"data-testid": dataTestId?.actions,
|
|
25
32
|
children: actions
|
|
26
33
|
}) : null]
|
|
27
34
|
});
|
|
28
|
-
};
|
|
35
|
+
});
|
|
36
|
+
Header.displayName = 'Header';
|
|
29
37
|
|
|
30
38
|
exports.Header = Header;
|
|
31
39
|
//# sourceMappingURL=Header.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.cjs","sources":["../../../src/header/Header.tsx"],"sourcesContent":["import type
|
|
1
|
+
{"version":3,"file":"Header.cjs","sources":["../../../src/header/Header.tsx"],"sourcesContent":["import {\n forwardRef,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Header.module.css'\n\nexport type HeaderDataTestId = {\n root?: string\n content?: string\n actions?: string\n}\n\nexport type HeaderProps = ComponentPropsWithoutRef<'header'> & {\n /** Right control group. */\n actions?: ReactNode\n /** Sticks to the top of the viewport while scrolling. */\n sticky?: boolean\n dataTestId?: HeaderDataTestId\n}\n\n/** App top bar shell (64px, bottom border, page-gutter padding): `children` fill the left, `actions` sit right. Only the last child shrinks, so put Breadcrumbs or HeaderNav last. `sticky` needs no `overflow: hidden/auto` ancestor and sets `scroll-padding-top` on `html` to `--lido-app-ui-header-height`; your own `html` rule wins. */\nexport const Header = forwardRef<HTMLElement, HeaderProps>(\n ({ children, actions, sticky, className, dataTestId, ...rest }, ref) => (\n <header\n ref={ref}\n className={cn(styles.header, sticky && styles.sticky, className)}\n data-testid={dataTestId?.root}\n {...rest}\n >\n <div className={styles.content} data-testid={dataTestId?.content}>\n {children}\n </div>\n {actions != null ? (\n <div className={styles.actions} data-testid={dataTestId?.actions}>\n {actions}\n </div>\n ) : null}\n </header>\n ),\n)\n\nHeader.displayName = 'Header'\n"],"names":["Header","forwardRef","_ref","ref","children","actions","sticky","className","dataTestId","rest","_jsxs","cn","styles","header","root","_jsx","content","displayName"],"mappings":";;;;;;;;;AAwBA;AACO,MAAMA,MAAM,gBAAGC,gBAAU,CAC9B,CAAAC,IAAA,EAAgEC,GAAG,KAAA;EAAA,IAAlE;IAAEC,QAAQ;IAAEC,OAAO;IAAEC,MAAM;IAAEC,SAAS;IAAEC,UAAU;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAAP,IAAA,CAAA;AAAA,EAAA,oBAC5DQ,eAAA,CAAA,QAAA,EAAA;AACEP,IAAAA,GAAG,EAAEA,GAAI;AACTI,IAAAA,SAAS,EAAEI,EAAE,CAACC,aAAM,CAACC,MAAM,EAAEP,MAAM,IAAIM,aAAM,CAACN,MAAM,EAAEC,SAAS,CAAE;IACjE,aAAaC,EAAAA,UAAU,EAAEM,IAAK;AAAA,IAAA,GAC1BL,IAAI;AAAAL,IAAAA,QAAA,gBAERW,cAAA,CAAA,KAAA,EAAA;MAAKR,SAAS,EAAEK,aAAM,CAACI,OAAQ;MAAC,aAAaR,EAAAA,UAAU,EAAEQ,OAAQ;AAAAZ,MAAAA,QAAA,EAC9DA,QAAAA;AAAQ,KACN,CAAC,EACLC,OAAO,IAAI,IAAI,gBACdU,cAAA,CAAA,KAAA,EAAA;MAAKR,SAAS,EAAEK,aAAM,CAACP,OAAQ;MAAC,aAAaG,EAAAA,UAAU,EAAEH,OAAQ;AAAAD,MAAAA,QAAA,EAC9DC,OAAAA;KACE,CAAC,GACJ,IAAI,CAAA;AAAA,GACF,CAAC,CAAA;AAAA,CAEb,EAAC;AAEDL,MAAM,CAACiB,WAAW,GAAG,QAAQ;;;;"}
|
|
@@ -6,23 +6,25 @@ const react = require('react');
|
|
|
6
6
|
const cn = require('classnames');
|
|
7
7
|
const HeaderNav_module = require('./HeaderNav.module.css.cjs');
|
|
8
8
|
const jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
const useEdgeFade = require('../hooks/useEdgeFade.cjs');
|
|
10
|
+
const useIsomorphicLayoutEffect = require('../hooks/useIsomorphicLayoutEffect.cjs');
|
|
9
11
|
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
nav.toggleAttribute('data-fade-end', nav.scrollLeft < nav.scrollWidth - nav.clientWidth - 1);
|
|
13
|
-
};
|
|
14
|
-
const scrollActiveIntoView = nav => {
|
|
15
|
-
const active = nav.querySelector("[aria-current='page']");
|
|
12
|
+
const ACTIVE = "[aria-current]:not([aria-current='false'], [aria-current=''])";
|
|
13
|
+
const scrollIntoCenter = (nav, active) => {
|
|
16
14
|
if (!active) return;
|
|
17
15
|
const navRect = nav.getBoundingClientRect();
|
|
18
16
|
const activeRect = active.getBoundingClientRect();
|
|
19
17
|
nav.scrollLeft += activeRect.left - navRect.left - (nav.clientWidth - activeRect.width) / 2;
|
|
20
18
|
};
|
|
19
|
+
|
|
20
|
+
/** `<nav>` for header links (`aria-label` defaults to `Main`); scrolls with an edge fade when narrow and centers the link with a truthy `aria-current`. */
|
|
21
21
|
const HeaderNav = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
22
22
|
let {
|
|
23
23
|
'aria-label': ariaLabel = 'Main',
|
|
24
24
|
className,
|
|
25
25
|
onScroll,
|
|
26
|
+
onFocus,
|
|
27
|
+
dataTestId,
|
|
26
28
|
...rest
|
|
27
29
|
} = _ref;
|
|
28
30
|
const navRef = react.useRef(null);
|
|
@@ -30,36 +32,46 @@ const HeaderNav = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
|
30
32
|
navRef.current = node;
|
|
31
33
|
if (typeof ref === 'function') ref(node);else if (ref) ref.current = node;
|
|
32
34
|
}, [ref]);
|
|
33
|
-
|
|
35
|
+
const {
|
|
36
|
+
sync,
|
|
37
|
+
onFocus: revealFocused
|
|
38
|
+
} = useEdgeFade.useEdgeFade(navRef);
|
|
39
|
+
useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
|
|
34
40
|
const nav = navRef.current;
|
|
35
41
|
if (!nav) return;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
syncFade(nav);
|
|
39
|
-
};
|
|
42
|
+
let active = nav.querySelector(ACTIVE);
|
|
43
|
+
scrollIntoCenter(nav, active);
|
|
40
44
|
sync();
|
|
41
|
-
|
|
42
|
-
mutations
|
|
45
|
+
if (typeof MutationObserver === 'undefined') return;
|
|
46
|
+
const mutations = new MutationObserver(() => {
|
|
47
|
+
const next = nav.querySelector(ACTIVE);
|
|
48
|
+
if (next !== active) {
|
|
49
|
+
active = next;
|
|
50
|
+
scrollIntoCenter(nav, next);
|
|
51
|
+
}
|
|
52
|
+
sync();
|
|
53
|
+
});
|
|
54
|
+
mutations.observe(nav, {
|
|
43
55
|
childList: true,
|
|
44
56
|
subtree: true,
|
|
45
57
|
attributes: true,
|
|
46
58
|
attributeFilter: ['aria-current']
|
|
47
59
|
});
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return () => {
|
|
51
|
-
mutations?.disconnect();
|
|
52
|
-
resizes?.disconnect();
|
|
53
|
-
};
|
|
54
|
-
}, []);
|
|
60
|
+
return () => mutations.disconnect();
|
|
61
|
+
}, [sync]);
|
|
55
62
|
return /*#__PURE__*/jsxRuntime.jsx("nav", {
|
|
56
63
|
ref: setRef,
|
|
57
64
|
"aria-label": ariaLabel,
|
|
58
65
|
className: cn(HeaderNav_module.nav, className),
|
|
59
66
|
onScroll: e => {
|
|
60
|
-
|
|
67
|
+
sync();
|
|
61
68
|
onScroll?.(e);
|
|
62
69
|
},
|
|
70
|
+
onFocus: e => {
|
|
71
|
+
revealFocused(e);
|
|
72
|
+
onFocus?.(e);
|
|
73
|
+
},
|
|
74
|
+
"data-testid": dataTestId?.root,
|
|
63
75
|
...rest
|
|
64
76
|
});
|
|
65
77
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeaderNav.cjs","sources":["../../../src/header/HeaderNav.tsx"],"sourcesContent":["import { forwardRef, useCallback,
|
|
1
|
+
{"version":3,"file":"HeaderNav.cjs","sources":["../../../src/header/HeaderNav.tsx"],"sourcesContent":["import { forwardRef, useCallback, useRef } from 'react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nimport cn from 'classnames'\n\nimport { useEdgeFade, useIsomorphicLayoutEffect } from '../hooks'\nimport styles from './HeaderNav.module.css'\n\nexport type HeaderNavDataTestId = { root?: string }\n\nexport type HeaderNavProps = ComponentPropsWithoutRef<'nav'> & {\n dataTestId?: HeaderNavDataTestId\n}\n\nconst ACTIVE = \"[aria-current]:not([aria-current='false'], [aria-current=''])\"\n\nconst scrollIntoCenter = (nav: HTMLElement, active: HTMLElement | null) => {\n if (!active) return\n const navRect = nav.getBoundingClientRect()\n const activeRect = active.getBoundingClientRect()\n nav.scrollLeft +=\n activeRect.left - navRect.left - (nav.clientWidth - activeRect.width) / 2\n}\n\n/** `<nav>` for header links (`aria-label` defaults to `Main`); scrolls with an edge fade when narrow and centers the link with a truthy `aria-current`. */\nexport const HeaderNav = forwardRef<HTMLElement, HeaderNavProps>(\n (\n {\n 'aria-label': ariaLabel = 'Main',\n className,\n onScroll,\n onFocus,\n dataTestId,\n ...rest\n },\n ref,\n ) => {\n const navRef = useRef<HTMLElement | null>(null)\n\n const setRef = useCallback(\n (node: HTMLElement | null) => {\n navRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) ref.current = node\n },\n [ref],\n )\n\n const { sync, onFocus: revealFocused } = useEdgeFade(navRef)\n\n useIsomorphicLayoutEffect(() => {\n const nav = navRef.current\n if (!nav) return\n let active = nav.querySelector<HTMLElement>(ACTIVE)\n scrollIntoCenter(nav, active)\n sync()\n if (typeof MutationObserver === 'undefined') return\n const mutations = new MutationObserver(() => {\n const next = nav.querySelector<HTMLElement>(ACTIVE)\n if (next !== active) {\n active = next\n scrollIntoCenter(nav, next)\n }\n sync()\n })\n mutations.observe(nav, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['aria-current'],\n })\n return () => mutations.disconnect()\n }, [sync])\n\n return (\n <nav\n ref={setRef}\n aria-label={ariaLabel}\n className={cn(styles.nav, className)}\n onScroll={(e) => {\n sync()\n onScroll?.(e)\n }}\n onFocus={(e) => {\n revealFocused(e)\n onFocus?.(e)\n }}\n data-testid={dataTestId?.root}\n {...rest}\n />\n )\n },\n)\n\nHeaderNav.displayName = 'HeaderNav'\n"],"names":["ACTIVE","scrollIntoCenter","nav","active","navRect","getBoundingClientRect","activeRect","scrollLeft","left","clientWidth","width","HeaderNav","forwardRef","_ref","ref","ariaLabel","className","onScroll","onFocus","dataTestId","rest","navRef","useRef","setRef","useCallback","node","current","sync","revealFocused","useEdgeFade","useIsomorphicLayoutEffect","querySelector","MutationObserver","mutations","next","observe","childList","subtree","attributes","attributeFilter","disconnect","_jsx","cn","styles","e","root","displayName"],"mappings":";;;;;;;;;;;AAcA,MAAMA,MAAM,GAAG,+DAA+D,CAAA;AAE9E,MAAMC,gBAAgB,GAAGA,CAACC,GAAgB,EAAEC,MAA0B,KAAK;EACzE,IAAI,CAACA,MAAM,EAAE,OAAA;AACb,EAAA,MAAMC,OAAO,GAAGF,GAAG,CAACG,qBAAqB,EAAE,CAAA;AAC3C,EAAA,MAAMC,UAAU,GAAGH,MAAM,CAACE,qBAAqB,EAAE,CAAA;EACjDH,GAAG,CAACK,UAAU,IACZD,UAAU,CAACE,IAAI,GAAGJ,OAAO,CAACI,IAAI,GAAG,CAACN,GAAG,CAACO,WAAW,GAAGH,UAAU,CAACI,KAAK,IAAI,CAAC,CAAA;AAC7E,CAAC,CAAA;;AAED;AACO,MAAMC,SAAS,gBAAGC,gBAAU,CACjC,CAAAC,IAAA,EASEC,GAAG,KACA;EAAA,IATH;IACE,YAAY,EAAEC,SAAS,GAAG,MAAM;IAChCC,SAAS;IACTC,QAAQ;IACRC,OAAO;IACPC,UAAU;IACV,GAAGC,IAAAA;AACL,GAAC,GAAAP,IAAA,CAAA;AAGD,EAAA,MAAMQ,MAAM,GAAGC,YAAM,CAAqB,IAAI,CAAC,CAAA;AAE/C,EAAA,MAAMC,MAAM,GAAGC,iBAAW,CACvBC,IAAwB,IAAK;IAC5BJ,MAAM,CAACK,OAAO,GAAGD,IAAI,CAAA;AACrB,IAAA,IAAI,OAAOX,GAAG,KAAK,UAAU,EAAEA,GAAG,CAACW,IAAI,CAAC,CAAA,KACnC,IAAIX,GAAG,EAAEA,GAAG,CAACY,OAAO,GAAGD,IAAI,CAAA;AAClC,GAAC,EACD,CAACX,GAAG,CACN,CAAC,CAAA;EAED,MAAM;IAAEa,IAAI;AAAET,IAAAA,OAAO,EAAEU,aAAAA;AAAc,GAAC,GAAGC,uBAAW,CAACR,MAAM,CAAC,CAAA;AAE5DS,EAAAA,mDAAyB,CAAC,MAAM;AAC9B,IAAA,MAAM5B,GAAG,GAAGmB,MAAM,CAACK,OAAO,CAAA;IAC1B,IAAI,CAACxB,GAAG,EAAE,OAAA;AACV,IAAA,IAAIC,MAAM,GAAGD,GAAG,CAAC6B,aAAa,CAAc/B,MAAM,CAAC,CAAA;AACnDC,IAAAA,gBAAgB,CAACC,GAAG,EAAEC,MAAM,CAAC,CAAA;AAC7BwB,IAAAA,IAAI,EAAE,CAAA;AACN,IAAA,IAAI,OAAOK,gBAAgB,KAAK,WAAW,EAAE,OAAA;AAC7C,IAAA,MAAMC,SAAS,GAAG,IAAID,gBAAgB,CAAC,MAAM;AAC3C,MAAA,MAAME,IAAI,GAAGhC,GAAG,CAAC6B,aAAa,CAAc/B,MAAM,CAAC,CAAA;MACnD,IAAIkC,IAAI,KAAK/B,MAAM,EAAE;AACnBA,QAAAA,MAAM,GAAG+B,IAAI,CAAA;AACbjC,QAAAA,gBAAgB,CAACC,GAAG,EAAEgC,IAAI,CAAC,CAAA;AAC7B,OAAA;AACAP,MAAAA,IAAI,EAAE,CAAA;AACR,KAAC,CAAC,CAAA;AACFM,IAAAA,SAAS,CAACE,OAAO,CAACjC,GAAG,EAAE;AACrBkC,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAE,IAAI;AACbC,MAAAA,UAAU,EAAE,IAAI;MAChBC,eAAe,EAAE,CAAC,cAAc,CAAA;AAClC,KAAC,CAAC,CAAA;AACF,IAAA,OAAO,MAAMN,SAAS,CAACO,UAAU,EAAE,CAAA;AACrC,GAAC,EAAE,CAACb,IAAI,CAAC,CAAC,CAAA;AAEV,EAAA,oBACEc,cAAA,CAAA,KAAA,EAAA;AACE3B,IAAAA,GAAG,EAAES,MAAO;AACZ,IAAA,YAAA,EAAYR,SAAU;IACtBC,SAAS,EAAE0B,EAAE,CAACC,gBAAM,CAACzC,GAAG,EAAEc,SAAS,CAAE;IACrCC,QAAQ,EAAG2B,CAAC,IAAK;AACfjB,MAAAA,IAAI,EAAE,CAAA;MACNV,QAAQ,GAAG2B,CAAC,CAAC,CAAA;KACb;IACF1B,OAAO,EAAG0B,CAAC,IAAK;MACdhB,aAAa,CAACgB,CAAC,CAAC,CAAA;MAChB1B,OAAO,GAAG0B,CAAC,CAAC,CAAA;KACZ;IACF,aAAazB,EAAAA,UAAU,EAAE0B,IAAK;IAAA,GAC1BzB,IAAAA;AAAI,GACT,CAAC,CAAA;AAEN,CACF,EAAC;AAEDT,SAAS,CAACmC,WAAW,GAAG,WAAW;;;;"}
|
|
@@ -2,24 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
+
const react = require('react');
|
|
5
6
|
const cn = require('classnames');
|
|
6
7
|
const Hidden_module = require('./Hidden.module.css.cjs');
|
|
7
8
|
const jsxRuntime = require('react/jsx-runtime');
|
|
8
9
|
const responsive = require('../utils/responsive.cjs');
|
|
9
10
|
|
|
10
|
-
/** CSS-only responsive visibility, safe for SSR. Wrapper is `display: contents` while visible. */
|
|
11
|
-
const Hidden = _ref => {
|
|
11
|
+
/** CSS-only responsive visibility, safe for SSR. Wrapper is `display: contents` while visible. Inside a `<p>` (Typography `body`, `description`...) children must be phrasing content too: a block child closes the paragraph in server HTML and breaks hydration. */
|
|
12
|
+
const Hidden = /*#__PURE__*/react.forwardRef((_ref, ref) => {
|
|
12
13
|
let {
|
|
14
|
+
as: Tag = 'span',
|
|
13
15
|
below,
|
|
14
16
|
above,
|
|
15
17
|
className,
|
|
18
|
+
dataTestId,
|
|
16
19
|
...rest
|
|
17
20
|
} = _ref;
|
|
18
|
-
return /*#__PURE__*/jsxRuntime.jsx(
|
|
21
|
+
return /*#__PURE__*/jsxRuntime.jsx(Tag, {
|
|
22
|
+
ref: ref,
|
|
19
23
|
className: cn(Hidden_module.root, below && Hidden_module[`below${responsive.capitalize(below)}`], above && Hidden_module[`above${responsive.capitalize(above)}`], className),
|
|
24
|
+
"data-testid": dataTestId?.root,
|
|
20
25
|
...rest
|
|
21
26
|
});
|
|
22
|
-
};
|
|
27
|
+
});
|
|
28
|
+
Hidden.displayName = 'Hidden';
|
|
23
29
|
|
|
24
30
|
exports.Hidden = Hidden;
|
|
25
31
|
//# sourceMappingURL=Hidden.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hidden.cjs","sources":["../../../src/hidden/Hidden.tsx"],"sourcesContent":["import type
|
|
1
|
+
{"version":3,"file":"Hidden.cjs","sources":["../../../src/hidden/Hidden.tsx"],"sourcesContent":["import { forwardRef, type ElementType, type HTMLAttributes } from 'react'\n\nimport cn from 'classnames'\n\nimport { capitalize, type Breakpoint } from '../utils'\nimport styles from './Hidden.module.css'\n\nexport type HiddenDataTestId = { root?: string }\n\nexport type HiddenProps = HTMLAttributes<HTMLElement> & {\n /** Hides below this breakpoint's width. */\n below?: Breakpoint\n /** Hides at this breakpoint's width and above. */\n above?: Breakpoint\n /** Wrapper tag; `span` is valid inside text, use `div` around block content. */\n as?: 'span' | 'div'\n dataTestId?: HiddenDataTestId\n}\n\n/** CSS-only responsive visibility, safe for SSR. Wrapper is `display: contents` while visible. Inside a `<p>` (Typography `body`, `description`...) children must be phrasing content too: a block child closes the paragraph in server HTML and breaks hydration. */\nexport const Hidden = forwardRef<HTMLElement, HiddenProps>(\n (\n {\n as: Tag = 'span' as ElementType,\n below,\n above,\n className,\n dataTestId,\n ...rest\n },\n ref,\n ) => (\n <Tag\n ref={ref}\n className={cn(\n styles.root,\n below && styles[`below${capitalize(below)}`],\n above && styles[`above${capitalize(above)}`],\n className,\n )}\n data-testid={dataTestId?.root}\n {...rest}\n />\n ),\n)\n\nHidden.displayName = 'Hidden'\n"],"names":["Hidden","forwardRef","_ref","ref","as","Tag","below","above","className","dataTestId","rest","_jsx","cn","styles","root","capitalize","displayName"],"mappings":";;;;;;;;;;AAmBA;AACO,MAAMA,MAAM,gBAAGC,gBAAU,CAC9B,CAAAC,IAAA,EASEC,GAAG,KAAA;EAAA,IARH;IACEC,EAAE,EAAEC,GAAG,GAAG,MAAqB;IAC/BC,KAAK;IACLC,KAAK;IACLC,SAAS;IACTC,UAAU;IACV,GAAGC,IAAAA;AACL,GAAC,GAAAR,IAAA,CAAA;EAAA,oBAGDS,cAAA,CAACN,GAAG,EAAA;AACFF,IAAAA,GAAG,EAAEA,GAAI;AACTK,IAAAA,SAAS,EAAEI,EAAE,CACXC,aAAM,CAACC,IAAI,EACXR,KAAK,IAAIO,aAAM,CAAC,CAAQE,KAAAA,EAAAA,qBAAU,CAACT,KAAK,CAAC,CAAE,CAAA,CAAC,EAC5CC,KAAK,IAAIM,aAAM,CAAC,CAAQE,KAAAA,EAAAA,qBAAU,CAACR,KAAK,CAAC,CAAA,CAAE,CAAC,EAC5CC,SACF,CAAE;IACF,aAAaC,EAAAA,UAAU,EAAEK,IAAK;IAAA,GAC1BJ,IAAAA;AAAI,GACT,CAAC,CAAA;AAAA,CAEN,EAAC;AAEDV,MAAM,CAACgB,WAAW,GAAG,QAAQ;;;;"}
|
|
@@ -8,10 +8,7 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
8
8
|
|
|
9
9
|
const THEME_ATTR = 'data-lido-theme';
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* Renders `null` until mounted so SSR and first client render match.
|
|
13
|
-
* Without `container`, mirrors the nearest `data-lido-theme` scope onto the portal root so tokens still resolve.
|
|
14
|
-
*/
|
|
11
|
+
/** SSR-safe portal into `container` or `document.body`; without `container` a marker span (dropped once resolved) finds the nearest `data-lido-theme` scope to mirror onto the portal root. */
|
|
15
12
|
const Portal = _ref => {
|
|
16
13
|
let {
|
|
17
14
|
children,
|
|
@@ -19,12 +16,19 @@ const Portal = _ref => {
|
|
|
19
16
|
} = _ref;
|
|
20
17
|
const markerRef = react.useRef(null);
|
|
21
18
|
const [target, setTarget] = react.useState(null);
|
|
19
|
+
const [tick, retry] = react.useReducer(n => n + 1, 0);
|
|
22
20
|
react.useEffect(() => {
|
|
23
21
|
if (container) {
|
|
24
22
|
setTarget(container);
|
|
25
23
|
return;
|
|
26
24
|
}
|
|
27
|
-
|
|
25
|
+
// Marker is gone after a container -> undefined switch; clear target so it re-renders, then retry.
|
|
26
|
+
if (!markerRef.current) {
|
|
27
|
+
setTarget(null);
|
|
28
|
+
retry();
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const scope = markerRef.current.closest(`[${THEME_ATTR}]`);
|
|
28
32
|
if (!scope || scope === document.documentElement) {
|
|
29
33
|
setTarget(document.body);
|
|
30
34
|
return;
|
|
@@ -44,12 +48,11 @@ const Portal = _ref => {
|
|
|
44
48
|
observer.disconnect();
|
|
45
49
|
root.remove();
|
|
46
50
|
};
|
|
47
|
-
}, [container]);
|
|
48
|
-
return /*#__PURE__*/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}), target ? /*#__PURE__*/reactDom.createPortal(children, target) : null]
|
|
51
|
+
}, [container, tick]);
|
|
52
|
+
if (target) return /*#__PURE__*/reactDom.createPortal(children, target);
|
|
53
|
+
return container ? null : /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
54
|
+
ref: markerRef,
|
|
55
|
+
hidden: true
|
|
53
56
|
});
|
|
54
57
|
};
|
|
55
58
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Portal.cjs","sources":["../../../src/hooks/Portal.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\n\nexport type PortalProps = {\n children?: ReactNode\n /** Defaults to `document.body`. */\n container?: Element | null\n}\n\nconst THEME_ATTR = 'data-lido-theme'\n\n
|
|
1
|
+
{"version":3,"file":"Portal.cjs","sources":["../../../src/hooks/Portal.tsx"],"sourcesContent":["import { useEffect, useReducer, useRef, useState, type ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\n\nexport type PortalProps = {\n children?: ReactNode\n /** Defaults to `document.body`. */\n container?: Element | null\n}\n\nconst THEME_ATTR = 'data-lido-theme'\n\n/** SSR-safe portal into `container` or `document.body`; without `container` a marker span (dropped once resolved) finds the nearest `data-lido-theme` scope to mirror onto the portal root. */\nexport const Portal = ({ children, container }: PortalProps) => {\n const markerRef = useRef<HTMLSpanElement>(null)\n const [target, setTarget] = useState<Element | null>(null)\n const [tick, retry] = useReducer((n: number) => n + 1, 0)\n\n useEffect(() => {\n if (container) {\n setTarget(container)\n return\n }\n // Marker is gone after a container -> undefined switch; clear target so it re-renders, then retry.\n if (!markerRef.current) {\n setTarget(null)\n retry()\n return\n }\n const scope = markerRef.current.closest(`[${THEME_ATTR}]`)\n if (!scope || scope === document.documentElement) {\n setTarget(document.body)\n return\n }\n\n const root = document.createElement('div')\n root.style.display = 'contents'\n const sync = () =>\n root.setAttribute(THEME_ATTR, scope.getAttribute(THEME_ATTR) ?? '')\n sync()\n document.body.appendChild(root)\n const observer = new MutationObserver(sync)\n observer.observe(scope, { attributes: true, attributeFilter: [THEME_ATTR] })\n setTarget(root)\n return () => {\n observer.disconnect()\n root.remove()\n }\n }, [container, tick])\n\n if (target) return createPortal(children, target)\n return container ? null : <span ref={markerRef} hidden />\n}\n"],"names":["THEME_ATTR","Portal","_ref","children","container","markerRef","useRef","target","setTarget","useState","tick","retry","useReducer","n","useEffect","current","scope","closest","document","documentElement","body","root","createElement","style","display","sync","setAttribute","getAttribute","appendChild","observer","MutationObserver","observe","attributes","attributeFilter","disconnect","remove","createPortal","_jsx","ref","hidden"],"mappings":";;;;;;;;AASA,MAAMA,UAAU,GAAG,iBAAiB,CAAA;;AAEpC;AACaC,MAAAA,MAAM,GAAGC,IAAA,IAA0C;EAAA,IAAzC;IAAEC,QAAQ;AAAEC,IAAAA,SAAAA;AAAuB,GAAC,GAAAF,IAAA,CAAA;AACzD,EAAA,MAAMG,SAAS,GAAGC,YAAM,CAAkB,IAAI,CAAC,CAAA;EAC/C,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGC,cAAQ,CAAiB,IAAI,CAAC,CAAA;AAC1D,EAAA,MAAM,CAACC,IAAI,EAAEC,KAAK,CAAC,GAAGC,gBAAU,CAAEC,CAAS,IAAKA,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AAEzDC,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAIV,SAAS,EAAE;MACbI,SAAS,CAACJ,SAAS,CAAC,CAAA;AACpB,MAAA,OAAA;AACF,KAAA;AACA;AACA,IAAA,IAAI,CAACC,SAAS,CAACU,OAAO,EAAE;MACtBP,SAAS,CAAC,IAAI,CAAC,CAAA;AACfG,MAAAA,KAAK,EAAE,CAAA;AACP,MAAA,OAAA;AACF,KAAA;IACA,MAAMK,KAAK,GAAGX,SAAS,CAACU,OAAO,CAACE,OAAO,CAAC,CAAA,CAAA,EAAIjB,UAAU,CAAA,CAAA,CAAG,CAAC,CAAA;IAC1D,IAAI,CAACgB,KAAK,IAAIA,KAAK,KAAKE,QAAQ,CAACC,eAAe,EAAE;AAChDX,MAAAA,SAAS,CAACU,QAAQ,CAACE,IAAI,CAAC,CAAA;AACxB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMC,IAAI,GAAGH,QAAQ,CAACI,aAAa,CAAC,KAAK,CAAC,CAAA;AAC1CD,IAAAA,IAAI,CAACE,KAAK,CAACC,OAAO,GAAG,UAAU,CAAA;AAC/B,IAAA,MAAMC,IAAI,GAAGA,MACXJ,IAAI,CAACK,YAAY,CAAC1B,UAAU,EAAEgB,KAAK,CAACW,YAAY,CAAC3B,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;AACrEyB,IAAAA,IAAI,EAAE,CAAA;AACNP,IAAAA,QAAQ,CAACE,IAAI,CAACQ,WAAW,CAACP,IAAI,CAAC,CAAA;AAC/B,IAAA,MAAMQ,QAAQ,GAAG,IAAIC,gBAAgB,CAACL,IAAI,CAAC,CAAA;AAC3CI,IAAAA,QAAQ,CAACE,OAAO,CAACf,KAAK,EAAE;AAAEgB,MAAAA,UAAU,EAAE,IAAI;MAAEC,eAAe,EAAE,CAACjC,UAAU,CAAA;AAAE,KAAC,CAAC,CAAA;IAC5EQ,SAAS,CAACa,IAAI,CAAC,CAAA;AACf,IAAA,OAAO,MAAM;MACXQ,QAAQ,CAACK,UAAU,EAAE,CAAA;MACrBb,IAAI,CAACc,MAAM,EAAE,CAAA;KACd,CAAA;AACH,GAAC,EAAE,CAAC/B,SAAS,EAAEM,IAAI,CAAC,CAAC,CAAA;EAErB,IAAIH,MAAM,EAAE,oBAAO6B,qBAAY,CAACjC,QAAQ,EAAEI,MAAM,CAAC,CAAA;AACjD,EAAA,OAAOH,SAAS,GAAG,IAAI,gBAAGiC,cAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,GAAG,EAAEjC,SAAU;IAACkC,MAAM,EAAA,IAAA;AAAA,GAAE,CAAC,CAAA;AAC3D;;;;"}
|
|
@@ -4,46 +4,82 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
|
|
5
5
|
const react = require('react');
|
|
6
6
|
|
|
7
|
+
const SCROLLBAR_VAR = '--lido-app-ui-scrollbar-width';
|
|
8
|
+
|
|
7
9
|
// Ref-counted so stacked overlays only restore on the last unlock.
|
|
8
10
|
let lockCount = 0;
|
|
11
|
+
const AXES = ['overflow-x', 'overflow-y'];
|
|
9
12
|
let saved = {
|
|
10
|
-
|
|
13
|
+
scroller: null,
|
|
14
|
+
axes: [],
|
|
11
15
|
paddingRight: ''
|
|
12
16
|
};
|
|
13
17
|
const lock = () => {
|
|
14
18
|
if (lockCount === 0) {
|
|
15
19
|
const {
|
|
16
20
|
body,
|
|
17
|
-
documentElement
|
|
21
|
+
documentElement: html
|
|
18
22
|
} = document;
|
|
23
|
+
// Locking <html> when body is the scroller would detach body's overflow propagation and break sticky headers.
|
|
24
|
+
const scroller = ['auto', 'scroll'].includes(getComputedStyle(html).overflowY) ? html : body;
|
|
19
25
|
saved = {
|
|
20
|
-
|
|
26
|
+
scroller,
|
|
27
|
+
axes: AXES.map(name => ({
|
|
28
|
+
name,
|
|
29
|
+
value: scroller.style.getPropertyValue(name),
|
|
30
|
+
priority: scroller.style.getPropertyPriority(name)
|
|
31
|
+
})),
|
|
21
32
|
paddingRight: body.style.paddingRight
|
|
22
33
|
};
|
|
23
|
-
const
|
|
24
|
-
|
|
34
|
+
const before = body.getBoundingClientRect().width;
|
|
35
|
+
// body's rect updates synchronously after the lock, html.clientWidth doesn't.
|
|
36
|
+
scroller.style.overflow = 'hidden';
|
|
37
|
+
const gained = body.getBoundingClientRect().width - before;
|
|
38
|
+
if (gained > 0) {
|
|
25
39
|
const current = parseFloat(getComputedStyle(body).paddingRight) || 0;
|
|
26
|
-
body.style.paddingRight = `${current +
|
|
40
|
+
body.style.paddingRight = `${current + gained}px`;
|
|
41
|
+
html.style.setProperty(SCROLLBAR_VAR, `${gained}px`);
|
|
27
42
|
}
|
|
28
|
-
body.style.overflow = 'hidden';
|
|
29
43
|
}
|
|
30
44
|
lockCount += 1;
|
|
31
45
|
};
|
|
32
46
|
const unlock = () => {
|
|
33
47
|
lockCount -= 1;
|
|
34
48
|
if (lockCount === 0) {
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
const {
|
|
50
|
+
body,
|
|
51
|
+
documentElement: html
|
|
52
|
+
} = document;
|
|
53
|
+
const {
|
|
54
|
+
scroller,
|
|
55
|
+
axes
|
|
56
|
+
} = saved;
|
|
57
|
+
if (scroller) {
|
|
58
|
+
scroller.style.removeProperty('overflow');
|
|
59
|
+
axes.forEach(_ref => {
|
|
60
|
+
let {
|
|
61
|
+
name,
|
|
62
|
+
value,
|
|
63
|
+
priority
|
|
64
|
+
} = _ref;
|
|
65
|
+
if (value) scroller.style.setProperty(name, value, priority);else scroller.style.removeProperty(name);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
body.style.paddingRight = saved.paddingRight;
|
|
69
|
+
html.style.removeProperty(SCROLLBAR_VAR);
|
|
37
70
|
}
|
|
38
71
|
};
|
|
39
72
|
|
|
40
|
-
/** Locks
|
|
41
|
-
const useBodyScrollLock =
|
|
73
|
+
/** Locks page scroll while `enabled`, compensating the scrollbar width and exposing it as `--lido-app-ui-scrollbar-width`. */
|
|
74
|
+
const useBodyScrollLock = function () {
|
|
75
|
+
let {
|
|
76
|
+
enabled = true
|
|
77
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
42
78
|
react.useEffect(() => {
|
|
43
|
-
if (!
|
|
79
|
+
if (!enabled) return;
|
|
44
80
|
lock();
|
|
45
81
|
return unlock;
|
|
46
|
-
}, [
|
|
82
|
+
}, [enabled]);
|
|
47
83
|
};
|
|
48
84
|
|
|
49
85
|
exports.useBodyScrollLock = useBodyScrollLock;
|