@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
@@ -1,25 +1,25 @@
1
- import './_rolluppluginbabelhelpers.53.js';
1
+ import './_rollupPluginBabelHelpers.js';
2
2
  import './components.js';
3
3
  import 'react';
4
- import './getrootclassname.54.js';
5
- import './icon.21.js';
6
- import './index.55.js';
4
+ import './getRootClassName.js';
5
+ import './Icon2.js';
6
+ import '../index2.js';
7
7
  import 'lodash/isBoolean';
8
8
  import 'lodash/isEmpty';
9
9
  import 'lodash/kebabCase';
10
10
  import 'lodash/noop';
11
- import './constants.59.js';
11
+ import './constants.js';
12
12
  import 'lodash/get';
13
- import './popover.33.js';
14
- import './mergerefs.56.js';
15
- import './renderlink.65.js';
16
- import './buttonroot.57.js';
17
- import './iconbutton.6.js';
13
+ import './Popover2.js';
14
+ import './mergeRefs.js';
15
+ import './renderLink.js';
16
+ import './ButtonRoot.js';
17
+ import './IconButton.js';
18
18
  import 'react-dom';
19
- import './clickawayprovider.60.js';
19
+ import './ClickAwayProvider.js';
20
20
  import 'lodash/pull';
21
- import './inputhelper.23.js';
22
- import './inputlabel.24.js';
23
- export { T as TextField } from './textfield.46.js';
24
- import './tooltip.50.js';
21
+ import './InputHelper.js';
22
+ import './InputLabel.js';
23
+ export { T as TextField } from './TextField.js';
24
+ import './Tooltip2.js';
25
25
  //# sourceMappingURL=text-field.js.map
@@ -1,13 +1,13 @@
1
- import './_rolluppluginbabelhelpers.53.js';
1
+ import './_rollupPluginBabelHelpers.js';
2
2
  import './components.js';
3
3
  import 'react';
4
- import './getrootclassname.54.js';
5
- import './icon.21.js';
4
+ import './getRootClassName.js';
5
+ import './Icon2.js';
6
6
  import 'lodash/isBoolean';
7
7
  import 'lodash/isEmpty';
8
8
  import 'lodash/kebabCase';
9
9
  import 'lodash/noop';
10
- import './mergerefs.56.js';
11
- export { T as Thumbnail } from './thumbnail.47.js';
12
- export { T as ThumbnailAspectRatio, a as ThumbnailVariant } from './types.48.js';
10
+ import './mergeRefs.js';
11
+ export { T as Thumbnail, u as useFocusPointStyle } from './Thumbnail2.js';
12
+ export { T as ThumbnailAspectRatio, a as ThumbnailVariant } from './types.js';
13
13
  //# sourceMappingURL=thumbnail.js.map
@@ -1,9 +1,9 @@
1
- import './_rolluppluginbabelhelpers.53.js';
1
+ import './_rollupPluginBabelHelpers.js';
2
2
  import 'react';
3
- import './getrootclassname.54.js';
3
+ import './getRootClassName.js';
4
4
  import 'lodash/isBoolean';
5
5
  import 'lodash/isEmpty';
6
6
  import 'lodash/kebabCase';
7
7
  import 'lodash/noop';
8
- export { T as Toolbar } from './toolbar.49.js';
8
+ export { T as Toolbar } from './Toolbar2.js';
9
9
  //# sourceMappingURL=toolbar.js.map
@@ -1,17 +1,17 @@
1
- import './_rolluppluginbabelhelpers.53.js';
1
+ import './_rollupPluginBabelHelpers.js';
2
2
  import 'react';
3
- import './getrootclassname.54.js';
4
- import './index.55.js';
3
+ import './getRootClassName.js';
4
+ import '../index2.js';
5
5
  import 'lodash/isBoolean';
6
6
  import 'lodash/isEmpty';
7
7
  import 'lodash/kebabCase';
8
8
  import 'lodash/noop';
9
- import './constants.59.js';
9
+ import './constants.js';
10
10
  import 'lodash/get';
11
- import './popover.33.js';
12
- import './mergerefs.56.js';
11
+ import './Popover2.js';
12
+ import './mergeRefs.js';
13
13
  import 'react-dom';
14
- import './clickawayprovider.60.js';
14
+ import './ClickAwayProvider.js';
15
15
  import 'lodash/pull';
16
- export { T as Tooltip } from './tooltip.50.js';
16
+ export { T as Tooltip } from './Tooltip2.js';
17
17
  //# sourceMappingURL=tooltip.js.map
@@ -27,4 +27,4 @@ var isComponent = function isComponent(component) {
27
27
  */
28
28
 
29
29
  export { isComponent as i };
30
- //# sourceMappingURL=type.64.js.map
30
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sources":["../../../src/utils/type.ts"],"sourcesContent":["import get from 'lodash/get';\nimport { ReactElement, ReactNode, Ref } from 'react';\n\n/** Get types of the values of a record. */\nexport type ValueOf<T extends Record<any, any>> = T[keyof T];\n\n/**\n * Properties of a component to use to determine it's name.\n * In the order of preference.\n */\nconst NAME_PROPERTIES: string[] = [\n 'type',\n 'type.displayName',\n 'displayName',\n 'name',\n 'type.name',\n 'props.mdxType',\n '_reactInternalFiber.elementType.name',\n];\n\n/** LumX Component Type. */\nexport type Comp<P, T = HTMLElement> = {\n (props: P & { ref?: Ref<T> }): ReactElement | null;\n /** React component type. */\n readonly $$typeof: symbol;\n /** Component default props. */\n defaultProps?: Partial<P>;\n /** Component name. */\n displayName?: string;\n /** Component base class name. */\n className?: string;\n};\n\n/**\n * Define a generic props types.\n */\nexport interface GenericProps {\n /**\n * Any prop (particularly any supported prop for a HTML element).\n * E.g. classNames, onClick, disabled, ...\n */\n [propName: string]: any;\n}\n\n/**\n * Callback function type alias (use for readability)\n */\nexport type Callback = () => void;\nexport type Predicate<T> = (t: T) => boolean;\n\n/**\n * Create a predicate function that checks if a ReactNode is a react element from the given component.\n *\n * @param component React function component or the component name\n * @return predicate returning true if value is instance of the component\n */\nexport const isComponent = <C>(component: Comp<C, any> | string) => (instance: ReactNode): instance is ReactElement => {\n const componentName = typeof component === 'string' ? component : component.displayName;\n\n return (\n !!get(instance, '$$typeof') &&\n NAME_PROPERTIES.some((nameProperty: string): boolean => get(instance, nameProperty) === componentName)\n );\n};\n\n/**\n * JS falsy values.\n * (excluding `NaN` as it can't be distinguished from `number`)\n */\nexport type Falsy = false | undefined | null | 0 | '';\n"],"names":["NAME_PROPERTIES","isComponent","component","instance","componentName","displayName","get","some","nameProperty"],"mappings":";;AAMA;;;;AAIA,IAAMA,eAAyB,GAAG,CAC9B,MAD8B,EAE9B,kBAF8B,EAG9B,aAH8B,EAI9B,MAJ8B,EAK9B,WAL8B,EAM9B,eAN8B,EAO9B,sCAP8B,CAAlC;AAUA;;AA8BA;;;;;;IAMaC,WAAW,GAAG,SAAdA,WAAc,CAAIC,SAAJ;AAAA,SAAyC,UAACC,QAAD,EAAmD;AACnH,QAAMC,aAAa,GAAG,OAAOF,SAAP,KAAqB,QAArB,GAAgCA,SAAhC,GAA4CA,SAAS,CAACG,WAA5E;AAEA,WACI,CAAC,CAACC,GAAG,CAACH,QAAD,EAAW,UAAX,CAAL,IACAH,eAAe,CAACO,IAAhB,CAAqB,UAACC,YAAD;AAAA,aAAmCF,GAAG,CAACH,QAAD,EAAWK,YAAX,CAAH,KAAgCJ,aAAnE;AAAA,KAArB,CAFJ;AAIH,GAP0B;AAAA;AAS3B;;;;;;;"}
@@ -1,5 +1,6 @@
1
- import { _ as _objectSpread2 } from './_rolluppluginbabelhelpers.53.js';
1
+ import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers.js';
2
2
  import { AspectRatio } from './components.js';
3
+ import 'react';
3
4
 
4
5
  /**
5
6
  * All available aspect ratios.
@@ -19,4 +20,4 @@ var ThumbnailVariant = {
19
20
  };
20
21
 
21
22
  export { ThumbnailAspectRatio as T, ThumbnailVariant as a };
22
- //# sourceMappingURL=types.48.js.map
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../src/components/thumbnail/types.ts"],"sourcesContent":["import React from 'react';\nimport { AspectRatio, Size } from '@lumx/react';\nimport { ValueOf } from '@lumx/react/utils';\n\n/**\n * Focal point using vertical alignment, horizontal alignment or coordinates (from -1 to 1).\n */\nexport type FocusPoint = { x?: number; y?: number };\n\n/**\n * Loading attribute is not yet supported in typescript, so we need\n * to add it in order to avoid a ts error.\n * https://github.com/typescript-cheatsheets/react-typescript-cheatsheet/blob/master/ADVANCED.md#adding-non-standard-attributes\n */\ndeclare module 'react' {\n interface ImgHTMLAttributes<T> extends React.HTMLAttributes<T> {\n loading?: 'eager' | 'lazy';\n }\n}\n\n/**\n * All available aspect ratios.\n * @deprecated\n */\nexport const ThumbnailAspectRatio: Record<string, AspectRatio> = { ...AspectRatio };\n\n/**\n * Thumbnail sizes.\n */\nexport type ThumbnailSize = Extract<Size, 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl'>;\n\n/**\n * Thumbnail variants.\n */\nexport const ThumbnailVariant = {\n squared: 'squared',\n rounded: 'rounded',\n} as const;\nexport type ThumbnailVariant = ValueOf<typeof ThumbnailVariant>;\n"],"names":["ThumbnailAspectRatio","AspectRatio","ThumbnailVariant","squared","rounded"],"mappings":";;;;AAoBA;;;;IAIaA,oBAAiD,sBAAQC,WAAR;AAE9D;;;;AAKA;;;IAGaC,gBAAgB,GAAG;AAC5BC,EAAAA,OAAO,EAAE,SADmB;AAE5BC,EAAAA,OAAO,EAAE;AAFmB;;;;"}
@@ -1,11 +1,11 @@
1
- import './_rolluppluginbabelhelpers.53.js';
1
+ import './_rollupPluginBabelHelpers.js';
2
2
  import './components.js';
3
3
  import 'react';
4
- import './getrootclassname.54.js';
5
- import './icon.21.js';
4
+ import './getRootClassName.js';
5
+ import './Icon2.js';
6
6
  import 'lodash/isBoolean';
7
7
  import 'lodash/isEmpty';
8
8
  import 'lodash/kebabCase';
9
9
  import 'lodash/noop';
10
- export { a as Uploader, U as UploaderVariant } from './uploader.51.js';
10
+ export { a as Uploader, U as UploaderVariant } from './Uploader2.js';
11
11
  //# sourceMappingURL=uploader.js.map
@@ -1,4 +1,4 @@
1
- import { d as _slicedToArray } from './_rolluppluginbabelhelpers.53.js';
1
+ import { d as _slicedToArray } from './_rollupPluginBabelHelpers.js';
2
2
  import { useState, useEffect, useRef } from 'react';
3
3
 
4
4
  /**
@@ -44,4 +44,4 @@ function useDelayedVisibility(isComponentVisible, transitionDuration, onVisibili
44
44
  }
45
45
 
46
46
  export { useDelayedVisibility as u };
47
- //# sourceMappingURL=usedelayedvisibility.63.js.map
47
+ //# sourceMappingURL=useDelayedVisibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDelayedVisibility.js","sources":["../../../src/hooks/useDelayedVisibility.tsx"],"sourcesContent":["import { useEffect, useState, useRef } from 'react';\n\n/**\n * Returns true if the component is visible taking into account the component's\n * own visibility and the animations delay\n *\n * @param isComponentVisible Whether the component intends to be visible or not.\n * @param transitionDuration time in ms that the transition takes for the specific component.\n * @param onVisibilityChange Callback called when the visibility changes.\n * @return true if the component should be rendered\n */\nexport function useDelayedVisibility(\n isComponentVisible: boolean,\n transitionDuration: number,\n onVisibilityChange?: (isVisible: boolean) => void,\n): boolean {\n // Delay visibility to account for the 400ms of CSS opacity animation.\n const [isVisible, setVisible] = useState(isComponentVisible);\n\n useEffect(() => {\n if (isComponentVisible) {\n setVisible(true);\n } else {\n setTimeout(() => setVisible(false), transitionDuration);\n }\n }, [isComponentVisible, transitionDuration]);\n\n /**\n * Since we don't want onVisibiltyChange function to trigger itself if when it changes,\n * we store the previous visibility and only trigger when visibility is different\n * than previous value.\n */\n\n const previousVisibility = useRef(isVisible);\n\n useEffect(() => {\n if (onVisibilityChange && previousVisibility.current !== isVisible) {\n onVisibilityChange(isVisible);\n previousVisibility.current = isVisible;\n }\n }, [isVisible, onVisibilityChange]);\n\n return isComponentVisible || isVisible;\n}\n"],"names":["useDelayedVisibility","isComponentVisible","transitionDuration","onVisibilityChange","useState","isVisible","setVisible","useEffect","setTimeout","previousVisibility","useRef","current"],"mappings":";;;AAEA;;;;;;;;;;AASO,SAASA,oBAAT,CACHC,kBADG,EAEHC,kBAFG,EAGHC,kBAHG,EAII;AACP;AADO,kBAEyBC,QAAQ,CAACH,kBAAD,CAFjC;AAAA;AAAA,MAEAI,SAFA;AAAA,MAEWC,UAFX;;AAIPC,EAAAA,SAAS,CAAC,YAAM;AACZ,QAAIN,kBAAJ,EAAwB;AACpBK,MAAAA,UAAU,CAAC,IAAD,CAAV;AACH,KAFD,MAEO;AACHE,MAAAA,UAAU,CAAC;AAAA,eAAMF,UAAU,CAAC,KAAD,CAAhB;AAAA,OAAD,EAA0BJ,kBAA1B,CAAV;AACH;AACJ,GANQ,EAMN,CAACD,kBAAD,EAAqBC,kBAArB,CANM,CAAT;AAQA;;;;;;AAMA,MAAMO,kBAAkB,GAAGC,MAAM,CAACL,SAAD,CAAjC;AAEAE,EAAAA,SAAS,CAAC,YAAM;AACZ,QAAIJ,kBAAkB,IAAIM,kBAAkB,CAACE,OAAnB,KAA+BN,SAAzD,EAAoE;AAChEF,MAAAA,kBAAkB,CAACE,SAAD,CAAlB;AACAI,MAAAA,kBAAkB,CAACE,OAAnB,GAA6BN,SAA7B;AACH;AACJ,GALQ,EAKN,CAACA,SAAD,EAAYF,kBAAZ,CALM,CAAT;AAOA,SAAOF,kBAAkB,IAAII,SAA7B;AACH;;;;"}
@@ -217,4 +217,4 @@ var useDisableBodyScroll = function useDisableBodyScroll(modalElement) {
217
217
  };
218
218
 
219
219
  export { useDisableBodyScroll as u };
220
- //# sourceMappingURL=usedisablebodyscroll.61.js.map
220
+ //# sourceMappingURL=useDisableBodyScroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDisableBodyScroll.js","sources":["../../../../../node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","../../../src/hooks/useDisableBodyScroll.ts"],"sourcesContent":["function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n } else {\n setOverflowHidden(options);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n } else if (!locks.length) {\n restoreOverflowSetting();\n }\n};\n\n","import { useEffect } from 'react';\nimport { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport { Falsy } from '@lumx/react/utils';\n\n/**\n * Disables the scroll on the body to make it only usable in the current modal element.\n * When the modal element is not provided anymore, the scroll is restored.\n *\n * @param modalElement The modal element.\n */\nexport const useDisableBodyScroll = (modalElement: Element | Falsy): void => {\n useEffect(() => {\n if (!modalElement) {\n return undefined;\n }\n // Fixing the document overflow style to prevent a bug that scrolls the window to the top.\n const previousDocumentOverflow = document.documentElement.style.overflow;\n document.documentElement.style.overflow = 'visible';\n disableBodyScroll(modalElement);\n return () => {\n enableBodyScroll(modalElement);\n // Restore the previous overflow style.\n requestAnimationFrame(() => {\n document.documentElement.style.overflow = previousDocumentOverflow;\n });\n };\n }, [modalElement]);\n};\n"],"names":["useDisableBodyScroll","modalElement","useEffect","undefined","previousDocumentOverflow","document","documentElement","style","overflow","disableBodyScroll","enableBodyScroll","requestAnimationFrame"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { useEffect } from 'react';
2
- import { D as DOCUMENT } from './constants.59.js';
2
+ import { D as DOCUMENT } from './constants.js';
3
3
 
4
4
  /**
5
5
  * Get first and last elements focusable in an element.
@@ -84,4 +84,4 @@ function useFocusTrap(focusZoneElement, focusElement) {
84
84
  }
85
85
 
86
86
  export { useFocusTrap as u };
87
- //# sourceMappingURL=usefocustrap.58.js.map
87
+ //# sourceMappingURL=useFocusTrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFocusTrap.js","sources":["../../../src/hooks/useFocusTrap.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nimport { DOCUMENT } from '@lumx/react/constants';\n\n/**\n * Get first and last elements focusable in an element.\n *\n * @param parentElement The element in which to search focusable elements.\n * @return first and last focusable elements\n */\nfunction getFocusable(parentElement: HTMLElement) {\n const focusableElements = parentElement.querySelectorAll<HTMLElement>(\n 'a[href]:not([tabindex=\"-1\"]), button:not([tabindex=\"-1\"]), textarea:not([tabindex=\"-1\"]), input[type=\"text\"]:not([tabindex=\"-1\"]), input[type=\"radio\"]:not([tabindex=\"-1\"]), input[type=\"checkbox\"]:not([tabindex=\"-1\"]), [tabindex]:not([tabindex=\"-1\"])',\n );\n\n if (focusableElements.length <= 0) {\n return {};\n }\n\n const first = focusableElements[0];\n const last = focusableElements[focusableElements.length - 1];\n return { first, last };\n}\n\n/**\n * Add a key down event handler to the given root element (document.body by default) to trap the move of focus\n * (TAB and SHIFT-TAB keys) inside the given focusZoneElement.\n * Will focus the given focus element when activating the focus trap.\n *\n * @param focusZoneElement The element in which to trap the focus.\n * @param focusElement The element to focus when the focus trap is activated.\n * @param rootElement The element on which the key down event will be placed.\n */\nexport function useFocusTrap(\n focusZoneElement: HTMLElement | null,\n focusElement?: HTMLElement | null,\n rootElement = DOCUMENT?.body,\n): void {\n useEffect(() => {\n if (rootElement && focusZoneElement) {\n (document.activeElement as HTMLElement)?.blur();\n if (focusElement) {\n focusElement.focus();\n }\n\n const onKeyDown = (evt: KeyboardEvent) => {\n const { key } = evt;\n if (key !== 'Tab') {\n return;\n }\n const { first, last } = getFocusable(focusZoneElement);\n\n // Prevent focus switch if no focusable available.\n if (!first) {\n evt.preventDefault();\n return;\n }\n\n if (evt.shiftKey) {\n if (document.activeElement === first) {\n last?.focus();\n evt.preventDefault();\n }\n } else if (document.activeElement === last) {\n first?.focus();\n evt.preventDefault();\n }\n };\n rootElement.addEventListener('keydown', onKeyDown);\n return () => rootElement.removeEventListener('keydown', onKeyDown);\n }\n return undefined;\n }, [focusElement, focusZoneElement, rootElement]);\n}\n"],"names":["getFocusable","parentElement","focusableElements","querySelectorAll","length","first","last","useFocusTrap","focusZoneElement","focusElement","rootElement","DOCUMENT","body","useEffect","document","activeElement","blur","focus","onKeyDown","evt","key","preventDefault","shiftKey","addEventListener","removeEventListener","undefined"],"mappings":";;;AAIA;;;;;;;AAMA,SAASA,YAAT,CAAsBC,aAAtB,EAAkD;AAC9C,MAAMC,iBAAiB,GAAGD,aAAa,CAACE,gBAAd,CACtB,2PADsB,CAA1B;;AAIA,MAAID,iBAAiB,CAACE,MAAlB,IAA4B,CAAhC,EAAmC;AAC/B,WAAO,EAAP;AACH;;AAED,MAAMC,KAAK,GAAGH,iBAAiB,CAAC,CAAD,CAA/B;AACA,MAAMI,IAAI,GAAGJ,iBAAiB,CAACA,iBAAiB,CAACE,MAAlB,GAA2B,CAA5B,CAA9B;AACA,SAAO;AAAEC,IAAAA,KAAK,EAALA,KAAF;AAASC,IAAAA,IAAI,EAAJA;AAAT,GAAP;AACH;AAED;;;;;;;;;;;AASO,SAASC,YAAT,CACHC,gBADG,EAEHC,YAFG,EAIC;AAAA,MADJC,WACI,uEADUC,QACV,aADUA,QACV,uBADUA,QAAQ,CAAEC,IACpB;AACJC,EAAAA,SAAS,CAAC,YAAM;AACZ,QAAIH,WAAW,IAAIF,gBAAnB,EAAqC;AAAA;;AACjC,cAACM,QAAQ,CAACC,aAAV,8CAAyCC,IAAzC;;AACA,UAAIP,YAAJ,EAAkB;AACdA,QAAAA,YAAY,CAACQ,KAAb;AACH;;AAED,UAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,GAAD,EAAwB;AAAA,YAC9BC,GAD8B,GACtBD,GADsB,CAC9BC,GAD8B;;AAEtC,YAAIA,GAAG,KAAK,KAAZ,EAAmB;AACf;AACH;;AAJqC,4BAKdpB,YAAY,CAACQ,gBAAD,CALE;AAAA,YAK9BH,KAL8B,iBAK9BA,KAL8B;AAAA,YAKvBC,IALuB,iBAKvBA,IALuB;;;AAQtC,YAAI,CAACD,KAAL,EAAY;AACRc,UAAAA,GAAG,CAACE,cAAJ;AACA;AACH;;AAED,YAAIF,GAAG,CAACG,QAAR,EAAkB;AACd,cAAIR,QAAQ,CAACC,aAAT,KAA2BV,KAA/B,EAAsC;AAClCC,YAAAA,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEW,KAAN;AACAE,YAAAA,GAAG,CAACE,cAAJ;AACH;AACJ,SALD,MAKO,IAAIP,QAAQ,CAACC,aAAT,KAA2BT,IAA/B,EAAqC;AACxCD,UAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEY,KAAP;AACAE,UAAAA,GAAG,CAACE,cAAJ;AACH;AACJ,OAtBD;;AAuBAX,MAAAA,WAAW,CAACa,gBAAZ,CAA6B,SAA7B,EAAwCL,SAAxC;AACA,aAAO;AAAA,eAAMR,WAAW,CAACc,mBAAZ,CAAgC,SAAhC,EAA2CN,SAA3C,CAAN;AAAA,OAAP;AACH;;AACD,WAAOO,SAAP;AACH,GAlCQ,EAkCN,CAAChB,YAAD,EAAeD,gBAAf,EAAiCE,WAAjC,CAlCM,CAAT;AAmCH;;;;"}
@@ -1,6 +1,6 @@
1
- import { e as _toConsumableArray, _ as _objectSpread2, a as _defineProperty, d as _slicedToArray } from './_rolluppluginbabelhelpers.53.js';
1
+ import { e as _toConsumableArray, _ as _objectSpread2, a as _defineProperty, d as _slicedToArray } from './_rollupPluginBabelHelpers.js';
2
2
  import { createContext, useContext, useMemo, useEffect, useCallback } from 'react';
3
- import { u as uid } from './index.55.js';
3
+ import { u as uid } from '../index2.js';
4
4
 
5
5
  var INIT_STATE = {
6
6
  isLazy: true,
@@ -219,4 +219,4 @@ var useRovingTabIndex = function useRovingTabIndex(_ref) {
219
219
  };
220
220
 
221
221
  export { INIT_STATE as I, TabProviderContext as T, useTabProviderContextState as a, useTabProviderContext as b, reducer as r, useRovingTabIndex as u };
222
- //# sourceMappingURL=userovingtabindex.66.js.map
222
+ //# sourceMappingURL=useRovingTabIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRovingTabIndex.js","sources":["../../../src/components/tabs/state.ts","../../../src/hooks/useRovingTabIndex.tsx"],"sourcesContent":["import { Dispatch, createContext, useCallback, useContext, useEffect, useMemo } from 'react';\nimport { uid } from 'uid';\n\ntype TabType = 'tab' | 'tabPanel';\n\nexport interface State {\n isLazy: boolean;\n shouldActivateOnFocus: boolean;\n activeTabIndex: number;\n ids: Record<TabType, string[]>;\n}\n\nexport const INIT_STATE: State = {\n isLazy: true,\n shouldActivateOnFocus: false,\n activeTabIndex: 0,\n ids: { tab: [], tabPanel: [] },\n};\n\nexport type Action =\n | { type: 'update'; payload: Partial<State> }\n | { type: 'setActiveTabIndex'; payload: number }\n | { type: 'register'; payload: { type: TabType; id: string } }\n | { type: 'unregister'; payload: { type: TabType; id: string } };\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case 'update':\n return { ...state, ...action.payload };\n case 'setActiveTabIndex': {\n if (state.activeTabIndex === action.payload) {\n return state;\n }\n // Change active tab index.\n return { ...state, activeTabIndex: action.payload };\n }\n case 'register': {\n const { type, id } = action.payload;\n // Append tab/tabPanel id in state.\n return { ...state, ids: { ...state.ids, [type]: [...state.ids[type], id] } };\n }\n case 'unregister': {\n const { type, id } = action.payload;\n const index = state.ids[type].indexOf(id);\n if (index === -1) return state;\n // Remove tab & tab panel at index.\n const tabIds = [...state.ids.tab];\n tabIds.splice(index, 1);\n const tabPanelIds = [...state.ids.tabPanel];\n tabPanelIds.splice(index, 1);\n return {\n ...state,\n ids: { tab: tabIds, tabPanel: tabPanelIds },\n };\n }\n default:\n return state;\n }\n};\n\nexport const TabProviderContext = createContext<[State, Dispatch<Action>] | null>(null);\n\nexport type TabState = Pick<Required<State>, 'isLazy' | 'shouldActivateOnFocus'> & {\n isActive: boolean;\n tabId: string;\n tabPanelId: string;\n changeToTab(): void;\n};\n\n/* eslint-disable react-hooks/rules-of-hooks */\nexport const useTabProviderContext = (type: TabType, originalId?: string): undefined | TabState => {\n const context = useContext(TabProviderContext);\n if (!context) {\n return undefined;\n }\n const [state, dispatch] = context;\n\n // Current tab or tab panel id.\n const id = useMemo(\n () => originalId || `${type}-${uid()}`,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n useEffect(\n () => {\n // On mount: register tab or tab panel id.\n dispatch({ type: 'register', payload: { type, id } });\n return () => {\n // On unmount: unregister tab or tab panel id.\n dispatch({ type: 'unregister', payload: { type, id } });\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n // Find tab/tabPanel index using it's id.\n const index = useMemo(() => state.ids[type].indexOf(id), [state.ids, type, id]);\n const tabId = useMemo(() => state.ids.tab[index] || '', [state, index]);\n const tabPanelId = useMemo(() => state.ids.tabPanel[index] || '', [state, index]);\n const isActive = useMemo(() => state.activeTabIndex === index, [state, index]);\n const changeToTab = useCallback(() => dispatch({ type: 'setActiveTabIndex', payload: index }), [dispatch, index]);\n return {\n isLazy: state.isLazy,\n shouldActivateOnFocus: state.shouldActivateOnFocus,\n tabId,\n tabPanelId,\n isActive,\n changeToTab,\n };\n};\n\nexport const useTabProviderContextState = (): State | undefined => {\n const context = useContext(TabProviderContext);\n return context?.[0];\n};\n","import { RefObject, useEffect } from 'react';\n\ninterface UseRovingTabIndexOptions {\n parentRef: RefObject<HTMLElement>;\n elementSelector: string;\n keepTabIndex?: boolean;\n /** List of values to be used as extra dependencies of the useEffect */\n extraDependencies?: any[];\n}\n\nexport const useRovingTabIndex = ({\n parentRef,\n elementSelector,\n keepTabIndex,\n extraDependencies = [],\n}: UseRovingTabIndexOptions): void => {\n useEffect(\n () => {\n const parent = parentRef?.current;\n if (!parent) {\n return undefined;\n }\n\n const elements = parent.querySelectorAll(elementSelector) as NodeListOf<HTMLElement>;\n const initialFocusableElement = parent?.querySelector(`${elementSelector}[tabindex=\"0\"]`);\n\n const handleKeyDown = (index: number) => (evt: KeyboardEvent) => {\n let newTabFocus = index;\n if (!(evt.key === 'ArrowRight' || evt.key === 'ArrowLeft')) {\n return;\n }\n\n if (evt.key === 'ArrowRight') {\n // Move right\n newTabFocus += 1;\n // If we're at the end, go to the start\n if (newTabFocus >= elements.length) {\n newTabFocus = 0;\n }\n } else if (evt.key === 'ArrowLeft') {\n // Move left\n newTabFocus -= 1;\n if (newTabFocus < 0) {\n // If we're at the start, move to the end\n newTabFocus = elements.length - 1;\n }\n }\n const newElement = elements[newTabFocus];\n newElement?.focus();\n if (keepTabIndex) {\n (evt.currentTarget as HTMLElement).setAttribute('tabindex', '-1');\n newElement?.setAttribute('tabindex', '0');\n }\n };\n\n if (elements?.length > 0) {\n elements.forEach((el, key) => {\n // if no element has tabindex set to 0, set the first element as focusable\n if (!initialFocusableElement && key === 0) {\n el.setAttribute('tabindex', '0');\n // set all other to -1\n } else if (initialFocusableElement !== el) {\n el.setAttribute('tabindex', '-1');\n }\n // add event listener\n el.addEventListener('keydown', handleKeyDown(key) as EventListener);\n });\n }\n\n // Cleanup listeners\n return () => {\n if (elements?.length > 0) {\n elements.forEach((el, key) => {\n el.removeEventListener('keydown', handleKeyDown(key) as EventListener);\n });\n }\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [parentRef, ...extraDependencies],\n );\n};\n"],"names":["INIT_STATE","isLazy","shouldActivateOnFocus","activeTabIndex","ids","tab","tabPanel","reducer","state","action","type","payload","id","index","indexOf","tabIds","splice","tabPanelIds","TabProviderContext","createContext","useTabProviderContext","originalId","context","useContext","undefined","dispatch","useMemo","uid","useEffect","tabId","tabPanelId","isActive","changeToTab","useCallback","useTabProviderContextState","useRovingTabIndex","parentRef","elementSelector","keepTabIndex","extraDependencies","parent","current","elements","querySelectorAll","initialFocusableElement","querySelector","handleKeyDown","evt","newTabFocus","key","length","newElement","focus","currentTarget","setAttribute","forEach","el","addEventListener","removeEventListener"],"mappings":"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"}
@@ -1,16 +1,16 @@
1
- import './_rolluppluginbabelhelpers.53.js';
1
+ import './_rollupPluginBabelHelpers.js';
2
2
  import './components.js';
3
3
  import 'react';
4
- import './getrootclassname.54.js';
5
- import './icon.21.js';
4
+ import './getRootClassName.js';
5
+ import './Icon2.js';
6
6
  import 'lodash/isBoolean';
7
7
  import 'lodash/isEmpty';
8
8
  import 'lodash/kebabCase';
9
9
  import 'lodash/noop';
10
- import './mergerefs.56.js';
11
- import './avatar.3.js';
12
- import './renderlink.65.js';
13
- import './link.26.js';
14
- import './thumbnail.47.js';
15
- export { U as UserBlock } from './userblock.52.js';
10
+ import './mergeRefs.js';
11
+ import './Avatar2.js';
12
+ import './renderLink.js';
13
+ import './Link2.js';
14
+ import './Thumbnail2.js';
15
+ export { U as UserBlock } from './UserBlock.js';
16
16
  //# sourceMappingURL=user-block.js.map
package/esm/index.js ADDED
@@ -0,0 +1,89 @@
1
+ import './_internal/_rollupPluginBabelHelpers.js';
2
+ export { Alignment, AspectRatio, ColorPalette, ColorVariant, Emphasis, Kind, Orientation, Size, Theme, Typography, TypographyInterface, TypographyTitleCustom } from './_internal/components.js';
3
+ import 'react';
4
+ import './_internal/getRootClassName.js';
5
+ export { I as Icon } from './_internal/Icon2.js';
6
+ import './index2.js';
7
+ import 'lodash/isBoolean';
8
+ import 'lodash/isEmpty';
9
+ import 'lodash/kebabCase';
10
+ import 'lodash/noop';
11
+ import './_internal/constants.js';
12
+ import 'lodash/concat';
13
+ import 'lodash/dropRight';
14
+ import 'lodash/last';
15
+ import 'lodash/partition';
16
+ import 'lodash/reduce';
17
+ import './_internal/partitionMulti.js';
18
+ import 'lodash/get';
19
+ import './_internal/type.js';
20
+ export { A as AlertDialog } from './_internal/AlertDialog.js';
21
+ export { P as Placement, a as Popover } from './_internal/Popover2.js';
22
+ import './_internal/mergeRefs.js';
23
+ export { A as Autocomplete, a as AutocompleteMultiple } from './_internal/AutocompleteMultiple.js';
24
+ export { A as Avatar } from './_internal/Avatar2.js';
25
+ export { B as Badge } from './_internal/Badge2.js';
26
+ import './_internal/renderLink.js';
27
+ import './_internal/ButtonRoot.js';
28
+ export { a as Button, B as ButtonEmphasis } from './_internal/Button2.js';
29
+ export { I as IconButton } from './_internal/IconButton.js';
30
+ export { B as ButtonGroup } from './_internal/ButtonGroup.js';
31
+ export { C as Checkbox } from './_internal/Checkbox2.js';
32
+ import 'lodash/isFunction';
33
+ export { C as Chip } from './_internal/Chip2.js';
34
+ export { C as ChipGroup } from './_internal/ChipGroup.js';
35
+ export { a as CommentBlock, C as CommentBlockVariant } from './_internal/CommentBlock.js';
36
+ import 'moment';
37
+ export { D as DatePicker, a as DatePickerControlled, b as DatePickerField } from './_internal/DatePickerField.js';
38
+ import 'lodash/range';
39
+ import 'moment-range';
40
+ import './_internal/useFocusTrap.js';
41
+ import 'react-dom';
42
+ import './_internal/ClickAwayProvider.js';
43
+ export { D as Dialog } from './_internal/Dialog2.js';
44
+ import 'lodash/pull';
45
+ import './_internal/useDelayedVisibility.js';
46
+ import './_internal/useDisableBodyScroll.js';
47
+ export { D as DEFAULT_PROPS, a as Divider } from './_internal/Divider2.js';
48
+ export { D as DragHandle } from './_internal/DragHandle.js';
49
+ export { L as List, a as ListItem, i as isClickable } from './_internal/List2.js';
50
+ export { D as Dropdown } from './_internal/Dropdown2.js';
51
+ export { E as ExpansionPanel } from './_internal/ExpansionPanel.js';
52
+ export { F as Flag } from './_internal/Flag2.js';
53
+ import 'lodash/castArray';
54
+ export { F as FlexBox } from './_internal/FlexBox.js';
55
+ export { G as Grid, a as GridItem } from './_internal/GridItem.js';
56
+ import 'lodash/isObject';
57
+ export { a as ImageBlock, I as ImageBlockCaptionPosition } from './_internal/ImageBlock.js';
58
+ export { I as InputHelper } from './_internal/InputHelper.js';
59
+ export { I as InputLabel } from './_internal/InputLabel.js';
60
+ export { L as Lightbox } from './_internal/Lightbox2.js';
61
+ export { L as Link } from './_internal/Link2.js';
62
+ export { L as LinkPreview } from './_internal/LinkPreview.js';
63
+ export { L as ListDivider, a as ListSubheader } from './_internal/ListSubheader.js';
64
+ export { M as Message } from './_internal/Message2.js';
65
+ import 'lodash/take';
66
+ export { M as Mosaic } from './_internal/Mosaic2.js';
67
+ export { N as Notification } from './_internal/Notification2.js';
68
+ export { P as PostBlock } from './_internal/PostBlock.js';
69
+ export { a as Progress, P as ProgressVariant } from './_internal/Progress2.js';
70
+ import './_internal/useRovingTabIndex.js';
71
+ export { a as ProgressTracker, P as ProgressTrackerProvider, b as ProgressTrackerStep, c as ProgressTrackerStepPanel } from './_internal/ProgressTrackerStepPanel.js';
72
+ export { R as RadioButton, a as RadioGroup } from './_internal/RadioGroup.js';
73
+ export { a as Select, c as SelectMultiple, b as SelectMultipleField, S as SelectVariant } from './_internal/SelectMultiple.js';
74
+ export { S as SideNavigation, a as SideNavigationItem } from './_internal/SideNavigationItem.js';
75
+ export { S as SkeletonCircle, b as SkeletonRectangle, a as SkeletonRectangleVariant, c as SkeletonTypography } from './_internal/SkeletonTypography.js';
76
+ export { S as Slider, c as clamp } from './_internal/Slider2.js';
77
+ export { c as Slides, S as Slideshow, b as SlideshowControls, a as SlideshowItem } from './_internal/Slides.js';
78
+ import 'lodash/uniqueId';
79
+ export { S as Switch } from './_internal/Switch2.js';
80
+ export { T as Table, a as TableBody, d as TableCell, c as TableCellVariant, e as TableHeader, f as TableRow, b as ThOrder } from './_internal/TableRow.js';
81
+ export { c as Tab, b as TabList, a as TabListLayout, d as TabPanel, T as TabProvider } from './_internal/TabPanel.js';
82
+ export { T as TextField } from './_internal/TextField.js';
83
+ export { T as Thumbnail, u as useFocusPointStyle } from './_internal/Thumbnail2.js';
84
+ export { T as ThumbnailAspectRatio, a as ThumbnailVariant } from './_internal/types.js';
85
+ export { T as Toolbar } from './_internal/Toolbar2.js';
86
+ export { T as Tooltip } from './_internal/Tooltip2.js';
87
+ export { a as Uploader, U as UploaderVariant } from './_internal/Uploader2.js';
88
+ export { U as UserBlock } from './_internal/UserBlock.js';
89
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -13,4 +13,4 @@ function uid(len) {
13
13
  }
14
14
 
15
15
  export { uid as u };
16
- //# sourceMappingURL=index.55.js.map
16
+ //# sourceMappingURL=index2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.js","sources":["../../../../node_modules/uid/dist/index.mjs"],"sourcesContent":["var IDX=256, HEX=[], SIZE=256, BUFFER;\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nexport function uid(len) {\n\tvar i=0, tmp=(len || 11);\n\tif (!BUFFER || ((IDX + tmp) > SIZE*2)) {\n\t\tfor (BUFFER='',IDX=0; i < SIZE; i++) {\n\t\t\tBUFFER += HEX[Math.random() * 256 | 0];\n\t\t}\n\t}\n\n\treturn BUFFER.substring(IDX, IDX++ + tmp);\n}\n"],"names":[],"mappings":"AAAA,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;AACtC,OAAO,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/D;AACO,SAAS,GAAG,CAAC,GAAG,EAAE;AACzB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;AAC1B,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;AACxC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACvC,GAAG,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE;AACF;AACA,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;AAC3C;;;;"}
package/package.json CHANGED
@@ -7,8 +7,8 @@
7
7
  },
8
8
  "dependencies": {
9
9
  "@juggle/resize-observer": "^3.2.0",
10
- "@lumx/core": "^2.2.9-alpha-exported-hooks2",
11
- "@lumx/icons": "^2.2.9-alpha-exported-hooks2",
10
+ "@lumx/core": "^2.2.9",
11
+ "@lumx/icons": "^2.2.9",
12
12
  "@popperjs/core": "^2.5.4",
13
13
  "body-scroll-lock": "^3.1.5",
14
14
  "classnames": "^2.2.6",
@@ -42,6 +42,7 @@
42
42
  "babel-loader": "^8.0.6",
43
43
  "chromatic": "^6.0.6",
44
44
  "core-js": "^3.6.4",
45
+ "dts-bundle-generator": "^5.5.0",
45
46
  "enzyme": "^3.11.0",
46
47
  "enzyme-adapter-react-16": "^1.15.2",
47
48
  "enzyme-to-json": "^3.5.0",
@@ -66,7 +67,6 @@
66
67
  "rollup-plugin-babel": "^4.4.0",
67
68
  "rollup-plugin-cleaner": "^1.0.0",
68
69
  "rollup-plugin-copy": "^3.3.0",
69
- "rollup-plugin-dts": "^4.1.0",
70
70
  "rollup-plugin-peer-deps-external": "^2.2.4",
71
71
  "rollup-plugin-ts-paths-resolve": "^1.3.0",
72
72
  "rollup-plugin-typescript-paths": "^1.2.2",
@@ -98,12 +98,10 @@
98
98
  "React"
99
99
  ],
100
100
  "license": "MIT",
101
- "type": "module",
101
+ "module": "esm/index.js",
102
+ "main": "esm/index.js",
103
+ "types": "types.d.ts",
102
104
  "name": "@lumx/react",
103
- "exports": {
104
- ".": "./index.js",
105
- "./hooks/*": "./hooks/*.js"
106
- },
107
105
  "publishConfig": {
108
106
  "directory": "dist"
109
107
  },
@@ -112,7 +110,8 @@
112
110
  "url": "git+https://github.com/lumapps/design-system.git"
113
111
  },
114
112
  "scripts": {
115
- "build": "rollup -c",
113
+ "build": "rollup -c && yarn generate:types",
114
+ "generate:types": "dts-bundle-generator --no-check --external-types=react --external-imports=moment -o dist/types.d.ts src/index.ts",
116
115
  "prepare": "install-peers || exit 0",
117
116
  "prepublishOnly": "yarn build",
118
117
  "test": "jest --config jest/index.js --coverage --notify --passWithNoTests --detectOpenHandles --runInBand",
@@ -121,6 +120,6 @@
121
120
  "build:storybook": "cd storybook && ./build"
122
121
  },
123
122
  "sideEffects": false,
124
- "version": "2.2.9-alpha-exported-hooks2",
125
- "gitHead": "ac3611fff38e2f325db84e3f1afc9049e9d668c4"
123
+ "version": "2.2.9",
124
+ "gitHead": "daa2a61c4e71e345e22394776859ec111bedc916"
126
125
  }
@@ -0,0 +1,115 @@
1
+ import React, { CSSProperties, forwardRef } from 'react';
2
+
3
+ import classNames from 'classnames';
4
+
5
+ import { FULL_WIDTH_PERCENT } from '@lumx/react/components/slideshow/constants';
6
+ import { Comp, GenericProps, getRootClassName, handleBasicClasses } from '@lumx/react/utils';
7
+ import { Theme } from '@lumx/react';
8
+
9
+ export interface SlidesProps extends GenericProps {
10
+ /** current slide active */
11
+ activeIndex?: number;
12
+ /** slides id to be added to the wrapper */
13
+ id?: string;
14
+ /** custom classname */
15
+ className?: string;
16
+ /** custom theme */
17
+ theme?: Theme;
18
+ /** Whether the automatic rotation of the slideshow is enabled or not. */
19
+ autoPlay?: boolean;
20
+ /** Whether the image has to fill its container height or not. */
21
+ fillHeight?: boolean;
22
+ /** Number of slides to group together. */
23
+ groupBy?: number;
24
+ /** whether the slides are currently playing or not */
25
+ isAutoPlaying?: boolean;
26
+ /** id to be passed in into the slides */
27
+ slidesId?: string;
28
+ /** callback to change whether the slideshow is playing or not */
29
+ setIsAutoPlaying: (isAutoPlaying: boolean) => void;
30
+ /** starting visible index */
31
+ startIndexVisible: number;
32
+ /** ending visible index */
33
+ endIndexVisible: number;
34
+ /** component to be rendered after the slides */
35
+ afterSlides?: React.ReactNode;
36
+ }
37
+
38
+ /**
39
+ * Component display name.
40
+ */
41
+ const COMPONENT_NAME = 'Slideshow';
42
+
43
+ /**
44
+ * Component default class name and class prefix.
45
+ */
46
+ const CLASSNAME = getRootClassName(COMPONENT_NAME);
47
+
48
+ /**
49
+ * Slides component.
50
+ *
51
+ * @param props Component props.
52
+ * @param ref Component ref.
53
+ * @return React element.
54
+ */
55
+ export const Slides: Comp<any, HTMLDivElement> = forwardRef((props, ref) => {
56
+ const {
57
+ activeIndex,
58
+ id,
59
+ className,
60
+ theme,
61
+ fillHeight,
62
+ groupBy,
63
+ isAutoPlaying,
64
+ autoPlay,
65
+ slidesId,
66
+ setIsAutoPlaying,
67
+ startIndexVisible,
68
+ endIndexVisible,
69
+ children,
70
+ afterSlides,
71
+ ...forwardedProps
72
+ } = props;
73
+ // Inline style of wrapper element.
74
+ const wrapperStyle: CSSProperties = { transform: `translateX(-${FULL_WIDTH_PERCENT * activeIndex}%)` };
75
+
76
+ return (
77
+ <section
78
+ id={id}
79
+ ref={ref}
80
+ {...forwardedProps}
81
+ className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, theme }), {
82
+ [`${CLASSNAME}--fill-height`]: fillHeight,
83
+ [`${CLASSNAME}--group-by-${groupBy}`]: Boolean(groupBy),
84
+ })}
85
+ aria-roledescription="carousel"
86
+ >
87
+ <div
88
+ id={slidesId}
89
+ className={`${CLASSNAME}__slides`}
90
+ onMouseEnter={() => setIsAutoPlaying(false)}
91
+ onMouseLeave={() => setIsAutoPlaying(Boolean(autoPlay))}
92
+ aria-live={isAutoPlaying ? 'off' : 'polite'}
93
+ >
94
+ <div className={`${CLASSNAME}__wrapper`} style={wrapperStyle}>
95
+ {React.Children.map(children, (child: React.ReactNode, index: number) => {
96
+ if (React.isValidElement(child)) {
97
+ const isCurrentlyVisible = index >= startIndexVisible && index < endIndexVisible;
98
+
99
+ return React.cloneElement(child, {
100
+ isCurrentlyVisible,
101
+ });
102
+ }
103
+
104
+ return null;
105
+ })}
106
+ </div>
107
+ </div>
108
+
109
+ {afterSlides}
110
+ </section>
111
+ );
112
+ });
113
+
114
+ Slides.displayName = COMPONENT_NAME;
115
+ Slides.className = CLASSNAME;