@lumx/react 2.2.9-alpha-exported-hooks2 → 2.2.10
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/esm/_internal/{alertdialog.1.js → AlertDialog.js} +8 -8
- package/esm/_internal/AlertDialog.js.map +1 -0
- package/esm/_internal/{autocompletemultiple.2.js → AutocompleteMultiple.js} +9 -9
- package/esm/_internal/AutocompleteMultiple.js.map +1 -0
- package/esm/_internal/{avatar.3.js → Avatar2.js} +4 -4
- package/esm/_internal/Avatar2.js.map +1 -0
- package/esm/_internal/{badge.4.js → Badge2.js} +3 -3
- package/esm/_internal/Badge2.js.map +1 -0
- package/esm/_internal/{button.5.js → Button2.js} +5 -5
- package/esm/_internal/Button2.js.map +1 -0
- package/esm/_internal/{buttongroup.7.js → ButtonGroup.js} +3 -3
- package/esm/_internal/ButtonGroup.js.map +1 -0
- package/esm/_internal/{buttonroot.57.js → ButtonRoot.js} +4 -4
- package/esm/_internal/ButtonRoot.js.map +1 -0
- package/esm/_internal/{checkbox.8.js → Checkbox2.js} +7 -7
- package/esm/_internal/Checkbox2.js.map +1 -0
- package/esm/_internal/{chip.9.js → Chip2.js} +3 -3
- package/esm/_internal/Chip2.js.map +1 -0
- package/esm/_internal/{chipgroup.10.js → ChipGroup.js} +3 -3
- package/esm/_internal/ChipGroup.js.map +1 -0
- package/esm/_internal/{clickawayprovider.60.js → ClickAwayProvider.js} +4 -4
- package/esm/_internal/ClickAwayProvider.js.map +1 -0
- package/esm/_internal/{commentblock.11.js → CommentBlock.js} +4 -4
- package/esm/_internal/CommentBlock.js.map +1 -0
- package/esm/_internal/{datepickerfield.12.js → DatePickerField.js} +9 -9
- package/esm/_internal/DatePickerField.js.map +1 -0
- package/esm/_internal/{dialog.13.js → Dialog2.js} +12 -12
- package/esm/_internal/Dialog2.js.map +1 -0
- package/esm/_internal/{divider.14.js → Divider2.js} +3 -3
- package/esm/_internal/Divider2.js.map +1 -0
- package/esm/_internal/{draghandle.15.js → DragHandle.js} +4 -4
- package/esm/_internal/DragHandle.js.map +1 -0
- package/esm/_internal/{dropdown.16.js → Dropdown2.js} +6 -6
- package/esm/_internal/Dropdown2.js.map +1 -0
- package/esm/_internal/{expansionpanel.17.js → ExpansionPanel.js} +8 -8
- package/esm/_internal/ExpansionPanel.js.map +1 -0
- package/esm/_internal/{flag.18.js → Flag2.js} +4 -4
- package/esm/_internal/Flag2.js.map +1 -0
- package/esm/_internal/{flexbox.19.js → FlexBox.js} +3 -3
- package/esm/_internal/FlexBox.js.map +1 -0
- package/esm/_internal/{griditem.20.js → GridItem.js} +3 -3
- package/esm/_internal/GridItem.js.map +1 -0
- package/esm/_internal/{icon.21.js → Icon2.js} +6 -4
- package/esm/_internal/Icon2.js.map +1 -0
- package/esm/_internal/{iconbutton.6.js → IconButton.js} +6 -6
- package/esm/_internal/IconButton.js.map +1 -0
- package/esm/_internal/{imageblock.22.js → ImageBlock.js} +4 -4
- package/esm/_internal/ImageBlock.js.map +1 -0
- package/esm/_internal/{inputhelper.23.js → InputHelper.js} +3 -3
- package/esm/_internal/InputHelper.js.map +1 -0
- package/esm/_internal/{inputlabel.24.js → InputLabel.js} +3 -3
- package/esm/_internal/InputLabel.js.map +1 -0
- package/esm/_internal/{lightbox.25.js → Lightbox2.js} +11 -11
- package/esm/_internal/Lightbox2.js.map +1 -0
- package/esm/_internal/{link.26.js → Link2.js} +5 -5
- package/esm/_internal/Link2.js.map +1 -0
- package/esm/_internal/{linkpreview.27.js → LinkPreview.js} +5 -5
- package/esm/_internal/LinkPreview.js.map +1 -0
- package/esm/_internal/{list.28.js → List2.js} +6 -6
- package/esm/_internal/List2.js.map +1 -0
- package/esm/_internal/{listsubheader.29.js → ListSubheader.js} +3 -3
- package/esm/_internal/ListSubheader.js.map +1 -0
- package/esm/_internal/{message.30.js → Message2.js} +4 -4
- package/esm/_internal/Message2.js.map +1 -0
- package/esm/_internal/{mosaic.31.js → Mosaic2.js} +4 -4
- package/esm/_internal/Mosaic2.js.map +1 -0
- package/esm/_internal/{notification.32.js → Notification2.js} +7 -7
- package/esm/_internal/Notification2.js.map +1 -0
- package/esm/_internal/{popover.33.js → Popover2.js} +6 -6
- package/esm/_internal/Popover2.js.map +1 -0
- package/esm/_internal/{postblock.34.js → PostBlock.js} +5 -5
- package/esm/_internal/PostBlock.js.map +1 -0
- package/esm/_internal/{progress.35.js → Progress2.js} +3 -3
- package/esm/_internal/Progress2.js.map +1 -0
- package/esm/_internal/{progresstrackersteppanel.36.js → ProgressTrackerStepPanel.js} +8 -8
- package/esm/_internal/ProgressTrackerStepPanel.js.map +1 -0
- package/esm/_internal/{radiogroup.37.js → RadioGroup.js} +6 -6
- package/esm/_internal/RadioGroup.js.map +1 -0
- package/esm/_internal/{selectmultiple.38.js → SelectMultiple.js} +12 -12
- package/esm/_internal/SelectMultiple.js.map +1 -0
- package/esm/_internal/{sidenavigationitem.39.js → SideNavigationItem.js} +7 -7
- package/esm/_internal/SideNavigationItem.js.map +1 -0
- package/esm/_internal/{skeletontypography.40.js → SkeletonTypography.js} +3 -3
- package/esm/_internal/SkeletonTypography.js.map +1 -0
- package/esm/_internal/{slider.41.js → Slider2.js} +6 -6
- package/esm/_internal/Slider2.js.map +1 -0
- package/esm/_internal/{slideshowcontrols.42.js → Slides.js} +239 -121
- package/esm/_internal/Slides.js.map +1 -0
- package/esm/_internal/{switch.43.js → Switch2.js} +6 -6
- package/esm/_internal/Switch2.js.map +1 -0
- package/esm/_internal/{tabpanel.45.js → TabPanel.js} +6 -6
- package/esm/_internal/TabPanel.js.map +1 -0
- package/esm/_internal/{tablerow.44.js → TableRow.js} +4 -4
- package/esm/_internal/TableRow.js.map +1 -0
- package/esm/_internal/{textfield.46.js → TextField.js} +9 -9
- package/esm/_internal/TextField.js.map +1 -0
- package/esm/_internal/{thumbnail.47.js → Thumbnail2.js} +6 -6
- package/esm/_internal/Thumbnail2.js.map +1 -0
- package/esm/_internal/{toolbar.49.js → Toolbar2.js} +3 -3
- package/esm/_internal/Toolbar2.js.map +1 -0
- package/esm/_internal/{tooltip.50.js → Tooltip2.js} +7 -7
- package/esm/_internal/Tooltip2.js.map +1 -0
- package/esm/_internal/{uploader.51.js → Uploader2.js} +4 -4
- package/esm/_internal/Uploader2.js.map +1 -0
- package/esm/_internal/{userblock.52.js → UserBlock.js} +5 -5
- package/esm/_internal/UserBlock.js.map +1 -0
- package/esm/_internal/{_rolluppluginbabelhelpers.53.js → _rollupPluginBabelHelpers.js} +1 -1
- package/esm/_internal/_rollupPluginBabelHelpers.js.map +1 -0
- package/esm/_internal/alert-dialog.js +19 -19
- package/esm/_internal/autocomplete.js +20 -20
- package/esm/_internal/avatar.js +6 -6
- package/esm/_internal/badge.js +3 -3
- package/esm/_internal/button.js +14 -14
- package/esm/_internal/checkbox.js +7 -7
- package/esm/_internal/chip.js +4 -4
- package/esm/_internal/comment-block.js +7 -7
- package/esm/_internal/components.js +1 -1
- package/esm/_internal/{constants.59.js → constants.js} +1 -1
- package/esm/_internal/constants.js.map +1 -0
- package/esm/_internal/date-picker.js +18 -18
- package/esm/_internal/dialog.js +12 -12
- package/esm/_internal/divider.js +3 -3
- package/esm/_internal/drag-handle.js +4 -4
- package/esm/_internal/dropdown.js +10 -10
- package/esm/_internal/expansion-panel.js +16 -16
- package/esm/_internal/flag.js +4 -4
- package/esm/_internal/flex-box.js +3 -3
- package/esm/_internal/{getrootclassname.54.js → getRootClassName.js} +4 -3
- package/esm/_internal/getRootClassName.js.map +1 -0
- package/esm/_internal/grid.js +3 -3
- package/esm/_internal/icon.js +3 -3
- package/esm/_internal/image-block.js +6 -6
- package/esm/_internal/input-helper.js +3 -3
- package/esm/_internal/input-label.js +3 -3
- package/esm/_internal/lightbox.js +16 -16
- package/esm/_internal/link-preview.js +8 -8
- package/esm/_internal/link.js +5 -5
- package/esm/_internal/list.js +7 -7
- package/esm/_internal/{mergerefs.56.js → mergeRefs.js} +1 -1
- package/esm/_internal/mergeRefs.js.map +1 -0
- package/esm/_internal/message.js +4 -4
- package/esm/_internal/mosaic.js +6 -6
- package/esm/_internal/notification.js +9 -9
- package/esm/_internal/{partitionmulti.62.js → partitionMulti.js} +1 -1
- package/esm/_internal/partitionMulti.js.map +1 -0
- package/esm/_internal/popover.js +6 -6
- package/esm/_internal/post-block.js +7 -7
- package/esm/_internal/progress-tracker.js +9 -9
- package/esm/_internal/progress.js +3 -3
- package/esm/_internal/radio-button.js +6 -6
- package/esm/_internal/{renderlink.65.js → renderLink.js} +2 -2
- package/esm/_internal/renderLink.js.map +1 -0
- package/esm/_internal/select.js +19 -19
- package/esm/_internal/side-navigation.js +14 -14
- package/esm/_internal/skeleton.js +3 -3
- package/esm/_internal/slider.js +6 -6
- package/esm/_internal/slideshow.js +14 -14
- package/esm/_internal/switch.js +6 -6
- package/esm/_internal/table.js +4 -4
- package/esm/_internal/tabs.js +7 -7
- package/esm/_internal/text-field.js +15 -15
- package/esm/_internal/thumbnail.js +6 -6
- package/esm/_internal/toolbar.js +3 -3
- package/esm/_internal/tooltip.js +8 -8
- package/esm/_internal/{type.64.js → type.js} +1 -1
- package/esm/_internal/type.js.map +1 -0
- package/esm/_internal/{types.48.js → types.js} +3 -2
- package/esm/_internal/types.js.map +1 -0
- package/esm/_internal/uploader.js +4 -4
- package/esm/_internal/{usedelayedvisibility.63.js → useDelayedVisibility.js} +2 -2
- package/esm/_internal/useDelayedVisibility.js.map +1 -0
- package/esm/_internal/{usedisablebodyscroll.61.js → useDisableBodyScroll.js} +1 -1
- package/esm/_internal/useDisableBodyScroll.js.map +1 -0
- package/esm/_internal/{usefocustrap.58.js → useFocusTrap.js} +2 -2
- package/esm/_internal/useFocusTrap.js.map +1 -0
- package/esm/_internal/{userovingtabindex.66.js → useRovingTabIndex.js} +3 -3
- package/esm/_internal/useRovingTabIndex.js.map +1 -0
- package/esm/_internal/user-block.js +9 -9
- package/esm/index.js +89 -0
- package/{index.js.map → esm/index.js.map} +1 -1
- package/esm/{_internal/index.55.js → index2.js} +1 -1
- package/esm/index2.js.map +1 -0
- package/package.json +10 -11
- package/src/components/slideshow/Slides.tsx +115 -0
- package/src/components/slideshow/Slideshow.stories.tsx +35 -0
- package/src/components/slideshow/Slideshow.test.tsx +1 -1
- package/src/components/slideshow/Slideshow.tsx +68 -90
- package/src/components/slideshow/SlideshowControls.stories.tsx +76 -40
- package/src/components/slideshow/SlideshowControls.tsx +36 -4
- package/src/components/slideshow/SlideshowItem.tsx +19 -3
- package/src/components/slideshow/__snapshots__/Slideshow.test.tsx.snap +125 -232
- package/src/components/slideshow/index.ts +1 -0
- package/src/components/thumbnail/index.ts +1 -0
- package/src/hooks/useFocusWithin.ts +2 -2
- package/src/hooks/useSlideshowControls.ts +29 -12
- package/src/stories/generated/Thumbnail/Demos.stories.tsx +3 -1
- package/types.d.ts +2672 -0
- package/esm/_internal/_rolluppluginbabelhelpers.53.js.map +0 -1
- package/esm/_internal/alertdialog.1.js.map +0 -1
- package/esm/_internal/autocompletemultiple.2.js.map +0 -1
- package/esm/_internal/avatar.3.js.map +0 -1
- package/esm/_internal/badge.4.js.map +0 -1
- package/esm/_internal/button.5.js.map +0 -1
- package/esm/_internal/buttongroup.7.js.map +0 -1
- package/esm/_internal/buttonroot.57.js.map +0 -1
- package/esm/_internal/checkbox.8.js.map +0 -1
- package/esm/_internal/chip.9.js.map +0 -1
- package/esm/_internal/chipgroup.10.js.map +0 -1
- package/esm/_internal/clickawayprovider.60.js.map +0 -1
- package/esm/_internal/commentblock.11.js.map +0 -1
- package/esm/_internal/constants.59.js.map +0 -1
- package/esm/_internal/datepickerfield.12.js.map +0 -1
- package/esm/_internal/dialog.13.js.map +0 -1
- package/esm/_internal/divider.14.js.map +0 -1
- package/esm/_internal/draghandle.15.js.map +0 -1
- package/esm/_internal/dropdown.16.js.map +0 -1
- package/esm/_internal/expansionpanel.17.js.map +0 -1
- package/esm/_internal/flag.18.js.map +0 -1
- package/esm/_internal/flexbox.19.js.map +0 -1
- package/esm/_internal/getrootclassname.54.js.map +0 -1
- package/esm/_internal/griditem.20.js.map +0 -1
- package/esm/_internal/icon.21.js.map +0 -1
- package/esm/_internal/iconbutton.6.js.map +0 -1
- package/esm/_internal/imageblock.22.js.map +0 -1
- package/esm/_internal/index.55.js.map +0 -1
- package/esm/_internal/inputhelper.23.js.map +0 -1
- package/esm/_internal/inputlabel.24.js.map +0 -1
- package/esm/_internal/lightbox.25.js.map +0 -1
- package/esm/_internal/link.26.js.map +0 -1
- package/esm/_internal/linkpreview.27.js.map +0 -1
- package/esm/_internal/list.28.js.map +0 -1
- package/esm/_internal/listsubheader.29.js.map +0 -1
- package/esm/_internal/mergerefs.56.js.map +0 -1
- package/esm/_internal/message.30.js.map +0 -1
- package/esm/_internal/mosaic.31.js.map +0 -1
- package/esm/_internal/notification.32.js.map +0 -1
- package/esm/_internal/partitionmulti.62.js.map +0 -1
- package/esm/_internal/popover.33.js.map +0 -1
- package/esm/_internal/postblock.34.js.map +0 -1
- package/esm/_internal/progress.35.js.map +0 -1
- package/esm/_internal/progresstrackersteppanel.36.js.map +0 -1
- package/esm/_internal/radiogroup.37.js.map +0 -1
- package/esm/_internal/renderlink.65.js.map +0 -1
- package/esm/_internal/selectmultiple.38.js.map +0 -1
- package/esm/_internal/sidenavigationitem.39.js.map +0 -1
- package/esm/_internal/skeletontypography.40.js.map +0 -1
- package/esm/_internal/slider.41.js.map +0 -1
- package/esm/_internal/slideshowcontrols.42.js.map +0 -1
- package/esm/_internal/switch.43.js.map +0 -1
- package/esm/_internal/tablerow.44.js.map +0 -1
- package/esm/_internal/tabpanel.45.js.map +0 -1
- package/esm/_internal/textfield.46.js.map +0 -1
- package/esm/_internal/thumbnail.47.js.map +0 -1
- package/esm/_internal/toolbar.49.js.map +0 -1
- package/esm/_internal/tooltip.50.js.map +0 -1
- package/esm/_internal/type.64.js.map +0 -1
- package/esm/_internal/types.48.js.map +0 -1
- package/esm/_internal/uploader.51.js.map +0 -1
- package/esm/_internal/usedelayedvisibility.63.js.map +0 -1
- package/esm/_internal/usedisablebodyscroll.61.js.map +0 -1
- package/esm/_internal/usefocustrap.58.js.map +0 -1
- package/esm/_internal/userblock.52.js.map +0 -1
- package/esm/_internal/userovingtabindex.66.js.map +0 -1
- package/hooks/useFocusWithin.d.ts +0 -16
- package/hooks/useFocusWithin.js +0 -28
- package/hooks/useFocusWithin.js.map +0 -1
- package/index.d.ts +0 -2723
- package/index.js +0 -90
|
@@ -2,262 +2,155 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`<Slideshow> Snapshots and structure should render story 'Simple' 1`] = `
|
|
4
4
|
Array [
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
<Slideshow
|
|
6
|
+
activeIndex={0}
|
|
7
|
+
afterSlides={
|
|
8
|
+
<div
|
|
9
|
+
className="lumx-slideshow__controls"
|
|
10
|
+
>
|
|
11
|
+
<SlideshowControls
|
|
12
|
+
activeIndex={0}
|
|
13
|
+
isAutoPlaying={false}
|
|
14
|
+
nextButtonProps={
|
|
15
|
+
Object {
|
|
16
|
+
"aria-controls": "slideshow-slides2",
|
|
17
|
+
"label": "Next",
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
onNextClick={[Function]}
|
|
21
|
+
onPaginationClick={[Function]}
|
|
22
|
+
onPreviousClick={[Function]}
|
|
23
|
+
parentRef={null}
|
|
24
|
+
previousButtonProps={
|
|
25
|
+
Object {
|
|
26
|
+
"aria-controls": "slideshow-slides2",
|
|
27
|
+
"label": "Previous",
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
slidesCount={6}
|
|
31
|
+
theme="light"
|
|
32
|
+
/>
|
|
33
|
+
</div>
|
|
34
|
+
}
|
|
35
|
+
autoPlay={false}
|
|
36
|
+
endIndexVisible={1}
|
|
37
|
+
groupBy={1}
|
|
9
38
|
id="slideshow1"
|
|
39
|
+
interval={1000}
|
|
40
|
+
isAutoPlaying={false}
|
|
41
|
+
setIsAutoPlaying={[Function]}
|
|
42
|
+
slidesId="slideshow-slides2"
|
|
43
|
+
startIndexVisible={0}
|
|
10
44
|
style={
|
|
11
45
|
Object {
|
|
12
46
|
"width": "50%",
|
|
13
47
|
}
|
|
14
48
|
}
|
|
49
|
+
theme="light"
|
|
15
50
|
>
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
id="slideshow-slides2"
|
|
19
|
-
onMouseEnter={[Function]}
|
|
20
|
-
onMouseLeave={[Function]}
|
|
51
|
+
<SlideshowItem
|
|
52
|
+
key="/demo-assets/landscape1.jpg-0"
|
|
21
53
|
>
|
|
22
|
-
<
|
|
23
|
-
|
|
24
|
-
|
|
54
|
+
<ImageBlock
|
|
55
|
+
align="left"
|
|
56
|
+
alt="Image 1"
|
|
57
|
+
captionPosition="below"
|
|
58
|
+
image="/demo-assets/landscape1.jpg"
|
|
59
|
+
theme="light"
|
|
60
|
+
thumbnailProps={
|
|
25
61
|
Object {
|
|
26
|
-
"
|
|
62
|
+
"aspectRatio": "horizontal",
|
|
63
|
+
"loading": "eager",
|
|
27
64
|
}
|
|
28
65
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"loading": "eager",
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/>
|
|
48
|
-
</SlideshowItem>
|
|
49
|
-
<SlideshowItem
|
|
50
|
-
aria-hidden={false}
|
|
51
|
-
key=".$/demo-assets/landscape1-s200.jpg-1"
|
|
52
|
-
style={Object {}}
|
|
53
|
-
>
|
|
54
|
-
<ImageBlock
|
|
55
|
-
align="left"
|
|
56
|
-
alt="Image 2"
|
|
57
|
-
captionPosition="below"
|
|
58
|
-
image="/demo-assets/landscape1-s200.jpg"
|
|
59
|
-
theme="light"
|
|
60
|
-
thumbnailProps={
|
|
61
|
-
Object {
|
|
62
|
-
"aspectRatio": "horizontal",
|
|
63
|
-
"loading": "eager",
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/>
|
|
67
|
-
</SlideshowItem>
|
|
68
|
-
<SlideshowItem
|
|
69
|
-
aria-hidden={true}
|
|
70
|
-
key=".$/demo-assets/landscape2.jpg-2"
|
|
71
|
-
style={
|
|
72
|
-
Object {
|
|
73
|
-
"visibility": "hidden",
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
>
|
|
77
|
-
<ImageBlock
|
|
78
|
-
align="left"
|
|
79
|
-
alt="Image 3"
|
|
80
|
-
captionPosition="below"
|
|
81
|
-
image="/demo-assets/landscape2.jpg"
|
|
82
|
-
theme="light"
|
|
83
|
-
thumbnailProps={
|
|
84
|
-
Object {
|
|
85
|
-
"aspectRatio": "horizontal",
|
|
86
|
-
"loading": "eager",
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/>
|
|
90
|
-
</SlideshowItem>
|
|
91
|
-
<SlideshowItem
|
|
92
|
-
aria-hidden={true}
|
|
93
|
-
key=".$/demo-assets/landscape3.jpg-3"
|
|
94
|
-
style={
|
|
95
|
-
Object {
|
|
96
|
-
"visibility": "hidden",
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
>
|
|
100
|
-
<ImageBlock
|
|
101
|
-
align="left"
|
|
102
|
-
alt="Image 4"
|
|
103
|
-
captionPosition="below"
|
|
104
|
-
image="/demo-assets/landscape3.jpg"
|
|
105
|
-
theme="light"
|
|
106
|
-
thumbnailProps={
|
|
107
|
-
Object {
|
|
108
|
-
"aspectRatio": "horizontal",
|
|
109
|
-
"loading": "eager",
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/>
|
|
113
|
-
</SlideshowItem>
|
|
114
|
-
<SlideshowItem
|
|
115
|
-
aria-hidden={true}
|
|
116
|
-
key=".$/demo-assets/portrait1.jpg-4"
|
|
117
|
-
style={
|
|
118
|
-
Object {
|
|
119
|
-
"visibility": "hidden",
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
>
|
|
123
|
-
<ImageBlock
|
|
124
|
-
align="left"
|
|
125
|
-
alt="Image 5"
|
|
126
|
-
captionPosition="below"
|
|
127
|
-
image="/demo-assets/portrait1.jpg"
|
|
128
|
-
theme="light"
|
|
129
|
-
thumbnailProps={
|
|
130
|
-
Object {
|
|
131
|
-
"aspectRatio": "horizontal",
|
|
132
|
-
"loading": "eager",
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
/>
|
|
136
|
-
</SlideshowItem>
|
|
137
|
-
<SlideshowItem
|
|
138
|
-
aria-hidden={true}
|
|
139
|
-
key=".$/demo-assets/portrait1-s200.jpg-5"
|
|
140
|
-
style={
|
|
141
|
-
Object {
|
|
142
|
-
"visibility": "hidden",
|
|
143
|
-
}
|
|
66
|
+
/>
|
|
67
|
+
</SlideshowItem>
|
|
68
|
+
<SlideshowItem
|
|
69
|
+
key="/demo-assets/landscape1-s200.jpg-1"
|
|
70
|
+
>
|
|
71
|
+
<ImageBlock
|
|
72
|
+
align="left"
|
|
73
|
+
alt="Image 2"
|
|
74
|
+
captionPosition="below"
|
|
75
|
+
image="/demo-assets/landscape1-s200.jpg"
|
|
76
|
+
theme="light"
|
|
77
|
+
thumbnailProps={
|
|
78
|
+
Object {
|
|
79
|
+
"aspectRatio": "horizontal",
|
|
80
|
+
"loading": "eager",
|
|
144
81
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
image="/demo-assets/portrait1-s200.jpg"
|
|
151
|
-
theme="light"
|
|
152
|
-
thumbnailProps={
|
|
153
|
-
Object {
|
|
154
|
-
"aspectRatio": "horizontal",
|
|
155
|
-
"loading": "eager",
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
/>
|
|
159
|
-
</SlideshowItem>
|
|
160
|
-
</div>
|
|
161
|
-
</div>
|
|
162
|
-
<div
|
|
163
|
-
className="lumx-slideshow__controls"
|
|
82
|
+
}
|
|
83
|
+
/>
|
|
84
|
+
</SlideshowItem>
|
|
85
|
+
<SlideshowItem
|
|
86
|
+
key="/demo-assets/landscape2.jpg-2"
|
|
164
87
|
>
|
|
165
|
-
<
|
|
166
|
-
|
|
167
|
-
|
|
88
|
+
<ImageBlock
|
|
89
|
+
align="left"
|
|
90
|
+
alt="Image 3"
|
|
91
|
+
captionPosition="below"
|
|
92
|
+
image="/demo-assets/landscape2.jpg"
|
|
93
|
+
theme="light"
|
|
94
|
+
thumbnailProps={
|
|
168
95
|
Object {
|
|
169
|
-
"
|
|
170
|
-
"
|
|
96
|
+
"aspectRatio": "horizontal",
|
|
97
|
+
"loading": "eager",
|
|
171
98
|
}
|
|
172
99
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
100
|
+
/>
|
|
101
|
+
</SlideshowItem>
|
|
102
|
+
<SlideshowItem
|
|
103
|
+
key="/demo-assets/landscape3.jpg-3"
|
|
104
|
+
>
|
|
105
|
+
<ImageBlock
|
|
106
|
+
align="left"
|
|
107
|
+
alt="Image 4"
|
|
108
|
+
captionPosition="below"
|
|
109
|
+
image="/demo-assets/landscape3.jpg"
|
|
110
|
+
theme="light"
|
|
111
|
+
thumbnailProps={
|
|
177
112
|
Object {
|
|
178
|
-
"
|
|
179
|
-
"
|
|
113
|
+
"aspectRatio": "horizontal",
|
|
114
|
+
"loading": "eager",
|
|
180
115
|
}
|
|
181
116
|
}
|
|
182
|
-
|
|
117
|
+
/>
|
|
118
|
+
</SlideshowItem>
|
|
119
|
+
<SlideshowItem
|
|
120
|
+
key="/demo-assets/portrait1.jpg-4"
|
|
121
|
+
>
|
|
122
|
+
<ImageBlock
|
|
123
|
+
align="left"
|
|
124
|
+
alt="Image 5"
|
|
125
|
+
captionPosition="below"
|
|
126
|
+
image="/demo-assets/portrait1.jpg"
|
|
183
127
|
theme="light"
|
|
128
|
+
thumbnailProps={
|
|
129
|
+
Object {
|
|
130
|
+
"aspectRatio": "horizontal",
|
|
131
|
+
"loading": "eager",
|
|
132
|
+
}
|
|
133
|
+
}
|
|
184
134
|
/>
|
|
185
|
-
</
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
className="lumx-slideshow-controls lumx-slideshow-controls--theme-light lumx-slideshow-controls--has-infinite-pagination"
|
|
189
|
-
>
|
|
190
|
-
<IconButton
|
|
191
|
-
aria-controls="slideshow-slides4"
|
|
192
|
-
className="lumx-slideshow-controls__navigation"
|
|
193
|
-
color="dark"
|
|
194
|
-
emphasis="low"
|
|
195
|
-
icon="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"
|
|
196
|
-
label="Previous"
|
|
197
|
-
onClick={[Function]}
|
|
198
|
-
size="m"
|
|
199
|
-
theme="light"
|
|
200
|
-
/>
|
|
201
|
-
<div
|
|
202
|
-
className="lumx-slideshow-controls__pagination"
|
|
135
|
+
</SlideshowItem>
|
|
136
|
+
<SlideshowItem
|
|
137
|
+
key="/demo-assets/portrait1-s200.jpg-5"
|
|
203
138
|
>
|
|
204
|
-
<
|
|
205
|
-
|
|
206
|
-
|
|
139
|
+
<ImageBlock
|
|
140
|
+
align="left"
|
|
141
|
+
alt="Image 6"
|
|
142
|
+
captionPosition="below"
|
|
143
|
+
image="/demo-assets/portrait1-s200.jpg"
|
|
144
|
+
theme="light"
|
|
145
|
+
thumbnailProps={
|
|
207
146
|
Object {
|
|
208
|
-
"
|
|
147
|
+
"aspectRatio": "horizontal",
|
|
148
|
+
"loading": "eager",
|
|
209
149
|
}
|
|
210
150
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
onClick={[Function]}
|
|
216
|
-
type="button"
|
|
217
|
-
/>
|
|
218
|
-
<button
|
|
219
|
-
className="lumx-slideshow-controls__pagination-item"
|
|
220
|
-
key="1"
|
|
221
|
-
onClick={[Function]}
|
|
222
|
-
type="button"
|
|
223
|
-
/>
|
|
224
|
-
<button
|
|
225
|
-
className="lumx-slideshow-controls__pagination-item"
|
|
226
|
-
key="2"
|
|
227
|
-
onClick={[Function]}
|
|
228
|
-
type="button"
|
|
229
|
-
/>
|
|
230
|
-
<button
|
|
231
|
-
className="lumx-slideshow-controls__pagination-item"
|
|
232
|
-
key="3"
|
|
233
|
-
onClick={[Function]}
|
|
234
|
-
type="button"
|
|
235
|
-
/>
|
|
236
|
-
<button
|
|
237
|
-
className="lumx-slideshow-controls__pagination-item lumx-slideshow-controls__pagination-item--is-on-edge"
|
|
238
|
-
key="4"
|
|
239
|
-
onClick={[Function]}
|
|
240
|
-
type="button"
|
|
241
|
-
/>
|
|
242
|
-
<button
|
|
243
|
-
className="lumx-slideshow-controls__pagination-item lumx-slideshow-controls__pagination-item--is-out-range"
|
|
244
|
-
key="5"
|
|
245
|
-
onClick={[Function]}
|
|
246
|
-
type="button"
|
|
247
|
-
/>
|
|
248
|
-
</div>
|
|
249
|
-
</div>
|
|
250
|
-
<IconButton
|
|
251
|
-
aria-controls="slideshow-slides4"
|
|
252
|
-
className="lumx-slideshow-controls__navigation"
|
|
253
|
-
color="dark"
|
|
254
|
-
emphasis="low"
|
|
255
|
-
icon="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"
|
|
256
|
-
label="Next"
|
|
257
|
-
onClick={[Function]}
|
|
258
|
-
size="m"
|
|
259
|
-
theme="light"
|
|
260
|
-
/>
|
|
261
|
-
</div>,
|
|
151
|
+
/>
|
|
152
|
+
</SlideshowItem>
|
|
153
|
+
</Slideshow>,
|
|
154
|
+
null,
|
|
262
155
|
]
|
|
263
156
|
`;
|
|
@@ -2,7 +2,7 @@ import { useEffect } from 'react';
|
|
|
2
2
|
|
|
3
3
|
export interface UseFocusWithinOptions {
|
|
4
4
|
/** element to add the focus within to */
|
|
5
|
-
element: HTMLElement |
|
|
5
|
+
element: HTMLElement | null;
|
|
6
6
|
/** callback to be executed on focus in */
|
|
7
7
|
onFocusIn: (ev: FocusEvent) => void;
|
|
8
8
|
/** callback to be executed on focus out */
|
|
@@ -26,7 +26,7 @@ export const useFocusWithin = ({ element, onFocusIn, onFocusOut }: UseFocusWithi
|
|
|
26
26
|
if (element) {
|
|
27
27
|
element.removeEventListener('focusin', onFocusIn);
|
|
28
28
|
|
|
29
|
-
element.
|
|
29
|
+
element.removeEventListener('focusout', onFocusOut);
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
}, [onFocusIn, element, onFocusOut]);
|
|
@@ -4,8 +4,6 @@ import { useInterval } from '@lumx/react/hooks/useInterval';
|
|
|
4
4
|
import uniqueId from 'lodash/uniqueId';
|
|
5
5
|
import { AUTOPLAY_DEFAULT_INTERVAL } from '@lumx/react/components/slideshow/constants';
|
|
6
6
|
|
|
7
|
-
import { useFocusWithin } from './useFocusWithin';
|
|
8
|
-
|
|
9
7
|
export interface UseSlideshowControlsOptions {
|
|
10
8
|
/** default active index to be displayed */
|
|
11
9
|
defaultActiveIndex?: number;
|
|
@@ -37,9 +35,9 @@ export interface UseSlideshowControls {
|
|
|
37
35
|
/** total slides to be displayed */
|
|
38
36
|
slidesCount: number;
|
|
39
37
|
/** callback to set */
|
|
40
|
-
setSlideshow: (element: HTMLDivElement |
|
|
38
|
+
setSlideshow: (element: HTMLDivElement | null) => void;
|
|
41
39
|
/** reference to the slideshow element */
|
|
42
|
-
slideshow: HTMLDivElement |
|
|
40
|
+
slideshow: HTMLDivElement | null;
|
|
43
41
|
/** id to be used for the slideshow */
|
|
44
42
|
slideshowId: string;
|
|
45
43
|
/** id to be used for the wrapper that contains the slides */
|
|
@@ -52,12 +50,20 @@ export interface UseSlideshowControls {
|
|
|
52
50
|
onPaginationClick: (index: number) => void;
|
|
53
51
|
/** whether the slideshow is autoplaying or not */
|
|
54
52
|
isAutoPlaying: boolean;
|
|
53
|
+
/** whether the slideshow was force paused or not */
|
|
54
|
+
isForcePaused: boolean;
|
|
55
|
+
/** callback to enable/disable the force pause feature */
|
|
56
|
+
setIsForcePaused: (isForcePaused: boolean) => void;
|
|
55
57
|
/** callback to change whether the slideshow is autoplaying or not */
|
|
56
58
|
setIsAutoPlaying: (isAutoPlaying: boolean) => void;
|
|
57
59
|
/** current active slide index */
|
|
58
60
|
activeIndex: number;
|
|
59
61
|
/** set the current index as the active one */
|
|
60
62
|
setActiveIndex: (index: number) => void;
|
|
63
|
+
/** callback that stops the auto play */
|
|
64
|
+
stopAutoPlay: () => void;
|
|
65
|
+
/** callback that starts the auto play */
|
|
66
|
+
startAutoPlay: () => void;
|
|
61
67
|
}
|
|
62
68
|
|
|
63
69
|
export const DEFAULT_OPTIONS: Partial<UseSlideshowControlsOptions> = {
|
|
@@ -79,7 +85,7 @@ export const useSlideshowControls = ({
|
|
|
79
85
|
}: UseSlideshowControlsOptions): UseSlideshowControls => {
|
|
80
86
|
const [currentIndex, setCurrentIndex] = useState(activeIndex as number);
|
|
81
87
|
// Use state instead of a ref to make the slideshow controls update directly when the element is set.
|
|
82
|
-
const [element, setElement] = useState<HTMLDivElement>();
|
|
88
|
+
const [element, setElement] = useState<HTMLDivElement | null>(null);
|
|
83
89
|
|
|
84
90
|
// Number of slides when using groupBy prop.
|
|
85
91
|
const slidesCount = Math.ceil(itemsCount / Math.min(groupBy as number, itemsCount));
|
|
@@ -122,8 +128,11 @@ export const useSlideshowControls = ({
|
|
|
122
128
|
|
|
123
129
|
// Auto play
|
|
124
130
|
const [isAutoPlaying, setIsAutoPlaying] = useState(Boolean(autoPlay));
|
|
131
|
+
const [isForcePaused, setIsForcePaused] = useState(false);
|
|
132
|
+
|
|
133
|
+
const isSlideshowAutoPlaying = isForcePaused ? false : isAutoPlaying;
|
|
125
134
|
// Start
|
|
126
|
-
useInterval(goToNextSlide,
|
|
135
|
+
useInterval(goToNextSlide, isSlideshowAutoPlaying && slidesCount > 1 ? (interval as number) : null);
|
|
127
136
|
|
|
128
137
|
// Reset current index if it become invalid.
|
|
129
138
|
useEffect(() => {
|
|
@@ -184,11 +193,15 @@ export const useSlideshowControls = ({
|
|
|
184
193
|
setIsAutoPlaying(false);
|
|
185
194
|
};
|
|
186
195
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
196
|
+
const forcePause = (isPaused: boolean) => {
|
|
197
|
+
setIsForcePaused(isPaused);
|
|
198
|
+
|
|
199
|
+
if (isPaused) {
|
|
200
|
+
stopAutoPlay();
|
|
201
|
+
} else {
|
|
202
|
+
startAutoPlay();
|
|
203
|
+
}
|
|
204
|
+
};
|
|
192
205
|
|
|
193
206
|
// Start index and end index of visible slides.
|
|
194
207
|
const startIndexVisible = currentIndex * (groupBy as number);
|
|
@@ -204,10 +217,14 @@ export const useSlideshowControls = ({
|
|
|
204
217
|
onPreviousClick,
|
|
205
218
|
onNextClick,
|
|
206
219
|
onPaginationClick,
|
|
207
|
-
isAutoPlaying,
|
|
220
|
+
isAutoPlaying: isSlideshowAutoPlaying,
|
|
208
221
|
setIsAutoPlaying,
|
|
209
222
|
activeIndex: currentIndex,
|
|
210
223
|
slidesCount,
|
|
211
224
|
setActiveIndex: setCurrentIndex,
|
|
225
|
+
startAutoPlay,
|
|
226
|
+
stopAutoPlay,
|
|
227
|
+
isForcePaused,
|
|
228
|
+
setIsForcePaused: forcePause,
|
|
212
229
|
};
|
|
213
230
|
};
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
export default { title: 'LumX components/thumbnail/Thumbnail Demos' };
|
|
5
5
|
|
|
6
6
|
export { App as Combined } from './combined';
|
|
7
|
-
export { App as
|
|
7
|
+
export { App as ErrorFallback } from './error-fallback';
|
|
8
|
+
export { App as Error } from './error';
|
|
9
|
+
export { App as Loading } from './loading';
|
|
8
10
|
export { App as Ratios } from './ratios';
|
|
9
11
|
export { App as Sizes } from './sizes';
|
|
10
12
|
export { App as Variants } from './variants';
|