@lumx/react 2.2.9-alpha-exported-hooks2 → 2.2.9

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.
Files changed (268) hide show
  1. package/esm/_internal/{alertdialog.1.js → AlertDialog.js} +8 -8
  2. package/esm/_internal/AlertDialog.js.map +1 -0
  3. package/esm/_internal/{autocompletemultiple.2.js → AutocompleteMultiple.js} +9 -9
  4. package/esm/_internal/AutocompleteMultiple.js.map +1 -0
  5. package/esm/_internal/{avatar.3.js → Avatar2.js} +4 -4
  6. package/esm/_internal/Avatar2.js.map +1 -0
  7. package/esm/_internal/{badge.4.js → Badge2.js} +3 -3
  8. package/esm/_internal/Badge2.js.map +1 -0
  9. package/esm/_internal/{button.5.js → Button2.js} +5 -5
  10. package/esm/_internal/Button2.js.map +1 -0
  11. package/esm/_internal/{buttongroup.7.js → ButtonGroup.js} +3 -3
  12. package/esm/_internal/ButtonGroup.js.map +1 -0
  13. package/esm/_internal/{buttonroot.57.js → ButtonRoot.js} +4 -4
  14. package/esm/_internal/ButtonRoot.js.map +1 -0
  15. package/esm/_internal/{checkbox.8.js → Checkbox2.js} +7 -7
  16. package/esm/_internal/Checkbox2.js.map +1 -0
  17. package/esm/_internal/{chip.9.js → Chip2.js} +3 -3
  18. package/esm/_internal/Chip2.js.map +1 -0
  19. package/esm/_internal/{chipgroup.10.js → ChipGroup.js} +3 -3
  20. package/esm/_internal/ChipGroup.js.map +1 -0
  21. package/esm/_internal/{clickawayprovider.60.js → ClickAwayProvider.js} +4 -4
  22. package/esm/_internal/ClickAwayProvider.js.map +1 -0
  23. package/esm/_internal/{commentblock.11.js → CommentBlock.js} +4 -4
  24. package/esm/_internal/CommentBlock.js.map +1 -0
  25. package/esm/_internal/{datepickerfield.12.js → DatePickerField.js} +9 -9
  26. package/esm/_internal/DatePickerField.js.map +1 -0
  27. package/esm/_internal/{dialog.13.js → Dialog2.js} +12 -12
  28. package/esm/_internal/Dialog2.js.map +1 -0
  29. package/esm/_internal/{divider.14.js → Divider2.js} +3 -3
  30. package/esm/_internal/Divider2.js.map +1 -0
  31. package/esm/_internal/{draghandle.15.js → DragHandle.js} +4 -4
  32. package/esm/_internal/DragHandle.js.map +1 -0
  33. package/esm/_internal/{dropdown.16.js → Dropdown2.js} +6 -6
  34. package/esm/_internal/Dropdown2.js.map +1 -0
  35. package/esm/_internal/{expansionpanel.17.js → ExpansionPanel.js} +8 -8
  36. package/esm/_internal/ExpansionPanel.js.map +1 -0
  37. package/esm/_internal/{flag.18.js → Flag2.js} +4 -4
  38. package/esm/_internal/Flag2.js.map +1 -0
  39. package/esm/_internal/{flexbox.19.js → FlexBox.js} +3 -3
  40. package/esm/_internal/FlexBox.js.map +1 -0
  41. package/esm/_internal/{griditem.20.js → GridItem.js} +3 -3
  42. package/esm/_internal/GridItem.js.map +1 -0
  43. package/esm/_internal/{icon.21.js → Icon2.js} +6 -4
  44. package/esm/_internal/Icon2.js.map +1 -0
  45. package/esm/_internal/{iconbutton.6.js → IconButton.js} +6 -6
  46. package/esm/_internal/IconButton.js.map +1 -0
  47. package/esm/_internal/{imageblock.22.js → ImageBlock.js} +4 -4
  48. package/esm/_internal/ImageBlock.js.map +1 -0
  49. package/esm/_internal/{inputhelper.23.js → InputHelper.js} +3 -3
  50. package/esm/_internal/InputHelper.js.map +1 -0
  51. package/esm/_internal/{inputlabel.24.js → InputLabel.js} +3 -3
  52. package/esm/_internal/InputLabel.js.map +1 -0
  53. package/esm/_internal/{lightbox.25.js → Lightbox2.js} +11 -11
  54. package/esm/_internal/Lightbox2.js.map +1 -0
  55. package/esm/_internal/{link.26.js → Link2.js} +5 -5
  56. package/esm/_internal/Link2.js.map +1 -0
  57. package/esm/_internal/{linkpreview.27.js → LinkPreview.js} +5 -5
  58. package/esm/_internal/LinkPreview.js.map +1 -0
  59. package/esm/_internal/{list.28.js → List2.js} +6 -6
  60. package/esm/_internal/List2.js.map +1 -0
  61. package/esm/_internal/{listsubheader.29.js → ListSubheader.js} +3 -3
  62. package/esm/_internal/ListSubheader.js.map +1 -0
  63. package/esm/_internal/{message.30.js → Message2.js} +4 -4
  64. package/esm/_internal/Message2.js.map +1 -0
  65. package/esm/_internal/{mosaic.31.js → Mosaic2.js} +4 -4
  66. package/esm/_internal/Mosaic2.js.map +1 -0
  67. package/esm/_internal/{notification.32.js → Notification2.js} +7 -7
  68. package/esm/_internal/Notification2.js.map +1 -0
  69. package/esm/_internal/{popover.33.js → Popover2.js} +6 -6
  70. package/esm/_internal/Popover2.js.map +1 -0
  71. package/esm/_internal/{postblock.34.js → PostBlock.js} +5 -5
  72. package/esm/_internal/PostBlock.js.map +1 -0
  73. package/esm/_internal/{progress.35.js → Progress2.js} +3 -3
  74. package/esm/_internal/Progress2.js.map +1 -0
  75. package/esm/_internal/{progresstrackersteppanel.36.js → ProgressTrackerStepPanel.js} +8 -8
  76. package/esm/_internal/ProgressTrackerStepPanel.js.map +1 -0
  77. package/esm/_internal/{radiogroup.37.js → RadioGroup.js} +6 -6
  78. package/esm/_internal/RadioGroup.js.map +1 -0
  79. package/esm/_internal/{selectmultiple.38.js → SelectMultiple.js} +12 -12
  80. package/esm/_internal/SelectMultiple.js.map +1 -0
  81. package/esm/_internal/{sidenavigationitem.39.js → SideNavigationItem.js} +7 -7
  82. package/esm/_internal/SideNavigationItem.js.map +1 -0
  83. package/esm/_internal/{skeletontypography.40.js → SkeletonTypography.js} +3 -3
  84. package/esm/_internal/SkeletonTypography.js.map +1 -0
  85. package/esm/_internal/{slider.41.js → Slider2.js} +6 -6
  86. package/esm/_internal/Slider2.js.map +1 -0
  87. package/esm/_internal/{slideshowcontrols.42.js → Slides.js} +238 -120
  88. package/esm/_internal/Slides.js.map +1 -0
  89. package/esm/_internal/{switch.43.js → Switch2.js} +6 -6
  90. package/esm/_internal/Switch2.js.map +1 -0
  91. package/esm/_internal/{tabpanel.45.js → TabPanel.js} +6 -6
  92. package/esm/_internal/TabPanel.js.map +1 -0
  93. package/esm/_internal/{tablerow.44.js → TableRow.js} +4 -4
  94. package/esm/_internal/TableRow.js.map +1 -0
  95. package/esm/_internal/{textfield.46.js → TextField.js} +9 -9
  96. package/esm/_internal/TextField.js.map +1 -0
  97. package/esm/_internal/{thumbnail.47.js → Thumbnail2.js} +6 -6
  98. package/esm/_internal/Thumbnail2.js.map +1 -0
  99. package/esm/_internal/{toolbar.49.js → Toolbar2.js} +3 -3
  100. package/esm/_internal/Toolbar2.js.map +1 -0
  101. package/esm/_internal/{tooltip.50.js → Tooltip2.js} +7 -7
  102. package/esm/_internal/Tooltip2.js.map +1 -0
  103. package/esm/_internal/{uploader.51.js → Uploader2.js} +4 -4
  104. package/esm/_internal/Uploader2.js.map +1 -0
  105. package/esm/_internal/{userblock.52.js → UserBlock.js} +5 -5
  106. package/esm/_internal/UserBlock.js.map +1 -0
  107. package/esm/_internal/{_rolluppluginbabelhelpers.53.js → _rollupPluginBabelHelpers.js} +1 -1
  108. package/esm/_internal/_rollupPluginBabelHelpers.js.map +1 -0
  109. package/esm/_internal/alert-dialog.js +19 -19
  110. package/esm/_internal/autocomplete.js +20 -20
  111. package/esm/_internal/avatar.js +6 -6
  112. package/esm/_internal/badge.js +3 -3
  113. package/esm/_internal/button.js +14 -14
  114. package/esm/_internal/checkbox.js +7 -7
  115. package/esm/_internal/chip.js +4 -4
  116. package/esm/_internal/comment-block.js +7 -7
  117. package/esm/_internal/components.js +1 -1
  118. package/esm/_internal/{constants.59.js → constants.js} +1 -1
  119. package/esm/_internal/constants.js.map +1 -0
  120. package/esm/_internal/date-picker.js +18 -18
  121. package/esm/_internal/dialog.js +12 -12
  122. package/esm/_internal/divider.js +3 -3
  123. package/esm/_internal/drag-handle.js +4 -4
  124. package/esm/_internal/dropdown.js +10 -10
  125. package/esm/_internal/expansion-panel.js +16 -16
  126. package/esm/_internal/flag.js +4 -4
  127. package/esm/_internal/flex-box.js +3 -3
  128. package/esm/_internal/{getrootclassname.54.js → getRootClassName.js} +4 -3
  129. package/esm/_internal/getRootClassName.js.map +1 -0
  130. package/esm/_internal/grid.js +3 -3
  131. package/esm/_internal/icon.js +3 -3
  132. package/esm/_internal/image-block.js +6 -6
  133. package/esm/_internal/input-helper.js +3 -3
  134. package/esm/_internal/input-label.js +3 -3
  135. package/esm/_internal/lightbox.js +16 -16
  136. package/esm/_internal/link-preview.js +8 -8
  137. package/esm/_internal/link.js +5 -5
  138. package/esm/_internal/list.js +7 -7
  139. package/esm/_internal/{mergerefs.56.js → mergeRefs.js} +1 -1
  140. package/esm/_internal/mergeRefs.js.map +1 -0
  141. package/esm/_internal/message.js +4 -4
  142. package/esm/_internal/mosaic.js +6 -6
  143. package/esm/_internal/notification.js +9 -9
  144. package/esm/_internal/{partitionmulti.62.js → partitionMulti.js} +1 -1
  145. package/esm/_internal/partitionMulti.js.map +1 -0
  146. package/esm/_internal/popover.js +6 -6
  147. package/esm/_internal/post-block.js +7 -7
  148. package/esm/_internal/progress-tracker.js +9 -9
  149. package/esm/_internal/progress.js +3 -3
  150. package/esm/_internal/radio-button.js +6 -6
  151. package/esm/_internal/{renderlink.65.js → renderLink.js} +2 -2
  152. package/esm/_internal/renderLink.js.map +1 -0
  153. package/esm/_internal/select.js +19 -19
  154. package/esm/_internal/side-navigation.js +14 -14
  155. package/esm/_internal/skeleton.js +3 -3
  156. package/esm/_internal/slider.js +6 -6
  157. package/esm/_internal/slideshow.js +14 -14
  158. package/esm/_internal/switch.js +6 -6
  159. package/esm/_internal/table.js +4 -4
  160. package/esm/_internal/tabs.js +7 -7
  161. package/esm/_internal/text-field.js +15 -15
  162. package/esm/_internal/thumbnail.js +6 -6
  163. package/esm/_internal/toolbar.js +3 -3
  164. package/esm/_internal/tooltip.js +8 -8
  165. package/esm/_internal/{type.64.js → type.js} +1 -1
  166. package/esm/_internal/type.js.map +1 -0
  167. package/esm/_internal/{types.48.js → types.js} +3 -2
  168. package/esm/_internal/types.js.map +1 -0
  169. package/esm/_internal/uploader.js +4 -4
  170. package/esm/_internal/{usedelayedvisibility.63.js → useDelayedVisibility.js} +2 -2
  171. package/esm/_internal/useDelayedVisibility.js.map +1 -0
  172. package/esm/_internal/{usedisablebodyscroll.61.js → useDisableBodyScroll.js} +1 -1
  173. package/esm/_internal/useDisableBodyScroll.js.map +1 -0
  174. package/esm/_internal/{usefocustrap.58.js → useFocusTrap.js} +2 -2
  175. package/esm/_internal/useFocusTrap.js.map +1 -0
  176. package/esm/_internal/{userovingtabindex.66.js → useRovingTabIndex.js} +3 -3
  177. package/esm/_internal/useRovingTabIndex.js.map +1 -0
  178. package/esm/_internal/user-block.js +9 -9
  179. package/esm/index.js +89 -0
  180. package/{index.js.map → esm/index.js.map} +1 -1
  181. package/esm/{_internal/index.55.js → index2.js} +1 -1
  182. package/esm/index2.js.map +1 -0
  183. package/package.json +10 -11
  184. package/src/components/slideshow/Slides.tsx +115 -0
  185. package/src/components/slideshow/Slideshow.stories.tsx +34 -0
  186. package/src/components/slideshow/Slideshow.test.tsx +1 -1
  187. package/src/components/slideshow/Slideshow.tsx +69 -90
  188. package/src/components/slideshow/SlideshowControls.stories.tsx +76 -40
  189. package/src/components/slideshow/SlideshowControls.tsx +35 -3
  190. package/src/components/slideshow/SlideshowItem.tsx +19 -3
  191. package/src/components/slideshow/__snapshots__/Slideshow.test.tsx.snap +124 -232
  192. package/src/components/slideshow/index.ts +1 -0
  193. package/src/components/thumbnail/index.ts +1 -0
  194. package/src/hooks/useFocusWithin.ts +1 -1
  195. package/src/hooks/useSlideshowControls.ts +26 -9
  196. package/src/stories/generated/Thumbnail/Demos.stories.tsx +3 -1
  197. package/types.d.ts +2670 -0
  198. package/esm/_internal/_rolluppluginbabelhelpers.53.js.map +0 -1
  199. package/esm/_internal/alertdialog.1.js.map +0 -1
  200. package/esm/_internal/autocompletemultiple.2.js.map +0 -1
  201. package/esm/_internal/avatar.3.js.map +0 -1
  202. package/esm/_internal/badge.4.js.map +0 -1
  203. package/esm/_internal/button.5.js.map +0 -1
  204. package/esm/_internal/buttongroup.7.js.map +0 -1
  205. package/esm/_internal/buttonroot.57.js.map +0 -1
  206. package/esm/_internal/checkbox.8.js.map +0 -1
  207. package/esm/_internal/chip.9.js.map +0 -1
  208. package/esm/_internal/chipgroup.10.js.map +0 -1
  209. package/esm/_internal/clickawayprovider.60.js.map +0 -1
  210. package/esm/_internal/commentblock.11.js.map +0 -1
  211. package/esm/_internal/constants.59.js.map +0 -1
  212. package/esm/_internal/datepickerfield.12.js.map +0 -1
  213. package/esm/_internal/dialog.13.js.map +0 -1
  214. package/esm/_internal/divider.14.js.map +0 -1
  215. package/esm/_internal/draghandle.15.js.map +0 -1
  216. package/esm/_internal/dropdown.16.js.map +0 -1
  217. package/esm/_internal/expansionpanel.17.js.map +0 -1
  218. package/esm/_internal/flag.18.js.map +0 -1
  219. package/esm/_internal/flexbox.19.js.map +0 -1
  220. package/esm/_internal/getrootclassname.54.js.map +0 -1
  221. package/esm/_internal/griditem.20.js.map +0 -1
  222. package/esm/_internal/icon.21.js.map +0 -1
  223. package/esm/_internal/iconbutton.6.js.map +0 -1
  224. package/esm/_internal/imageblock.22.js.map +0 -1
  225. package/esm/_internal/index.55.js.map +0 -1
  226. package/esm/_internal/inputhelper.23.js.map +0 -1
  227. package/esm/_internal/inputlabel.24.js.map +0 -1
  228. package/esm/_internal/lightbox.25.js.map +0 -1
  229. package/esm/_internal/link.26.js.map +0 -1
  230. package/esm/_internal/linkpreview.27.js.map +0 -1
  231. package/esm/_internal/list.28.js.map +0 -1
  232. package/esm/_internal/listsubheader.29.js.map +0 -1
  233. package/esm/_internal/mergerefs.56.js.map +0 -1
  234. package/esm/_internal/message.30.js.map +0 -1
  235. package/esm/_internal/mosaic.31.js.map +0 -1
  236. package/esm/_internal/notification.32.js.map +0 -1
  237. package/esm/_internal/partitionmulti.62.js.map +0 -1
  238. package/esm/_internal/popover.33.js.map +0 -1
  239. package/esm/_internal/postblock.34.js.map +0 -1
  240. package/esm/_internal/progress.35.js.map +0 -1
  241. package/esm/_internal/progresstrackersteppanel.36.js.map +0 -1
  242. package/esm/_internal/radiogroup.37.js.map +0 -1
  243. package/esm/_internal/renderlink.65.js.map +0 -1
  244. package/esm/_internal/selectmultiple.38.js.map +0 -1
  245. package/esm/_internal/sidenavigationitem.39.js.map +0 -1
  246. package/esm/_internal/skeletontypography.40.js.map +0 -1
  247. package/esm/_internal/slider.41.js.map +0 -1
  248. package/esm/_internal/slideshowcontrols.42.js.map +0 -1
  249. package/esm/_internal/switch.43.js.map +0 -1
  250. package/esm/_internal/tablerow.44.js.map +0 -1
  251. package/esm/_internal/tabpanel.45.js.map +0 -1
  252. package/esm/_internal/textfield.46.js.map +0 -1
  253. package/esm/_internal/thumbnail.47.js.map +0 -1
  254. package/esm/_internal/toolbar.49.js.map +0 -1
  255. package/esm/_internal/tooltip.50.js.map +0 -1
  256. package/esm/_internal/type.64.js.map +0 -1
  257. package/esm/_internal/types.48.js.map +0 -1
  258. package/esm/_internal/uploader.51.js.map +0 -1
  259. package/esm/_internal/usedelayedvisibility.63.js.map +0 -1
  260. package/esm/_internal/usedisablebodyscroll.61.js.map +0 -1
  261. package/esm/_internal/usefocustrap.58.js.map +0 -1
  262. package/esm/_internal/userblock.52.js.map +0 -1
  263. package/esm/_internal/userovingtabindex.66.js.map +0 -1
  264. package/hooks/useFocusWithin.d.ts +0 -16
  265. package/hooks/useFocusWithin.js +0 -28
  266. package/hooks/useFocusWithin.js.map +0 -1
  267. package/index.d.ts +0 -2723
  268. package/index.js +0 -90
@@ -2,262 +2,154 @@
2
2
 
3
3
  exports[`<Slideshow> Snapshots and structure should render story 'Simple' 1`] = `
4
4
  Array [
5
- <section
6
- aria-live="polite"
7
- aria-roledescription="carousel"
8
- className="lumx-slideshow lumx-slideshow--theme-light lumx-slideshow--group-by-1"
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
+ previousButtonProps={
24
+ Object {
25
+ "aria-controls": "slideshow-slides2",
26
+ "label": "Previous",
27
+ }
28
+ }
29
+ slidesCount={6}
30
+ theme="light"
31
+ />
32
+ </div>
33
+ }
34
+ autoPlay={false}
35
+ endIndexVisible={1}
36
+ groupBy={1}
9
37
  id="slideshow1"
38
+ interval={1000}
39
+ isAutoPlaying={false}
40
+ setIsAutoPlaying={[Function]}
41
+ slidesId="slideshow-slides2"
42
+ startIndexVisible={0}
10
43
  style={
11
44
  Object {
12
45
  "width": "50%",
13
46
  }
14
47
  }
48
+ theme="light"
15
49
  >
16
- <div
17
- className="lumx-slideshow__slides"
18
- id="slideshow-slides2"
19
- onMouseEnter={[Function]}
20
- onMouseLeave={[Function]}
50
+ <SlideshowItem
51
+ key="/demo-assets/landscape1.jpg-0"
21
52
  >
22
- <div
23
- className="lumx-slideshow__wrapper"
24
- style={
53
+ <ImageBlock
54
+ align="left"
55
+ alt="Image 1"
56
+ captionPosition="below"
57
+ image="/demo-assets/landscape1.jpg"
58
+ theme="light"
59
+ thumbnailProps={
25
60
  Object {
26
- "transform": "translateX(-0%)",
61
+ "aspectRatio": "horizontal",
62
+ "loading": "eager",
27
63
  }
28
64
  }
29
- >
30
- <SlideshowItem
31
- aria-hidden={false}
32
- key=".$/demo-assets/landscape1.jpg-0"
33
- style={Object {}}
34
- >
35
- <ImageBlock
36
- align="left"
37
- alt="Image 1"
38
- captionPosition="below"
39
- image="/demo-assets/landscape1.jpg"
40
- theme="light"
41
- thumbnailProps={
42
- Object {
43
- "aspectRatio": "horizontal",
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
- }
65
+ />
66
+ </SlideshowItem>
67
+ <SlideshowItem
68
+ key="/demo-assets/landscape1-s200.jpg-1"
69
+ >
70
+ <ImageBlock
71
+ align="left"
72
+ alt="Image 2"
73
+ captionPosition="below"
74
+ image="/demo-assets/landscape1-s200.jpg"
75
+ theme="light"
76
+ thumbnailProps={
77
+ Object {
78
+ "aspectRatio": "horizontal",
79
+ "loading": "eager",
144
80
  }
145
- >
146
- <ImageBlock
147
- align="left"
148
- alt="Image 6"
149
- captionPosition="below"
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"
81
+ }
82
+ />
83
+ </SlideshowItem>
84
+ <SlideshowItem
85
+ key="/demo-assets/landscape2.jpg-2"
164
86
  >
165
- <SlideshowControls
166
- activeIndex={0}
167
- nextButtonProps={
87
+ <ImageBlock
88
+ align="left"
89
+ alt="Image 3"
90
+ captionPosition="below"
91
+ image="/demo-assets/landscape2.jpg"
92
+ theme="light"
93
+ thumbnailProps={
168
94
  Object {
169
- "aria-controls": "slideshow-slides2",
170
- "label": "Next",
95
+ "aspectRatio": "horizontal",
96
+ "loading": "eager",
171
97
  }
172
98
  }
173
- onNextClick={[Function]}
174
- onPaginationClick={[Function]}
175
- onPreviousClick={[Function]}
176
- previousButtonProps={
99
+ />
100
+ </SlideshowItem>
101
+ <SlideshowItem
102
+ key="/demo-assets/landscape3.jpg-3"
103
+ >
104
+ <ImageBlock
105
+ align="left"
106
+ alt="Image 4"
107
+ captionPosition="below"
108
+ image="/demo-assets/landscape3.jpg"
109
+ theme="light"
110
+ thumbnailProps={
177
111
  Object {
178
- "aria-controls": "slideshow-slides2",
179
- "label": "Previous",
112
+ "aspectRatio": "horizontal",
113
+ "loading": "eager",
180
114
  }
181
115
  }
182
- slidesCount={6}
116
+ />
117
+ </SlideshowItem>
118
+ <SlideshowItem
119
+ key="/demo-assets/portrait1.jpg-4"
120
+ >
121
+ <ImageBlock
122
+ align="left"
123
+ alt="Image 5"
124
+ captionPosition="below"
125
+ image="/demo-assets/portrait1.jpg"
183
126
  theme="light"
127
+ thumbnailProps={
128
+ Object {
129
+ "aspectRatio": "horizontal",
130
+ "loading": "eager",
131
+ }
132
+ }
184
133
  />
185
- </div>
186
- </section>,
187
- <div
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"
134
+ </SlideshowItem>
135
+ <SlideshowItem
136
+ key="/demo-assets/portrait1-s200.jpg-5"
203
137
  >
204
- <div
205
- className="lumx-slideshow-controls__pagination-items"
206
- style={
138
+ <ImageBlock
139
+ align="left"
140
+ alt="Image 6"
141
+ captionPosition="below"
142
+ image="/demo-assets/portrait1-s200.jpg"
143
+ theme="light"
144
+ thumbnailProps={
207
145
  Object {
208
- "transform": "translateX(-0px)",
146
+ "aspectRatio": "horizontal",
147
+ "loading": "eager",
209
148
  }
210
149
  }
211
- >
212
- <button
213
- className="lumx-slideshow-controls__pagination-item lumx-slideshow-controls__pagination-item--is-active"
214
- key="0"
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>,
150
+ />
151
+ </SlideshowItem>
152
+ </Slideshow>,
153
+ null,
262
154
  ]
263
155
  `;
@@ -1,3 +1,4 @@
1
1
  export * from './Slideshow';
2
2
  export * from './SlideshowItem';
3
3
  export * from './SlideshowControls';
4
+ export * from './Slides';
@@ -1,2 +1,3 @@
1
1
  export * from './Thumbnail';
2
2
  export * from './types';
3
+ export { useFocusPointStyle } from '@lumx/react/components/thumbnail/useFocusPointStyle';
@@ -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.addEventListener('focusout', onFocusOut);
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;
@@ -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> = {
@@ -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, isAutoPlaying && slidesCount > 1 ? (interval as number) : null);
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
- useFocusWithin({
188
- element,
189
- onFocusIn: stopAutoPlay,
190
- onFocusOut: startAutoPlay,
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 LoadingError } from './loading-error';
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';