@ledgerhq/react-ui 0.52.0 → 0.53.0-nightly.20260626030713
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/lib/cjs/assets/index.js +31 -21
- package/lib/cjs/assets/index.js.map +1 -1
- package/lib/cjs/assets/logos/LedgerLiveAltRegular.js +15 -9
- package/lib/cjs/assets/logos/LedgerLiveAltRegular.js.map +1 -1
- package/lib/cjs/assets/logos/LedgerLiveRegular.js +15 -9
- package/lib/cjs/assets/logos/LedgerLiveRegular.js.map +1 -1
- package/lib/cjs/assets/logos/index.js +25 -16
- package/lib/cjs/assets/logos/index.js.map +1 -1
- package/lib/cjs/components/Table/Columns.js +53 -33
- package/lib/cjs/components/Table/Columns.js.map +1 -1
- package/lib/cjs/components/Table/Table.stories.js +80 -54
- package/lib/cjs/components/Table/Table.stories.js.map +1 -1
- package/lib/cjs/components/Table/index.js +58 -36
- package/lib/cjs/components/Table/index.js.map +1 -1
- package/lib/cjs/components/Table/stories.helper.js +64 -40
- package/lib/cjs/components/Table/stories.helper.js.map +1 -1
- package/lib/cjs/components/Tag/Tag.stories.js +62 -41
- package/lib/cjs/components/Tag/Tag.stories.js.map +1 -1
- package/lib/cjs/components/Tag/index.js +47 -30
- package/lib/cjs/components/Tag/index.js.map +1 -1
- package/lib/cjs/components/animations/GlitchText/GlitchText.stories.js +69 -44
- package/lib/cjs/components/animations/GlitchText/GlitchText.stories.js.map +1 -1
- package/lib/cjs/components/animations/GlitchText/index.js +14 -9
- package/lib/cjs/components/animations/GlitchText/index.js.map +1 -1
- package/lib/cjs/components/asorted/Divider/Divider.stories.js +59 -37
- package/lib/cjs/components/asorted/Divider/Divider.stories.js.map +1 -1
- package/lib/cjs/components/asorted/Divider/index.js +53 -33
- package/lib/cjs/components/asorted/Divider/index.js.map +1 -1
- package/lib/cjs/components/asorted/Icon/BoxedIcon.js +34 -22
- package/lib/cjs/components/asorted/Icon/BoxedIcon.js.map +1 -1
- package/lib/cjs/components/asorted/Icon/BoxedIcon.stories.js +45 -29
- package/lib/cjs/components/asorted/Icon/BoxedIcon.stories.js.map +1 -1
- package/lib/cjs/components/asorted/Icon/Icon.js +16 -10
- package/lib/cjs/components/asorted/Icon/Icon.js.map +1 -1
- package/lib/cjs/components/asorted/Icon/Icons.stories.js +50 -32
- package/lib/cjs/components/asorted/Icon/Icons.stories.js.map +1 -1
- package/lib/cjs/components/asorted/Icon/IconsLegacy.stories.js +79 -55
- package/lib/cjs/components/asorted/Icon/IconsLegacy.stories.js.map +1 -1
- package/lib/cjs/components/asorted/Icon/NotificationIcon.js +28 -18
- package/lib/cjs/components/asorted/Icon/NotificationIcon.js.map +1 -1
- package/lib/cjs/components/asorted/Icon/NotificationIcon.stories.js +34 -22
- package/lib/cjs/components/asorted/Icon/NotificationIcon.stories.js.map +1 -1
- package/lib/cjs/components/asorted/Icon/index.js +45 -29
- package/lib/cjs/components/asorted/Icon/index.js.map +1 -1
- package/lib/cjs/components/asorted/Text/Text.stories.js +55 -35
- package/lib/cjs/components/asorted/Text/Text.stories.js.map +1 -1
- package/lib/cjs/components/asorted/Text/index.js +43 -27
- package/lib/cjs/components/asorted/Text/index.js.map +1 -1
- package/lib/cjs/components/asorted/Text/styles.js +16 -10
- package/lib/cjs/components/asorted/Text/styles.js.map +1 -1
- package/lib/cjs/components/asorted/index.js +72 -46
- package/lib/cjs/components/asorted/index.js.map +1 -1
- package/lib/cjs/components/cta/Button/Button.stories.js +65 -45
- package/lib/cjs/components/cta/Button/Button.stories.js.map +1 -1
- package/lib/cjs/components/cta/Button/index.js +40 -28
- package/lib/cjs/components/cta/Button/index.js.map +1 -1
- package/lib/cjs/components/cta/Link/Link.stories.js +55 -36
- package/lib/cjs/components/cta/Link/Link.stories.js.map +1 -1
- package/lib/cjs/components/cta/Link/getLinkStyle.js +14 -9
- package/lib/cjs/components/cta/Link/getLinkStyle.js.map +1 -1
- package/lib/cjs/components/cta/Link/index.js +53 -34
- package/lib/cjs/components/cta/Link/index.js.map +1 -1
- package/lib/cjs/components/cta/Toggle/Toggle.stories.js +47 -33
- package/lib/cjs/components/cta/Toggle/Toggle.stories.js.map +1 -1
- package/lib/cjs/components/cta/Toggle/index.js +45 -31
- package/lib/cjs/components/cta/Toggle/index.js.map +1 -1
- package/lib/cjs/components/cta/getCtaStyle.js +16 -10
- package/lib/cjs/components/cta/getCtaStyle.js.map +1 -1
- package/lib/cjs/components/cta/index.js +66 -45
- package/lib/cjs/components/cta/index.js.map +1 -1
- package/lib/cjs/components/form/BaseInput/Input.stories.js +70 -50
- package/lib/cjs/components/form/BaseInput/Input.stories.js.map +1 -1
- package/lib/cjs/components/form/BaseInput/index.js +62 -44
- package/lib/cjs/components/form/BaseInput/index.js.map +1 -1
- package/lib/cjs/components/form/Checkbox/Checkbox.js +43 -27
- package/lib/cjs/components/form/Checkbox/Checkbox.js.map +1 -1
- package/lib/cjs/components/form/Checkbox/Checkbox.stories.js +48 -32
- package/lib/cjs/components/form/Checkbox/Checkbox.stories.js.map +1 -1
- package/lib/cjs/components/form/Checkbox/index.js +47 -30
- package/lib/cjs/components/form/Checkbox/index.js.map +1 -1
- package/lib/cjs/components/form/Dropdown/Dropdown.stories.js +100 -72
- package/lib/cjs/components/form/Dropdown/Dropdown.stories.js.map +1 -1
- package/lib/cjs/components/form/Dropdown/index.js +94 -68
- package/lib/cjs/components/form/Dropdown/index.js.map +1 -1
- package/lib/cjs/components/form/LegendInput/Input.stories.js +72 -50
- package/lib/cjs/components/form/LegendInput/Input.stories.js.map +1 -1
- package/lib/cjs/components/form/LegendInput/index.js +66 -46
- package/lib/cjs/components/form/LegendInput/index.js.map +1 -1
- package/lib/cjs/components/form/NumberInput/Input.stories.js +70 -48
- package/lib/cjs/components/form/NumberInput/Input.stories.js.map +1 -1
- package/lib/cjs/components/form/NumberInput/index.js +64 -44
- package/lib/cjs/components/form/NumberInput/index.js.map +1 -1
- package/lib/cjs/components/form/QrCodeInput/Input.stories.js +67 -47
- package/lib/cjs/components/form/QrCodeInput/Input.stories.js.map +1 -1
- package/lib/cjs/components/form/QrCodeInput/index.js +59 -41
- package/lib/cjs/components/form/QrCodeInput/index.js.map +1 -1
- package/lib/cjs/components/form/QuantityInput/Input.stories.js +70 -48
- package/lib/cjs/components/form/QuantityInput/Input.stories.js.map +1 -1
- package/lib/cjs/components/form/QuantityInput/index.js +64 -44
- package/lib/cjs/components/form/QuantityInput/index.js.map +1 -1
- package/lib/cjs/components/form/Radio/Radio.stories.js +55 -37
- package/lib/cjs/components/form/Radio/Radio.stories.js.map +1 -1
- package/lib/cjs/components/form/Radio/RadioElement.js +52 -34
- package/lib/cjs/components/form/Radio/RadioElement.js.map +1 -1
- package/lib/cjs/components/form/Radio/RadioElement.stories.js +58 -38
- package/lib/cjs/components/form/Radio/RadioElement.stories.js.map +1 -1
- package/lib/cjs/components/form/Radio/RadioListElement.js +52 -34
- package/lib/cjs/components/form/Radio/RadioListElement.js.map +1 -1
- package/lib/cjs/components/form/Radio/RadioListElement.stories.js +58 -38
- package/lib/cjs/components/form/Radio/RadioListElement.stories.js.map +1 -1
- package/lib/cjs/components/form/Radio/index.js +52 -34
- package/lib/cjs/components/form/Radio/index.js.map +1 -1
- package/lib/cjs/components/form/SearchInput/Input.stories.js +67 -47
- package/lib/cjs/components/form/SearchInput/Input.stories.js.map +1 -1
- package/lib/cjs/components/form/SearchInput/index.js +59 -41
- package/lib/cjs/components/form/SearchInput/index.js.map +1 -1
- package/lib/cjs/components/form/SelectInput/Control.js +64 -45
- package/lib/cjs/components/form/SelectInput/Control.js.map +1 -1
- package/lib/cjs/components/form/SelectInput/DropdownIndicator.js +48 -31
- package/lib/cjs/components/form/SelectInput/DropdownIndicator.js.map +1 -1
- package/lib/cjs/components/form/SelectInput/IndicatorsContainer.js +29 -18
- package/lib/cjs/components/form/SelectInput/IndicatorsContainer.js.map +1 -1
- package/lib/cjs/components/form/SelectInput/MenuList.js +15 -10
- package/lib/cjs/components/form/SelectInput/MenuList.js.map +1 -1
- package/lib/cjs/components/form/SelectInput/Option.js +48 -31
- package/lib/cjs/components/form/SelectInput/Option.js.map +1 -1
- package/lib/cjs/components/form/SelectInput/Select.stories.js +102 -74
- package/lib/cjs/components/form/SelectInput/Select.stories.js.map +1 -1
- package/lib/cjs/components/form/SelectInput/ValueContainer.js +48 -31
- package/lib/cjs/components/form/SelectInput/ValueContainer.js.map +1 -1
- package/lib/cjs/components/form/SelectInput/index.js +94 -68
- package/lib/cjs/components/form/SelectInput/index.js.map +1 -1
- package/lib/cjs/components/form/SplitInput/SplitInput.stories.js +117 -86
- package/lib/cjs/components/form/SplitInput/SplitInput.stories.js.map +1 -1
- package/lib/cjs/components/form/SplitInput/index.js +63 -44
- package/lib/cjs/components/form/SplitInput/index.js.map +1 -1
- package/lib/cjs/components/form/Switch/Switch.js +53 -33
- package/lib/cjs/components/form/Switch/Switch.js.map +1 -1
- package/lib/cjs/components/form/Switch/Switch.stories.js +55 -35
- package/lib/cjs/components/form/Switch/Switch.stories.js.map +1 -1
- package/lib/cjs/components/form/Switch/index.js +56 -35
- package/lib/cjs/components/form/Switch/index.js.map +1 -1
- package/lib/cjs/components/form/TabSelector/TabSelector.stories.js +56 -36
- package/lib/cjs/components/form/TabSelector/TabSelector.stories.js.map +1 -1
- package/lib/cjs/components/form/TabSelector/index.js +48 -30
- package/lib/cjs/components/form/TabSelector/index.js.map +1 -1
- package/lib/cjs/components/form/index.js +138 -103
- package/lib/cjs/components/form/index.js.map +1 -1
- package/lib/cjs/components/helpers.js +15 -9
- package/lib/cjs/components/helpers.js.map +1 -1
- package/lib/cjs/components/index.js +398 -282
- package/lib/cjs/components/index.js.map +1 -1
- package/lib/cjs/components/layout/Banner/BannerCard/BannerCard.stories.js +90 -62
- package/lib/cjs/components/layout/Banner/BannerCard/BannerCard.stories.js.map +1 -1
- package/lib/cjs/components/layout/Banner/BannerCard/index.js +72 -49
- package/lib/cjs/components/layout/Banner/BannerCard/index.js.map +1 -1
- package/lib/cjs/components/layout/Banner/NotificationCard/NotificationCard.stories.js +78 -51
- package/lib/cjs/components/layout/Banner/NotificationCard/NotificationCard.stories.js.map +1 -1
- package/lib/cjs/components/layout/Banner/NotificationCard/index.js +61 -39
- package/lib/cjs/components/layout/Banner/NotificationCard/index.js.map +1 -1
- package/lib/cjs/components/layout/Box/Box.stories.js +27 -17
- package/lib/cjs/components/layout/Box/Box.stories.js.map +1 -1
- package/lib/cjs/components/layout/Box/index.js +25 -15
- package/lib/cjs/components/layout/Box/index.js.map +1 -1
- package/lib/cjs/components/layout/Carousel/Carousel.stories.js +117 -80
- package/lib/cjs/components/layout/Carousel/Carousel.stories.js.map +1 -1
- package/lib/cjs/components/layout/Carousel/ChevronArrow.js +14 -9
- package/lib/cjs/components/layout/Carousel/ChevronArrow.js.map +1 -1
- package/lib/cjs/components/layout/Carousel/Footer/Pagination/bullets.js +14 -9
- package/lib/cjs/components/layout/Carousel/Footer/Pagination/bullets.js.map +1 -1
- package/lib/cjs/components/layout/Carousel/Footer/Pagination/index.js +26 -17
- package/lib/cjs/components/layout/Carousel/Footer/Pagination/index.js.map +1 -1
- package/lib/cjs/components/layout/Carousel/Footer/Pagination/types.js +14 -9
- package/lib/cjs/components/layout/Carousel/Footer/Pagination/types.js.map +1 -1
- package/lib/cjs/components/layout/Carousel/Footer/Pagination/utils.js +19 -12
- package/lib/cjs/components/layout/Carousel/Footer/Pagination/utils.js.map +1 -1
- package/lib/cjs/components/layout/Carousel/Footer/index.js +41 -26
- package/lib/cjs/components/layout/Carousel/Footer/index.js.map +1 -1
- package/lib/cjs/components/layout/Carousel/Footer/variantContentCard.js +31 -20
- package/lib/cjs/components/layout/Carousel/Footer/variantContentCard.js.map +1 -1
- package/lib/cjs/components/layout/Carousel/Footer/variantDefault.js +31 -20
- package/lib/cjs/components/layout/Carousel/Footer/variantDefault.js.map +1 -1
- package/lib/cjs/components/layout/Carousel/index.js +45 -29
- package/lib/cjs/components/layout/Carousel/index.js.map +1 -1
- package/lib/cjs/components/layout/ContentCard/PortfolioContentCard/PortfolioContentCard.stories.js +81 -56
- package/lib/cjs/components/layout/ContentCard/PortfolioContentCard/PortfolioContentCard.stories.js.map +1 -1
- package/lib/cjs/components/layout/ContentCard/PortfolioContentCard/index.js +73 -50
- package/lib/cjs/components/layout/ContentCard/PortfolioContentCard/index.js.map +1 -1
- package/lib/cjs/components/layout/Drawer/Drawer.stories.js +78 -52
- package/lib/cjs/components/layout/Drawer/Drawer.stories.js.map +1 -1
- package/lib/cjs/components/layout/Drawer/index.js +76 -50
- package/lib/cjs/components/layout/Drawer/index.js.map +1 -1
- package/lib/cjs/components/layout/Flex/Flex.stories.js +27 -17
- package/lib/cjs/components/layout/Flex/Flex.stories.js.map +1 -1
- package/lib/cjs/components/layout/Flex/index.js +25 -15
- package/lib/cjs/components/layout/Flex/index.js.map +1 -1
- package/lib/cjs/components/layout/Grid/Grid.stories.js +55 -35
- package/lib/cjs/components/layout/Grid/Grid.stories.js.map +1 -1
- package/lib/cjs/components/layout/Grid/index.js +25 -15
- package/lib/cjs/components/layout/Grid/index.js.map +1 -1
- package/lib/cjs/components/layout/List/NumberedList/NumberedList.stories.js +66 -43
- package/lib/cjs/components/layout/List/NumberedList/NumberedList.stories.js.map +1 -1
- package/lib/cjs/components/layout/List/NumberedList/index.js +55 -36
- package/lib/cjs/components/layout/List/NumberedList/index.js.map +1 -1
- package/lib/cjs/components/layout/List/VerticalTimeline/TimelineIndicator.js +25 -15
- package/lib/cjs/components/layout/List/VerticalTimeline/TimelineIndicator.js.map +1 -1
- package/lib/cjs/components/layout/List/VerticalTimeline/TimelineItem.js +63 -41
- package/lib/cjs/components/layout/List/VerticalTimeline/TimelineItem.js.map +1 -1
- package/lib/cjs/components/layout/List/VerticalTimeline/VerticalTimeline.stories.js +86 -58
- package/lib/cjs/components/layout/List/VerticalTimeline/VerticalTimeline.stories.js.map +1 -1
- package/lib/cjs/components/layout/List/VerticalTimeline/index.js +63 -41
- package/lib/cjs/components/layout/List/VerticalTimeline/index.js.map +1 -1
- package/lib/cjs/components/layout/Popin/Popin.stories.js +74 -50
- package/lib/cjs/components/layout/Popin/Popin.stories.js.map +1 -1
- package/lib/cjs/components/layout/Popin/index.js +60 -40
- package/lib/cjs/components/layout/Popin/index.js.map +1 -1
- package/lib/cjs/components/layout/Side/Provider.js +18 -12
- package/lib/cjs/components/layout/Side/Provider.js.map +1 -1
- package/lib/cjs/components/layout/Side/Side.stories.js +99 -65
- package/lib/cjs/components/layout/Side/Side.stories.js.map +1 -1
- package/lib/cjs/components/layout/Side/index.js +86 -56
- package/lib/cjs/components/layout/Side/index.js.map +1 -1
- package/lib/cjs/components/layout/index.js +174 -117
- package/lib/cjs/components/layout/index.js.map +1 -1
- package/lib/cjs/components/loaders/InfiniteLoader/InfiniteLoader.stories.js +20 -13
- package/lib/cjs/components/loaders/InfiniteLoader/InfiniteLoader.stories.js.map +1 -1
- package/lib/cjs/components/loaders/InfiniteLoader/index.js +14 -9
- package/lib/cjs/components/loaders/InfiniteLoader/index.js.map +1 -1
- package/lib/cjs/components/loaders/ProgressLoader/ProgressLoader.stories.js +53 -34
- package/lib/cjs/components/loaders/ProgressLoader/ProgressLoader.stories.js.map +1 -1
- package/lib/cjs/components/loaders/ProgressLoader/index.js +47 -30
- package/lib/cjs/components/loaders/ProgressLoader/index.js.map +1 -1
- package/lib/cjs/components/loaders/index.js +56 -37
- package/lib/cjs/components/loaders/index.js.map +1 -1
- package/lib/cjs/components/message/Alert/Alert.stories.js +69 -48
- package/lib/cjs/components/message/Alert/Alert.stories.js.map +1 -1
- package/lib/cjs/components/message/Alert/index.js +48 -30
- package/lib/cjs/components/message/Alert/index.js.map +1 -1
- package/lib/cjs/components/message/ContinueOnDevice/ContinueOnDevice.stories.js +59 -37
- package/lib/cjs/components/message/ContinueOnDevice/ContinueOnDevice.stories.js.map +1 -1
- package/lib/cjs/components/message/ContinueOnDevice/index.js +53 -33
- package/lib/cjs/components/message/ContinueOnDevice/index.js.map +1 -1
- package/lib/cjs/components/message/Log/Brackets.js +31 -19
- package/lib/cjs/components/message/Log/Brackets.js.map +1 -1
- package/lib/cjs/components/message/Log/Log.stories.js +65 -41
- package/lib/cjs/components/message/Log/Log.stories.js.map +1 -1
- package/lib/cjs/components/message/Log/index.js +59 -37
- package/lib/cjs/components/message/Log/index.js.map +1 -1
- package/lib/cjs/components/message/Notification/Badge.js +14 -9
- package/lib/cjs/components/message/Notification/Badge.js.map +1 -1
- package/lib/cjs/components/message/Notification/Badge.stories.js +40 -25
- package/lib/cjs/components/message/Notification/Badge.stories.js.map +1 -1
- package/lib/cjs/components/message/Notification/Notification.stories.js +73 -47
- package/lib/cjs/components/message/Notification/Notification.stories.js.map +1 -1
- package/lib/cjs/components/message/Notification/index.js +62 -40
- package/lib/cjs/components/message/Notification/index.js.map +1 -1
- package/lib/cjs/components/message/StatusNotification/StatusNotification.stories.js +75 -47
- package/lib/cjs/components/message/StatusNotification/StatusNotification.stories.js.map +1 -1
- package/lib/cjs/components/message/StatusNotification/index.js +64 -40
- package/lib/cjs/components/message/StatusNotification/index.js.map +1 -1
- package/lib/cjs/components/message/Tip/Tip.stories.js +54 -34
- package/lib/cjs/components/message/Tip/Tip.stories.js.map +1 -1
- package/lib/cjs/components/message/Tip/index.js +48 -30
- package/lib/cjs/components/message/Tip/index.js.map +1 -1
- package/lib/cjs/components/message/Tooltip/Tooltip.stories.js +56 -36
- package/lib/cjs/components/message/Tooltip/Tooltip.stories.js.map +1 -1
- package/lib/cjs/components/message/Tooltip/index.js +43 -27
- package/lib/cjs/components/message/Tooltip/index.js.map +1 -1
- package/lib/cjs/components/message/Tooltip/styles.js +15 -9
- package/lib/cjs/components/message/Tooltip/styles.js.map +1 -1
- package/lib/cjs/components/message/index.js +87 -57
- package/lib/cjs/components/message/index.js.map +1 -1
- package/lib/cjs/components/navigation/Aside/Aside.stories.js +71 -46
- package/lib/cjs/components/navigation/Aside/Aside.stories.js.map +1 -1
- package/lib/cjs/components/navigation/Aside/index.js +29 -18
- package/lib/cjs/components/navigation/Aside/index.js.map +1 -1
- package/lib/cjs/components/navigation/Aside/stories.helper.js +16 -10
- package/lib/cjs/components/navigation/Aside/stories.helper.js.map +1 -1
- package/lib/cjs/components/navigation/Breadcrumb/Breadcrumb.stories.js +100 -72
- package/lib/cjs/components/navigation/Breadcrumb/Breadcrumb.stories.js.map +1 -1
- package/lib/cjs/components/navigation/Breadcrumb/index.js +94 -68
- package/lib/cjs/components/navigation/Breadcrumb/index.js.map +1 -1
- package/lib/cjs/components/navigation/FlowStepper/FlowStepper.stories.js +91 -61
- package/lib/cjs/components/navigation/FlowStepper/FlowStepper.stories.js.map +1 -1
- package/lib/cjs/components/navigation/FlowStepper/index.js +53 -33
- package/lib/cjs/components/navigation/FlowStepper/index.js.map +1 -1
- package/lib/cjs/components/navigation/Header/Header.stories.js +63 -40
- package/lib/cjs/components/navigation/Header/Header.stories.js.map +1 -1
- package/lib/cjs/components/navigation/Header/index.js +29 -18
- package/lib/cjs/components/navigation/Header/index.js.map +1 -1
- package/lib/cjs/components/navigation/index.js +149 -103
- package/lib/cjs/components/navigation/index.js.map +1 -1
- package/lib/cjs/components/navigation/progress/ProgressBar/Onboarding.js +48 -30
- package/lib/cjs/components/navigation/progress/ProgressBar/Onboarding.js.map +1 -1
- package/lib/cjs/components/navigation/progress/ProgressBar/Onboarding.stories.js +54 -34
- package/lib/cjs/components/navigation/progress/ProgressBar/Onboarding.stories.js.map +1 -1
- package/lib/cjs/components/navigation/progress/ProgressBar/index.js +51 -32
- package/lib/cjs/components/navigation/progress/ProgressBar/index.js.map +1 -1
- package/lib/cjs/components/navigation/progress/Stepper/Item.stories.js +54 -34
- package/lib/cjs/components/navigation/progress/Stepper/Item.stories.js.map +1 -1
- package/lib/cjs/components/navigation/progress/Stepper/ProgressSteps.stories.js +54 -34
- package/lib/cjs/components/navigation/progress/Stepper/ProgressSteps.stories.js.map +1 -1
- package/lib/cjs/components/navigation/progress/Stepper/index.js +48 -30
- package/lib/cjs/components/navigation/progress/Stepper/index.js.map +1 -1
- package/lib/cjs/components/navigation/progress/index.js +53 -33
- package/lib/cjs/components/navigation/progress/index.js.map +1 -1
- package/lib/cjs/components/navigation/sideBar/Item/Item.js +64 -40
- package/lib/cjs/components/navigation/sideBar/Item/Item.js.map +1 -1
- package/lib/cjs/components/navigation/sideBar/Item/Item.stories.js +67 -43
- package/lib/cjs/components/navigation/sideBar/Item/Item.stories.js.map +1 -1
- package/lib/cjs/components/navigation/sideBar/Item/index.js +66 -41
- package/lib/cjs/components/navigation/sideBar/Item/index.js.map +1 -1
- package/lib/cjs/components/navigation/sideBar/Logo/Logo.js +35 -21
- package/lib/cjs/components/navigation/sideBar/Logo/Logo.js.map +1 -1
- package/lib/cjs/components/navigation/sideBar/Logo/index.js +38 -23
- package/lib/cjs/components/navigation/sideBar/Logo/index.js.map +1 -1
- package/lib/cjs/components/navigation/sideBar/SideBar/SideBar.js +85 -53
- package/lib/cjs/components/navigation/sideBar/SideBar/SideBar.js.map +1 -1
- package/lib/cjs/components/navigation/sideBar/SideBar/SideBar.stories.js +87 -55
- package/lib/cjs/components/navigation/sideBar/SideBar/SideBar.stories.js.map +1 -1
- package/lib/cjs/components/navigation/sideBar/SideBar/index.js +88 -55
- package/lib/cjs/components/navigation/sideBar/SideBar/index.js.map +1 -1
- package/lib/cjs/components/navigation/sideBar/Toggle/Toggle.js +20 -12
- package/lib/cjs/components/navigation/sideBar/Toggle/Toggle.js.map +1 -1
- package/lib/cjs/components/navigation/sideBar/Toggle/index.js +24 -15
- package/lib/cjs/components/navigation/sideBar/Toggle/index.js.map +1 -1
- package/lib/cjs/components/navigation/sideBar/index.js +15 -9
- package/lib/cjs/components/navigation/sideBar/index.js.map +1 -1
- package/lib/cjs/components/styled.js +21 -13
- package/lib/cjs/components/styled.js.map +1 -1
- package/lib/cjs/components/styled.stories.js +22 -14
- package/lib/cjs/components/styled.stories.js.map +1 -1
- package/lib/cjs/components/tabs/Bar/Bar.stories.js +58 -37
- package/lib/cjs/components/tabs/Bar/Bar.stories.js.map +1 -1
- package/lib/cjs/components/tabs/Bar/index.js +29 -18
- package/lib/cjs/components/tabs/Bar/index.js.map +1 -1
- package/lib/cjs/components/tabs/Chip/Chip.stories.js +58 -37
- package/lib/cjs/components/tabs/Chip/Chip.stories.js.map +1 -1
- package/lib/cjs/components/tabs/Chip/index.js +29 -18
- package/lib/cjs/components/tabs/Chip/index.js.map +1 -1
- package/lib/cjs/components/tabs/Pill/Pill.stories.js +63 -40
- package/lib/cjs/components/tabs/Pill/Pill.stories.js.map +1 -1
- package/lib/cjs/components/tabs/Pill/index.js +29 -18
- package/lib/cjs/components/tabs/Pill/index.js.map +1 -1
- package/lib/cjs/components/tabs/Tabs/Tabs.stories.js +62 -40
- package/lib/cjs/components/tabs/Tabs/Tabs.stories.js.map +1 -1
- package/lib/cjs/components/tabs/Tabs/index.js +56 -36
- package/lib/cjs/components/tabs/Tabs/index.js.map +1 -1
- package/lib/cjs/components/tabs/index.js +75 -51
- package/lib/cjs/components/tabs/index.js.map +1 -1
- package/lib/cjs/components/transitions/TransitionInOut.js +15 -9
- package/lib/cjs/components/transitions/TransitionInOut.js.map +1 -1
- package/lib/cjs/components/transitions/TransitionScale.js +15 -9
- package/lib/cjs/components/transitions/TransitionScale.js.map +1 -1
- package/lib/cjs/components/transitions/TransitionSlide.js +15 -9
- package/lib/cjs/components/transitions/TransitionSlide.js.map +1 -1
- package/lib/cjs/components/transitions/index.js +31 -20
- package/lib/cjs/components/transitions/index.js.map +1 -1
- package/lib/cjs/helpers.js +15 -9
- package/lib/cjs/helpers.js.map +1 -1
- package/lib/cjs/index.js +409 -291
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/pre-ldls/components/AccountItem/AccountItem.js +106 -73
- package/lib/cjs/pre-ldls/components/AccountItem/AccountItem.js.map +1 -1
- package/lib/cjs/pre-ldls/components/AccountItem/AccountItem.stories.js +111 -78
- package/lib/cjs/pre-ldls/components/AccountItem/AccountItem.stories.js.map +1 -1
- package/lib/cjs/pre-ldls/components/AccountList/AccountList.js +117 -81
- package/lib/cjs/pre-ldls/components/AccountList/AccountList.js.map +1 -1
- package/lib/cjs/pre-ldls/components/AccountList/AccountList.stories.js +119 -83
- package/lib/cjs/pre-ldls/components/AccountList/AccountList.stories.js.map +1 -1
- package/lib/cjs/pre-ldls/components/Address/Address.js +80 -54
- package/lib/cjs/pre-ldls/components/Address/Address.js.map +1 -1
- package/lib/cjs/pre-ldls/components/Address/Address.stories.js +85 -60
- package/lib/cjs/pre-ldls/components/Address/Address.stories.js.map +1 -1
- package/lib/cjs/pre-ldls/components/Address/formatAddress.js +15 -9
- package/lib/cjs/pre-ldls/components/Address/formatAddress.js.map +1 -1
- package/lib/cjs/pre-ldls/components/Address/tests/formatAddress.test.js +15 -9
- package/lib/cjs/pre-ldls/components/Address/tests/formatAddress.test.js.map +1 -1
- package/lib/cjs/pre-ldls/components/CardButton/CardButton.js +24 -16
- package/lib/cjs/pre-ldls/components/CardButton/CardButton.js.map +1 -1
- package/lib/cjs/pre-ldls/components/CardButton/CardButton.stories.js +28 -20
- package/lib/cjs/pre-ldls/components/CardButton/CardButton.stories.js.map +1 -1
- package/lib/cjs/pre-ldls/components/Checkbox/Checkbox.js +19 -13
- package/lib/cjs/pre-ldls/components/Checkbox/Checkbox.js.map +1 -1
- package/lib/cjs/pre-ldls/components/Checkbox/Checkbox.stories.js +27 -19
- package/lib/cjs/pre-ldls/components/Checkbox/Checkbox.stories.js.map +1 -1
- package/lib/cjs/pre-ldls/components/Tag/Tag.js +57 -37
- package/lib/cjs/pre-ldls/components/Tag/Tag.js.map +1 -1
- package/lib/cjs/pre-ldls/components/Tag/Tag.stories.js +58 -38
- package/lib/cjs/pre-ldls/components/Tag/Tag.stories.js.map +1 -1
- package/lib/cjs/pre-ldls/components/TextInput/TextInput.js +34 -22
- package/lib/cjs/pre-ldls/components/TextInput/TextInput.js.map +1 -1
- package/lib/cjs/pre-ldls/components/TextInput/TextInput.stories.js +47 -33
- package/lib/cjs/pre-ldls/components/TextInput/TextInput.stories.js.map +1 -1
- package/lib/cjs/pre-ldls/components/VirtualList/VirtualList.js +29 -18
- package/lib/cjs/pre-ldls/components/VirtualList/VirtualList.js.map +1 -1
- package/lib/cjs/pre-ldls/components/VirtualList/VirtualList.stories.js +35 -24
- package/lib/cjs/pre-ldls/components/VirtualList/VirtualList.stories.js.map +1 -1
- package/lib/cjs/pre-ldls/components/index.js +136 -611
- package/lib/cjs/pre-ldls/components/index.js.map +1 -1
- package/lib/cjs/pre-ldls/components/sharedStoryBook.js +64 -42
- package/lib/cjs/pre-ldls/components/sharedStoryBook.js.map +1 -1
- package/lib/cjs/pre-ldls/index.js +137 -619
- package/lib/cjs/pre-ldls/index.js.map +1 -1
- package/lib/cjs/pre-ldls/libs/design-tokens.js +19 -13
- package/lib/cjs/pre-ldls/libs/design-tokens.js.map +1 -1
- package/lib/cjs/pre-ldls/libs/index.js +17 -11
- package/lib/cjs/pre-ldls/libs/index.js.map +1 -1
- package/lib/cjs/styles/InvertTheme.js +15 -9
- package/lib/cjs/styles/InvertTheme.js.map +1 -1
- package/lib/cjs/styles/Spacing.stories.js +54 -34
- package/lib/cjs/styles/Spacing.stories.js.map +1 -1
- package/lib/cjs/styles/StyleProvider.js +33 -21
- package/lib/cjs/styles/StyleProvider.js.map +1 -1
- package/lib/cjs/styles/breakpoints.stories.js +54 -34
- package/lib/cjs/styles/breakpoints.stories.js.map +1 -1
- package/lib/cjs/styles/global.js +28 -18
- package/lib/cjs/styles/global.js.map +1 -1
- package/lib/cjs/styles/helpers.js +18 -12
- package/lib/cjs/styles/helpers.js.map +1 -1
- package/lib/cjs/styles/index.js +37 -25
- package/lib/cjs/styles/index.js.map +1 -1
- package/lib/cjs/styles/palettes/colors.stories.js +54 -34
- package/lib/cjs/styles/palettes/colors.stories.js.map +1 -1
- package/lib/cjs/styles/styled/fontFamily.js +23 -15
- package/lib/cjs/styles/styled/fontFamily.js.map +1 -1
- package/lib/cjs/styles/system/gaps.js +15 -9
- package/lib/cjs/styles/system/gaps.js.map +1 -1
- package/lib/cjs/styles/theme.js +22 -16
- package/lib/cjs/styles/theme.js.map +1 -1
- package/lib/pre-ldls/components/index.d.ts +0 -8
- package/lib/pre-ldls/components/index.d.ts.map +1 -1
- package/lib/pre-ldls/components/index.js +0 -8
- package/lib/pre-ldls/components/index.js.map +1 -1
- package/package.json +15 -15
- package/lib/cjs/pre-ldls/components/AssetItem/AssetItem.js +0 -1835
- package/lib/cjs/pre-ldls/components/AssetItem/AssetItem.js.map +0 -1
- package/lib/cjs/pre-ldls/components/AssetItem/AssetItem.stories.js +0 -1999
- package/lib/cjs/pre-ldls/components/AssetItem/AssetItem.stories.js.map +0 -1
- package/lib/cjs/pre-ldls/components/AssetList/AssetList.js +0 -2109
- package/lib/cjs/pre-ldls/components/AssetList/AssetList.js.map +0 -1
- package/lib/cjs/pre-ldls/components/AssetList/AssetList.stories.js +0 -2297
- package/lib/cjs/pre-ldls/components/AssetList/AssetList.stories.js.map +0 -1
- package/lib/cjs/pre-ldls/components/Input/Input.js +0 -1183
- package/lib/cjs/pre-ldls/components/Input/Input.js.map +0 -1
- package/lib/cjs/pre-ldls/components/Input/Input.stories.js +0 -1241
- package/lib/cjs/pre-ldls/components/Input/Input.stories.js.map +0 -1
- package/lib/cjs/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.js +0 -1794
- package/lib/cjs/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.js.map +0 -1
- package/lib/cjs/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.stories.js +0 -1849
- package/lib/cjs/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.stories.js.map +0 -1
- package/lib/cjs/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.js +0 -1793
- package/lib/cjs/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.js.map +0 -1
- package/lib/cjs/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.stories.js +0 -1852
- package/lib/cjs/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.stories.js.map +0 -1
- package/lib/cjs/pre-ldls/components/NetworkItem/NetworkItem.js +0 -1788
- package/lib/cjs/pre-ldls/components/NetworkItem/NetworkItem.js.map +0 -1
- package/lib/cjs/pre-ldls/components/NetworkItem/NetworkItem.stories.js +0 -1924
- package/lib/cjs/pre-ldls/components/NetworkItem/NetworkItem.stories.js.map +0 -1
- package/lib/cjs/pre-ldls/components/NetworkList/NetworkList.js +0 -2057
- package/lib/cjs/pre-ldls/components/NetworkList/NetworkList.js.map +0 -1
- package/lib/cjs/pre-ldls/components/NetworkList/NetworkList.stories.js +0 -2116
- package/lib/cjs/pre-ldls/components/NetworkList/NetworkList.stories.js.map +0 -1
- package/lib/cjs/pre-ldls/components/Search/Search.js +0 -1288
- package/lib/cjs/pre-ldls/components/Search/Search.js.map +0 -1
- package/lib/cjs/pre-ldls/components/Search/Search.stories.js +0 -1350
- package/lib/cjs/pre-ldls/components/Search/Search.stories.js.map +0 -1
- package/lib/cjs/pre-ldls/hooks/index.js +0 -110
- package/lib/cjs/pre-ldls/hooks/index.js.map +0 -1
- package/lib/cjs/pre-ldls/hooks/useDebouncedCallback.js +0 -101
- package/lib/cjs/pre-ldls/hooks/useDebouncedCallback.js.map +0 -1
- package/lib/cjs/pre-ldls/hooks/useDebouncedCallback.stories.js +0 -184
- package/lib/cjs/pre-ldls/hooks/useDebouncedCallback.stories.js.map +0 -1
- package/lib/pre-ldls/components/AssetItem/AssetItem.d.ts +0 -17
- package/lib/pre-ldls/components/AssetItem/AssetItem.d.ts.map +0 -1
- package/lib/pre-ldls/components/AssetItem/AssetItem.js +0 -76
- package/lib/pre-ldls/components/AssetItem/AssetItem.js.map +0 -1
- package/lib/pre-ldls/components/AssetList/AssetList.d.ts +0 -11
- package/lib/pre-ldls/components/AssetList/AssetList.d.ts.map +0 -1
- package/lib/pre-ldls/components/AssetList/AssetList.js +0 -8
- package/lib/pre-ldls/components/AssetList/AssetList.js.map +0 -1
- package/lib/pre-ldls/components/Input/Input.d.ts +0 -5
- package/lib/pre-ldls/components/Input/Input.d.ts.map +0 -1
- package/lib/pre-ldls/components/Input/Input.js +0 -31
- package/lib/pre-ldls/components/Input/Input.js.map +0 -1
- package/lib/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.d.ts +0 -5
- package/lib/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.d.ts.map +0 -1
- package/lib/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.js +0 -34
- package/lib/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.js.map +0 -1
- package/lib/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.stories.d.ts +0 -10
- package/lib/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.stories.d.ts.map +0 -1
- package/lib/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.stories.js +0 -20
- package/lib/pre-ldls/components/MarketPercentIndicator/MarketPercentIndicator.stories.js.map +0 -1
- package/lib/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.d.ts +0 -6
- package/lib/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.d.ts.map +0 -1
- package/lib/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.js +0 -32
- package/lib/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.js.map +0 -1
- package/lib/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.stories.d.ts +0 -10
- package/lib/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.stories.d.ts.map +0 -1
- package/lib/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.stories.js +0 -20
- package/lib/pre-ldls/components/MarketPriceIndicator/MarketPriceIndicator.stories.js.map +0 -1
- package/lib/pre-ldls/components/NetworkItem/NetworkItem.d.ts +0 -14
- package/lib/pre-ldls/components/NetworkItem/NetworkItem.d.ts.map +0 -1
- package/lib/pre-ldls/components/NetworkItem/NetworkItem.js +0 -43
- package/lib/pre-ldls/components/NetworkItem/NetworkItem.js.map +0 -1
- package/lib/pre-ldls/components/NetworkList/NetworkList.d.ts +0 -7
- package/lib/pre-ldls/components/NetworkList/NetworkList.d.ts.map +0 -1
- package/lib/pre-ldls/components/NetworkList/NetworkList.js +0 -8
- package/lib/pre-ldls/components/NetworkList/NetworkList.js.map +0 -1
- package/lib/pre-ldls/components/Search/Search.d.ts +0 -10
- package/lib/pre-ldls/components/Search/Search.d.ts.map +0 -1
- package/lib/pre-ldls/components/Search/Search.js +0 -47
- package/lib/pre-ldls/components/Search/Search.js.map +0 -1
- package/lib/pre-ldls/hooks/index.d.ts +0 -2
- package/lib/pre-ldls/hooks/index.d.ts.map +0 -1
- package/lib/pre-ldls/hooks/index.js +0 -2
- package/lib/pre-ldls/hooks/index.js.map +0 -1
- package/lib/pre-ldls/hooks/useDebouncedCallback.d.ts +0 -2
- package/lib/pre-ldls/hooks/useDebouncedCallback.d.ts.map +0 -1
- package/lib/pre-ldls/hooks/useDebouncedCallback.js +0 -16
- package/lib/pre-ldls/hooks/useDebouncedCallback.js.map +0 -1
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
var __webpack_modules__ = ({
|
|
4
4
|
3696(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
5
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
6
|
-
"default": () => (__rspack_default_export)
|
|
7
|
-
});
|
|
8
5
|
/* import */ var _styled__rspack_import_0 = __webpack_require__(7680);
|
|
9
6
|
|
|
10
7
|
const FlexBox = _styled__rspack_import_0["default"].div.attrs({
|
|
@@ -13,12 +10,14 @@ const FlexBox = _styled__rspack_import_0["default"].div.attrs({
|
|
|
13
10
|
})``;
|
|
14
11
|
/* export default */ const __rspack_default_export = (FlexBox);
|
|
15
12
|
|
|
13
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
14
|
+
}, {
|
|
15
|
+
"default": __rspack_default_export
|
|
16
|
+
});
|
|
17
|
+
|
|
16
18
|
|
|
17
19
|
},
|
|
18
20
|
1422(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
19
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
20
|
-
"default": () => (InfiniteLoader)
|
|
21
|
-
});
|
|
22
21
|
/* import */ var react__rspack_import_0 = __webpack_require__(2015);
|
|
23
22
|
/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);
|
|
24
23
|
/* import */ var styled_components__rspack_import_1 = __webpack_require__(2770);
|
|
@@ -106,12 +105,13 @@ function InfiniteLoader({ size = 38, color = "primary.c50", ...extraProps }) {
|
|
|
106
105
|
}));
|
|
107
106
|
}
|
|
108
107
|
|
|
108
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
109
|
+
"default": () => (InfiniteLoader)
|
|
110
|
+
});
|
|
111
|
+
|
|
109
112
|
|
|
110
113
|
},
|
|
111
114
|
7680(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
112
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
113
|
-
"default": () => (__rspack_default_export)
|
|
114
|
-
});
|
|
115
115
|
/* import */ var _styles_system_gaps__rspack_import_2 = __webpack_require__(4182);
|
|
116
116
|
/* import */ var styled_components__rspack_import_0 = __webpack_require__(2770);
|
|
117
117
|
/* import */ var styled_components__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(styled_components__rspack_import_0);
|
|
@@ -136,12 +136,14 @@ const proxyStyled = new Proxy((styled_components__rspack_import_0_default()), {
|
|
|
136
136
|
});
|
|
137
137
|
/* export default */ const __rspack_default_export = (proxyStyled);
|
|
138
138
|
|
|
139
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
140
|
+
}, {
|
|
141
|
+
"default": __rspack_default_export
|
|
142
|
+
});
|
|
143
|
+
|
|
139
144
|
|
|
140
145
|
},
|
|
141
146
|
4182(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
142
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
143
|
-
"default": () => (__rspack_default_export)
|
|
144
|
-
});
|
|
145
147
|
/* import */ var styled_system__rspack_import_0 = __webpack_require__(9351);
|
|
146
148
|
/* import */ var styled_system__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(styled_system__rspack_import_0);
|
|
147
149
|
|
|
@@ -157,6 +159,11 @@ const gaps = (0,styled_system__rspack_import_0.system)({
|
|
|
157
159
|
});
|
|
158
160
|
/* export default */ const __rspack_default_export = (gaps);
|
|
159
161
|
|
|
162
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
163
|
+
}, {
|
|
164
|
+
"default": __rspack_default_export
|
|
165
|
+
});
|
|
166
|
+
|
|
160
167
|
|
|
161
168
|
},
|
|
162
169
|
2015(module) {
|
|
@@ -210,12 +217,16 @@ __webpack_require__.n = (module) => {
|
|
|
210
217
|
})();
|
|
211
218
|
// webpack/runtime/define_property_getters
|
|
212
219
|
(() => {
|
|
213
|
-
__webpack_require__.d = (exports,
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
220
|
+
__webpack_require__.d = (exports, getters, values) => {
|
|
221
|
+
var define = (defs, kind) => {
|
|
222
|
+
for(var key in defs) {
|
|
223
|
+
if(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {
|
|
224
|
+
Object.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
define(getters, "get");
|
|
229
|
+
define(values, "value");
|
|
219
230
|
};
|
|
220
231
|
})();
|
|
221
232
|
// webpack/runtime/has_own_property
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-ldls/components/VirtualList/VirtualList.js","sources":["webpack://@ledgerhq/react-ui/./src/components/layout/Flex/index.ts","webpack://@ledgerhq/react-ui/./src/components/loaders/InfiniteLoader/index.tsx","webpack://@ledgerhq/react-ui/./src/components/styled.ts","webpack://@ledgerhq/react-ui/./src/styles/system/gaps.ts","webpack://@ledgerhq/react-ui/webpack/runtime/compat_get_default_export","webpack://@ledgerhq/react-ui/webpack/runtime/define_property_getters","webpack://@ledgerhq/react-ui/webpack/runtime/has_own_property","webpack://@ledgerhq/react-ui/webpack/runtime/make_namespace_object","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/VirtualList/VirtualList.tsx"],"sourcesContent":["import baseStyled, { BaseStyledProps } from \"../../styled\";\n\nconst FlexBox = baseStyled.div.attrs<BaseStyledProps, BaseStyledProps>({\n display: \"flex\",\n minWidth: 0,\n})``;\nexport type FlexBoxProps = BaseStyledProps & React.HTMLAttributes<HTMLDivElement>;\n\nexport default FlexBox;\n","import React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { system, size, SizeProps } from \"styled-system\";\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst Loader = styled.svg<SizeProps>`\n animation: ${rotate} 1s linear infinite;\n ${size}\n ${system({\n stroke: {\n property: \"stroke\",\n scale: \"colors\",\n },\n })}\n`;\nexport type Props = React.ComponentProps<typeof Loader> & {\n color?: string;\n};\n\nexport default function InfiniteLoader({\n size = 38,\n color = \"primary.c50\",\n ...extraProps\n}: Props): React.JSX.Element {\n return (\n <Loader\n size={size}\n stroke={color}\n viewBox=\"0 0 38 38\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...extraProps}\n >\n <linearGradient\n id=\"gradient-start\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"rotate(-20)\"\n >\n <stop offset=\"0\" stopColor=\"white\" stopOpacity=\"0.5\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"1\" />\n </linearGradient>\n <linearGradient\n id=\"gradient-end\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"rotate(-20)\"\n >\n <stop offset=\"0\" stopColor=\"white\" stopOpacity=\"0.5\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" />\n </linearGradient>\n\n <mask id=\"gradient-mask\" maskUnits=\"userSpaceOnUse\">\n <rect\n x=\"-0\"\n y=\"-4\"\n width=\"44\"\n height=\"22\"\n strokeWidth=\"0\"\n fill=\"url(#gradient-start)\"\n transform=\"rotate(10)\"\n />\n <rect\n x=\"0\"\n y=\"18\"\n width=\"44\"\n height=\"21\"\n strokeWidth=\"0\"\n fill=\"url(#gradient-end)\"\n transform=\"rotate(10)\"\n />\n </mask>\n <path\n d=\"M34.8807 20.9499C35.3608 17.0398 34.3815 13.09 32.1304 9.85712C29.8793 6.6242 26.5146 4.33541 22.6808 3.42914C18.847 2.52287 14.8136 3.06283 11.3532 4.94559C7.89277 6.82836 5.24858 9.92158 3.92708 13.6328C2.60558 17.344 2.69968 21.4123 4.19135 25.0584C5.68302 28.7045 8.4674 31.6722 12.0112 33.3929C15.5549 35.1137 19.609 35.4666 23.3968 34.384C27.1846 33.3015 30.4398 30.8596 32.5391 27.526\"\n strokeWidth=\"6\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n mask=\"url(#gradient-mask)\"\n />\n </Loader>\n );\n}\n","import React from \"react\";\nimport gaps from \"../styles/system/gaps\";\nimport styled, { StyledInterface, InterpolationFunction } from \"styled-components\";\nimport {\n compose,\n flexbox,\n FlexboxProps,\n space,\n SpaceProps,\n position,\n PositionProps,\n color,\n ColorProps,\n layout,\n LayoutProps,\n overflow,\n OverflowProps,\n border,\n BorderProps,\n} from \"styled-system\";\n\nexport type BaseStyledProps = SpaceProps &\n FlexboxProps &\n PositionProps &\n ColorProps &\n LayoutProps &\n BorderProps &\n OverflowProps & {\n /**\n * The columnGap CSS property sets the size of the gap (gutter) between an element's grid columns.\n */\n columnGap?: string | number;\n /**\n * The rowGap CSS property sets the size of the gap (gutter) between an element's grid rows.\n */\n rowGap?: string | number;\n color?: string;\n children?: React.ReactNode;\n };\n\nexport const baseStyles: InterpolationFunction<unknown> = compose(\n flexbox,\n space,\n position,\n color,\n layout,\n overflow,\n gaps,\n border,\n);\n\nconst proxyStyled = new Proxy(styled, {\n apply(target: typeof styled, thisArg, argumentsList: Parameters<typeof styled>) {\n return styled(target.apply(thisArg, argumentsList)(baseStyles));\n },\n get(target, property: keyof typeof styled) {\n if (typeof target[property] === \"function\") {\n return styled(target[property].apply(styled, [baseStyles]));\n }\n return target[property];\n },\n});\n\nexport default <StyledInterface>proxyStyled;\n","import { system } from \"styled-system\";\n\nconst gaps = system({\n rowGap: { property: \"rowGap\", scale: \"space\" },\n columnGap: { property: \"columnGap\", scale: \"space\" },\n});\n\nexport default gaps;\n","// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React, { useEffect, useRef, useCallback } from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { Flex, InfiniteLoader } from \"../../../components\";\n\ninterface VirtualItem {\n key: string | number | bigint;\n index: number;\n start: number;\n end: number;\n size: number;\n}\n\n/**\n * Props for the VirtualList component, which efficiently renders large lists\n * by virtualizing DOM nodes to improve performance.\n */\ntype VirtualListProps<T> = {\n /**\n * Gap between items in the list.\n */\n gap?: number;\n /**\n * Height of each item in the list.\n * This is used to calculate the total height of the list and the position of each item.\n */\n itemHeight: number;\n /**\n * Number of extra items to render outside the visible viewport for smoother scrolling.\n * Defaults to 5.\n */\n overscan?: number;\n /**\n * React component or node to display when the list is loading additional items.\n * If not provided, a default loading spinner will be used.\n */\n LoadingComponent?: React.ReactNode;\n /**\n * Indicates whether new items are currently being loaded.\n */\n isLoading?: boolean;\n /**\n * Indicates if there are more items to load.\n */\n hasNextPage?: boolean;\n /**\n * Number of items to check before the end of the list to trigger loading more items.\n * Defaults to 5.\n */\n threshold?: number;\n /**\n * Callback function to be called when the user scrolls to the end of the visible items.\n * This can be used to load more items when the user reaches the end of the list.\n */\n onVisibleItemsScrollEnd?: () => void;\n /**\n * Function to render each item in the list.\n * Receives a single value from the items array as an argument and should return a React node.\n */\n renderItem: (item: T) => React.ReactNode;\n /**\n * The array of items which will be rendered\n */\n items: T[];\n /**\n * When set to true, the list will scroll to the top\n */\n scrollToTop?: boolean;\n /**\n * React component or node to display at the bottom of the list, after all items.\n */\n bottomComponent?: React.ReactNode;\n};\n\nconst DefaultLoadingComponent = () => (\n <Flex justifyContent=\"center\" alignItems=\"center\" height=\"76px\">\n <InfiniteLoader />\n </Flex>\n);\n\nfunction easeInOutCubic(t: number) {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n}\n\nexport const VirtualList = <T,>({\n gap,\n hasNextPage = false,\n isLoading,\n itemHeight,\n items,\n LoadingComponent,\n onVisibleItemsScrollEnd,\n overscan = 5,\n renderItem,\n scrollToTop = false,\n bottomComponent,\n threshold = 5,\n}: VirtualListProps<T>) => {\n const parentRef = useRef<HTMLDivElement>(null);\n\n const scrollToFn = useCallback(\n (\n offset: number,\n options: { adjustments?: number; behavior?: \"auto\" | \"smooth\" },\n instance: { scrollElement: HTMLElement | null },\n ) => {\n const element = instance.scrollElement;\n if (!element) return;\n\n const duration = options.behavior === \"smooth\" ? 100 : 0;\n\n if (duration === 0) {\n element.scrollTop = offset;\n return;\n }\n\n const startTime = performance.now();\n const startTop = element.scrollTop;\n const distanceToScroll = offset - startTop;\n\n const scrollStep = (currentTime: number) => {\n const elapsed = currentTime - startTime;\n const progress = Math.min(elapsed / duration, 1);\n\n const easedProgress = easeInOutCubic(progress);\n\n element.scrollTop = startTop + distanceToScroll * easedProgress;\n\n if (progress < 1) {\n requestAnimationFrame(scrollStep);\n }\n };\n\n requestAnimationFrame(scrollStep);\n },\n [],\n );\n\n const rowVirtualizer = useVirtualizer({\n gap,\n count: hasNextPage ? items.length + 1 : items.length,\n overscan,\n getScrollElement: () => parentRef.current,\n estimateSize: () => itemHeight,\n scrollToFn,\n });\n\n useEffect(() => {\n if (scrollToTop && parentRef.current) {\n scrollToFn(0, { behavior: \"smooth\" }, { scrollElement: parentRef.current });\n }\n }, [scrollToTop, scrollToFn]);\n\n const virtualItems = rowVirtualizer.getVirtualItems();\n\n useEffect(() => {\n if (!virtualItems.length) return;\n const lastItem = virtualItems[virtualItems.length - 1];\n\n if (\n lastItem.index >= items.length - 1 - threshold &&\n hasNextPage &&\n !isLoading &&\n onVisibleItemsScrollEnd\n ) {\n onVisibleItemsScrollEnd();\n }\n }, [hasNextPage, onVisibleItemsScrollEnd, items.length, isLoading, threshold, virtualItems]);\n\n const showCustomLoadingComponent = !!LoadingComponent;\n\n const Loading = useCallback(\n () => (showCustomLoadingComponent ? LoadingComponent : <DefaultLoadingComponent />),\n [showCustomLoadingComponent, LoadingComponent],\n );\n\n return (\n <div\n ref={parentRef}\n style={{ width: \"100%\", height: \"100%\", overflow: \"auto\", scrollbarWidth: \"none\" }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n position: \"relative\",\n }}\n >\n {rowVirtualizer.getVirtualItems().map((virtualRow: VirtualItem) => {\n const item = items[virtualRow.index];\n\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n ref={rowVirtualizer.measureElement}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n transform: `translateY(${virtualRow.start}px)`,\n height: `${itemHeight}px`,\n width: \"100%\",\n }}\n >\n {item ? renderItem(item) : <Loading />}\n </div>\n );\n })}\n {bottomComponent && (\n <div\n style={{\n position: \"absolute\",\n top: `${rowVirtualizer.getTotalSize()}px`,\n left: 0,\n width: \"100%\",\n }}\n >\n {bottomComponent}\n </div>\n )}\n </div>\n {isLoading && <Loading />}\n </div>\n );\n};\n"],"names":["baseStyled","FlexBox","React","styled","keyframes","system","size","rotate","Loader","InfiniteLoader","color","extraProps","gaps","compose","flexbox","space","position","layout","overflow","border","baseStyles","proxyStyled","Proxy","target","thisArg","argumentsList","property","useEffect","useRef","useCallback","useVirtualizer","Flex","DefaultLoadingComponent","easeInOutCubic","t","Math","VirtualList","gap","hasNextPage","isLoading","itemHeight","items","LoadingComponent","onVisibleItemsScrollEnd","overscan","renderItem","scrollToTop","bottomComponent","threshold","parentRef","scrollToFn","offset","options","instance","element","duration","startTime","performance","startTop","distanceToScroll","scrollStep","currentTime","elapsed","progress","easedProgress","requestAnimationFrame","rowVirtualizer","virtualItems","lastItem","showCustomLoadingComponent","Loading","virtualRow","item"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pre-ldls/components/VirtualList/VirtualList.js","sources":["webpack://@ledgerhq/react-ui/./src/components/layout/Flex/index.ts","webpack://@ledgerhq/react-ui/./src/components/loaders/InfiniteLoader/index.tsx","webpack://@ledgerhq/react-ui/./src/components/styled.ts","webpack://@ledgerhq/react-ui/./src/styles/system/gaps.ts","webpack://@ledgerhq/react-ui/webpack/runtime/compat_get_default_export","webpack://@ledgerhq/react-ui/webpack/runtime/define_property_getters","webpack://@ledgerhq/react-ui/webpack/runtime/has_own_property","webpack://@ledgerhq/react-ui/webpack/runtime/make_namespace_object","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/VirtualList/VirtualList.tsx"],"sourcesContent":["import baseStyled, { BaseStyledProps } from \"../../styled\";\n\nconst FlexBox = baseStyled.div.attrs<BaseStyledProps, BaseStyledProps>({\n display: \"flex\",\n minWidth: 0,\n})``;\nexport type FlexBoxProps = BaseStyledProps & React.HTMLAttributes<HTMLDivElement>;\n\nexport default FlexBox;\n","import React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { system, size, SizeProps } from \"styled-system\";\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst Loader = styled.svg<SizeProps>`\n animation: ${rotate} 1s linear infinite;\n ${size}\n ${system({\n stroke: {\n property: \"stroke\",\n scale: \"colors\",\n },\n })}\n`;\nexport type Props = React.ComponentProps<typeof Loader> & {\n color?: string;\n};\n\nexport default function InfiniteLoader({\n size = 38,\n color = \"primary.c50\",\n ...extraProps\n}: Props): React.JSX.Element {\n return (\n <Loader\n size={size}\n stroke={color}\n viewBox=\"0 0 38 38\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...extraProps}\n >\n <linearGradient\n id=\"gradient-start\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"rotate(-20)\"\n >\n <stop offset=\"0\" stopColor=\"white\" stopOpacity=\"0.5\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"1\" />\n </linearGradient>\n <linearGradient\n id=\"gradient-end\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"rotate(-20)\"\n >\n <stop offset=\"0\" stopColor=\"white\" stopOpacity=\"0.5\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" />\n </linearGradient>\n\n <mask id=\"gradient-mask\" maskUnits=\"userSpaceOnUse\">\n <rect\n x=\"-0\"\n y=\"-4\"\n width=\"44\"\n height=\"22\"\n strokeWidth=\"0\"\n fill=\"url(#gradient-start)\"\n transform=\"rotate(10)\"\n />\n <rect\n x=\"0\"\n y=\"18\"\n width=\"44\"\n height=\"21\"\n strokeWidth=\"0\"\n fill=\"url(#gradient-end)\"\n transform=\"rotate(10)\"\n />\n </mask>\n <path\n d=\"M34.8807 20.9499C35.3608 17.0398 34.3815 13.09 32.1304 9.85712C29.8793 6.6242 26.5146 4.33541 22.6808 3.42914C18.847 2.52287 14.8136 3.06283 11.3532 4.94559C7.89277 6.82836 5.24858 9.92158 3.92708 13.6328C2.60558 17.344 2.69968 21.4123 4.19135 25.0584C5.68302 28.7045 8.4674 31.6722 12.0112 33.3929C15.5549 35.1137 19.609 35.4666 23.3968 34.384C27.1846 33.3015 30.4398 30.8596 32.5391 27.526\"\n strokeWidth=\"6\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n mask=\"url(#gradient-mask)\"\n />\n </Loader>\n );\n}\n","import React from \"react\";\nimport gaps from \"../styles/system/gaps\";\nimport styled, { StyledInterface, InterpolationFunction } from \"styled-components\";\nimport {\n compose,\n flexbox,\n FlexboxProps,\n space,\n SpaceProps,\n position,\n PositionProps,\n color,\n ColorProps,\n layout,\n LayoutProps,\n overflow,\n OverflowProps,\n border,\n BorderProps,\n} from \"styled-system\";\n\nexport type BaseStyledProps = SpaceProps &\n FlexboxProps &\n PositionProps &\n ColorProps &\n LayoutProps &\n BorderProps &\n OverflowProps & {\n /**\n * The columnGap CSS property sets the size of the gap (gutter) between an element's grid columns.\n */\n columnGap?: string | number;\n /**\n * The rowGap CSS property sets the size of the gap (gutter) between an element's grid rows.\n */\n rowGap?: string | number;\n color?: string;\n children?: React.ReactNode;\n };\n\nexport const baseStyles: InterpolationFunction<unknown> = compose(\n flexbox,\n space,\n position,\n color,\n layout,\n overflow,\n gaps,\n border,\n);\n\nconst proxyStyled = new Proxy(styled, {\n apply(target: typeof styled, thisArg, argumentsList: Parameters<typeof styled>) {\n return styled(target.apply(thisArg, argumentsList)(baseStyles));\n },\n get(target, property: keyof typeof styled) {\n if (typeof target[property] === \"function\") {\n return styled(target[property].apply(styled, [baseStyles]));\n }\n return target[property];\n },\n});\n\nexport default <StyledInterface>proxyStyled;\n","import { system } from \"styled-system\";\n\nconst gaps = system({\n rowGap: { property: \"rowGap\", scale: \"space\" },\n columnGap: { property: \"columnGap\", scale: \"space\" },\n});\n\nexport default gaps;\n","// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React, { useEffect, useRef, useCallback } from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { Flex, InfiniteLoader } from \"../../../components\";\n\ninterface VirtualItem {\n key: string | number | bigint;\n index: number;\n start: number;\n end: number;\n size: number;\n}\n\n/**\n * Props for the VirtualList component, which efficiently renders large lists\n * by virtualizing DOM nodes to improve performance.\n */\ntype VirtualListProps<T> = {\n /**\n * Gap between items in the list.\n */\n gap?: number;\n /**\n * Height of each item in the list.\n * This is used to calculate the total height of the list and the position of each item.\n */\n itemHeight: number;\n /**\n * Number of extra items to render outside the visible viewport for smoother scrolling.\n * Defaults to 5.\n */\n overscan?: number;\n /**\n * React component or node to display when the list is loading additional items.\n * If not provided, a default loading spinner will be used.\n */\n LoadingComponent?: React.ReactNode;\n /**\n * Indicates whether new items are currently being loaded.\n */\n isLoading?: boolean;\n /**\n * Indicates if there are more items to load.\n */\n hasNextPage?: boolean;\n /**\n * Number of items to check before the end of the list to trigger loading more items.\n * Defaults to 5.\n */\n threshold?: number;\n /**\n * Callback function to be called when the user scrolls to the end of the visible items.\n * This can be used to load more items when the user reaches the end of the list.\n */\n onVisibleItemsScrollEnd?: () => void;\n /**\n * Function to render each item in the list.\n * Receives a single value from the items array as an argument and should return a React node.\n */\n renderItem: (item: T) => React.ReactNode;\n /**\n * The array of items which will be rendered\n */\n items: T[];\n /**\n * When set to true, the list will scroll to the top\n */\n scrollToTop?: boolean;\n /**\n * React component or node to display at the bottom of the list, after all items.\n */\n bottomComponent?: React.ReactNode;\n};\n\nconst DefaultLoadingComponent = () => (\n <Flex justifyContent=\"center\" alignItems=\"center\" height=\"76px\">\n <InfiniteLoader />\n </Flex>\n);\n\nfunction easeInOutCubic(t: number) {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n}\n\nexport const VirtualList = <T,>({\n gap,\n hasNextPage = false,\n isLoading,\n itemHeight,\n items,\n LoadingComponent,\n onVisibleItemsScrollEnd,\n overscan = 5,\n renderItem,\n scrollToTop = false,\n bottomComponent,\n threshold = 5,\n}: VirtualListProps<T>) => {\n const parentRef = useRef<HTMLDivElement>(null);\n\n const scrollToFn = useCallback(\n (\n offset: number,\n options: { adjustments?: number; behavior?: \"auto\" | \"smooth\" },\n instance: { scrollElement: HTMLElement | null },\n ) => {\n const element = instance.scrollElement;\n if (!element) return;\n\n const duration = options.behavior === \"smooth\" ? 100 : 0;\n\n if (duration === 0) {\n element.scrollTop = offset;\n return;\n }\n\n const startTime = performance.now();\n const startTop = element.scrollTop;\n const distanceToScroll = offset - startTop;\n\n const scrollStep = (currentTime: number) => {\n const elapsed = currentTime - startTime;\n const progress = Math.min(elapsed / duration, 1);\n\n const easedProgress = easeInOutCubic(progress);\n\n element.scrollTop = startTop + distanceToScroll * easedProgress;\n\n if (progress < 1) {\n requestAnimationFrame(scrollStep);\n }\n };\n\n requestAnimationFrame(scrollStep);\n },\n [],\n );\n\n const rowVirtualizer = useVirtualizer({\n gap,\n count: hasNextPage ? items.length + 1 : items.length,\n overscan,\n getScrollElement: () => parentRef.current,\n estimateSize: () => itemHeight,\n scrollToFn,\n });\n\n useEffect(() => {\n if (scrollToTop && parentRef.current) {\n scrollToFn(0, { behavior: \"smooth\" }, { scrollElement: parentRef.current });\n }\n }, [scrollToTop, scrollToFn]);\n\n const virtualItems = rowVirtualizer.getVirtualItems();\n\n useEffect(() => {\n if (!virtualItems.length) return;\n const lastItem = virtualItems[virtualItems.length - 1];\n\n if (\n lastItem.index >= items.length - 1 - threshold &&\n hasNextPage &&\n !isLoading &&\n onVisibleItemsScrollEnd\n ) {\n onVisibleItemsScrollEnd();\n }\n }, [hasNextPage, onVisibleItemsScrollEnd, items.length, isLoading, threshold, virtualItems]);\n\n const showCustomLoadingComponent = !!LoadingComponent;\n\n const Loading = useCallback(\n () => (showCustomLoadingComponent ? LoadingComponent : <DefaultLoadingComponent />),\n [showCustomLoadingComponent, LoadingComponent],\n );\n\n return (\n <div\n ref={parentRef}\n style={{ width: \"100%\", height: \"100%\", overflow: \"auto\", scrollbarWidth: \"none\" }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n position: \"relative\",\n }}\n >\n {rowVirtualizer.getVirtualItems().map((virtualRow: VirtualItem) => {\n const item = items[virtualRow.index];\n\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n ref={rowVirtualizer.measureElement}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n transform: `translateY(${virtualRow.start}px)`,\n height: `${itemHeight}px`,\n width: \"100%\",\n }}\n >\n {item ? renderItem(item) : <Loading />}\n </div>\n );\n })}\n {bottomComponent && (\n <div\n style={{\n position: \"absolute\",\n top: `${rowVirtualizer.getTotalSize()}px`,\n left: 0,\n width: \"100%\",\n }}\n >\n {bottomComponent}\n </div>\n )}\n </div>\n {isLoading && <Loading />}\n </div>\n );\n};\n"],"names":["baseStyled","FlexBox","React","styled","keyframes","system","size","rotate","Loader","InfiniteLoader","color","extraProps","gaps","compose","flexbox","space","position","layout","overflow","border","baseStyles","proxyStyled","Proxy","target","thisArg","argumentsList","property","useEffect","useRef","useCallback","useVirtualizer","Flex","DefaultLoadingComponent","easeInOutCubic","t","Math","VirtualList","gap","hasNextPage","isLoading","itemHeight","items","LoadingComponent","onVisibleItemsScrollEnd","overscan","renderItem","scrollToTop","bottomComponent","threshold","parentRef","scrollToFn","offset","options","instance","element","duration","startTime","performance","startTop","distanceToScroll","scrollStep","currentTime","elapsed","progress","easedProgress","requestAnimationFrame","rowVirtualizer","virtualItems","lastItem","showCustomLoadingComponent","Loading","virtualRow","item"],"mappings":";;;;;AAA2D;AAE3D,MAAMC,UAAUD,6CAAoB,CAAmC;IACrE,SAAS;IACT,UAAU;AACZ,EAAE,CAAC,CAAC;AAGJ,sDAAeC,OAAOA,EAAC;;;;;;;;;;;;;;;;ACRG;AAC4B;AACE;AAExD,MAAMM,SAASH,gDAAS,CAAC;;;;;;;AAOzB,CAAC;AAED,MAAMI,SAASL,kDAAqB,CAAC;aACxB,EAAEI,OAAO;EACpB,EAAED,mCAAIA,CAAC;EACP,EAAED,yCAAMA,CAAC;IACP,QAAQ;QACN,UAAU;QACV,OAAO;IACT;AACF,GAAG;AACL,CAAC;AAKc,SAASI,eAAe,EACrCH,OAAO,EAAE,EACTI,QAAQ,aAAa,EACrB,GAAGC,YACG;IACN,qBACE,+CAACH;QACC,MAAMF;QACN,QAAQI;QACR,SAAQ;QACR,MAAK;QACL,OAAM;QACL,GAAGC,UAAU;qBAEd,+CAAC;QACC,IAAG;QACH,eAAc;QACd,mBAAkB;qBAElB,+CAAC;QAAK,QAAO;QAAI,WAAU;QAAQ,aAAY;sBAC/C,+CAAC;QAAK,QAAO;QAAI,WAAU;QAAQ,aAAY;uBAEjD,+CAAC;QACC,IAAG;QACH,eAAc;QACd,mBAAkB;qBAElB,+CAAC;QAAK,QAAO;QAAI,WAAU;QAAQ,aAAY;sBAC/C,+CAAC;QAAK,QAAO;QAAI,WAAU;QAAQ,aAAY;uBAGjD,+CAAC;QAAK,IAAG;QAAgB,WAAU;qBACjC,+CAAC;QACC,GAAE;QACF,GAAE;QACF,OAAM;QACN,QAAO;QACP,aAAY;QACZ,MAAK;QACL,WAAU;sBAEZ,+CAAC;QACC,GAAE;QACF,GAAE;QACF,OAAM;QACN,QAAO;QACP,aAAY;QACZ,MAAK;QACL,WAAU;uBAGd,+CAAC;QACC,GAAE;QACF,aAAY;QACZ,eAAc;QACd,gBAAe;QACf,MAAK;;AAIb;;;;;;;;;;;;;;ACtFyC;AAC0C;AAiB5D;AAqBhB,MAAMS,aAA6CP,0CAAOA,CAC/DC,sCAAOA,EACPC,oCAAKA,EACLC,uCAAQA,EACRN,oCAAKA,EACLO,qCAAMA,EACNC,uCAAQA,EACRN,+CAAIA,EACJO,qCAAMA,EACN;AAEF,MAAME,cAAc,IAAIC,MAAMnB,8CAAMA,EAAE;IACpC,OAAMoB,MAAqB,EAAEC,OAAO,EAAEC,aAAwC;QAC5E,OAAOtB,4CAAMA,CAACoB,OAAO,KAAK,CAACC,SAASC,eAAeL;IACrD;IACA,KAAIG,MAAM,EAAEG,QAA6B;QACvC,IAAI,OAAOH,MAAM,CAACG,SAAS,KAAK,YAAY;YAC1C,OAAOvB,4CAAMA,CAACoB,MAAM,CAACG,SAAS,CAAC,KAAK,CAACvB,8CAAMA,EAAE;gBAACiB;aAAW;QAC3D;QACA,OAAOG,MAAM,CAACG,SAAS;IACzB;AACF;AAEA,sDAAgCL,WAAWA,EAAC;;;;;;;;;;;;AC/DL;AAEvC,MAAMT,OAAOP,yCAAMA,CAAC;IAClB,QAAQ;QAAE,UAAU;QAAU,OAAO;IAAQ;IAC7C,WAAW;QAAE,UAAU;QAAa,OAAO;IAAQ;AACrD;AAEA,sDAAeO,IAAIA,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPpB;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;;;;;ACPA;AACA;AACA;AACA;AACA,0CAA0C,qCAAqC;AAC/E;AACA;AACA;AACA;AACA;AACA,E;;;;ACVA,wF;;;;ACAA;AACA;AACA;AACA,uDAAuD,iBAAiB;AACxE;AACA,gDAAgD,aAAa;AAC7D,E;;;;;;;;;;;;;;;;;;;;;;;ACN8D;AACL;AACE;AAuE3D,MAAMoB,0BAA0B,kBAC9B,uCAACD,eAAIA;QAAC,gBAAe;QAAS,YAAW;QAAS,QAAO;qBACvD,uCAACtB,yBAAcA;AAInB,SAASwB,eAAeC,CAAS;IAC/B,OAAOA,IAAI,MAAM,IAAIA,IAAIA,IAAIA,IAAI,IAAIC,KAAK,GAAG,CAAC,CAAC,IAAID,IAAI,GAAG,KAAK;AACjE;AAEO,MAAME,cAAc,CAAK,EAC9BC,GAAG,EACHC,cAAc,KAAK,EACnBC,SAAS,EACTC,UAAU,EACVC,KAAK,EACLC,gBAAgB,EAChBC,uBAAuB,EACvBC,WAAW,CAAC,EACZC,UAAU,EACVC,cAAc,KAAK,EACnBC,eAAe,EACfC,YAAY,CAAC,EACO;IACpB,MAAMC,YAAYrB,0BAAMA,CAAiB;IAEzC,MAAMsB,aAAarB,+BAAWA,CAC5B,CACEsB,QACAC,SACAC;QAEA,MAAMC,UAAUD,SAAS,aAAa;QACtC,IAAI,CAACC,SAAS;QAEd,MAAMC,WAAWH,QAAQ,QAAQ,KAAK,WAAW,MAAM;QAEvD,IAAIG,aAAa,GAAG;YAClBD,QAAQ,SAAS,GAAGH;YACpB;QACF;QAEA,MAAMK,YAAYC,YAAY,GAAG;QACjC,MAAMC,WAAWJ,QAAQ,SAAS;QAClC,MAAMK,mBAAmBR,SAASO;QAElC,MAAME,aAAa,CAACC;YAClB,MAAMC,UAAUD,cAAcL;YAC9B,MAAMO,WAAW5B,KAAK,GAAG,CAAC2B,UAAUP,UAAU;YAE9C,MAAMS,gBAAgB/B,eAAe8B;YAErCT,QAAQ,SAAS,GAAGI,WAAWC,mBAAmBK;YAElD,IAAID,WAAW,GAAG;gBAChBE,sBAAsBL;YACxB;QACF;QAEAK,sBAAsBL;IACxB,GACA,EAAE;IAGJ,MAAMM,iBAAiBpC,gDAAcA,CAAC;QACpCO;QACA,OAAOC,cAAcG,MAAM,MAAM,GAAG,IAAIA,MAAM,MAAM;QACpDG;QACA,kBAAkB,IAAMK,UAAU,OAAO;QACzC,cAAc,IAAMT;QACpBU;IACF;IAEAvB,6BAASA,CAAC;QACR,IAAImB,eAAeG,UAAU,OAAO,EAAE;YACpCC,WAAW,GAAG;gBAAE,UAAU;YAAS,GAAG;gBAAE,eAAeD,UAAU,OAAO;YAAC;QAC3E;IACF,GAAG;QAACH;QAAaI;KAAW;IAE5B,MAAMiB,eAAeD,eAAe,eAAe;IAEnDvC,6BAASA,CAAC;QACR,IAAI,CAACwC,aAAa,MAAM,EAAE;QAC1B,MAAMC,WAAWD,YAAY,CAACA,aAAa,MAAM,GAAG,EAAE;QAEtD,IACEC,SAAS,KAAK,IAAI3B,MAAM,MAAM,GAAG,IAAIO,aACrCV,eACA,CAACC,aACDI,yBACA;YACAA;QACF;IACF,GAAG;QAACL;QAAaK;QAAyBF,MAAM,MAAM;QAAEF;QAAWS;QAAWmB;KAAa;IAE3F,MAAME,6BAA6B,CAAC,CAAC3B;IAErC,MAAM4B,UAAUzC,+BAAWA,CACzB,IAAOwC,6BAA6B3B,iCAAmB,uCAACV,gCACxD;QAACqC;QAA4B3B;KAAiB;IAGhD,qBACE,uCAAC;QACC,KAAKO;QACL,OAAO;YAAE,OAAO;YAAQ,QAAQ;YAAQ,UAAU;YAAQ,gBAAgB;QAAO;qBAEjF,uCAAC;QACC,OAAO;YACL,QAAQ,GAAGiB,eAAe,YAAY,GAAG,EAAE,CAAC;YAC5C,OAAO;YACP,SAAS;YACT,eAAe;YACf,UAAU;QACZ;OAECA,eAAe,eAAe,GAAG,GAAG,CAAC,CAACK;QACrC,MAAMC,OAAO/B,KAAK,CAAC8B,WAAW,KAAK,CAAC;QAEpC,qBACE,uCAAC;YACC,KAAKA,WAAW,KAAK;YACrB,cAAYA,WAAW,KAAK;YAC5B,KAAKL,eAAe,cAAc;YAClC,OAAO;gBACL,UAAU;gBACV,KAAK;gBACL,MAAM;gBACN,WAAW,CAAC,WAAW,EAAEK,WAAW,KAAK,CAAC,GAAG,CAAC;gBAC9C,QAAQ,GAAG/B,WAAW,EAAE,CAAC;gBACzB,OAAO;YACT;WAECgC,OAAO3B,WAAW2B,sBAAQ,uCAACF;IAGlC,IACCvB,iCACC,uCAAC;QACC,OAAO;YACL,UAAU;YACV,KAAK,GAAGmB,eAAe,YAAY,GAAG,EAAE,CAAC;YACzC,MAAM;YACN,OAAO;QACT;OAECnB,mBAINR,2BAAa,uCAAC+B;AAGrB,EAAE"}
|
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
var __webpack_modules__ = ({
|
|
4
4
|
3696(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
5
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
6
|
-
"default": () => (__rspack_default_export)
|
|
7
|
-
});
|
|
8
5
|
/* import */ var _styled__rspack_import_0 = __webpack_require__(7680);
|
|
9
6
|
|
|
10
7
|
const FlexBox = _styled__rspack_import_0["default"].div.attrs({
|
|
@@ -13,12 +10,14 @@ const FlexBox = _styled__rspack_import_0["default"].div.attrs({
|
|
|
13
10
|
})``;
|
|
14
11
|
/* export default */ const __rspack_default_export = (FlexBox);
|
|
15
12
|
|
|
13
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
14
|
+
}, {
|
|
15
|
+
"default": __rspack_default_export
|
|
16
|
+
});
|
|
17
|
+
|
|
16
18
|
|
|
17
19
|
},
|
|
18
20
|
1422(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
19
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
20
|
-
"default": () => (InfiniteLoader)
|
|
21
|
-
});
|
|
22
21
|
/* import */ var react__rspack_import_0 = __webpack_require__(2015);
|
|
23
22
|
/* import */ var react__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(react__rspack_import_0);
|
|
24
23
|
/* import */ var styled_components__rspack_import_1 = __webpack_require__(2770);
|
|
@@ -106,12 +105,13 @@ function InfiniteLoader({ size = 38, color = "primary.c50", ...extraProps }) {
|
|
|
106
105
|
}));
|
|
107
106
|
}
|
|
108
107
|
|
|
108
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
109
|
+
"default": () => (InfiniteLoader)
|
|
110
|
+
});
|
|
111
|
+
|
|
109
112
|
|
|
110
113
|
},
|
|
111
114
|
7680(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
112
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
113
|
-
"default": () => (__rspack_default_export)
|
|
114
|
-
});
|
|
115
115
|
/* import */ var _styles_system_gaps__rspack_import_2 = __webpack_require__(4182);
|
|
116
116
|
/* import */ var styled_components__rspack_import_0 = __webpack_require__(2770);
|
|
117
117
|
/* import */ var styled_components__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(styled_components__rspack_import_0);
|
|
@@ -136,9 +136,14 @@ const proxyStyled = new Proxy((styled_components__rspack_import_0_default()), {
|
|
|
136
136
|
});
|
|
137
137
|
/* export default */ const __rspack_default_export = (proxyStyled);
|
|
138
138
|
|
|
139
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
140
|
+
}, {
|
|
141
|
+
"default": __rspack_default_export
|
|
142
|
+
});
|
|
143
|
+
|
|
139
144
|
|
|
140
145
|
},
|
|
141
|
-
|
|
146
|
+
9535(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
142
147
|
|
|
143
148
|
// EXPORTS
|
|
144
149
|
__webpack_require__.d(__webpack_exports__, {
|
|
@@ -274,9 +279,6 @@ const VirtualList = ({ gap, hasNextPage = false, isLoading, itemHeight, items, L
|
|
|
274
279
|
|
|
275
280
|
},
|
|
276
281
|
4182(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
|
|
277
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
278
|
-
"default": () => (__rspack_default_export)
|
|
279
|
-
});
|
|
280
282
|
/* import */ var styled_system__rspack_import_0 = __webpack_require__(9351);
|
|
281
283
|
/* import */ var styled_system__rspack_import_0_default = /*#__PURE__*/__webpack_require__.n(styled_system__rspack_import_0);
|
|
282
284
|
|
|
@@ -292,6 +294,11 @@ const gaps = (0,styled_system__rspack_import_0.system)({
|
|
|
292
294
|
});
|
|
293
295
|
/* export default */ const __rspack_default_export = (gaps);
|
|
294
296
|
|
|
297
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
298
|
+
}, {
|
|
299
|
+
"default": __rspack_default_export
|
|
300
|
+
});
|
|
301
|
+
|
|
295
302
|
|
|
296
303
|
},
|
|
297
304
|
2015(module) {
|
|
@@ -345,12 +352,16 @@ __webpack_require__.n = (module) => {
|
|
|
345
352
|
})();
|
|
346
353
|
// webpack/runtime/define_property_getters
|
|
347
354
|
(() => {
|
|
348
|
-
__webpack_require__.d = (exports,
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
355
|
+
__webpack_require__.d = (exports, getters, values) => {
|
|
356
|
+
var define = (defs, kind) => {
|
|
357
|
+
for(var key in defs) {
|
|
358
|
+
if(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {
|
|
359
|
+
Object.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
define(getters, "get");
|
|
364
|
+
define(values, "value");
|
|
354
365
|
};
|
|
355
366
|
})();
|
|
356
367
|
// webpack/runtime/has_own_property
|
|
@@ -375,18 +386,18 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
375
386
|
|
|
376
387
|
// EXPORTS
|
|
377
388
|
__webpack_require__.d(__webpack_exports__, {
|
|
378
|
-
WithCustomLastRow: () => (/* binding */ WithCustomLastRow),
|
|
379
|
-
TestVirtualList: () => (/* binding */ TestVirtualList),
|
|
380
|
-
"default": () => (/* binding */ VirtualList_stories),
|
|
381
389
|
Default: () => (/* binding */ Default),
|
|
382
|
-
|
|
390
|
+
TestVirtualList: () => (/* binding */ TestVirtualList),
|
|
391
|
+
WithCustomLastRow: () => (/* binding */ WithCustomLastRow),
|
|
392
|
+
WithPagination: () => (/* binding */ WithPagination),
|
|
393
|
+
"default": () => (/* binding */ VirtualList_stories)
|
|
383
394
|
});
|
|
384
395
|
|
|
385
396
|
// EXTERNAL MODULE: external "react"
|
|
386
397
|
var external_react_ = __webpack_require__(2015);
|
|
387
398
|
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
388
399
|
// EXTERNAL MODULE: ./src/pre-ldls/components/VirtualList/VirtualList.tsx + 1 modules
|
|
389
|
-
var VirtualList = __webpack_require__(
|
|
400
|
+
var VirtualList = __webpack_require__(9535);
|
|
390
401
|
;// CONCATENATED MODULE: external "@storybook/test"
|
|
391
402
|
const test_namespaceObject = require("@storybook/test");
|
|
392
403
|
;// CONCATENATED MODULE: ./src/pre-ldls/components/VirtualList/VirtualList.stories.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-ldls/components/VirtualList/VirtualList.stories.js","sources":["webpack://@ledgerhq/react-ui/./src/components/layout/Flex/index.ts","webpack://@ledgerhq/react-ui/./src/components/loaders/InfiniteLoader/index.tsx","webpack://@ledgerhq/react-ui/./src/components/styled.ts","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/VirtualList/VirtualList.tsx","webpack://@ledgerhq/react-ui/./src/styles/system/gaps.ts","webpack://@ledgerhq/react-ui/webpack/runtime/compat_get_default_export","webpack://@ledgerhq/react-ui/webpack/runtime/define_property_getters","webpack://@ledgerhq/react-ui/webpack/runtime/has_own_property","webpack://@ledgerhq/react-ui/webpack/runtime/make_namespace_object","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/VirtualList/VirtualList.stories.tsx"],"sourcesContent":["import baseStyled, { BaseStyledProps } from \"../../styled\";\n\nconst FlexBox = baseStyled.div.attrs<BaseStyledProps, BaseStyledProps>({\n display: \"flex\",\n minWidth: 0,\n})``;\nexport type FlexBoxProps = BaseStyledProps & React.HTMLAttributes<HTMLDivElement>;\n\nexport default FlexBox;\n","import React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { system, size, SizeProps } from \"styled-system\";\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst Loader = styled.svg<SizeProps>`\n animation: ${rotate} 1s linear infinite;\n ${size}\n ${system({\n stroke: {\n property: \"stroke\",\n scale: \"colors\",\n },\n })}\n`;\nexport type Props = React.ComponentProps<typeof Loader> & {\n color?: string;\n};\n\nexport default function InfiniteLoader({\n size = 38,\n color = \"primary.c50\",\n ...extraProps\n}: Props): React.JSX.Element {\n return (\n <Loader\n size={size}\n stroke={color}\n viewBox=\"0 0 38 38\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...extraProps}\n >\n <linearGradient\n id=\"gradient-start\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"rotate(-20)\"\n >\n <stop offset=\"0\" stopColor=\"white\" stopOpacity=\"0.5\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"1\" />\n </linearGradient>\n <linearGradient\n id=\"gradient-end\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"rotate(-20)\"\n >\n <stop offset=\"0\" stopColor=\"white\" stopOpacity=\"0.5\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" />\n </linearGradient>\n\n <mask id=\"gradient-mask\" maskUnits=\"userSpaceOnUse\">\n <rect\n x=\"-0\"\n y=\"-4\"\n width=\"44\"\n height=\"22\"\n strokeWidth=\"0\"\n fill=\"url(#gradient-start)\"\n transform=\"rotate(10)\"\n />\n <rect\n x=\"0\"\n y=\"18\"\n width=\"44\"\n height=\"21\"\n strokeWidth=\"0\"\n fill=\"url(#gradient-end)\"\n transform=\"rotate(10)\"\n />\n </mask>\n <path\n d=\"M34.8807 20.9499C35.3608 17.0398 34.3815 13.09 32.1304 9.85712C29.8793 6.6242 26.5146 4.33541 22.6808 3.42914C18.847 2.52287 14.8136 3.06283 11.3532 4.94559C7.89277 6.82836 5.24858 9.92158 3.92708 13.6328C2.60558 17.344 2.69968 21.4123 4.19135 25.0584C5.68302 28.7045 8.4674 31.6722 12.0112 33.3929C15.5549 35.1137 19.609 35.4666 23.3968 34.384C27.1846 33.3015 30.4398 30.8596 32.5391 27.526\"\n strokeWidth=\"6\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n mask=\"url(#gradient-mask)\"\n />\n </Loader>\n );\n}\n","import React from \"react\";\nimport gaps from \"../styles/system/gaps\";\nimport styled, { StyledInterface, InterpolationFunction } from \"styled-components\";\nimport {\n compose,\n flexbox,\n FlexboxProps,\n space,\n SpaceProps,\n position,\n PositionProps,\n color,\n ColorProps,\n layout,\n LayoutProps,\n overflow,\n OverflowProps,\n border,\n BorderProps,\n} from \"styled-system\";\n\nexport type BaseStyledProps = SpaceProps &\n FlexboxProps &\n PositionProps &\n ColorProps &\n LayoutProps &\n BorderProps &\n OverflowProps & {\n /**\n * The columnGap CSS property sets the size of the gap (gutter) between an element's grid columns.\n */\n columnGap?: string | number;\n /**\n * The rowGap CSS property sets the size of the gap (gutter) between an element's grid rows.\n */\n rowGap?: string | number;\n color?: string;\n children?: React.ReactNode;\n };\n\nexport const baseStyles: InterpolationFunction<unknown> = compose(\n flexbox,\n space,\n position,\n color,\n layout,\n overflow,\n gaps,\n border,\n);\n\nconst proxyStyled = new Proxy(styled, {\n apply(target: typeof styled, thisArg, argumentsList: Parameters<typeof styled>) {\n return styled(target.apply(thisArg, argumentsList)(baseStyles));\n },\n get(target, property: keyof typeof styled) {\n if (typeof target[property] === \"function\") {\n return styled(target[property].apply(styled, [baseStyles]));\n }\n return target[property];\n },\n});\n\nexport default <StyledInterface>proxyStyled;\n","import React, { useEffect, useRef, useCallback } from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { Flex, InfiniteLoader } from \"../../../components\";\n\ninterface VirtualItem {\n key: string | number | bigint;\n index: number;\n start: number;\n end: number;\n size: number;\n}\n\n/**\n * Props for the VirtualList component, which efficiently renders large lists\n * by virtualizing DOM nodes to improve performance.\n */\ntype VirtualListProps<T> = {\n /**\n * Gap between items in the list.\n */\n gap?: number;\n /**\n * Height of each item in the list.\n * This is used to calculate the total height of the list and the position of each item.\n */\n itemHeight: number;\n /**\n * Number of extra items to render outside the visible viewport for smoother scrolling.\n * Defaults to 5.\n */\n overscan?: number;\n /**\n * React component or node to display when the list is loading additional items.\n * If not provided, a default loading spinner will be used.\n */\n LoadingComponent?: React.ReactNode;\n /**\n * Indicates whether new items are currently being loaded.\n */\n isLoading?: boolean;\n /**\n * Indicates if there are more items to load.\n */\n hasNextPage?: boolean;\n /**\n * Number of items to check before the end of the list to trigger loading more items.\n * Defaults to 5.\n */\n threshold?: number;\n /**\n * Callback function to be called when the user scrolls to the end of the visible items.\n * This can be used to load more items when the user reaches the end of the list.\n */\n onVisibleItemsScrollEnd?: () => void;\n /**\n * Function to render each item in the list.\n * Receives a single value from the items array as an argument and should return a React node.\n */\n renderItem: (item: T) => React.ReactNode;\n /**\n * The array of items which will be rendered\n */\n items: T[];\n /**\n * When set to true, the list will scroll to the top\n */\n scrollToTop?: boolean;\n /**\n * React component or node to display at the bottom of the list, after all items.\n */\n bottomComponent?: React.ReactNode;\n};\n\nconst DefaultLoadingComponent = () => (\n <Flex justifyContent=\"center\" alignItems=\"center\" height=\"76px\">\n <InfiniteLoader />\n </Flex>\n);\n\nfunction easeInOutCubic(t: number) {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n}\n\nexport const VirtualList = <T,>({\n gap,\n hasNextPage = false,\n isLoading,\n itemHeight,\n items,\n LoadingComponent,\n onVisibleItemsScrollEnd,\n overscan = 5,\n renderItem,\n scrollToTop = false,\n bottomComponent,\n threshold = 5,\n}: VirtualListProps<T>) => {\n const parentRef = useRef<HTMLDivElement>(null);\n\n const scrollToFn = useCallback(\n (\n offset: number,\n options: { adjustments?: number; behavior?: \"auto\" | \"smooth\" },\n instance: { scrollElement: HTMLElement | null },\n ) => {\n const element = instance.scrollElement;\n if (!element) return;\n\n const duration = options.behavior === \"smooth\" ? 100 : 0;\n\n if (duration === 0) {\n element.scrollTop = offset;\n return;\n }\n\n const startTime = performance.now();\n const startTop = element.scrollTop;\n const distanceToScroll = offset - startTop;\n\n const scrollStep = (currentTime: number) => {\n const elapsed = currentTime - startTime;\n const progress = Math.min(elapsed / duration, 1);\n\n const easedProgress = easeInOutCubic(progress);\n\n element.scrollTop = startTop + distanceToScroll * easedProgress;\n\n if (progress < 1) {\n requestAnimationFrame(scrollStep);\n }\n };\n\n requestAnimationFrame(scrollStep);\n },\n [],\n );\n\n const rowVirtualizer = useVirtualizer({\n gap,\n count: hasNextPage ? items.length + 1 : items.length,\n overscan,\n getScrollElement: () => parentRef.current,\n estimateSize: () => itemHeight,\n scrollToFn,\n });\n\n useEffect(() => {\n if (scrollToTop && parentRef.current) {\n scrollToFn(0, { behavior: \"smooth\" }, { scrollElement: parentRef.current });\n }\n }, [scrollToTop, scrollToFn]);\n\n const virtualItems = rowVirtualizer.getVirtualItems();\n\n useEffect(() => {\n if (!virtualItems.length) return;\n const lastItem = virtualItems[virtualItems.length - 1];\n\n if (\n lastItem.index >= items.length - 1 - threshold &&\n hasNextPage &&\n !isLoading &&\n onVisibleItemsScrollEnd\n ) {\n onVisibleItemsScrollEnd();\n }\n }, [hasNextPage, onVisibleItemsScrollEnd, items.length, isLoading, threshold, virtualItems]);\n\n const showCustomLoadingComponent = !!LoadingComponent;\n\n const Loading = useCallback(\n () => (showCustomLoadingComponent ? LoadingComponent : <DefaultLoadingComponent />),\n [showCustomLoadingComponent, LoadingComponent],\n );\n\n return (\n <div\n ref={parentRef}\n style={{ width: \"100%\", height: \"100%\", overflow: \"auto\", scrollbarWidth: \"none\" }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n position: \"relative\",\n }}\n >\n {rowVirtualizer.getVirtualItems().map((virtualRow: VirtualItem) => {\n const item = items[virtualRow.index];\n\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n ref={rowVirtualizer.measureElement}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n transform: `translateY(${virtualRow.start}px)`,\n height: `${itemHeight}px`,\n width: \"100%\",\n }}\n >\n {item ? renderItem(item) : <Loading />}\n </div>\n );\n })}\n {bottomComponent && (\n <div\n style={{\n position: \"absolute\",\n top: `${rowVirtualizer.getTotalSize()}px`,\n left: 0,\n width: \"100%\",\n }}\n >\n {bottomComponent}\n </div>\n )}\n </div>\n {isLoading && <Loading />}\n </div>\n );\n};\n","import { system } from \"styled-system\";\n\nconst gaps = system({\n rowGap: { property: \"rowGap\", scale: \"space\" },\n columnGap: { property: \"columnGap\", scale: \"space\" },\n});\n\nexport default gaps;\n","// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React, { useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\nimport { VirtualList } from \"./VirtualList\";\nimport { expect, userEvent, waitFor, within } from \"@storybook/test\";\n\nconst items = Array.from({ length: 50 }, (_, i) => ({ i }));\n\nconst meta: Meta<typeof VirtualList<{ i: number }>> = {\n component: VirtualList,\n decorators: [\n Story => (\n <div style={{ height: \"400px\" }}>\n <Story />\n </div>\n ),\n ],\n title: \"PreLdls/Components/VirtualList\",\n tags: [\"autodocs\"],\n parameters: {\n layout: \"fullscreen\",\n docs: {\n description: {\n component:\n \"A virtualized list component that renders only the visible items in a scrollable container using the `useVirtualizer` hook from `@tanstack/react-virtual`. It supports pagination and custom item rendering.\",\n },\n },\n },\n argTypes: {\n gap: { description: \"Gap between items in the list.\", defaultValue: { summary: 0 } },\n itemHeight: {\n description: \"Height of each item in the list.\",\n },\n overscan: {\n description:\n \"Number of extra items to render outside the visible viewport for smoother scrolling.\",\n table: {\n defaultValue: {\n summary: \"5\",\n },\n },\n },\n LoadingComponent: {\n description:\n \"React component or node to display when the list is loading additional items. If not provided, a default loading spinner will be used.\",\n },\n isLoading: {\n description: \"Indicates whether new items are currently being loaded.\",\n },\n hasNextPage: {\n description:\n \"Indicates if there are more items to load. If true, the list will trigger loading more items when scrolled to the end.\",\n defaultValue: {\n summary: \"false\",\n },\n },\n threshold: {\n description:\n \"Number of items to check before the end of the list to trigger loading more items.\",\n defaultValue: {\n summary: \"5\",\n },\n },\n onVisibleItemsScrollEnd: {\n description:\n \"Callback function to be called when the user scrolls to the end of the visible items. This can be used to load more items when the user reaches the end of the list.\",\n },\n renderItem: {\n description:\n \"Function to render each item in the list. Receives the index of the item as an argument and should return a React node.\",\n },\n scrollToTop: {\n description:\n \"When set to true, the list will scroll to the top. This is useful when the items change and you want to reset the scroll position.\",\n },\n },\n args: {\n gap: 0,\n itemHeight: 64,\n LoadingComponent: undefined,\n isLoading: false,\n overscan: 5,\n hasNextPage: false,\n threshold: 5,\n onVisibleItemsScrollEnd: () => {},\n items,\n renderItem: ({ i }: { i: number }) => <h1 tabIndex={i}>Item #{i}</h1>,\n scrollToTop: false,\n },\n};\nexport default meta;\n\ntype Story = StoryObj<typeof VirtualList<{ i: number }>>;\n\nexport const Default: Story = {\n args: {\n itemHeight: 50,\n overscan: 5,\n items,\n renderItem: ({ i }: { i: number }) => (\n <div style={{ height: 50, backgroundColor: \"lightblue\", border: \"1px solid black\" }}>\n Item {i}\n </div>\n ),\n },\n};\n\nexport const WithCustomLastRow: Story = {\n render: args => {\n const items = Array.from({ length: 5 }, (_, i) => i + 1);\n\n return (\n <VirtualList\n {...args}\n items={items}\n renderItem={item => (\n <div style={{ height: 50, backgroundColor: \"lightgreen\", border: \"1px solid black\" }}>\n Item {item}\n </div>\n )}\n bottomComponent={\n <div style={{ height: 50, backgroundColor: \"lightcoral\" }}>End of List</div>\n }\n />\n );\n },\n};\nexport const WithPagination: Story = {\n render: args => {\n const [items, setItems] = useState(Array.from({ length: 50 }, (_, i) => i));\n const [isFetching, setIsFetching] = useState(false);\n\n const handleFetchNextPage = async () => {\n const logFetchNextPage = () => {};\n logFetchNextPage();\n if (isFetching) return;\n setIsFetching(true);\n await new Promise(resolve => setTimeout(resolve, 1000));\n setItems(prev => [...prev, ...Array.from({ length: 50 }, (_, i) => prev.length + i)]);\n setIsFetching(false);\n };\n\n return (\n <VirtualList\n {...args}\n isLoading={isFetching}\n onVisibleItemsScrollEnd={handleFetchNextPage}\n hasNextPage={true}\n items={items}\n renderItem={item => (\n <div style={{ height: 50, backgroundColor: \"lightgreen\", border: \"1px solid black\" }}>\n Item {item}\n </div>\n )}\n />\n );\n },\n args: {\n itemHeight: 50,\n overscan: 5,\n hasNextPage: true,\n isLoading: false,\n },\n};\n\nexport const TestVirtualList: Story = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const visibleItems = canvas.getAllByText(/Item #/i);\n const firstVisibleItem = visibleItems[0];\n const lastVisibleItem = visibleItems[visibleItems.length - 1];\n\n // need to add 5 due to the overscan set to 5 (it renders 5 items before and after the visible items)\n await expect(visibleItems.length).toBeLessThanOrEqual(12);\n\n await expect(firstVisibleItem).toBeInTheDocument();\n\n await userEvent.pointer([\n { keys: \"[TouchA>]\", target: lastVisibleItem },\n { target: firstVisibleItem },\n { keys: \"[/TouchA]\" },\n ]);\n\n await waitFor(() => expect(firstVisibleItem).not.toBeInTheDocument());\n },\n};\n"],"names":["baseStyled","FlexBox","React","styled","keyframes","system","size","rotate","Loader","InfiniteLoader","color","extraProps","gaps","compose","flexbox","space","position","layout","overflow","border","baseStyles","proxyStyled","Proxy","target","thisArg","argumentsList","property","useEffect","useRef","useCallback","useVirtualizer","Flex","DefaultLoadingComponent","easeInOutCubic","t","Math","VirtualList","gap","hasNextPage","isLoading","itemHeight","items","LoadingComponent","onVisibleItemsScrollEnd","overscan","renderItem","scrollToTop","bottomComponent","threshold","parentRef","scrollToFn","offset","options","instance","element","duration","startTime","performance","startTop","distanceToScroll","scrollStep","currentTime","elapsed","progress","easedProgress","requestAnimationFrame","rowVirtualizer","virtualItems","lastItem","showCustomLoadingComponent","Loading","virtualRow","item","useState","expect","userEvent","waitFor","within","Array","_","i","meta","Story","undefined","Default","WithCustomLastRow","args","WithPagination","setItems","isFetching","setIsFetching","handleFetchNextPage","logFetchNextPage","Promise","resolve","setTimeout","prev","TestVirtualList","canvasElement","canvas","visibleItems","firstVisibleItem","lastVisibleItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pre-ldls/components/VirtualList/VirtualList.stories.js","sources":["webpack://@ledgerhq/react-ui/./src/components/layout/Flex/index.ts","webpack://@ledgerhq/react-ui/./src/components/loaders/InfiniteLoader/index.tsx","webpack://@ledgerhq/react-ui/./src/components/styled.ts","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/VirtualList/VirtualList.tsx","webpack://@ledgerhq/react-ui/./src/styles/system/gaps.ts","webpack://@ledgerhq/react-ui/webpack/runtime/compat_get_default_export","webpack://@ledgerhq/react-ui/webpack/runtime/define_property_getters","webpack://@ledgerhq/react-ui/webpack/runtime/has_own_property","webpack://@ledgerhq/react-ui/webpack/runtime/make_namespace_object","webpack://@ledgerhq/react-ui/./src/pre-ldls/components/VirtualList/VirtualList.stories.tsx"],"sourcesContent":["import baseStyled, { BaseStyledProps } from \"../../styled\";\n\nconst FlexBox = baseStyled.div.attrs<BaseStyledProps, BaseStyledProps>({\n display: \"flex\",\n minWidth: 0,\n})``;\nexport type FlexBoxProps = BaseStyledProps & React.HTMLAttributes<HTMLDivElement>;\n\nexport default FlexBox;\n","import React from \"react\";\nimport styled, { keyframes } from \"styled-components\";\nimport { system, size, SizeProps } from \"styled-system\";\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst Loader = styled.svg<SizeProps>`\n animation: ${rotate} 1s linear infinite;\n ${size}\n ${system({\n stroke: {\n property: \"stroke\",\n scale: \"colors\",\n },\n })}\n`;\nexport type Props = React.ComponentProps<typeof Loader> & {\n color?: string;\n};\n\nexport default function InfiniteLoader({\n size = 38,\n color = \"primary.c50\",\n ...extraProps\n}: Props): React.JSX.Element {\n return (\n <Loader\n size={size}\n stroke={color}\n viewBox=\"0 0 38 38\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...extraProps}\n >\n <linearGradient\n id=\"gradient-start\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"rotate(-20)\"\n >\n <stop offset=\"0\" stopColor=\"white\" stopOpacity=\"0.5\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"1\" />\n </linearGradient>\n <linearGradient\n id=\"gradient-end\"\n gradientUnits=\"userSpaceOnUse\"\n gradientTransform=\"rotate(-20)\"\n >\n <stop offset=\"0\" stopColor=\"white\" stopOpacity=\"0.5\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" />\n </linearGradient>\n\n <mask id=\"gradient-mask\" maskUnits=\"userSpaceOnUse\">\n <rect\n x=\"-0\"\n y=\"-4\"\n width=\"44\"\n height=\"22\"\n strokeWidth=\"0\"\n fill=\"url(#gradient-start)\"\n transform=\"rotate(10)\"\n />\n <rect\n x=\"0\"\n y=\"18\"\n width=\"44\"\n height=\"21\"\n strokeWidth=\"0\"\n fill=\"url(#gradient-end)\"\n transform=\"rotate(10)\"\n />\n </mask>\n <path\n d=\"M34.8807 20.9499C35.3608 17.0398 34.3815 13.09 32.1304 9.85712C29.8793 6.6242 26.5146 4.33541 22.6808 3.42914C18.847 2.52287 14.8136 3.06283 11.3532 4.94559C7.89277 6.82836 5.24858 9.92158 3.92708 13.6328C2.60558 17.344 2.69968 21.4123 4.19135 25.0584C5.68302 28.7045 8.4674 31.6722 12.0112 33.3929C15.5549 35.1137 19.609 35.4666 23.3968 34.384C27.1846 33.3015 30.4398 30.8596 32.5391 27.526\"\n strokeWidth=\"6\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n mask=\"url(#gradient-mask)\"\n />\n </Loader>\n );\n}\n","import React from \"react\";\nimport gaps from \"../styles/system/gaps\";\nimport styled, { StyledInterface, InterpolationFunction } from \"styled-components\";\nimport {\n compose,\n flexbox,\n FlexboxProps,\n space,\n SpaceProps,\n position,\n PositionProps,\n color,\n ColorProps,\n layout,\n LayoutProps,\n overflow,\n OverflowProps,\n border,\n BorderProps,\n} from \"styled-system\";\n\nexport type BaseStyledProps = SpaceProps &\n FlexboxProps &\n PositionProps &\n ColorProps &\n LayoutProps &\n BorderProps &\n OverflowProps & {\n /**\n * The columnGap CSS property sets the size of the gap (gutter) between an element's grid columns.\n */\n columnGap?: string | number;\n /**\n * The rowGap CSS property sets the size of the gap (gutter) between an element's grid rows.\n */\n rowGap?: string | number;\n color?: string;\n children?: React.ReactNode;\n };\n\nexport const baseStyles: InterpolationFunction<unknown> = compose(\n flexbox,\n space,\n position,\n color,\n layout,\n overflow,\n gaps,\n border,\n);\n\nconst proxyStyled = new Proxy(styled, {\n apply(target: typeof styled, thisArg, argumentsList: Parameters<typeof styled>) {\n return styled(target.apply(thisArg, argumentsList)(baseStyles));\n },\n get(target, property: keyof typeof styled) {\n if (typeof target[property] === \"function\") {\n return styled(target[property].apply(styled, [baseStyles]));\n }\n return target[property];\n },\n});\n\nexport default <StyledInterface>proxyStyled;\n","import React, { useEffect, useRef, useCallback } from \"react\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport { Flex, InfiniteLoader } from \"../../../components\";\n\ninterface VirtualItem {\n key: string | number | bigint;\n index: number;\n start: number;\n end: number;\n size: number;\n}\n\n/**\n * Props for the VirtualList component, which efficiently renders large lists\n * by virtualizing DOM nodes to improve performance.\n */\ntype VirtualListProps<T> = {\n /**\n * Gap between items in the list.\n */\n gap?: number;\n /**\n * Height of each item in the list.\n * This is used to calculate the total height of the list and the position of each item.\n */\n itemHeight: number;\n /**\n * Number of extra items to render outside the visible viewport for smoother scrolling.\n * Defaults to 5.\n */\n overscan?: number;\n /**\n * React component or node to display when the list is loading additional items.\n * If not provided, a default loading spinner will be used.\n */\n LoadingComponent?: React.ReactNode;\n /**\n * Indicates whether new items are currently being loaded.\n */\n isLoading?: boolean;\n /**\n * Indicates if there are more items to load.\n */\n hasNextPage?: boolean;\n /**\n * Number of items to check before the end of the list to trigger loading more items.\n * Defaults to 5.\n */\n threshold?: number;\n /**\n * Callback function to be called when the user scrolls to the end of the visible items.\n * This can be used to load more items when the user reaches the end of the list.\n */\n onVisibleItemsScrollEnd?: () => void;\n /**\n * Function to render each item in the list.\n * Receives a single value from the items array as an argument and should return a React node.\n */\n renderItem: (item: T) => React.ReactNode;\n /**\n * The array of items which will be rendered\n */\n items: T[];\n /**\n * When set to true, the list will scroll to the top\n */\n scrollToTop?: boolean;\n /**\n * React component or node to display at the bottom of the list, after all items.\n */\n bottomComponent?: React.ReactNode;\n};\n\nconst DefaultLoadingComponent = () => (\n <Flex justifyContent=\"center\" alignItems=\"center\" height=\"76px\">\n <InfiniteLoader />\n </Flex>\n);\n\nfunction easeInOutCubic(t: number) {\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n}\n\nexport const VirtualList = <T,>({\n gap,\n hasNextPage = false,\n isLoading,\n itemHeight,\n items,\n LoadingComponent,\n onVisibleItemsScrollEnd,\n overscan = 5,\n renderItem,\n scrollToTop = false,\n bottomComponent,\n threshold = 5,\n}: VirtualListProps<T>) => {\n const parentRef = useRef<HTMLDivElement>(null);\n\n const scrollToFn = useCallback(\n (\n offset: number,\n options: { adjustments?: number; behavior?: \"auto\" | \"smooth\" },\n instance: { scrollElement: HTMLElement | null },\n ) => {\n const element = instance.scrollElement;\n if (!element) return;\n\n const duration = options.behavior === \"smooth\" ? 100 : 0;\n\n if (duration === 0) {\n element.scrollTop = offset;\n return;\n }\n\n const startTime = performance.now();\n const startTop = element.scrollTop;\n const distanceToScroll = offset - startTop;\n\n const scrollStep = (currentTime: number) => {\n const elapsed = currentTime - startTime;\n const progress = Math.min(elapsed / duration, 1);\n\n const easedProgress = easeInOutCubic(progress);\n\n element.scrollTop = startTop + distanceToScroll * easedProgress;\n\n if (progress < 1) {\n requestAnimationFrame(scrollStep);\n }\n };\n\n requestAnimationFrame(scrollStep);\n },\n [],\n );\n\n const rowVirtualizer = useVirtualizer({\n gap,\n count: hasNextPage ? items.length + 1 : items.length,\n overscan,\n getScrollElement: () => parentRef.current,\n estimateSize: () => itemHeight,\n scrollToFn,\n });\n\n useEffect(() => {\n if (scrollToTop && parentRef.current) {\n scrollToFn(0, { behavior: \"smooth\" }, { scrollElement: parentRef.current });\n }\n }, [scrollToTop, scrollToFn]);\n\n const virtualItems = rowVirtualizer.getVirtualItems();\n\n useEffect(() => {\n if (!virtualItems.length) return;\n const lastItem = virtualItems[virtualItems.length - 1];\n\n if (\n lastItem.index >= items.length - 1 - threshold &&\n hasNextPage &&\n !isLoading &&\n onVisibleItemsScrollEnd\n ) {\n onVisibleItemsScrollEnd();\n }\n }, [hasNextPage, onVisibleItemsScrollEnd, items.length, isLoading, threshold, virtualItems]);\n\n const showCustomLoadingComponent = !!LoadingComponent;\n\n const Loading = useCallback(\n () => (showCustomLoadingComponent ? LoadingComponent : <DefaultLoadingComponent />),\n [showCustomLoadingComponent, LoadingComponent],\n );\n\n return (\n <div\n ref={parentRef}\n style={{ width: \"100%\", height: \"100%\", overflow: \"auto\", scrollbarWidth: \"none\" }}\n >\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n position: \"relative\",\n }}\n >\n {rowVirtualizer.getVirtualItems().map((virtualRow: VirtualItem) => {\n const item = items[virtualRow.index];\n\n return (\n <div\n key={virtualRow.index}\n data-index={virtualRow.index}\n ref={rowVirtualizer.measureElement}\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n transform: `translateY(${virtualRow.start}px)`,\n height: `${itemHeight}px`,\n width: \"100%\",\n }}\n >\n {item ? renderItem(item) : <Loading />}\n </div>\n );\n })}\n {bottomComponent && (\n <div\n style={{\n position: \"absolute\",\n top: `${rowVirtualizer.getTotalSize()}px`,\n left: 0,\n width: \"100%\",\n }}\n >\n {bottomComponent}\n </div>\n )}\n </div>\n {isLoading && <Loading />}\n </div>\n );\n};\n","import { system } from \"styled-system\";\n\nconst gaps = system({\n rowGap: { property: \"rowGap\", scale: \"space\" },\n columnGap: { property: \"columnGap\", scale: \"space\" },\n});\n\nexport default gaps;\n","// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React, { useState } from \"react\";\nimport type { Meta, StoryObj } from \"@storybook/react\";\nimport { VirtualList } from \"./VirtualList\";\nimport { expect, userEvent, waitFor, within } from \"@storybook/test\";\n\nconst items = Array.from({ length: 50 }, (_, i) => ({ i }));\n\nconst meta: Meta<typeof VirtualList<{ i: number }>> = {\n component: VirtualList,\n decorators: [\n Story => (\n <div style={{ height: \"400px\" }}>\n <Story />\n </div>\n ),\n ],\n title: \"PreLdls/Components/VirtualList\",\n tags: [\"autodocs\"],\n parameters: {\n layout: \"fullscreen\",\n docs: {\n description: {\n component:\n \"A virtualized list component that renders only the visible items in a scrollable container using the `useVirtualizer` hook from `@tanstack/react-virtual`. It supports pagination and custom item rendering.\",\n },\n },\n },\n argTypes: {\n gap: { description: \"Gap between items in the list.\", defaultValue: { summary: 0 } },\n itemHeight: {\n description: \"Height of each item in the list.\",\n },\n overscan: {\n description:\n \"Number of extra items to render outside the visible viewport for smoother scrolling.\",\n table: {\n defaultValue: {\n summary: \"5\",\n },\n },\n },\n LoadingComponent: {\n description:\n \"React component or node to display when the list is loading additional items. If not provided, a default loading spinner will be used.\",\n },\n isLoading: {\n description: \"Indicates whether new items are currently being loaded.\",\n },\n hasNextPage: {\n description:\n \"Indicates if there are more items to load. If true, the list will trigger loading more items when scrolled to the end.\",\n defaultValue: {\n summary: \"false\",\n },\n },\n threshold: {\n description:\n \"Number of items to check before the end of the list to trigger loading more items.\",\n defaultValue: {\n summary: \"5\",\n },\n },\n onVisibleItemsScrollEnd: {\n description:\n \"Callback function to be called when the user scrolls to the end of the visible items. This can be used to load more items when the user reaches the end of the list.\",\n },\n renderItem: {\n description:\n \"Function to render each item in the list. Receives the index of the item as an argument and should return a React node.\",\n },\n scrollToTop: {\n description:\n \"When set to true, the list will scroll to the top. This is useful when the items change and you want to reset the scroll position.\",\n },\n },\n args: {\n gap: 0,\n itemHeight: 64,\n LoadingComponent: undefined,\n isLoading: false,\n overscan: 5,\n hasNextPage: false,\n threshold: 5,\n onVisibleItemsScrollEnd: () => {},\n items,\n renderItem: ({ i }: { i: number }) => <h1 tabIndex={i}>Item #{i}</h1>,\n scrollToTop: false,\n },\n};\nexport default meta;\n\ntype Story = StoryObj<typeof VirtualList<{ i: number }>>;\n\nexport const Default: Story = {\n args: {\n itemHeight: 50,\n overscan: 5,\n items,\n renderItem: ({ i }: { i: number }) => (\n <div style={{ height: 50, backgroundColor: \"lightblue\", border: \"1px solid black\" }}>\n Item {i}\n </div>\n ),\n },\n};\n\nexport const WithCustomLastRow: Story = {\n render: args => {\n const items = Array.from({ length: 5 }, (_, i) => i + 1);\n\n return (\n <VirtualList\n {...args}\n items={items}\n renderItem={item => (\n <div style={{ height: 50, backgroundColor: \"lightgreen\", border: \"1px solid black\" }}>\n Item {item}\n </div>\n )}\n bottomComponent={\n <div style={{ height: 50, backgroundColor: \"lightcoral\" }}>End of List</div>\n }\n />\n );\n },\n};\nexport const WithPagination: Story = {\n render: args => {\n const [items, setItems] = useState(Array.from({ length: 50 }, (_, i) => i));\n const [isFetching, setIsFetching] = useState(false);\n\n const handleFetchNextPage = async () => {\n const logFetchNextPage = () => {};\n logFetchNextPage();\n if (isFetching) return;\n setIsFetching(true);\n await new Promise(resolve => setTimeout(resolve, 1000));\n setItems(prev => [...prev, ...Array.from({ length: 50 }, (_, i) => prev.length + i)]);\n setIsFetching(false);\n };\n\n return (\n <VirtualList\n {...args}\n isLoading={isFetching}\n onVisibleItemsScrollEnd={handleFetchNextPage}\n hasNextPage={true}\n items={items}\n renderItem={item => (\n <div style={{ height: 50, backgroundColor: \"lightgreen\", border: \"1px solid black\" }}>\n Item {item}\n </div>\n )}\n />\n );\n },\n args: {\n itemHeight: 50,\n overscan: 5,\n hasNextPage: true,\n isLoading: false,\n },\n};\n\nexport const TestVirtualList: Story = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const visibleItems = canvas.getAllByText(/Item #/i);\n const firstVisibleItem = visibleItems[0];\n const lastVisibleItem = visibleItems[visibleItems.length - 1];\n\n // need to add 5 due to the overscan set to 5 (it renders 5 items before and after the visible items)\n await expect(visibleItems.length).toBeLessThanOrEqual(12);\n\n await expect(firstVisibleItem).toBeInTheDocument();\n\n await userEvent.pointer([\n { keys: \"[TouchA>]\", target: lastVisibleItem },\n { target: firstVisibleItem },\n { keys: \"[/TouchA]\" },\n ]);\n\n await waitFor(() => expect(firstVisibleItem).not.toBeInTheDocument());\n },\n};\n"],"names":["baseStyled","FlexBox","React","styled","keyframes","system","size","rotate","Loader","InfiniteLoader","color","extraProps","gaps","compose","flexbox","space","position","layout","overflow","border","baseStyles","proxyStyled","Proxy","target","thisArg","argumentsList","property","useEffect","useRef","useCallback","useVirtualizer","Flex","DefaultLoadingComponent","easeInOutCubic","t","Math","VirtualList","gap","hasNextPage","isLoading","itemHeight","items","LoadingComponent","onVisibleItemsScrollEnd","overscan","renderItem","scrollToTop","bottomComponent","threshold","parentRef","scrollToFn","offset","options","instance","element","duration","startTime","performance","startTop","distanceToScroll","scrollStep","currentTime","elapsed","progress","easedProgress","requestAnimationFrame","rowVirtualizer","virtualItems","lastItem","showCustomLoadingComponent","Loading","virtualRow","item","useState","expect","userEvent","waitFor","within","Array","_","i","meta","Story","undefined","Default","WithCustomLastRow","args","WithPagination","setItems","isFetching","setIsFetching","handleFetchNextPage","logFetchNextPage","Promise","resolve","setTimeout","prev","TestVirtualList","canvasElement","canvas","visibleItems","firstVisibleItem","lastVisibleItem"],"mappings":"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"}
|